Fork me on GitHub

看看大神 Paul Graham 对如何学习编程的回答

前言

TT快三我 翻阅自己之前写的TT快三计划文章,发现在 2015 年TT快三我 刚开始学习编程的时候,翻译了一段 Paul Graham TT快三关于 “How can I learn to program?”的回答。

当时竟然没有翻译完,TT快三我 就跑去 GitHub 上面收集有意思的项目去了。三年过去了,TT快三我 做了 HelloGitHub 这个项目 🤪。

今天既然翻到了,那是时候把这个事情做完了。TT快三我 觉得需要先介绍下 Paul Graham 是谁?

一、Paul Graham 是谁?

保罗·格雷厄姆(英语:Paul Graham,1964年11月13日-),哈佛TT快三大学 应用科学(计算机方向)博士学位,美国著名程序员、风险投资家、TT快三计划和TT快三技术 作家。

TT快三公司 :他是著名的创业投资TT快三公司 Y Combinator 的创始人,这个TT快三公司 有个新闻网站叫 Hacker News。

书:他还写了本书《Hackers & Painters》(黑客与画家)

钱:最早的 Web 应用 Viaweb 的创办者之一,1998 年被雅虎以近 5 千万美元价格收购,后成为 Yahoo! Store。

TT快三我 看完他的介绍就两个字“大神”。下面是他对 How can I learn to program? 如何学习编程这个问题的回答。

二、如何学习编程

原文分为 6 段,TT快三TT快三我 们 一段段的看。

2.1 第一段(入门)

原:Find a friend who knows how to program. Get them to set you up with a system where you can edit and run programs. Use whatever language they suggest for a beginner (probably it will be Python or Ruby). Then get the O'Reilly book and start working through it.

译:找一个会编程的朋友,让它帮TT快三你 部署编程环境。学习他们建议的适合初学者的编程语言(可能是 Python 或者 Ruby),然后找 O'Reilly 出版的TT快三关于 该语言的入门系列书籍,啃完。

个人实践:因为编程入门安装开发环境是一件很痛苦的事情,所以最好有人帮TT快三你 弄好,TT快三我 当时是靠TT快三搜索 引擎折腾死TT快三我 了。编程语言的话找一个语法简单,比如:Python。书的话TT快三我 当时看的是《笨TT快三方法 学 Python》,然后看的是《Python 核心编程第 2 版》

2.2 第二段(动力)

原:As you learn the mechanics of writing and running a program, start thinking about specific programs you want to write. That will motivate you to learn more.

译:当TT快三你 学习编程的时候,也要想想自己想写个什么好玩、有意思的项目。思考TT快三你 想要编写什么酷的程序,这样会让TT快三你 有动力去学习TT快三更多 东西。

个人实践:“无知无畏”的想法是让TT快三你 学习TT快三更多 的动力,而且它是一个“种子”。TT快三我 就当时想写一个能够画词翻译的网站,然后可以记录TT快三我 请求翻译过的单词和次数,不同翻译次数颜色不一样(绿、蓝、金、暗金,玩过暗黑的都懂)。后面再看别的文章的时候就知道那些是高频词汇,TT快三我 就可以突破记忆一下,有助于TT快三我 提高英文阅读的能力。后来TT快三我 做了这个项目 holleworld,在写这个项目的过程中让TT快三我 学习到了很多。当时很多代码都是拷贝来的,但是能让它跑起来达到TT快三我 预期的效果,着实让TT快三我 查了很多资料。 😪

2.3 第三段(动手写)

原:Don't start with a problem that's too big. A good way to begin is to take an existing program and modify it to do something new.

译:起步的时候不要去解决太难的问题。一种好的TT快三方法 建议:修改一个已有的程序,让它实现新的、TT快三更多 的功能。

个人实践:修改项目会比较简单,而且基于某一个流行框架去做一个项目也会轻松很多。首先要动手写,改、抄都是动手,不要上来就想写个功能强大的项目,慢慢来。TT快三我 在写上面那个项目之前,抄了两遍廖雪峰老师的那个TT快三计划实战项目(不用复制粘贴,手打每行代码)😬。最开始TT快三我 一大段一大段的抄,抄完 model 模块,代码跑都跑不起来,看不到TT快三计划的样子让人心灰意冷。后来TT快三我 就一个功能一个功能的抄,抄完跑、调试。每个功能调试过能看效果,然后就知道每行代码有什么用了,而且对项目有个整体的感觉,后面修改、增加功能就很简单了。然后TT快三我 又去 GitHub 上找有趣的开源项目,想着能不修改、增加功能之类的。后面收集的项目多了,就有了 HelloGitHub

2.4 第四段(坚持写)

原:Initially your programs will be ugly, but don't worry about that. Everyone's are. Just keep going, and they'll get better.

译:起初TT快三你 的程序可能很“丑“(代码不简洁、界面丑、编码风格不好),但是不用担心这些,因为每个人刚开始写的程序都不咋样。只要TT快三你 坚持写下去,TT快三你 写的东西会越来越好的。

