回答这个问题是我最近两年来唯一的关注点。我觉得此处提及的许多资源尽管都很不错,然而我却注意到,成功的学生,无论使用哪种资源,往往都会在以下三个方面,比其他人有着更好的表现。
- 聚焦习惯而不是目标
- 独自学习非常痛苦
- 项目实践
聚焦习惯而不是目标
聚焦习惯而不是目标听起来似乎不合常理,但是请听我把话说完 - 这是一个有关平衡的问题。凡是和我共过事的人都知道,我有时就像傻子一样,在一天内,引用《蝙蝠侠:侠影之谜》中 Ra's Al Ghul 的话多达 3-4 次。
Bloc 公司的投资者们对于我在董事会上频繁地引用《蝙蝠侠:侠影之谜》中的片段作为开始,早已经烦透了。
R'As 告诉 Bruce:
“(当你的胳膊快要冻僵的时候,)按摩你的胸口,你的胳膊自然会暖和起来。”
如果你将精力放在在每星期编程 20-30 个小时的习惯培养上,成为一名 Web 开发者的目标很快就可以实现。如果你将目标设定为在数月内成为一名 Web 开发者,在什么时候能可以达成目标以及距离目标还有多远等不确定性的压力之下,你反而可能会一无所获。聚焦于习惯而不是目标。按摩你的胸口,你的胳膊自然会暖和起来。
因此,你现在应该做的是:在你的日程安排上,每天花15分钟时间用于编程。不要多于15分钟,每天只要15分钟就够了。如果你能在一星期之内坚持做下来而不找任何借口,请试着把时间延长到一天20分钟。不要试图通过每天一小时的编程来过度扩展自己的能力,编程就是一场 10,000 小时的马拉松,因此我们应该将精力集中在培养习惯上。与其在一天内花费大量时间学习编程,不如每天花费少量时间,但是能够天天坚持,因为这样更有效。
独自学习非常痛苦
当我在学习 Web 开发时,在我的学习过程中,拥有一位导师和加入一个社区是两个最大的组成要素。
- 拥有一位导师
大学期间,我曾在一家名叫 merge.fm 的小型创业公司工作。暑假期间,我与该公司的一位联合创始人一起工作,我在此期间学到的东西比我之前一年在大学学到的还要多。跟随一名经验丰富的专业人士一起工作,可以真正地加速你学习的速度,你会了解到他们如何思考问题的,同时,也会发现自己的不足之处。这就是为什么师徒制通常成为学习一门新技艺的默认标准的一个原因吧,因为它非常有效。
- 加入一个社区
我加入了的两个社区,一个是 Illini Entrepreneurship Network(我们学校的一个学生组织),另一个是 Hacker News(一个面向黑客和创业者的大型在线社区)。
我没有从 Hacker News 学到任何有关对象和类的知识,但是我学到了一些别的东西。我知道了没人喜欢 JavaScript。我知道了 Ruby 程序员是编程领域的潮人。我还知道了 Bret Taylor, Rich Hickey, and 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
原文: What are the best ways for a complete beginner to learn programming
感谢: Jodoo 帮助审阅并完成校对。
P.S. 如果您喜欢这篇文章并且希望学习编程技术的话,请关注一下 复唧唧。
相关推荐
### 新手学习PLC编程的入门建议:详细解读与扩展 #### 1. 强化基础知识,培养兴趣 学习PLC编程,首先需要强化基础知识,这不仅包括电子、电工、自动控制原理等基础课程,还需要对PLC的基本概念、工作原理有深入的...
### 新手如何学习编程 对于初次接触编程领域的新手而言,如何有效地学习编程是一大挑战。本文将根据“新手如何学习编程”的主题,结合提供的部分文件内容,详细阐述几个关键的学习步骤与建议。 #### 一、确认兴趣...
学习PLC编程,对于新手来说,可能会面临诸多挑战,但只要遵循正确的学习路径和方法,就能逐步掌握这一技术。下面将详细阐述从标题和描述中提取的关键知识点,以及如何有效地进行学习。 首先,编程需要坚定的决心和...
实践是学习编程的最好方式。只有通过不断地实践和实验,才能熟练掌握 PLC 编程的技巧。作者建议,初学者不要畏惧损坏设备,而是大胆地进行实践和尝试。只有通过实践,才能掌握 PLC 指令的作用和使用方法。 三、缜密...
根据提供的文件信息,我们可以归纳出以下几个关键的知识点: ### 1. 编程入门的重要性 对于初学者来说,《编程...此外,作者还提供了一些额外的学习资源链接,这对于希望深入学习编程的新手来说无疑是非常宝贵的。
从给定的文件信息中,我们可以提炼出一系列与编程新手如何成长为一名程序员相关的知识点,主要聚焦于编程语言...通过系统性地学习编程语言、掌握编程思维并利用丰富的在线资源,任何人都能逐步成长为一名合格的程序员。
学习编程首先需要理解基本概念,如变量、数据类型、控制结构(如条件语句和循环)、函数和数组等。变量用于存储数据,数据类型决定了这些数据可以是什么(如整数、字符串或布尔值)。控制结构允许程序员决定代码的...
编程学习的道路因人而异,但兴趣是最好的老师。如果你对编程有热情,那就已经有了坚实的基础。选择入门语言是初学者常面临的问题,没有绝对的答案,关键在于个人情况。 1. 对于计算机或软件专业的学生,C语言通常被...
总的来说,这本书和配套的软件提供了一个全面的平台,让编程新手能够系统地、逐步地学习编程,从而建立起扎实的编程基础,为未来的编程生涯打下坚实的基础。无论是为了个人兴趣,还是为了职业发展,"从零开始学编程...
### 编程新手真言20081202最新版 #### 1. 设计才是真正的编程! - **核心思想**:本书开篇强调的是设计的重要性,认为设计是编程的核心。良好的设计能够帮助开发者更好地组织代码、提高程序的可读性和可维护性。 -...
标题“ASP学习代码asp常用代码非常适合ASP新手学习用”暗示了这个压缩包包含了一系列ASP编程的基础和常见代码示例,对于那些刚接触ASP的人来说是极好的学习材料。这些代码可能涵盖了变量声明、数据类型、流程控制、...
《新手学Linux C编程》是一本专为初学者设计的指南,旨在帮助读者掌握在Linux环境下使用C语言进行编程的基础...记得,实践是检验学习效果的最好方式,不断编写、测试和改进代码,你会在Linux C编程的道路上越走越远。
现在网上的编程资料实在太多了,而且人人肯定都说自己的最好,那就导致大家又不知道怎么选了。大部分的博主推荐资源,也就是把播放量高的视频说一遍,水一期视频,没有一条很清晰的学习路线。 所以今天我的这个 Java...
在IT领域,Shell编程是一种非常重要的技能,尤其对于系统管理员和开发者来说,它提供了一种...记住,实践是检验知识的最好方式,所以不仅要阅读理论,还要多动手编写和测试脚本,这样才能真正掌握健壮的Shell编程技巧。
《新手GoWeb编程PDF》是一份专为初学者设计的Go语言Web开发教程,它涵盖了从基础到进阶的全面内容,旨在帮助读者快速掌握Go语言及其在Web开发中的应用。Go语言,简称GoLang,是由Google公司开发的一种静态类型的、...
易语言是一种专为中国人设计的编程语言,它以“易”为核心理念,旨在降低编程的难度,让初学者能够快速上手。...记得实践是检验理解的最好方式,动手编写代码并调试运行,将会使你的学习效果更佳。