导读:一个良好开发者如何才华变得巨大?仍是先不想如何变得巨大:一个不错的开发者如何变成一个良好的开发者?从第一步到第N步并没有肯定的蹊径,哎呀,乃至不知道第N步是甚么。能逻辑思虑的都清楚,缺少一个肯定的蹊径意味着,想从内行到大家,将会是一个艰苦的路程。在曩昔几年间,我仍是花了相等一些时候,多次思虑这一个困难。接上去是甚么?我该如何做才华从一个良好的开发者成为一个相等良好的开发者?
成功毕竟是甚么模样的?
当我有一个了了的目的和一个可以大概权衡的成功尺度的时候,我做的最好。比如,我想5分钟跑一英里,这很好权衡,并且成功是明肯定义了的。我知道现在我一英里我可以大概跑多快,并且网上各处都是如何跑快的建议和练习项目。我可以大概遴选一种练习项目,起劲练习,我迥殊很是自负最后可以大概到达我所等待的目的。并且这个迥殊很是随便被权衡,每周我都可以大概知道我距离自己的最终目的另有多少.(北京网站建造)
但是,你如何去权衡自己能否到达了一个“相等良好的开发者”这样一个级别呢?庞大的讲,你不克不及够。这个目的,如上所述,迥殊很是的客观,迥殊很是的广泛,的确是没法权衡的。以是,我们该如何定义一个可以大概权衡的器材?
和想5分钟跑一英里差不多,我们可以大概从比较现在作为挨次员的自己和所盼望能成为的挨次员来动手。五分钟一英里的竞走者有而非常钟一英里的竞走者缺少的履历是甚么?让大家级挨次员获益而内行挨次员缺少的履历是甚么?这里枢纽的是履历。
我们都曾有过某种特定的履历晋升了我们作为挨次员的技术。我们曾学习过一种新的说话,而让我们有一种新的思惟方法。或,我们都曾精雕细琢过完善的打算,只是为了考核其在刻薄的实际情况下暴露出的缺陷。我们因此变成更好的挨次员。以是,有些履历给了你新的技术。而有些则是不合的情势,并且可以大概让你知道为甚么会这样。恰是这些履历在教你,影响你的思惟进程,影响你措置问题的方法,改革你的打算。利便的是,你能否有过某种特定的履历是很随便被权衡的。(如果把这些履历想成是成绩,就很有意义啦。)
虽然花了些时候,但是我已对我那弗成权衡悬而未绝的目的,到达“相等良好的开发者”的级别,感伤不懊恼了。如果一个开发者可以大概以他的履历来鉴识,大概我们已有了一个明肯定义的蹊径朝向“相等良好的开发者”这么一个慷慨向了。我推测这么一条蹊径,应该是这样子的:
1.标志着从一个浅显人发展成挨次员的履历
2.遴选某种履历去寻求
3.寻求的履历完成了(成绩解锁了!)
4.履历的沉思,深化的思虑。[A]
5.前往第2步,此次是遴选一个新的履历。
如何故一种更好的方法最早第一步,而不是众包给各位。这里我给出了一部份编程的成绩,疏松的分了组。我会在文末为你供应多种方法,让你来缔造你自己的想法主张。
1.学习多种编程范式:
用汇编说话写一个挨次
用函数式编程说话写一个运用
用面向工具说话写一个运用
用基于原型的说话写一个运用
用逻辑编程说话写一个运用
用 Actor 模型写一个运用
用 Forth 说话写一个运用[C]
2.体验不合平台上编程的前因后果:
写过一个浅显的Web运用
写过一个浅显的桌面运用
写过一个浅显的手机运用
写过一个浅显的嵌入式运用
写过一个实时系统
3.增强你对开发人员所经常使用的模块的知道:
写过一个网络客户端(HTTP,FTP等)
写过一个配备驱动
写过一个B-tree 数据库
包装现有的一个库,以供应更好(更舒畅)的用户体验
编写一个运用挨次或框架,供应插件模型
写过测试框架
写过编程说话
4.让自己知道koans,katas,和光阴的聪慧:
完成过五个 code katas
对你想学习的一个说话,完成programming koans
加入一次coderetreat
浏览SICP并完成全体操演
5.开源编程:
为一个开源项目同享代码
补钉被接管
在一个重要的开源项目中获得提交权限
发布一个开源项目
对一个开源项目执行Refactotum
6.经由过程教授别人来学习[D]:
揭橥一次启发性的讲话
在一个本地用户组中演讲
在一个集会中演讲
教授一次培训课程
发布一个教程
发布一个开源项目的constructive code review
写一本编程的书
关于成绩
现在,让我们来继承切磋一会儿。留意每一个成绩都是可以大概权衡的。每一个都是一个布尔值:你完成或没有完成。例如,很难权衡你能否学过一个函数式编程说话,但是却可以大概随便的知道你能否用函数式编程说话写过一个挨次。后者是客考核、可测量、布尔的。这类可权衡性希图实用全体这些成绩。
需求认可的是,这类可权衡性其实不完善。比如在一个集会演讲这个成绩:你完好可以大概做到普通称职的时候就说你赢得了这份成绩。但是如果你正在读这篇翰墨,我假定你是想要变得精彩。你知道只是为了把一项从清单中划掉而号称做到是迥殊很是逊的。(高端网站建树)
既然我们谈到了改革
既然我们谈到了改革,你会如何改革这个清单呢?
这个清单现在在github上作为一个gist,你可以大概随便的fork它然后增加更多的成绩(确保你加的成绩是可以大概权衡的)。或fork它然后标志那些你已驯服了的成绩。你还可以大概标志你正在做的一项,(例如,你可以大概去看看这些forks:Justin Blake, Pierre Chapuis, Yann Esposito. )
或揭橥品评:甚么履历将你塑组成一个更好的开发者?和你会接上去去解锁哪个成绩?
正文
[A]我没法充裕的夸张第4步。为了获得几近每一个成绩,你应该停留和沉思这些履历,然后再移动到下一个。沉思。问问自己,你学到甚么,花些时候来写下这些想法主张。更好的是,
响应式建网站公司,与别人分享,并且比较其别人也已获得这一成绩的人,看看你的学习收成的如何。
[B]可以大概去coderwall.com看看基于成绩的模型这些方面的,很有意义。
[C]Forth根本上是自己的范式
[D]遽然想到了这句:“寓学于教”——Paulo Freire