新手学习编程的最佳方式是什么

 英文链接What are the best ways for a complete beginner to learn programming

  回答这个问题是我最近两年来唯一的关注点。我觉得此处提及的许多资源尽管都很不错,然而我却注意到,成功的学生,无论使用哪种资源,往往都会在以下三个方面,比其他人有着更好的表现。

  • 聚焦习惯而不是目标
  • 独自学习非常痛苦
  • 项目实践

  聚焦习惯而不是目标

  聚焦习惯而不是目标听起来似乎不合常理,但是请听我把话说完 - 这是一个有关平衡的问题。凡是和我共过事的人都知道,我有时就像傻子一样,在一天内,引用《蝙蝠侠:侠影之谜》中 Ra‘s Al Ghul 的话多达 3-4 次。

  Bloc 公司的投资者们对于我在董事会上频繁地引用《蝙蝠侠:侠影之谜》中的片段作为开始,早已经烦透了。

  R‘As 告诉 Bruce:

“(当你的胳膊快要冻僵的时候,)按摩你的胸口,你的胳膊自然会暖和起来。”

  如果你将精力放在在每星期编程 20-30 个小时的习惯培养上,成为一名 Web 开发者的目标很快就可以实现。如果你将目标设定为在数月内成为一名 Web 开发者,在什么时候能可以达成目标以及距离目标还有多远等不确定性的压力之下,你反而可能会一无所获。聚焦于习惯而不是目标。按摩你的胸口,你的胳膊自然会暖和起来。

  因此,你现在应该做的是:在你的日程安排上,每天花15分钟时间用于编程。不要多于15分钟,每天只要15分钟就够了。如果你能在一星期之内坚持做下来而不找任何借口,请试着把时间延长到一天20分钟。不要试图通过每天一小时的编程来过度扩展自己的能力,编程就是一场 10000 小时的马拉松,因此我们应该将精力集中在培养习惯上。与其在一天内花费大量时间学习编程,不如每天花费少量时间,但是能够天天坚持,因为这样更有效。

  独自学习非常痛苦

  当我在学习 Web 开发时,在我的学习过程中,拥有一位导师和加入一个社区是两个最大的组成要素。

  • 拥有一位导师

  大学期间,我曾在一家名叫 merge.fm 的小型创业公司工作。暑假期间,我与该公司的一位联合创始人一起工作,我在此期间学到的东西比我之前一年在大学学到的还要多。跟随一名经验丰富的专业人士一起工作,可以真正地加速你学习的速度,你会了解到他们如何思考问题的,同时,也会发现自己的不足之处。这就是为什么师徒制通常成为学习一门新技艺的默认标准的一个原因吧,因为它非常有效。

  • 加入一个社区

  我加入了的两个社区,一个是 Illini Entrepreneurship Network(我们学校的一个学生组织),另一个是 Hacker News(一个面向黑客和创业者的大型在线社区)。

  我没有从 Hacker News 学到任何有关对象和类的知识,但是我学到了一些别的东西。我知道了没人喜欢 JavaScript。我知道了 Ruby 程序员是编程领域的潮人。我还知道了 Bret Taylor, Rich Hickey 和 John Carmack 都是编程世界的领袖人物,还有就是,那些真正关心员工的软件公司,它们公司的厨房看上去就像兴奋剂实验室。

  总之,我学会了如何说行话。当你和其他程序员一同工作的时候,这一点非常重要,也正因如此,才使你觉得自己就是一名程序员。

  项目实践

  在学习 Web 开发的第一年,我动手实现了以下项目:

  • 一个 Digg 的克隆版(来自 Sitepoint书上的 Rails 例子,我想现在它已经过时了)
  • 一个在线购物应用程序(来自 Agile Web Development with Rails 4)
  • 一个 GeekSquad-esque 应用程序(个人项目)
  • 一个实时在线课堂应用程序(个人项目)
  • 一个外语学习应用程序(课程项目)

  我认为构建真实项目之所以非常重要的原因有很多,就我而言,最重要的一个原因是它充满了乐趣。这恰恰是在传统教育中严重缺失的,也正因如此,它才成为了诸多原因中最重要的一项。寻找如何开展项目实践的参考资源,http://ruby.railstutorial.org/ 是一个不错的选择。

  要具有“小强”精神

  对于那些能坚持读到此处的读者们,我偷偷地增加了第四项内容。Paul Graham 曾经对 Airbnb 的创始人说过:

“你们这些家伙是不会失败的,因为你们就像打不死的‘小强’一样”

  一段时期,你可能会有放弃学习编程的想法。就像任何具有同样价值的事情一样,学习编程真的很难,有时你会觉得自己真的很笨。这就是为什么第一项策略如此重要的原因 - 不要过度担心是否已经取得进步,或者需要花费多长时间达成目标。你要做的就是每周坚持 10-30 个小时的编程。就像执着的‘小强’一样,你就不会失败。

多年以前我说过一句话 - “成功贵在坚持(注解:亦可译为‘生活中80%的成功源于坚持’)”,这句话经常被其他人引用。人们常常向我提及,他们想编写一个剧本,他们想制作一部电影,他们想撰写一本小说。那些最终成功实现目标的人,80%的做法是先行动起来。那些最终失败的人,他们连这一点都做不到。这正是他们不能做成一件事情的原因,他们没有去做。一旦你去做了,如果你真地去编写电影剧本,或者撰写小说,实际上,你的成功之路已走过大半。这就是我可以告诉你的我人生最大的成功经验。其它的都是失败的教训。

  -- Woody Allen(美国好莱坞著名电影导演)

  作者:Roshan Choxi,美国在线编程学习公司 Bloc 联合创始人/CEO

时间: 2024-10-29 10:46:41

