英文连接: What are the best ways for a complete beginner to learn programming程序员
回答这个问题是我最近两年来惟一的关注点。我以为此处说起的许多资源尽管都很不错,然而我却注意到,成功的学生,不管使用哪一种资源,每每都会在如下三个方面,比其余人有着更好的表现。编程
聚焦习惯而不是目标ruby
聚焦习惯而不是目标听起来彷佛不合常理,可是请听我把话说完 - 这是一个有关平衡的问题。凡是和我共过事的人都知道,我有时就像傻子同样,在一天内,引用《蝙蝠侠:侠影之谜》中 Ra's Al Ghul 的话多达 3-4 次。学习
Bloc 公司的投资者们对于我在董事会上频繁地引用《蝙蝠侠:侠影之谜》中的片断做为开始,早已经烦透了。对象
R'As 告诉 Bruce:blog
“(当你的胳膊快要冻僵的时候,)按摩你的胸口,你的胳膊天然会暖和起来。”ip
若是你将精力放在在每星期编程 20-30 个小时的习惯培养上,成为一名 Web 开发者的目标很快就能够实现。若是你将目标设定为在数月内成为一名 Web 开发者,在何时能能够达成目标以及距离目标还有多远等不肯定性的压力之下,你反而可能会一无所得。聚焦于习惯而不是目标。按摩你的胸口,你的胳膊天然会暖和起来。资源
所以,你如今应该作的是:在你的日程安排上,天天花15分钟时间用于编程。不要多于15分钟,天天只要15分钟就够了。若是你能在一星期以内坚持作下来而不找任何借口,请试着把时间延长到一天20分钟。不要试图经过天天一小时的编程来过分扩展本身的能力,编程就是一场 10000 小时的马拉松,所以咱们应该将精力集中在培养习惯上。与其在一天内花费大量时间学习编程,不如天天花费少许时间,可是可以每天坚持,由于这样更有效。开发
独自学习很是痛苦get
当我在学习 Web 开发时,在个人学习过程当中,拥有一位导师和加入一个社区是两个最大的组成要素。
大学期间,我曾在一家名叫 merge.fm 的小型创业公司工做。暑假期间,我与该公司的一位联合创始人一块儿工做,我在此期间学到的东西比我以前一年在大学学到的还要多。跟随一名经验丰富的专业人士一块儿工做,能够真正地加速你学习的速度,你会了解到他们如何思考问题的,同时,也会发现本身的不足之处。这就是为何师徒制一般成为学习一门新技艺的默认标准的一个缘由吧,由于它很是有效。
我加入了的两个社区,一个是 Illini Entrepreneurship Network(咱们学校的一个学生组织),另外一个是 Hacker News(一个面向黑客和创业者的大型在线社区)。
我没有从 Hacker News 学到任何有关对象和类的知识,可是我学到了一些别的东西。我知道了没人喜欢 JavaScript。我知道了 Ruby 程序员是编程领域的潮人。我还知道了 Bret Taylor, Rich Hickey 和 John Carmack 都是编程世界的领袖人物,还有就是,那些真正关心员工的软件公司,它们公司的厨房看上去就像兴奋剂实验室。
总之,我学会了如何说行话。当你和其余程序员一同工做的时候,这一点很是重要,也正因如此,才使你以为本身就是一名程序员。
项目实践
在学习 Web 开发的第一年,我动手实现了如下项目:
我认为构建真实项目之因此很是重要的缘由有不少,就我而言,最重要的一个缘由是它充满了乐趣。这偏偏是在传统教育中严重缺失的,也正因如此,它才成为了诸多缘由中最重要的一项。寻找如何开展项目实践的参考资源,http://ruby.railstutorial.org/ 是一个不错的选择。
要具备“小强”精神
对于那些能坚持读到此处的读者们,我偷偷地增长了第四项内容。Paul Graham 曾经对 Airbnb 的创始人说过:
“大家这些家伙是不会失败的,由于大家就像打不死的‘小强’同样”
一段时期,你可能会有放弃学习编程的想法。就像任何具备一样价值的事情同样,学习编程真的很难,有时你会以为本身真的很笨。这就是为何第一项策略如此重要的缘由 - 不要过分担忧是否已经取得进步,或者须要花费多长时间达成目标。你要作的就是每周坚持 10-30 个小时的编程。就像执着的‘小强’同样,你就不会失败。
多年之前我说过一句话 - “成功贵在坚持(注解:亦可译为‘生活中80%的成功源于坚持’)”,这句话常常被其余人引用。人们经常向我说起,他们想编写一个剧本,他们想制做一部电影,他们想撰写一本小说。那些最终成功实现目标的人,80%的作法是先行动起来。那些最终失败的人,他们连这一点都作不到。这正是他们不能作成一件事情的缘由,他们没有去作。一旦你去作了,若是你真地去编写电影剧本,或者撰写小说,实际上,你的成功之路已走过大半。这就是我能够告诉你的我人生最大的成功经验。其它的都是失败的教训。
-- Woody Allen(美国好莱坞著名电影导演)
做者:Roshan Choxi,美国在线编程学习公司 Bloc 联合创始人/CEO