女生做什么工作好?
玩转短视频,新媒体时代流量全新玩法 启事在教诲,成事在榜样,跟着...
学计算机我选fun88体育东莞金码 技术酷 实操多 老师牛 薪资高 职业好
fun88体育东莞金码学校Java培训,中国Java培训领跑品牌,关注Java培训1...
电商
打工族工厂上班族流水线工人未来出路在哪里?
学什么技术有前途?
大运营时代的到来,深度打造网络营销复合人才 多渠道运营,紧贴企业...
编者按:本文最初是在2010年5月为Fuel Your Coding撰写的,然而该网站现已关闭,为了能让更多人读到,我重新发布了本文。我曾想过针对技术的最新发展对本文进行更新,但原有内容其实已经很棒了。有些内容由于过时显得有些好笑,不过总的来说还行。请慢用!
增进编程能力最明显的方式就是尽可能编写更多代码,这一点大家都清楚。然而我保证还可以通过另一种与写代码完全“背道而驰”的方式增进你的编程能力。下文将尽可能清楚地介绍这种方法:
如果希望大幅增进自己的编程技能,你还需要阅读别人写的代码。
信不信在你。其实你应该相信。如果愿意一试,我相信你会觉得这么做所付出的宝贵时间是非常值得的。
本文将帮你选择可供阅读的代码,并介绍最佳阅读“姿势”。如果已经习惯于阅读别人的代码,你可能已经总结出其他更适合自己的方法。但如果还没这么做过,那就抓紧时间开始阅读吧。
读什么
这个问题很重要,也很难给出具体建议。我并不会按照自己的想法直接给出建议你去阅读的代码,因为这完全取决于你的具体情况。我会提供一些指导,帮你选择适合自己阅读的内容。
阅读你所依赖的代码
首先可以读一读你目前正在使用的任何插件或库的代码,例如:
某个你非常喜欢的WordPress插件的代码
某个你觉得很有用的Ruby gem的代码
某个你经常用到的jQuery插件的代码
这些东西都很适合阅读。你已经非常熟悉它们的公开API,因此理解其内部工作原理的障碍会显得小很多。此外作为这些代码的用户,你还可以借机为其贡献文档,实现新的功能,或通过其他某种方式回报相关的项目。
阅读让你印象深刻的代码
还记得当我第一次看到 280 Slides 后产生的想法:“这真是让人印象深刻。”很快我发现驱动这个网站的代码来自一个开源的Cappuccino项目。我将这一发现深藏在脑海中,最后当我开始参与使用 Cappuccino 构建的 另一个让人印象深刻的应用 时,我知道这个项目可以从中获益匪浅。最近有什么东西让你印象深刻吗?是否是开源的?如果是,那么也许很值得一读,因为代码本身可能会像应用程序一样让你留下深刻的印象。
阅读你所敬重的人写的代码
如果从事开源软件的开发有一段时间了,你也许已经有了几个自己敬重的程序员。我脑海中就时常浮现着几个程序员,他们写的代码堪称惊艳。
就算暂时想不到这样的人,其实这样的人也很好找。例如上文提到的两类代码(你所依赖的代码,让你印象深刻的代码)的作者就是不错的候选人。
阅读你可以完全领会的代码
如果是那种有冒险精神的人,你可能会考虑读读诸如Ruby on Rails、Drupal,或jQuery等大型项目的代码。我个人建议一开始尽量别选择这种项目,除非你本身已经是非常有经验的代码阅读者。
大型项目往往包含很多组件,最终你可能会过度地纠结于从各种现成的成果中学到知识这一概念本身。困惑往往会导致挫折,大型项目通常更容易让人困惑,进而让你的阅读积极性受挫。选择一个小型项目来阅读,这种做法的优势在于你可以在自己的脑海中全盘掌握整个项目的逻辑,进而只需要发现各种细节并从中学习就行了。
如何读
选好要阅读的代码后,最佳阅读方式是什么?我平时阅读过很多代码,可以提供几个能帮你获得最大化收益的方法。
从大局着眼
假设你至少已经能在宏观层面了解自己要阅读的代码所实现的功能。如果还不了解,建议阅读项目的网站、教程、文档,以及除了代码本身之外,其他任何能让你对整个项目获得更深入了解的东西。
厘清这件事之后,建议首先全局了解整个项目的结构。取决于所选项目代码基的规模,具体的工作量可能各异,但任何超过一个文件的项目可能都需要花费略多一些的时间。
首先需要注意文件结构,为此可以选择可以体现文件夹层次结构的编辑器,如TextMate。例如Twitter Ruby gem的结构是这样的。
这一步的目标在于熟悉源代码本身。确定哪些文件包含/需要/加载了其他文件,大部分代码在哪个文件中,是否使用了任何名称空间,以及其他一些本质特征。获得了宏观的了解后,可以开始深入细节了。
记录你的发现和结论
代码的阅读不应该是一种被动行为。建议你能在阅读的同时添加自己的备注,随着对程序流程的理解逐渐深入,记录你的猜测和结论。一开始你的备注可能是类似这样的:
# 我觉得这个函数需要在'initialize'之后调用
# 这个公式是做什么用的?
# 可以确定在17行之后这个函数失去范围了
随着理解的深入,也许可以陆续删除一开始留下的浅显的备注,并开始写一些更有意义、更权威,甚至能对整个项目产生真正回报的备注。
一定要测试
希望你所选择的项目提供了测试套件。如果没有,那么本节内容可以全部跳过(或者找个提供测试套件的项目)。
阅读其他人写的代码时,测试是一种很好的起点,因为其中记录了不同代码本应实现的功能。一些测试可能包含更翔实的信息,但无论测试写得多好通常你都会发现,从测试中了解到的程序员的意图往往要比你自己从具体实现中的判断简单很多。在阅读的同时,可以试着让测试套件成功运行,这样可以确保你的开发环境已正确配置,进而让自己进行各种改动的时候更自信。
执行,修改,执行
谁说读代码就只是“读”代码?如果能将一切拆解又重新组装起来,才能获得真正的理解。还记得做过的各种测试吗?让测试失败几次,增加一些内容,或在不产生破坏作用的情况下试着更改具体实现。试着增添一些你觉得酷的小功能,或者配置项目级的日志并将不同阶段的代码打印输出。这也算“读”?当然!不过此时更像是自己身临其境的历险,而不仅仅是阅读别人写好的推理小说。这是一种很棒的做法!
周而复始的重复
读完一个代码基后,挑选一个新的再次开始这一串过程吧。读的代码越多,阅读的收获就越多,获得这些收获所需付出的时间则会越少。我认为你会发现自己在时间方面的投资回报会飞速增加,并且整个学习过程会编程更愉悦的体验。
人们为了改变现状,追求自己的幸福生活,越来越多的人都选择了拼搏。那么在拼搏的路上是否真能实现自己的目标,很关键的一步便在于最初的选择,那你需要有一技之长的技术,那么在这个社会,现在学什么技术工资高,就业不用愁呢?那肯定是 学一门好的电脑专业了,高薪资,好就业,前景广阔,提升空间大。要满足这些条件的技术工作,数IT行业最合了!
许多合作企业会根据用人需求和企业发展情况不定期到fun88体育东莞金码学校现场招聘IT专业人才,上千家合作企业遍布全国各地,学员根据自己的
项目实训招募啦~~fun88体育东莞金码学校合作企业、学术团队举行项目实训招募活动,让学员有机会根据自己的喜好选择项目实训,参与项目的开发。
fun88体育东莞金码组织学员进行各种户外拓展、郊游、烧烤等集体活动,让学员们充分感受集体生活的温暖和团队的力量。
2017年1月12日,嘉华教育集团在深圳南山文体中心隆重举办了11周年庆典。出席本次庆典的嘉宾有原外交部副部长胡恩才先生、原深圳大学校长
根据前程无忧的统计数据,截至2013年5月31日,前程无忧的网上发布职位数中面向应届生人群开放的职位数超过11万个,占招聘职位总数的4 25%,
现在越来越多的企业采取小组面试(Panel Interview)。似乎这种面试的形式逐渐成为一种流行的趋势。不仅是初级员工,包括很多高级人才和职业
面试官类型不同,到底都有哪些种类呢?跟着来看看吧。一、呆板稚嫩型这类面试官一般出现在面试的第一轮,他们由于缺乏面试经验,大多数情况
翻遍诸多面试攻略,一般都有这么一条金科玉律:面试一开始不能询问薪水,作为卖方市场的求职者,每次面试时我们都会谨慎言行。明明是正大光
说到面试,大家最关心的,想必是怎样才能从容应对面试官的提问了。虽然,我们在面试经验分享的文章中常能看到求职者要学会包装自己并向面试
有了这些法宝,妈妈以后再也不用担心我加班了~一、产品狗、运营猫的数据处理中心1 infogr am infogr am是一个强大的数据可视化图表创作
本篇文章将记录如何编写一个最简单的WebPart的最后一部分,即添加WebPart,包括把WebPart添加到网站的WebParts列表中,及把WebPart添加到AS
1 splice(start,[,length,newValue ])对数组中某索引范围进行删除 声明数组对象var myArray = ["a", "b", "c", "d", "e"]; 从数
随着移动互联网技术的不断发展,移动互联网用户发送和上传的数据量达到1 3exabytes,相当于10的18方。BigData大数据是继云计算、物联网之后
现在,在各种营销手段都百家争鸣、百花齐放的时代,电子邮件营销几乎一夜之间便显得逊色了许多。然而,令许多企业和厂商纠结不已的是,电子邮件营销虽然已经“人老珠黄”,
初中生无学历无技能,不进工厂上班还可以做什么呢?这是很多低学历人群想要提升自己,却又找到出路的迷茫问题。难道初中生就只有在工厂干体
2015年是嘉华职业教育集团十周年,为了营造浓厚的校园文化艺术氛围,提供给学生一个展示自我、彰显个性的舞台,带动更多学子走进IT职业领域
6月22日下午,青鸟学社全体成员参与了由学习部举办的第二期学习经验交流会,怀着激动的心情,同学们坐等着交流会的开始!随着激动人心的曲子
01岗位了解所谓的工程师是通过学习和训练,掌握网络技术的理论知识和操作技能的网络技术人员。网络工程师能够从事计算机信息系统的设计、建
春节、元宵节是我国民间最重要的传统节日,是我国人民庆贺丰收、祈福风调雨顺、家人团聚的日子。而猜灯谜、吃汤圆则是元宵佳节必不可少的活
在这个大学生很普遍的时代,文凭的重要性也显而易见的不如过去,因为随着社会对人才需求的转型,很多企业都把技能和经验作为聘用人才的标准
在这个大学生遍地皆是的时代,即便拥有大学文凭,也难以找到如意的工作,要在社会上立足,也是一种挑战。对于高中生来说,没有学历优势,如果还没技能的话,要在社会站稳脚跟,那更是难上加难,那么高中毕业究竟可以做什么呢?
因为各种原因不着急找工作,被媒体解读为慢就业这一现象正在高校毕业生中悄然兴起。据企鹅发布的一份毕业季大数据报告,52%的95后毕业大学
正值阳光三月,春光明媚,对于大部分人来说,2018新的旅程才刚刚开始。回想过去的2017,又累又不赚钱的工作,难以满足当今社会的物质需求,总想找一份赚钱多又有前景的职业,提高自己的生活品质,让家人过上更好的生活。
根据一封发给供应商的信件,微软计划重新命名Nokia Oyj为Microsoft Mobile Oy。新的子公司将成为微软公司的移动设备部门。信中的内