人的一生,会经历从从 0 到 1,从懵懂走向明理、从稚嫩走向成熟、从依赖走向独立。在学习的道路上,也同样会经历相同的过程,如果在刚上路的时候,就知道一些准则或前人的经验,并去践行,那么就会起到事半功倍的效果。

接下来我要介绍一些我在学习过程中总结出来的一些建议,大家参考就好。

硬件

  • 电脑-推荐Mac

    我不是果粉,个人也用过 Windows、Linux、mac OS。Windows 上面的开发工具简直难以恭维,尤其命令行超级难用,而 Linux 自己必须得话不少时间去折腾,更加不适合新手了,mac OS 是我迄今用过的最好用的系统,没有之一,如果不差钱,强烈建议入手一台,推荐 Pro 系列(苹果你的广告费啥时候打过来?)。

    关于更多的 Mac 小技巧,这里推荐池建强老师的《MacTalk 人生元编程》,里面有许多 Mac 的小技巧,Mac 的前世今生以及未来的发展,也不乏有对生活的探索、梳理和记录。相信你读完之后会有不一样的体会。

软件

  • Google

    在 Google 面前,其他的搜索引擎只能甘拜下风了。俗话说,不会翻墙的程序员不是好程序员。当别人在用百度,查看国内各种二手资料的时候,我坚持使用 Google,查看国外大牛博客。在使用 Google 的时候,学会如何使用英文搜索是非常重要的,之后会整理一篇 Google 搜索技巧。

  • 英语

    毫无疑问,学好英语是成为好的程序员的必经之路。我英语很差,刚开始用英语搜索资料,查看文档对我来说很难,但是我硬逼着自己,坚持下去,慢慢地就会发现,读英文文档会变得轻松起来,因为技术文档你不懂的专业词汇就那么几个,看多了自然就记住了。

    当然我知道,想提高英语水平远远没有那么简单,我也在不断摸索中。举个例子,我在 Mac 上装了欧陆词典(Eudic),这款软件是我用过的最好用的英语词典软件,可以自己导入原版词典库,有单词的英文解释(有些单词的中文翻译不敢恭维)。以后我会专门介绍这款软件。

  • IDEA

    很早就开始用 IDEA 了,但因为实习公司的开发环境是 Eclipse,所以就没继续用 IDEA。不过我以亲身使用者的角度告诉你,IDEA 比 Eclipse 强大。这只是一个建议,你可以去试试,对比一下。

  • Git

    林纳斯(Linus) 因为对版本控制软件 BitKeeper 不太满意,所以在 2005 年花了十天时间写了一个版本控制系统 Git。想要了解林纳斯,可以去看他的自传《Just for Fun》。

    Git 是一个分布式源代码版本控制系统,只要用过 Git,一定无法回头用其他东西了。因为用 Git 备份源代码简单又可靠,范围是整个项目代码,不必担心测试存储库是否会影响到中间存储库。

  • GitHub

    GitHub 是基于 Git 的程序代码托管服务平台。它相当于是一个免费的远程仓库,也是一个开源协作社区,通过 GitHub,既可以让别人参与你的开源项目,也可以参与别人的开源项目。

  • Stack Overflow

    一个程序设计领域的问答网站,技术上的问题,一般都能在这里找到答案。可以直接在 Google 中搜索关键字 + site:stackoverflow.com,这样查找出来的全是 stackoverflow 站内的结果,这是一个搜索小技巧。

  • Linux 命令

    电脑使用的是 Mac,平时都是在 Linux 系统下编程,因此掌握一些基本的 Linux 命令显得尤为重要。至于是买本书看,还是遇到什么 Linux 命令就打开 Google 查,都是可以的。如果你想系统地去学,我推荐《鸟哥的 Linux 私房菜》。

不同水平的人用不同的方法

强烈建议新手们结合视频学习新知识,身为过来人我很清楚一开始入门很难,只是看书或者资料是难以理解的,而这时候结合视频讲解,加上自己的书籍与实战,会起到事半功倍的效果。在积累了一定经验之后,就不需要再去看视频了,因为速度太慢,一个 30 分钟长的视频,我可以看技术博客只要 10 分钟或者更短。

所以如果有你一定的基础,那么直接撸书籍或者技术博客吧。

关于坚持

坚持这件事,我不能发表太多观点,因为我自己的韧性也不够强,不过也在不断磨练当中。乔布斯最喜欢的一句话叫做:

Stay hungry, Stay foolish.

大家在生活中一定有类似的经验,当你不知疲倦地投身于一件事时,会不自觉地去探索其相关知识,非常渴望学到这个领域的所有东西。这就是一种 Hungry 的态度,保持 Hungry 对我们来说非常可贵。

大家一定听过一万个小时理论,先不去论证这个理论是否有依据,但是就像池建强在 《MacTalk 人生元编程》里所说:

优秀的程序员同样如此,菜鸟常常羡慕高手在谈笑之间让难题灰飞烟灭,而自己却苦苦思索而不得入门之法,殊不知这些高手同样经历了名将的那些腥风血雨。他们在清晨的微光里编写代码,在轰鸣的机房中调试程序,他们彻夜不眠就是为了解决一个 bug,他们要承受数据丢失或上线失败的痛苦,默默吞下眼泪,准备下一次的战斗。不停的学习、实践和思索,成千上万个小时之后,高手史成。

这是每个刚要上路或者正在路上的侠客必须要思考的,也是必经之路。所以如果做不到每天坚持 10 个小时的代码开发,建议洗洗睡吧。很多时候你会感到枯燥,这很正常,我很多时候也会觉得枯燥,问了身边志同道合的人,大多数人都会这样,但如果想想以后的发展,这又算得了什么呢?我们现在这个年纪不去拼,难道等到三四十岁再去拼?

结束语

这一切的一切,本质上都是为了提高自己的起点,虽然我们起步晚,但是我们起点高,慢慢的就会缩小差距,时间长了,甚至后来居上。

学习是一个漫长的过程,希望大家都能学有所成,我将会在自己的小站一直前行。

PS:下一篇介绍 Mac OS 里好用的工具。