最开始的几周真是艰难,这种艰难不仅仅来自于我来到一个新的团队,使用一种新的语言,新的框架和新的代码库,而是因为我发现身边的人都是以一种自虐的态度在学习编程。 我独自在图书馆、咖啡厅坐了几个月,每天就是盲目的通过命令行安装各种工具,调试Linux驱动,解决一些细枝末节的问题,比如说括号不匹配。我涉足每一个能想到的在线课程,报了无数的MOOC课程。我认为实际上我什么都没学到,直到在某个月的考核中,我上升至第五位。这些经历给我的印象是,编程是一场你永远无法取得胜利的战斗。我开始明白那些看起来正常的程序员他们的过往实际上是那么灰暗,他们经历过太多,又压抑得太久,不得不说,学习编程简直就是一个反社会的活儿。 辞掉上一份工作的第一个周末,我上传了这张自拍。那天我起了个大早,穿了件体面的西装,穿西装是为了提醒自己:我可是要去学习编程的人。Facebook的标语“我的新办公室——餐桌上。我每天过着朝8晚6的生活,只有在必须要休息的时候才休息”。在生活中,我学程序员说话,像他们一样思考,现在,我已经习惯了这个词。 我的同事几乎从没遇到过语法错误,因为他们的IDE替他们解决这个问题。而当他们遇到一个错误信息,如果在几分钟内不能解决问题,他们就会给其他同事发送一条即时消息,请求其他人的帮助。他们会随意跳到别人的桌旁,然后开始结对编程。这里的程序员不会太自我,也不自诩为精英。他们也不认为编程是一件痛苦的事。有的只是成年朋友之间的建设性的对话。 一个团队中的成员使用的工具是高度一致的。在Passion Project和黑客马拉松中,开发者可能会使用新的JavaScript框架,比如说Angular.js。而在一个真正的团队里,成员把精力主要放在使用现有的技术提升产品之上。从这个角度来说,他们是保守的。 在ThoughtBot你也会看到类似的情况,在ThoughtBot中,每个人都坚持使用一个小且高效的工具集(Rails,Vim,Postgres和Redis)。因为工具集小,所以工程师容易成为该领域专家,又因为每个人使用的工具集都是一样的,所以相互之间进行互操作就变得很容易。 所以真正的问题是,如果高效的团队在使用一个小且固定的工具集的时候最高效,那么是不是人们在学习编程的时候使用一个小且固定的工具集是最好的。那些在线编程课程和编程训练营显然是这么想的。 但是作为一个个体,可以选择的工具那么多,真的很难决定到底该怎么选。我知道这一点是因为我经历过。一个好的程序员的技能集合可以用T形来表示——涉猎的领域很多,但是真正擅长的领域不多。但是,经过经年累月的积累,T形将会慢慢变成下划线形。 我遇到过许多学习编程的人,上来就想什么都学,什么都会,最终,他们都失败了,放弃了他们成为一个程序员的梦想。我不想这种情况也发生在你的身上。 你需要专注更多方面 事不宜迟,下面给出一些新手容易犯的大错误:
如果非得用一个词来总结我的建议,我会说:专注。 我问你,你会用专注这个词来描述你的编程学习计划吗?如果你认为你的计划够专注,好,你现在可以停止阅读,回到你的计划开始学习,因为我不想说任何可能导致你失去专注的事情。 如果你还的计划不够专注,那你也有福了——照我说的去做,你也能专注,但是这需要花费你几分钟的时候做几个艰难的决定。等等,你们别走啊! 好的,你还没走。下面就是你需要做出的艰难的决定。
一旦你做出了这些决定,剩下的路就太简单了。你只要保持清醒,不要被周围的新工具所迷惑。一周七天,每天学一点在线课程,哪怕一次只有半小时。相信你今天做出的决定。最后,请记住:只要有耐心,任何能干的人都能成为绝世coder,当然也包括你。 (英文:freecode,译者:moqiguzhu) 转自:http://code.csdn.net/news/2822798 |