用好工具俗话说的好,欲练神功挥剑自宫,sorry 不是这句,工欲善其事必先利其器,想要学习编程一定要写代码,我们不提倡咬破手指写bloody code,所以一定要找到趁手的武器。我个人把工具分为三种,第一种是部分程序语言自带的 shell,第二种是文本编辑器,第三种是集成开发环境(IDE)。 1、Shell,如果你在学习 Python,那么python shell,bpython 和 ipython 都是不错的选择;如果你在学习 Ruby,那么irb就是 ruby 的 shell;如果你在学习 Shell,打开终端(Terminal)就是 shell;如果你在学习 Java 或Objective-C,对不起,这些语言没有 shell。 Shell 能够单步执行你的编程语句并给出即时反馈,这种交互式编程方式非常适合初学者,所见即所得,所以凡是提供 shell 工具的语言,推荐大家优先使用shell学习。 2、文本编辑器,这个领域向来是「猿家必争之地」,溢美之词和吐槽之声交相辉映,从古至今绵延不绝,说起来都是眼泪,比如Emacs和Vim程序猿,大家沿着不同的道路和目标前进,但总是会在某个点交叉相遇,见面就扔石头和臭鸡蛋,砸得对方鼻青脸肿,然后擦擦眼泪和口水继续前行。还有 IDEer 说 Vimer 装逼,Emacser 说 IDEer 垃圾balabala……种种血淋淋的事实足以拍一部惊悚科幻动作言情片。 我自己比较喜欢文本编辑器,但是也不排斥 IDE,这种人俗称两边不待见,但我还是那句话,不为自己设限,不同的环境应该选择最好的工具。下面给大家推荐几款文本编辑器: (1)VIM:号称编辑器之神,全键盘操作,充满速度感,良好的插件体系,几乎满足一切程序语言的编写需求。 以上四款自成体系,都有完善的插件生态环境,诸君可任意选择。 对于TextMate 开发者赚了钱就跑的恶劣行径,大家完全可以批判,有时我们不得不痛苦的承认,国外程序员的鸡贼是我泱泱大国之IT民工永远无法理解滴「泪」。 3、集成开发环境(IDE) IDE 是图形化的集成开发工具,具备精准的词法分析、编程提示、调试等功能,功能之繁复用户自知,如果做工业级编程和团队协作的话,还是推荐使用 IDE。 在这里推荐几个系列: 微软的技术不懂,就不推荐了,嘿嘿…… 除了写代码的工具,你还需要记录、阅读和查询,所以再为大家推荐三款应用:Evernote(笔记)、Pocket(以后读)和Dash(代码检索)。具体介绍和用法就不说了,不要忘了上一篇提到的Google君。 找到你的 Master小时候看西游记发现,师傅原来是用来人肉的;后来看天龙八部发现,牛人都不需要师傅,即使有也是要被别人一掌震飞的;再后来看射雕英雄传发现,愚钝的人首先得有师傅,其次得有很多师傅,再次每增加一个师傅功力都以指数级别增长,2、4、8、16…… 所以,如果有人告诉你三人行,一个老师都没有,你至少要质疑这一观点,同时考虑自己会不会筋斗云,是否天赋异禀以一当百等等。如果不成,那还是去找师傅好了。 有老师的好处有这么几个: 但是走出校门之后再想找传统意义的师傅就很难了,像绝地武士那样和 Master 出双入对同生共死更无可能,这时你就需要把身边的朋友、同事当做老师和资源,不耻下问,而且要问的有智慧,让人有回答欲望,那么如何提问呢,请参考我之前写的一篇「如何提问」。 参与社区和技术会议自己学习和同事交流之余,可以参与一些网络社区的交流,推荐: 技术问答社区:http://stackoverflow.com ,在技术领域几乎包括万象,无所不知。 GitHub:https://github.com ,几乎全世界优秀的开源软件作品都在上面。 另外还可以参与一些群组,订阅一些优秀的个人博客,这个时代依然有人愿意贡献优质内容。 选择性参与一些技术会议,比如 QCon,不指望在会场能学到什么,但可以了解技术趋势,并看看别人在做什么。 刻意练习之前写过两篇「刻意练习」的文章,自感对学习编程有一定帮助,大家可以去读一下。 逃离舒适区
什么是舒适区?如果你是个新手,你就没什么舒适区,什么都不懂嘛舒适个毛,在磕磕绊绊的学习中懵懂前行,期间可能还伴随着老鸟的嘲笑和进度的压力,终于有一天你武功精进,乾坤大挪移练到了第五重,工作中开始得心应手游刃有余,不断有新人或老人来找你解决问题,你微笑着迎接挑战,淡淡的送走难题,你挥一挥手,不带走一片云彩,这是什么境界?这就是你的舒适区,这和靠在沙发上看电视的舒适不是一回事,通常进入舒适区需要花费你很多的时间和精力,需要你不断的练习,一旦进入,你会enjoy it! 这时候,如果有人胆敢让你脱离舒适区,可算要了亲命了,你会勃然大怒,轻则争吵,重则离职。这种事遇到太多了,一个写前端的你让他学习一些后端技术,一个写Java的你让他学习一下C,得到的答复可能会,Sorry, I feel very uncomfortable! 没有人学新东西的时候非常舒服,一旦经历过从新人到老鸟的过程,再让你进入陌生的领域,那种痛苦会让你自发的去抗拒。但是一个人不可能永远躲在舒适区里,逃离舒适区会有助于你从不同的角度看问题,视野会更加开阔。人总要往前走的。 很多人在某个地方待久了就会非常懈怠,没退休就像在养老,这时候你就知道,他们在舒适区太久了,与在哪个地方无关。 最后一招「见龙在田」实战总是很重要,为大家推荐一个在线学习编程网站: 假以时日,各位必定武功大成,那时横刀立马、拔剑四顾,说英雄谁是英雄! 转自 mactalk:http://macshuo.com/?p=703 |