`
QingniuFu
  • 浏览: 4010 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

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

阅读更多

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

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

聚焦习惯而不是目标

聚焦习惯而不是目标听起来似乎不合常理,但是请听我把话说完 - 这是一个有关平衡的问题。凡是和我共过事的人都知道,我有时就像傻子一样,在一天内,引用《蝙蝠侠:侠影之谜》中 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. 如果您喜欢这篇文章并且希望学习编程技术的话,请关注一下 复唧唧

分享到:
评论

相关推荐

    C# 窗体编程(新手最好的学习资料)

     窗体编程:“目录\开发工具和语言\Visual Studio文档\基于Windows的应用程序、组件和服务\创建基于Windows的应用程序\Windows 窗体(Windows Forms)”  用C# 创建.NET窗体程序:“目录\开发工具和语言\Visual ...

    鱼皮编程学习路线,适合新手小白~~~

    现在网上的编程资料实在太多了,而且人人肯定都说自己的最好,那就导致大家又不知道怎么选了。大部分的博主推荐资源,也就是把播放量高的视频说一遍,水一期视频,没有一条很清晰的学习路线。 所以今天我的这个 Java...

    Windows编程新手乐园 CHM

    在开始之前,需要注意的是本教程中所有的例子都是在 Visual C++ 6.0 中调试通过,因此最好不要使用 Visual C++ 5.0 以下的版本。 第一篇:Windows 编程基础 第一章 第一天课程——从实践中学习 第二章 第二天...

    如何学习Mysql数据库(新手必看)

    兴趣是最好的老师,不论学习什么知识,兴趣都可以极大地提高学习效率,当然学习数据库也不例外。只有对这个感兴趣才会愿意花时间和经历。 数据库 java 编程 运维 软件测试、产品经理 前端开发 大数据 先就业 再择业 ...

    Learngo:适合新手学习 Go 语法的开源项目

    Learngo:适合新手学习 Go 语法的开源项目。学习一门编程语言最好的方法就是动手写,该仓库拥有 1000 多个 Go 语法的问题,让你可以跟着练并附有答案 ———— 项目地址:https://ddl.ink/EvP github加速:...

    用Python编程,本课程教导新手程序员编写模块化代码以执行分析Python的数据。

    本课程教导新手程序员编写模块化代码以执行分析Python的数据。然而,重点是教学 - 无可止知的原则,例如具有循环和功能封装的自动化,参见科学计算的最佳实践和科学计算中的足够实践,以了解更多信息。本课程中使用...

    新手学习C++入门资料

    在当时,面向对象编程还是一个比较新的理念,Stroustrup博士并不是从头开始设计新语言,而是在C语言的基础上进行创建。这就是C++语言。 1985年,C++开始在外面慢慢流行。经过多年的发展,C++已经有了多个版本。为次...

    All-About-Python

    为什么Python是机器学习的最佳编程语言? Python是目前机器学习中最好的编程语言。 为什么? Python非常容易学习/使用。 python的语法非常简单。 与其他语言相比,代码行更少支持多种库和框架Python是一种开源编程...

    Delphi编程之旅:从零开始到实战精通-markdown案例教程.zip

    无论你是编程新手还是经验丰富的开发者,都能在这份资源中找到自己的成长之路。通过学习Delphi编程,你将能够开发出高效、稳定的应用程序,满足各种复杂的业务需求。 现在,是时候踏上这场编程之旅了!《Ruby语言...

    史上最强悍-15本最佳的Linux从新手到高手速成培训书籍集合

    史上最强悍-15本最佳的Linux从新手到高手速成培训书籍集合,让菜鸟新手迅速成为linux高手,15本最佳培训教材让你迅速掌握linux方方面面,从必备linux指令到安全搭建服务器到linux编程,一包在手,全部拥有!...

    ExtJs学习笔记基础篇1-新手入门

    学习编程的最好方式就是案例,通过本案例可以让你迅速掌握ExtJs,初学者值得一看的资料

    Google_CPP_编程规范.pdf

    新手学习必备!编程规范写的最好的几本.k# 前言 规范原则 - 团队输出代码采用一致的编写风格、命名风格、注释风格。 - 有助于提升代码可读性、维护性、通用性。 - 代码规范应遵从效率优先原则。

    Tcl_TK编程权威指南pdf

    Tcl_TK编程权威指南pdf 内容简介回到顶部↑Tcl/Tk是第一种能通过Windows、Macintosh和Solaris等主要平台处理企业级任务的脚本语言。本书共分为55章,依次详细讲述了Tcl基础、Tcl高级特性、TK基础、TK组件、TK详解、...

    人工智能实战-从 Python 入门到机器学习.rar

    本教程的目的是帮助几乎没有 Python 机器学习背景的新手成长为知识渊博的实践者,而且这个过程中仅需要使用免费的材料和资源即可。这个大纲的主要目标是带你了解那些数量繁多的可用资源。毫无疑问,资源确实有很多,...

    Linux 新手最佳晋级10本培训书籍集

    Linux 新手最佳晋级10本培训书籍集 Linux 指令大全.doc Linux菜鸟专用资料.pdf linux从入门到精通.pdf Linux实用培训学习教程1.0(最终版).chm Linux网络编程.pdf linux系统服务.doc Linux系统基础教程.pdf The Linux...

    C++程序设计编程例题

    这是我自己一行一行照着书上的例题码上去的,新手们可以看看里面的例题,其中我都有注释,而且我认为其中的注释是最好帮助学习C++的,希望能够对你的学习有所帮助。

    Python 核心编程 目录

     学习专业的Python风格、最佳实践和好的编程习惯;  加强对Python对象、内存模型和Python面向对象特性的深入理解;  构建更有效的Web、CGI、互联网、网络和其他客户端/服务器架构应用程序及软件;  学习如何...

    新手零基础1小时快速入门Matlab

    它将矩阵运算、数值分析、图形处理、编程技术等集成一体,为广大科研人员提供了一个强大的分析、计算、程序设计与仿真的工具,是科学计算最佳平台。 这文件很适合MATLAB的入门学习,这也是入门时学习的笔记。 虽然...

    史上最全的Tensorflow学习资源汇总.rar

    更是从实现最简单的“Hello World”开始,到机器学习的经典算法,再到神经网络的常用模型,一步步带你从入门到精通,是初学者学习Tensorflow的最佳教程。 2)从Tensorflow基础知识到有趣的项目应用:...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    提供给新手学习的 PHP新手教程,是一个比较有价值的PHP新手教程! 一、PHP简介 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的WEB站点。本教程并不想让你...

Global site tag (gtag.js) - Google Analytics