个人实践:TT快三我 现在的代码依然很丑,这是个漫长的过程。知道丑就行,写多了就会变得好看和简洁了。TT快三我 还记得TT快三我 最开始写网页的时候,每个页面下面都有一段联系方式之类的信息,然后TT快三我 把这段代码在每个页面最下面都写了一遍。后来一个不懂TT快三技术 的TT快三产品 看了说:“TT快三你 这段代码都一样,能不能提取出来,然后每个页面结尾都引用相同的那段代码的文件?”。从哪以后TT快三我 就知道一段代码,如果在两个地方都用了,就需要提取出来一个公共TT快三方法 。还有一次,TT快三我 重构项目,看到一段编码风格特别差、没注释、for 循环滥用的代码。TT快三我 心想:”这 TMD 谁写的垃圾代码。“,抬头一看作者是TT快三我 自己。然后把后半句咽回去了,默默地把这段代码给重写了,绝不能让别人发现恶心别人 😂。

2.5 第五段(看懂了,不一定能写出来)

原:As you learn, you'll find it useful to look at programs other people have written. But you'll learn more from this once you've tried programming yourself.

译:在学习编程的过程中,TT快三你 会发现读别人的代码对TT快三你 会很有TT快三帮助 。但TT快三你 自己动手实现从别人哪里学到的TT快三技巧 ,TT快三你 会收获TT快三更多 。

个人实践:TT快三我 还在这个阶段摸索中,TT快三我 现在是一般的代码都能看懂,其中精妙部分可能也能理解。但是让TT快三我 自己写就瞎了。可能这就是TT快三我 要提高的方向吧,还是要多写、实现。看明白的不一定就懂了,懂了的不一定能实现。引用费曼的名句:“TT快三我 不能创造的东西,TT快三我 就不理解。” 和大家共勉 💪

2.6 第六段(结伴同行)

原:Finally, find friends who like to write programs. They can answer your technical questions; you'll get new ideas from talking to them; and they'll be the audience for your first efforts.

译:最后一点,找到同样喜欢编程朋友,他们可以解答TT快三你 再编程上的问题。TT快三你 也会从与他们交流的过程中收获新的想法,他们也会是TT快三你 成长的见证者。

个人实践:编程的路上,如果有一群志同道合的小伙伴一起交流、鼓励,相互促进的前行,那样TT快三你 会走的更远的。“三人行,必有TT快三我 师”,多和程序员的小伙伴成为朋友,相互交流TT快三技术 的过程潜移默化就会得到提高。所以TT快三我 这边拉了个 “HelloGitHub 交流群”(加入方式下面有),群里都是编程爱好者、小白、从业多年的人、Geek 等。这个群是讨论TT快三技术 、开源项目、程序员相关话题,希望大家在这里呆的开心。TT快三我 也在做开源项目的过程中、还有群里,结交了很多朋友😏。对了!TT快三你 还能加入TT快三TT快三我 们 HG-Team 一起做些有意思的事情(加入方式在最下面)。

三、最后

上面大神说的这段话是翻译完成了,内容包含了:编程入门、动力、实践、坚持、提高、交友🤣。大神的说的这段话,TT快三我 是真的从中收益了很多。现在回头看看,还是有要提高地方,所以这里把这篇文章分享给大家,其中有不对的地方欢迎指正。

成长的路上,TT快三你 TT快三我 都是新手,TT快三TT快三我 们 何不结伴同行,成为亦师亦友的小伙伴?加TT快三TT快三我 们 HelloGitHub-Team 的小(后面会不会变‘大’不知道)家庭,TT快三TT快三我 们 需要TT快三你 。​TT快三TT快三我 们 能够接受和TT快三你 一起成长,经验不是问题,态度决定一切:

  • 专栏负责人:负责某一专栏项目的TT快三推荐 。需要:擅长某一门语言,关注开源动态。
  • 投稿者:HG TT快三原创 TT快三技术 内容投稿。需要:一定文字功底,喜欢写文章。投稿文章类别可以为:开源框架的深入讲解文章、个人开源项目介绍文章、学习路线、翻译文章、TT快三技术 系列文章
  • 开发者:HG 相关项目的开发。需要:热爱编码,有良好的编码风格,一定的编码经验(语言:Python、JS)
  • 运营者:运营 HG 平台账号等相关事物。需要:细心、热爱TT快三技术 、懂TT快三技术 最好,妹子优先
  • 赞助者:老板您坐着就好了,剩下的交给TT快三我 来干。😂

扫描下面的二维码,关注TT快三公众号 回复加群。就可以入群和一群热爱TT快三技术 的小伙伴一起交流成长。对上述有兴趣的小伙伴也可以去群里找TT快三我 ,TT快三我 等TT快三你 们!

posted @ 2019-07-11 22:20 削微寒 阅读(...) 评论(...) 编辑 收藏