如何自学编程
Coding is the new literacy. 关于为什么学习编程,该学什么以及如何学的问题,我非常赞同Mattan Griffel (One Month Rails的创始人)的看法。以下内容是我编译自他在Slideshare上分享的内容《如何自学编程》,有删减。
1. 不要再等待那个完美CTO的出现,现在开始自学编程吧
为什么要学习编程?
你们很多人只是有一个想法而已
如果你期待着能找到一个人来帮你实现你的想法,这其实永远都不会发生
对于程序员的需求已经高到你无法想象
想想看……
现在只要是会编程的人都会从脸书、谷歌以及很多其他创业公司拿到offer
为什么一个技术人员会选择你的想法而不是别人的?
你想付钱给别人来干吗?
1. 你会付很多的钱;
2. 你会对整个过程都不满意;
3. 你最终得到的东西并不是你想要的.
为什么?
软件开发很难预测
“这个东西真的需要15个小时来完成吗,还是我被坑了?”
如果你是一个等待别人来帮你实现想法的创业者,那么你根本就不是一个真正的创业者 (sorry)
学习如何编程≠如何成为一个软件工程师
关键是你要学会足够多的东西来完成一个产品原型 (MVP)
MVP = quick + dirty创造有价值的产品,即使他们很丑陋
最终你还是需要找到一位首席工程师
知道如何编程帮助你寻找,说服和管理好的开发者
2选择一门编程语言
这么多的编程语言,你应该从哪里开始呢?
我们来分解一下网络应用
每个网络应用都有一个前端和后端
前端就是你看到的东西
前端语言:HTML,CSS,JavaScript
后端就是你看不到的东西
编程语言负责联系前端展示和数据库
然后就是网络应用的框架,比如Rails和Django
这些框架可以帮助你快速搭建网络应用
如果你的目标是建立一个产品原型,就可以从Ruby on Rails 开始
Rails就是用Ruby语言写的一个框架
Rails入门是最简单的(有很多资源和很大的社区)
Ruby语言很容易看懂
Rails框架把那些你不必知道的东西都藏起来了
Rails框架十分快速和简洁
快速获取积极反馈对于你的项目来说非常重要
Rails的延展性如何?
很多知名网站都是用Rails写的:
3. 我是如何在一个月内学会编程的
我发现传统的学习方法很枯燥
你也会这么觉得。(不然你早就学会了)
所以我自创了一种“蛮力”学习法
在大学里我会下载所上课程的podcasts
接着我会在地铁上或是在走路时听这些podcasts
这样做帮我减少了几百小时的学习时间
为什么这样做有效?
你是否也曾有过这样的经历:
对一件事很迷惑但当有人用另外一种方法和你解释过之后你马上就豁然开朗了?
结果就是学习没有那么枯燥了
更重要的是,那种第一次学习某事的压力消失不见了
第一次没有弄懂是可以接受的
你在第一次学习一个新事物的时候,你的大脑会自动生成一幅图,很模糊但是你基本可以想象出所有的碎片最后拼在一起的样子
当你再回过头去重新学习那些具体的细节的时候,你会发现自己开始懂了
用最快的时间学习很多入门课程
我的推荐是:One Month Rails和Ruby on Rails Tutorial by Michael hartl
当你学完这两个课程后,你就能自己开发一款网络应用了
但是有些功能你还是不知道如何加上
Railscasts by Ryan Bates 可以帮到你
你有时可能会想先停下学习Ruby语言(或HTML和CSS)
不要这么做
学习Ruby这门语言是项大工程,而你只需要知道一点和Rails相关的就足够了
而且你在学习的过程中会连带着学习Ruby,HTML和CSS的相关知识
纠错
编程中75%的工作是Google搜索还有Stack Overflow
很多时候你知道你想增加什么功能,可是你不知道这个功能具体叫什么
例如,cron jobs可以让你在应用里规划任务
问问别人
Rails现在非常流行,社区支持也是一级棒
最好的方法就是认识些Ruby on Rails开发者并向他们请教
去参加黑客马拉松认识更多的小伙伴
4. 让我们开始吧!
作者介绍:Mattan Griffel是网络教育平台One Month(https://onemonth.com/)的联合创始人兼CEO,他的项目进入了硅谷著名孵化器Y Combinator,他本人毕业于纽约大学,主修哲学和金融。更多关于Mattan的信息,大家可以访问他的个人网站:http://mattangriffel.com/.
转载请联系本人获得授权。更多文章请关注我的公众号:NerdyChic.
英文原文链接:http://www.slideshare.net/mattangriffel/how-to-teach-yourself-to-code