如何在短时间内快速入门the social networkk Analysis

社交网络分析 Social Network Analysis
知识量:8.4
教师参与:8.4
趣味性:8.4
课程设计:8.4
难度:简单
开始时间:
持续时间:9.0周/每周5.0-7.0小时
你可能感兴趣
社会网络分析是一门综合性非常高的学问,理论上,它是一种用数学方式来分析各种关系网络的方法,尤其是人与人之间的社会网络,因为它及其严谨的数学抽象,它可以应用在各式各样的学科领域内,包括社会学,政治学,计算机,数理生物学等等。 课程简介任何东西都互相联系——人、信息、事件和地点,新兴的在线社交媒体更是如此。要理解这些杂乱无章的联系,一种实用的方式是将其作为网络来分析。在本课程中,你将了解网络的结构和演化。本课程涉及社会性、计算机科学、经济学和物理学等广泛学科的知识。课程包括在线互动演示和真实数据集的分析实践,并专注于以下目标:确定网络中的重要节点、探测社区,跟踪信息的扩散和观点的形成。 课程大纲第一周:什么是网络,学习他们有什么用?概念:节点、边、邻接阵,1模网络和2模网络,点度。活动:上传一个社会网络(如把你的人人网同学圈输入到Gephi软件中并显示为图形)。第二周:随机网络模型:Erdos-Renyi模型和Barabasi-Albert模型概念:连接的成分,巨型成分,平均最短路径,半径,广度优先搜索,优先连接。活动:创建随机网络,技术成分分布,平均最短路径,评估结构对信息扩散能力的影响第三周:网络中心性概念:中介中心性,接近中心性,特征值中心性,网络中心势活动:计算和解释现实网络(你的人人网关系)的节点中心性第四周:社区概念:聚类,社区结构,模块化,社区重叠活动:探测并解释各种网络(科学合作,政治博客、食材等)的分离与重叠第五周:小世界网络模型,优化,战略网络形成与搜索概念:小世界,地理网络,分散搜索活动:计算几个真实网络,展示小世界属性,在不同拓扑结构上模拟分散搜索,计算小世界拓扑上信息扩散的效果。第六周:传染,观点形成,协调与合作概念:简单传染,阈值模型,观点形成活动:通过数值模拟计算网络结构的上述过程的影响第七周:又酷又另类的社会网络分析应用Hidalgo等: 用产品的空间网络(哪个国家生产那种产品)计算经济发展程度Ahn等,和Teng等:成分和风味网络的料理学习 Lusseau等: 海豚的社会网络其他活动:利用之前课程学到的知识动手探索这些网络第八周:社会网络分析与在线社会网络概念:诸如Facebook,LinkedIn,Twitter,CouchSurfing等社交平台,如何利用社会网络分析来了解用户并提升服务活动:阅读最近的关于社会网络分析如何应用于社交平台的研究 推荐背景本课程不要求数学和编程技巧。针对有编程能力的同学,会有一些额外的练习,主要是利用R统计程序语言结合NetLogo实现。拓展阅读如何要一头扎进社会网络分析,建议下载Gephi并且尝试它的一些教程。要间接探索社会网络,可以查看NetLogo的示例。如果你渴望阅读,Easley和Kleinberg书籍棒极了(可以在网络、朋友、或是市场上获得)。相关章节包括1-5,13-14,19-21课程形式课程包括视频课程,每集持续8到12分钟,并包含1-2个小测验。视频课程外,也有独立的家庭作业,可选的编程任务,以及(不可回避的^_^)期末考试。问答:Q:课程中回用到什么工具啊?A:Gephi用于可视化处理和分析。互动示例主要用的是Netlogo,可以通过浏览器直接打开。如果想要完成编程任务,可以用NetLogo和R实现。两者都可以免费在网上获得。Q:完成课程后,我能得到结课证书吗?A:成果完成课程的将拿到授课人签署的结课证明。 翻译:
已完成因为没有做选作的编程作业,感觉课程比较容易。下载一些现成的Netlogo程序进行分析
已完成课程主要都是概念性的东西,涉及编程的内容较少。和Stanford的Social and Economic Network相比,内容更简单一些。
研究的方向随着social network site的蓬勃发展还是挺火的,老师本身和facebook也有很多合作,最近发表了不少有趣论文。
已完成课程内容比较简单,我不会netlogo,没能完成编程作业。也就没有with distinction了 0.0
已完成略微有些R的基础,2个用R的编程作业真心很简单。
Netlogo的那个编程任务倒是折腾了接近2个小时。
最后选了做分析报告,花了5个小时折腾了5页纸3个图,peers很好心地给了25分。
已完成complex network的入门内容,老师讲解清楚,课程及作业都不难,作业主要是用gephi和netlogo进行简单的实验观察
已完成终于盼来这个功能了,大家都来上传自己的证书吧!
-------上传证书的昏割线---------
难度适中,但是跳过了很多原理性的东西,编程作业没做,所以也不是了解很深。所有的老师说零基础都是在“知其然不知其所以然”的基础上的,所以还是推荐多看资料多练。
有个中国童鞋做了豆瓣小组网络分析,虽然用的还是很基本的课上学的方法,但是全英文paper+各种图表看起来很牛逼的样子有木有~
尊重版权的论文下载:/p/Db3F7JMQxaABGJQv
ps:计算机图论是门大学问。
本门课主要采取使用软件和自动的算法来呈现网络。
对网络信息进行可视化是将复杂的信息建模,用图形表示出来...
Week 2 随机图模型
2.1建模的目的:对复杂网络进行简单表示;能得到数学的特性;预测其他特性和输出
表示:(N...
WEEK 4 Community Structure
Why do we look for communit...
攒了好久果壳网的服务器就是不能上传大一点的照片啊啊啊……
好啦,废话不多说,这里给大家分享一下哈工大MOOCer的社交...
已经上到上week 5的课程,还没看,回过头写第二周的笔记。
这周课分为两个部分,一个是“高级版”一个是“普通版”,理...
课程简介:社会网络分析(以下称SNA)是一门综合性非常高的学问,理论上,它是一种用数学方式来分析各种关系网络的方法,因为...
Week3的Pagerank挑战变成了拉票大赛:
我的昵称Ryan
如果各位在outbound link里填写我的昵称...谢邀。这里面有两个问题:1. 在opinion extraction/IR中如何使用句法分析;2. 句法分析在多大程度上对这两个任务有帮助(原题)。&br&&br&由于我自己主要还是做句法分析本身,暂时很少做上层应用,所以简单谈谈我对应用的理解,抛砖引玉。&br&&br&&b&1. 在opinion extraction/IR中如何使用句法分析。&/b&&br&举几个例子吧。&br&比如在opinion extraction中我们常常要抽取评价对象(aspect):&br&&i&&u&&b&例:&/b&“知乎的内容质量很好”&/u&&/i&&br&这里 “很好” 形容的是 “内容质量”。通过依存句法分析,就可以抽取出对应的搭配。如下图:&br&&img src=&/671d68ce4b442c9880baadfee835b25b_b.png& data-rawwidth=&385& data-rawheight=&138& class=&content_image& width=&385&&(顺手插个广告,分析结果来自我们实验室的语言云:&a href=&///?target=http%3A//www./demo/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&在线演示 |
语言云(语言技术平台云 LTP-Cloud)&i class=&icon-external&&&/i&&/a&)&br&&br&再说说IR,以百度框计算为例。对于以下两个query:&br&&u&&i&&b&Query 1: &/b&谢霆锋的儿子是谁?&/i&&/u&&br&&u&&i&&b&Query 2:&/b& 谢霆锋是谁的儿子?&/i&&/u&&br&这两个Query的bag-of-words完全一致,如果不考虑其语法结构,很难直接给用户返回正确的结果。类似的例子还有很多。在这种情况下,通过句法分析,我们就能够知道用户询问的真正对象是什么。&br&&img src=&/ebf2cc1f85b1b191d578fd_b.png& data-rawwidth=&384& data-rawheight=&174& class=&content_image& width=&384&&&br&&img src=&/fed165a9dc853fe48c099d_b.png& data-rawwidth=&383& data-rawheight=&172& class=&content_image& width=&383&&&br&&br&推而广之,对Query进行更general的需求分析大都离不开描述对象的提取,很多时候句法结构非常关键,更是下一步语义分析的前提。&br&&br&&b&2. 句法分析在多大程度上对这两个任务有帮助(原题)。&/b&&br&&br&原问题很好,可以扩展出很多思考。在炼丹纪到来之前,也许我们可以给一个非常乐观的回答,比如60%。但是现如今,我们需要思虑再三。主要原因在于,RNN/LSTM等强大的时序模型(sequential modeling)能够在一定程度上刻画句子的隐含语法结构。尽管我们暂时无法提供一个清晰的解释,但是它在很多任务上的确表现出非常promising的性能。&br&推荐一下车万翔老师前段时间写的一个简单的survey:&a href=&///?target=http%3A//mp./s%3F__biz%3DMzIxMjAzNDY5Mg%3D%3D%26mid%3Didx%3D1%26sn%3D4d2ae05effaa0ded9332%26scene%3D2%26srcid%3D1015LyJAMxAtArMzdyKyIRHh%26from%3Dtimeline%26isappinstalled%3D0%23rd& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&哈工大车万翔:自然语言处理中的深度学习模型是否依赖于树结构?&i class=&icon-external&&&/i&&/a&&br&&br&文中的一个性能对比能够说明问题:Tree-LSTM是基于句法结构之上的LSTM,Bi-LSTM则是简单的双向(left&-&right)LSTM。在很多任务上,Bi-LSTM都表现得比Tree-LSTM更好。&br&&img src=&/157d8ff935310faa35b5ffe0fc3a3bf7_b.png& data-rawwidth=&482& data-rawheight=&190& class=&origin_image zh-lightbox-thumb& width=&482& data-original=&/157d8ff935310faa35b5ffe0fc3a3bf7_r.png&&&br&但是,这并不说明句法结构是没有用的,详细分析请参考上面提到的survey。&br&&br&需要提及的是,句法分析目前的性能是防碍其实际应用的一个关键因素,尤其是在open-domain上。目前在英文WSJ上的parsing性能最高能够做到94%,但是一旦跨领域,性能甚至跌到80%以下,是达不到实际应用标准的。而中文上parsing性能则更低。
谢邀。这里面有两个问题:1. 在opinion extraction/IR中如何使用句法分析;2. 句法分析在多大程度上对这两个任务有帮助(原题)。由于我自己主要还是做句法分析本身,暂时很少做上层应用,所以简单谈谈我对应用的理解,抛砖引玉。1. 在opinion extraction/I…
&b&觉得coursera难缓冲以及听不懂英文以及、编程0基础的同学看这里!!!&/b&&br&哭着献上南京大学的《用Python玩转数据》(上面有同学提到了但关注度不高)以下是推荐理由:&br&1、全中文。虽然大部分coursera课程是英文,这下放心了。&br&2、请用Firefox英文版打开coursera!不要问我为什么找到因为我一直以为coursera要翻墙所以我花了钱翻墙结果依然,,,,,直到我不知从哪儿看到用Firefox英文版能完美解决这个问题。而且F浏览器跟我原来用的浏览器不一样在于,习题居然能正常使用了,看完一段之后直接在视频上回答问题,非常有互动感!&br&3、这门课绕开了很多python的边边角角问题比如讲到抓取网络数据时用到正则表达式它不展开说,而直奔下一问题,正则就要自己有空再学。这避免了作为零基础感到python越学越多最后不知绕到哪个角落的问题。这门课教学主线很、清晰!我只要用python来数据分析而已啊python别的强大功能先放一边好吗?这门课的回答是,好的。&br&4、课程已完成,比X酷上po主发视频发了一两集然后不知跑哪儿去的让人舒心多了。请按照节奏一步步【完整地】把python【数据分析】拿下。&br&&img src=&/f02c708e75efbf47bcff_b.png& data-rawwidth=&1366& data-rawheight=&768& class=&origin_image zh-lightbox-thumb& width=&1366& data-original=&/f02c708e75efbf47bcff_r.png&&
觉得coursera难缓冲以及听不懂英文以及、编程0基础的同学看这里!!!哭着献上南京大学的《用Python玩转数据》(上面有同学提到了但关注度不高)以下是推荐理由:1、全中文。虽然大部分coursera课程是英文,这下放心了。2、请用Firefox英文版打开coursera!…
看到有匿名用户说“Php7性能再好,它也是PHP,某种程度上,php7的意义还不如swoole这个扩展。”,还有评论怀疑是我写的。赶紧出来澄清下。知乎一个人只能答一次,所以肯定不是我写的。而且PHP7的价值是远超Swoole的。PHP7是给所有PHPer的福利,Swoole主要是面向高阶PHP程序员。&br&&br&PHP7和Swoole是2个方向的东西,详情可以看我写的博文《PHP7与Swoole》 &a href=&///?target=http%3A///archives/440& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/archiv&/span&&span class=&invisible&&es/440&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&&br&PHP7的改进对Python没有冲击。性能是相对的,&b&和自己比更有意义&/b&。比如PHP5.6下我的程序可以支持每秒100个请求,PHP7可以提升到每秒300个请求。可以应对更大的并发。这样才是有价值的。&br&&br&PHP7的伟大之处就是可以让你的程序&b&无成本&/b&地提升2倍性能。所以PHP程序员们赶快出来跪谢鸟哥吧。
看到有匿名用户说“Php7性能再好,它也是PHP,某种程度上,php7的意义还不如swoole这个扩展。”,还有评论怀疑是我写的。赶紧出来澄清下。知乎一个人只能答一次,所以肯定不是我写的。而且PHP7的价值是远超Swoole的。PHP7是给所有PHPer的福利,Swoole主要是…
那么你是Py2呢,还是Py3呢&br&&br&&br&=====16/3/31修改=====&br&你们不讲道理的咯。。。要勾引撕*的话我就写Py3大法好Py2是辣鸡其他语言更辣鸡了好吧。。。我们都是文明人 讲道理嘛。&br&&br&至于题主所问,还是感觉一开始回的那句已经够了。
那么你是Py2呢,还是Py3呢=====16/3/31修改=====你们不讲道理的咯。。。要勾引撕*的话我就写Py3大法好Py2是辣鸡其他语言更辣鸡了好吧。。。我们都是文明人 讲道理嘛。至于题主所问,还是感觉一开始回的那句已经够了。
Java Python programmer:&br&阶段一: 他妈Java 怎么这么蛋疼这么啰嗦&br&阶段二: Python 大法好,import antigravity&br&阶段三: 动态类型一时爽,代码重构火葬场。。。于是走上了Python化的C++ 14的不归路 。
Java Python programmer:阶段一: 他妈Java 怎么这么蛋疼这么啰嗦阶段二: Python 大法好,import antigravity阶段三: 动态类型一时爽,代码重构火葬场。。。于是走上了Python化的C++ 14的不归路 。
日常工作,很多工作都是很琐碎 很细节的,你想不到你会遇到什么具体的小任务。&br&这时,你总不能打开vim 写个python脚本。&br&很可能还没写完#! ,shell 可能已经搞定了任务了。&br&&br&所以会shell,熟练掌握各种命令,会sed awk,给日常工作带来很大的效率提升。&br&相信每一个Linux下的讨饭吃的程序员都深有体会。&br&&br&琐碎任务一次性的任务交给
注定要扩展,代码量不小,要维护的任务交给python.&br&需要效率的工作交给C。从来就不冲突。
日常工作,很多工作都是很琐碎 很细节的,你想不到你会遇到什么具体的小任务。这时,你总不能打开vim 写个python脚本。很可能还没写完#! ,shell 可能已经搞定了任务了。所以会shell,熟练掌握各种命令,会sed awk,给日常工作带来很大的效率提升。相信每…
反对 &a class=&member_mention& data-editable=&true& data-title=&@祝博韬& data-hash=&e00febb73bb1f09dbcd4d6& href=&///people/e00febb73bb1f09dbcd4d6& data-tip=&p$b$e00febb73bb1f09dbcd4d6&&@祝博韬&/a&。对于一个需要入门 Python 的新人,平台选择只有一点:用自己熟悉的平台,学习陌生的语言。&b&&i&&u&基本的「控制变量」啊。——我真心好奇你是那只眼睛看出我“鼓励人用 Windows” 的?&/u&&/i&&/b&&br&&br&Python 大部分东西都是与平台无关的。而且如我下面所说,除了做网络服务器开发,Python 还可以做许多其它事情,比如算法研究,比如科学计算和数据挖掘( SciPy 有 Win32 build),比如系统自动化,等等等等。不要局限你的视野。对与学习来说,Python 的标准库多数情况下是平台无关的,入门阶段,平台差异完全不是那么重要。&br&&br&然后,在 Windows 这样一个 shell 脚本难用到无法忍受、一切几乎必须依赖 GUI 操作的操作系统中,任何的重复性工作都会让人精神崩溃。相比其它自动化手段(bat、PowerShell 和 VBS),Python 的好处是:语法清晰、环境丰富、便于调试。相比 shell(如 Cygwin Bash),Python 默认带了 win32 和 COM interop 库,更方便完成各种与系统结合相对较紧密的操作。&br&&br&按照 Steve Jobs 说 iTunes for Windows 的说法,Python 就是给地狱里的 Windows 用户的一杯凉水。&br&&br&回答原题目:&br&装 ActivePython 或者直接上 iPython &a href=&///?target=http%3A//ipython.org/install.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Installing IPython&i class=&icon-external&&&/i&&/a& (感谢 &a class=&member_mention& data-editable=&true& data-title=&@许铖& data-hash=&f82f331c9c57& href=&///people/f82f331c9c57& data-tip=&p$b$f82f331c9c57&&@许铖&/a& ),然后找一个顺手的编辑器(Notepad++ 之类都很好,如果是 iPython 可以直接用 Notebook &a href=&///?target=http%3A//ipython.org/notebook.html& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&ipython.org/notebook.ht&/span&&span class=&invisible&&ml&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&),然后看任何一本教材或者官方 Tutorial (docs.python.org)。
反对 。对于一个需要入门 Python 的新人,平台选择只有一点:用自己熟悉的平台,学习陌生的语言。基本的「控制变量」啊。——我真心好奇你是那只眼睛看出我“鼓励人用 Windows” 的?Python 大部分东西都是与平台无关的。而且如我下面所说,除了做网…
你们都太年轻了&br&事实说明外国的月亮还没中国的圆&br&请看图&img src=&/f9bcd1a6a0ca50f5b05270fcd5d69247_b.png& data-rawwidth=&1549& data-rawheight=&751& class=&origin_image zh-lightbox-thumb& width=&1549& data-original=&/f9bcd1a6a0ca50f5b05270fcd5d69247_r.png&&没看错,一张Ubuntu的非官方盘,要卖15美刀!&br&而且更夸张的是,评分接近&b&5颗星&/b&!&br&有这钱为什么不赞助给Canonical?&br&&br&最近买了一些Linux的书,推荐算法抽风,上Amazon的时候,推送给了我这个&br&感觉智商被亚马逊侮辱了。&br&&br&评论倒是符合我的预期,全都不是专业用户。&br&有个兄弟,为了装VirtualBox,还特意买了张盘。&br&&br&结论:&br&&ol&&li&美帝互联网用户,计算机相关知识并不比国内懂得多&/li&&li&美帝经济发达&/li&&li&产品做得好,不如PPT画得好&/li&&/ol&&br&后来,也想明白了&br&只是碰巧比别人多知道了一点&br&谁也不能保证自己什么都知道,一些是常识的事情,未必对所有人都成立&br&&br&谁能说,自己没买过很2B的东西!?&br&圣诞节买了个音响,花了几顿伙食费,音质实在差&br&去投诉,人家说再送我一个,感觉赚翻了!&br&于是,&br&一个积灰的砖头变成了两个。
你们都太年轻了事实说明外国的月亮还没中国的圆请看图没看错,一张Ubuntu的非官方盘,要卖15美刀!而且更夸张的是,评分接近5颗星!有这钱为什么不赞助给Canonical?最近买了一些Linux的书,推荐算法抽风,上Amazon的时候,推送给了我这个感觉智商被亚马逊…
才没有什么窗户纸呢,都是承重墙。
才没有什么窗户纸呢,都是承重墙。
4.28 更新&br&发现之前有一点没说到的。项目按性质分就两种,要么是造轮子,要么不是。而拿得出手的项目基本上都得是造轮子的。但是造轮子这个事,确实比较难,虽然我经验也不多,还是能体会到。拿 Python 来说,大家都觉得语法优美程序清晰,但是一旦要造轮子,黑魔法/dirty hack 啥的都少不了。之前我在评论里说“怎么体现技术水平这件事完全取决于本身有多少技术水平”,如果一个人水平到了,那么经过一段时间的研究+编码确实能写出拿得出手的项目,但是如果没有到,就不要想直接写出一个多么牛逼的东西。thefuck 虽然是开脑洞的项目,但也不是随便一个人就能写出来的。&br&&br&一个关注度高 star 多的项目,根据我的观察,主要有四个特点,一般来说满足一条就够了,两条的话这个项目 star 得上千了。&br&&br&1. 解决了某个痛点&br&2. 已经有类似的东西,但是新方案性能比已有方案好,或是易用性更好,或者功能更多&br&3. 脑洞足够大&br&4. 把某个流行的项目 port 到另一种语言&br&&br&拿最近比较火的几个项目举例:&br&解决了痛点的:&a href=&///?target=https%3A///bndr/pipreqs& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&bndr/pipreqs · GitHub&i class=&icon-external&&&/i&&/a&,直接从代码生成 requirements.txt&br&&a href=&///?target=https%3A///yhat/rodeo& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&yhat/rodeo · GitHub&i class=&icon-external&&&/i&&/a&:相当于是一个 IPython 的扩展版&br&&a href=&///?target=https%3A///nvbn/thefuck& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&nvbn/thefuck · GitHub&i class=&icon-external&&&/i&&/a&:脑洞型项目代表,最近火到不像样&br&&a href=&///?target=https%3A///jonathanslenders/pyvim& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&jonathanslenders/pyvim · GitHub&i class=&icon-external&&&/i&&/a&:Vim 的纯 Python 实现&br&&br&既然楼主大三,能力上肯定没法和那些有经验的开发者相比,所以我建议你考虑第三条。&b&用脑洞来弥补经验的不足!! &/b&&br&&br&最后既然有机会还是来安利一下 ezcf (,,?ω?,,):&a href=&///?target=https%3A///laike9m/ezcf& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&laike9m/ezcf · GitHub&i class=&icon-external&&&/i&&/a&,这个算是个不那么痛的痛点吧。
4.28 更新发现之前有一点没说到的。项目按性质分就两种,要么是造轮子,要么不是。而拿得出手的项目基本上都得是造轮子的。但是造轮子这个事,确实比较难,虽然我经验也不多,还是能体会到。拿 Python 来说,大家都觉得语法优美程序清晰,但是一旦要造轮子…
打开vi,输入:&br&&div class=&highlight&&&pre&&code class=&language-text&&:!wget /python/pycharm-community-5.0.2.tar.gz
:!tar xvfz pycharm-community-5.0.2.tar.gz
:!pycharm-community-5.0.2/bin/pycharm.sh
&/code&&/pre&&/div&然后你就可以愉快的写Python程序了。
打开vi,输入::!wget /python/pycharm-community-5.0.2.tar.gz
:!tar xvfz pycharm-community-5.0.2.tar.gz
:!pycharm-community-5.0.2/bin/pycharm.sh然后你就可以愉快的写Python程序了。
Benchmark这个东西,如果没有公布:&br&1.实际的测试用例&br&2.各种语言的具体实现&br&&br&随便怎么吹都可以
Benchmark这个东西,如果没有公布:1.实际的测试用例2.各种语言的具体实现随便怎么吹都可以
这不是王垠说的么,王垠专业就是研究编程语言。研究语言的博士生针对各种语言特性做的分析,对我们都是有很多启发的。但你说的这种外面有个a,函数里面又有个a的情况,我想问问,其实实际开发中,是不是每天都要处理内外层变量名字冲突的问题?我们有两种选择:&br&&br&一种做法是象王垠说的:区别变量声明和赋值,就是类似声明时前面加个 var一样,&br&另外的做法象龟多做的:没有 var,只有在冲突的时候加一些 global nolocal之类的关键字。&br&&br&哪种做法好,请你想想大多数情况下,99%的时候你是不会傻到内外用一样的名字的吧,好的编程习惯甚至全局变量和局部变量在命名上都是区别的,不会出现你说的冲突。系统设计就是需要不断的做出选择,龟多也一样做出了他的选择,让你 99%的情况下都不需要为每个变量去写一个 var声明去,以此保证语言的简洁性和优雅性。直到你碰到 1%的极端的情况时,用一下 nolocal global又有什么困难的呢?&br&&br&然而这些对用户优雅的特性,对于写 PySonar的王垠来讲,却无外乎一种折磨,要在静态分析中间指出他们的区别来是很痛苦的,这是肯定的事情,层次越高级的语言越不容易做静态分析,所以王垠被恶心到了,狂喷
global nolocal也是可以理解的。&br&&br&所以别人云亦云,多想想说这些话是在什么背景下说出来的,这些客观条件和自己所处的情况相同否,再做出自己的判断。&br&------------------
这不是王垠说的么,王垠专业就是研究编程语言。研究语言的博士生针对各种语言特性做的分析,对我们都是有很多启发的。但你说的这种外面有个a,函数里面又有个a的情况,我想问问,其实实际开发中,是不是每天都要处理内外层变量名字冲突的问题?我们有两种选…
说得好像SAS、SPSS不要钱似的……&br&&br&说得好像SAS、SPSS除了做数据分析还可以做界面做服务分发出去似的……&br&&br&说得好像Python只能做数据分析似的……&br&&br&说得好像Python就没有功能类似WEKA的模块似的……&br&&br&说得好像R没啥库可以用似的……&br&&br&说得好像做数据分析不用SAS之类就是耍流氓似的……&br&&br&……&br&&br&算了吐槽结束……
说得好像SAS、SPSS不要钱似的……说得好像SAS、SPSS除了做数据分析还可以做界面做服务分发出去似的……说得好像Python只能做数据分析似的……说得好像Python就没有功能类似WEKA的模块似的……说得好像R没啥库可以用似的……说得好像做数据分析不用SAS之类就…
感谢 &a data-title=&@壮壮& data-editable=&true& class=&member_mention& href=&///people/e3ec1fbe666236afb09f7e7& data-hash=&e3ec1fbe666236afb09f7e7& data-tip=&p$b$e3ec1fbe666236afb09f7e7&&@壮壮&/a& 妖.
我觉得这基础离写程序还不够,就算看也只能停留在小脚本这个水平. 遇到复杂的语法或者调用了模块还是搞不定的. 我个人建议买本&python核心编程2&或者&python高级编程&去读. 读的过程体验它的例子, 还可以在读的过程中或者看完之后去尝试写一些程序. 程序是和自己的工作或者兴趣相关.
可以先实现, 然后优化/加feature. 过程中出现困难或者不知道改怎么进行思路可以去google/github/stackoverflow上面找类似的问题或者项目, 尝试理解并且‘搬’到自己的项目里面.&br&&br&提高python的路只有一条 -- 就是实践, 写代码. 然后总结, 思考, 探索.&br&目标也很直接: 你会觉得过去写的xx有更好的表达方式, 过去写的xx写的很烂&br&&br&我来把我这条路的历程总结下来做些提示:&br&&br&1. 最开始很多是copy代码&br&2. 发现这些代码可以抽象-- 比如, 一屏下来好几个函数长得差不多, 只是参数或者内容逻辑上有些变化. 那么你可以把这些函数聚合成一个函数,通过传递不同的参数达到一样的效果&br&3. 看别人的项目, 看到别人实现你要做的事情用什么方式,
都有几种方式, 你甚至可以研究下哪种方法效率更高,那种方式写出来逼格更高,
然后总结, 思考,问问自己为什么他们这样用, 记下来.&br&4. 尝试看一些大型一点的项目的文档,甚至代码 -- 可能造成我的环境里报错了, 那就要研究为什么,
甚至可能直接阅读他的代码找到原因-我用错了, 他的错. 慢慢地觉得它们有点近了.&br&5. 发现别人的项目import了好多没见过的module, 我直接去google或者看python文档看它是做什么的, 都有什么方法, 常用于什么地方, 然后渐渐地用了几次就记下来了.&br&6. 用python无非三种, 运维/devops,web开发, 数据分析/算法. 每一种都有对应相关的库, 你渐渐的熟悉他们的用法, 甚至你在生产环境推了xx, 效果很不错, 心情灰常好. &br&7. 随着你用的越来越深, 需要掌握的反而更多- 要学习一些前端的,学习一些linux/osx的. 你可能就会有想法, 我想做点什么大事. &br&8. 这个时候可能你了解了MVC/&i&MVT等等. &/i&开始思考设计模式, 我要拆分, 让架构更合理. 我就要推翻我过去写的很多东西, 我准备重构了....&br&9. 重构过程很痛苦, 但是学到了很多. 然后设计模式也好, 设计思想也好, 渐渐的留在心里. 以后再写一个feature或者一个功能 会先跳出来很多为什么, 我应该怎么样/不应该怎么样. 会发现代码越来越漂亮. 效率越来越高. &br&10. 开始吐槽同事的代码, 用法balabala. 既然吐槽了, 自己就不能太low对吧? 那对自己的要求就越来越高. &br&11. 开始阅读大型的优秀项目的代码, 阅读是很类很痛苦的. 程序员最大的痛苦是什么? 看别人写的代码. 你还要进入作者的角色, 考虑ta为什么这么写这么设计. 呃呃. 突然发现他的代码逻辑有问题, 本地测试一下果然, 然后心惊胆颤的提了个pr. 然后被接收了. 这个世界立刻不一样了 -
你发现你原来没有想的那么差, 你可以吐槽你以为认为牛b的xx,yy了. &br&12. 越来越有信心, 看了很多项目的代码,也贡献了很多. 学到了很多. 这个时候又再有了想法? python-我还有什么不会的呢? 好多第一个蹦出来的就是--我还没有读过python源码, 好吧c我不会. 但是标准库基本是python写的. 看看我成天import的那些东西是怎么写的, 还有什么奇葩的用法.&br&&br&这个过程很费时间, 我第一次读大概有40%没懂 或者忘记了. 但是已经有一种感觉 - 一旦想到一个需求就能想到python标准库里面有没有已经实现了的,如果有可能记不清在哪里-这就是挽回记忆的时候了. 我有一段时间在重构这部分, 把我写的一大段一大段删掉 换成`from x import y`. 然后我又一个认识-python最好的用法, 最nb的功能其实都在python标准库里面的. &b&我建议每个学python得都要看一遍标准库. 而不是看python官方文档而已.&br&&br&&/b&好吧 我顺便给标准库贡献了点代码&b&-&/b&我真的很想贡献很多, 发现英文阅读能力, python库的测试覆盖很高,代码的作者们都很nb,造成我很费劲的只贡献了几行而已.&br&&br&13. 从此之后, 设计一个项目我就有了新的角度 - python标准库有没有对应部分的实现. flask是怎么设计的. 我能借用到什么? celery这么组合的, 那些我觉得不适合我这里. 我怎么调整? 我的这个东西在xx里有什么样的作用和位置&br&&br&14. 继续给喜欢的项目贡献代码, 顺便读读它的代码. 觉得我不喜欢的它的用法. 我fork一个. 做成我想要它成为的样子. &br&&br&15. 突然发现用了很几年的web框架, 现在虽然用什么都没问题, 也可以现学现用. 但是发现一个根本点? 我为什么一直在用别人写的框架. 不如自己写一个. 好吧我正在写....&br&&br&16. 对我来说就发生到这里,之后的还不知道&br&&br&希望对大家有帮助
妖. 我觉得这基础离写程序还不够,就算看也只能停留在小脚本这个水平. 遇到复杂的语法或者调用了模块还是搞不定的. 我个人建议买本&python核心编程2&或者&python高级编程&去读. 读的过程体验它的例子, 还可以在读的过程中或者看完之后去尝试写一…
知乎搜索工程师一直在刷这个帖子等正确答案好回去修 bug 。
知乎搜索工程师一直在刷这个帖子等正确答案好回去修 bug 。
就因为unicode,python3肯定能变成主流
就因为unicode,python3肯定能变成主流
我不能告诉你该学什么.我只讲下我走过的路。&br&我今年32岁,码砖4年。对,28岁开始转行的。&br&学历是中专肄业。&br&在我28岁的时候发生了很多事,让我下决心沉淀下来,选一个方向。我一直很喜欢电脑,不过只是停留在能熟练的装系统和玩游戏而已。我觉得软件很神奇,我要学,所有的基础就是十几年前学过一点c.&br&我花了三个月自学php,很幸运,12年的时候瀑布流导购非常流行,三个月的学习让我接了几个外包,挣了几万块,加深了我的信心,我当然不会告诉你我每天在电脑前面14个小时,一直到现在。&br&现在四年了,这四年中我用过的语言有php,c,go.最近又接了几个app的私活,正在看android,嗯。脑子不灵的时候我喜欢刷知乎&br&从我的角度来说,php入手快,初期提升快,容易找工作。不过后面的提升就难了,学历低的弊端开始显现,你就需要补高等数学,数据结构和算法等等了.当然c你也是绕不过的。&br&程序员是一个需要不停学习,不停更新自己的行业.先别想着赚钱,想想你对这个有兴趣吗?先想想你是否能熬无数个夜晚,绞尽脑汁也无法解决一个简单的bug,挫折感会远远超过成就感.还得看你看不懂的书.如果这些你能接受也都做到了,那你就能靠这个赚钱了。&br&我没有上过培训,所有的知识来自网络。但我不建议你这样,你可以先去培训,这样要快一点。善用搜索,善用github.多动手,少动嘴。&br&另外,技术需要沉淀,挣不了块钱.欲速则不达。
我不能告诉你该学什么.我只讲下我走过的路。我今年32岁,码砖4年。对,28岁开始转行的。学历是中专肄业。在我28岁的时候发生了很多事,让我下决心沉淀下来,选一个方向。我一直很喜欢电脑,不过只是停留在能熟练的装系统和玩游戏而已。我觉得软件很神奇,我要学,…
首先我想说:可能题主的动机就是错误的!从心理学上说,题主可能是一个完美主义者,就是那种要做一件事,必须要把有关的内容都学会了,然后再去做;比如,我想去用python写个爬虫,我就要把python系统地学习一遍。&br& 首先,程序猿是为了解决问题而学习的,不是为了学习而学习的。如果说我想要写个爬虫,我只要学会scrapy,beautifulsoup模块就行了。&br& 其次,系统地学习完python是需要时间的。你想想,python有那么多的官方文档,还有各种库,各种开发工具,而且它还在不断更新,如果你想系统地全部学习完,可能要花上一辈子的时间也不够。&br& 不过既然说到这里,还是有一定的方法的。首先,找一本书了解整个python的框架,然后遇到什么问题就去学习相关的知识。&br& 记住:学习永远是为了解决问题,而不是为了学习而学习。(我在这里更多的分享的是一种思想,而不是技术方面的细节,其实我也是个小白^_^,见谅)&br&&br&&br&&br&————————————————————————&br&更新&br&
首先感谢大家的赞!!!&br&&br&
有人说我的答案并不是回答问题的,恭喜你答对了,确实如此,就像我答案里说的我分享的更多的是一种思想,而不是技术系列。毕竟意识决定行动!&br&
说实话,对于这个问题,如果只是从表面上回答,很容易的,网上的资源这么多,随随便便可以贴出一张python技能树,你就按照技能树不断加点唄;但是从题主提出来这个问题的角度出发,可以发现题主连自己“为什么要学习python”都不知道呢。所以我认为更应该让题主理清自己的思路,我是基于这个角度回答的问题。&br&&br&
好了,废话不多说,正式开始更新内容。&br&&br&
我把学习分为三种境界:&br&
第一种境界:兴趣。基于兴趣的学习是最简单的,只是跟着感觉走就行了,对什么感兴趣就学习什么,完全不用考虑有没有什么卵用,因为我乐意。&br&
第二种境界:为了短期的目标。比如说我想要开个独立博客,那么我就要学习一下html,css,js等等;我就是为了完成这个短期的目标。&br&
第三种目标:为了一个长远的目标。这个是最难的,因为为了目标你可能要学习很多自己不喜欢做的事,而且还得坚持很长时间。比如说,你只想通过学习python以便一年以后自己能够月入10000+(只是举个例子),那么这个时候你就只要付出努力就行了,但是如若你能把这个转化成兴趣,那你还是相当强的。&br&&br&
当你明白了自己的学习目的是出于什么目的后,你也再顺着这个思路进行深度思考,相信你会找到适合自己的学习方法的。
首先我想说:可能题主的动机就是错误的!从心理学上说,题主可能是一个完美主义者,就是那种要做一件事,必须要把有关的内容都学会了,然后再去做;比如,我想去用python写个爬虫,我就要把python系统地学习一遍。 首先,程序猿是为了解决问题而学习的,不…
以下内容基于我将近一年的Python学习经验,如果不足,欢迎给予扶正:&br&&b&&br&pre入门&br&&/b&Python作为一门“好上手”的编程语言,实在太好入门了,如果有C/C++/Java的经验,入门那是分分钟的事情。关于怎么入门的问题,知乎上已经有&b&太多类似的问题了&/b&,而且,Python的wiki上还维护了一个&a href=&///?target=https%3A//wiki.python.org/moin/BeginnersGuide& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&BeginnersGuide页面&i class=&icon-external&&&/i&&/a&,在此不作详细叙述。&br&&br&需要达到的目标:&br&&ol&&li&代码量5k以上。&/li&&li&熟悉常用coding convention,实践过PEP8。&/li&&li&熟悉Standrad Library(要求不高,会查文档就行)。&br&&/li&&li&保持学习热情。&br&&/li&&/ol&&br&&b&入门与深入&/b&&br&到这一步,读者应该对Python有一定程度的了解,至少已经把教材刷过一遍,可以写一点简单的代码,例如在Django框架下写个小博客什么的(题主的提问reuse,get!)。在这个时候就应该对官方的document进行一次深入的学习,查缺补漏,追根溯源。以下是我采用的策略:&br&&ol&&li&快速扫一遍tutorial。如基础扎实可跳过这一步骤。&/li&&li&阅读Language Reference中的&a class=& wrap external& href=&///?target=http%3A//docs.python.org/3/reference/datamodel.html& target=&_blank& rel=&nofollow noreferrer&&Data model。&i class=&icon-external&&&/i&&/a&注意了,需要同时阅读Python 2与3的Data model,以了解2与3的区别。在这一步中需要搞清楚Python Data Model中的细节,如attribute accessing的机制,special method的含义,descriptor的细节,method creating的场景与过程等。需要注意的是,官方文档中对new-style class的讲解可能有点晦涩,如果出现阅读障碍,可以尝试阅读&a class=& wrap external& href=&///?target=http%3A//www.python.org/doc/newstyle/& target=&_blank& rel=&nofollow noreferrer&&New-style Classes&i class=&icon-external&&&/i&&/a&列表中的资料。&/li&&li&相信有了第2步积累,你对Python中的Object已经有了较为深入的了解。这时候你需要继续阅读Language Reference的其余部分,以对Python的语言的细节进行更加深入的学习。&/li&&li&回顾Language Reference,把其中出现的PEP documents扫一遍。&/li&&/ol&&p&完成上面的步骤,基本上就算是入门Python了,在Python的语法层面上应该不会遇到大的问题了,而且遇到问题也至少知道怎么解决问题了。下面就是大量阅读Python的相关资源了,以下是我的建议:&/p&&ul&&li&&a class=& wrap external& href=&///?target=http%3A//www.python.org/doc/& target=&_blank& rel=&nofollow noreferrer&&Python Documentation Index&i class=&icon-external&&&/i&&/a&中的&i&Additional documentation&/i&小节。&/li&&li&Python Cookbook(2rd for Py2 and 3rd for Py3)。&/li&&/ul&&p&于此同时,代码量要提上去。&b&给&a href=&///?target=https%3A//pypi.python.org/pypi& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&pypi.python.org/pypi&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&提交你的Package吧!&/b&&br&&/p&&br&&p&&b&研究&/b&&/p&&ul&&li&研究Python大型开源项目源代码。&/li&&li&研究CPython的编码实现,可从Python C API开始。&/li&&li&Coding! Coding!&br&&/li&&li&...(不行我已经编不下去了,现在我还处在刷reference/pep doc的阶段)&/li&&/ul&&br&&p&&b&感谢你的阅读,如有用,请点赞;如无用,请喷之!&/b&&/p&
以下内容基于我将近一年的Python学习经验,如果不足,欢迎给予扶正:pre入门Python作为一门“好上手”的编程语言,实在太好入门了,如果有C/C++/Java的经验,入门那是分分钟的事情。关于怎么入门的问题,知乎上已经有太多类似的问题了,而且,Python的wiki…
已有帐号?
无法登录?
社交帐号登录

我要回帖

更多关于 social network 作文 的文章

 

随机推荐