新手学习编程的最佳方式是什么的相关文章

[注]新手学习编程的最佳方式是什么?

回答这个问题是我最近两年来唯一的关注点.我觉得此处提及的许多资源尽管都很不错,然而我却注意到,成功的学生,无论使用哪种资源,往往都会在以下三个方面,比其他人有着更好的表现. 聚焦习惯而不是目标 独自学习非常痛苦 项目实践 聚焦习惯而不是目标 聚焦习惯而不是目标听起来似乎不合常理,但是请听我把话说完 – 这是一个有关平衡的问题.凡是和我共过事的人都知道,我有时就像傻子一样,在一天内,引用<蝙蝠侠:侠影之谜>中 Ra’s Al Ghul 的话多达 3-4 次. Bloc 公司的投资者们对于我在董事

新手学习编程的最佳方式

作者: Roshan Choxi  来源: 图灵社区  发布时间: 2015-05-30 17:26  阅读: 3775 次  推荐: 21   原文链接   [收藏] 英文链接: What are the best ways for a complete beginner to learn programming 回答这个问题是我最近两年来唯一的关注点.我觉得此处提及的许多资源尽管都很不错,然而我却注意到,成功的学生,无论使用哪种资源,往往都会在以下三个方面,比其他人有着更好的表现. 聚焦习惯

10个值得推荐的学习编程的网站————博客园

/10个值得推荐的学习编程的网站 世界已经进入了互联网的时代.据最近发布的一篇<2016年互联网趋势>报告显示,中国已成为互联网市场的领导者,中国互联网用户的数量达到了6.68亿.可以预见,有着如此巨大的市场潜力,中国的互联网产业会迎来又一个井喷式的高峰.行业的迅猛发展也会相应地刺激行业人才的发展.据不完全统计,目前中国互联网从业人员的数量达到了5000多万人.从细分行业来看,互联网从业人员集中在移动互联网和电子商务这两大领域,岗位以技术类和运营类为主.其中,编程开发人员是技术类岗位的主力军,

新手学习.net编程计划-1

.NET是一个庞大的学习体系,对于新手来说会感觉无从下手.学习知识必须从入门的基础学起,才能更好地掌握.学习.net也是如此,最基础的莫过于了解.net平台,以及掌握.net的基础语法C#. 本计划是学习.net平台的第一阶段,初识.NET平台和C#编程,木庄网络博客建议在这一阶段应该掌握的知识点有: 1..net平台的简介,CLR.CLS.CTS.JIT,垃圾回收等基础概念及C#常用的命名空间. 2.C#基础语法,C#中的基本数据类型,理解装箱和拆箱的概念,了解各种类型的运算符.理解各种选择结

12 个最佳的免费学习编程的游戏网站【转】

转自:http://blog.csdn.net/jxgz_leo/article/details/52767185 本文导航 -CodinGame -Code Combat -Screeps -Check iO -Vim Adventures -Cyber DoJo -Code Monkey -Elevator Saga -Codewars -Ruby Quiz -Git Games -Hacker Org 学习编程虽然对有些人来说是件乐事,但是对大多数人来说仍然是一件比较枯燥困难的事情.当然,

15种最佳方式帮你顺利掌握Hadoop技术

在探讨今天的主题--如何利用各类资源学习Hadoop知识--之前,让我们首先搞清楚另一个问题:大数据Hadoop到底是什么?简单来讲,Hadoop是一套用于实现大数据技术的框架方案.为了顺利掌握Hadoop,大家需要理解两项与文件存储以及数据处理紧密相关的基础知识.在Hadoop当中,我们甚至可以保存比可用存储空间更大的文件.Hadoop提供相关选项,允许大家将大型文件存储在节点之上.很明显,处理规模如此可观的文件绝非儿戏,不过Hadoop能够引入"MapReduce"机制让一切变得更

Java闭关修炼64课 很适合新手学习的JAVA视频教程

Java闭关修炼64课 很适合新手学习的JAVA视频教程 java闭关修炼第一课 什么是java(1).rar  java闭关修炼第一课 什么是java.rar  java闭关修炼第七课 基础语言要素(1).rar  java闭关修炼第七课 基础语言要素.rar  java闭关修炼第三十一课 静态方法(1).rar  java闭关修炼第三十一课 静态方法.rar  java闭关修炼第三十七课 成员初始化顺序讨论(1).rar  java闭关修炼第三十七课 成员初始化顺序讨论.rar  java闭

码农-如果当初学习编程时能有人给我这些忠告该多好

在你学习编程之前思考一下你的目标 要知道编程大多时候就是在创造,当你有最终目标感时道路会更加的清晰.如果你的目标是"学习编程"而不是更具体的学习哪种程序及如何让你的生活更好,那么你可能会发现这不过是一次令人沮丧的实践. 我有点惭愧地承认我学习计算机科学的部分动机是为了证明我聪明,及我想干"聪明人"的工作.我也喜欢思考数学和理论(<哥德尔.艾舍尔.巴赫:集异璧之大成 >这本书在我易受影响的年纪进入了我的脑海),编程是一个不错的选择.当然这并不足以使我坚持这

新手写给更新的新手的编程入门建议(python)

引文 我是从去年开始学习编程(python)的,到现在仍然还在入门阶段.之所以我的入门阶段如此之长,我想大概有以下几个原因: 一.没有选对教材 一开始我看了<python简明教程>,书中大部分概念都很简单,只能算是有了一个基本的了解.然后做了某个网络在线教程,一味的强调语法规则,反觉枯燥乏味,像是做填空题.再后来,看了udacity上的教程,发现python原来能做这么多有趣的事情,这才有了更大的兴趣.但udacity上的课程仅仅是几个小项目,适合刚开始学习时培养兴趣.然后,我有发现了<