(转自“彭碧的专栏”)如何更好的思考和学习

最近几个月,工作上的事情很忙,很少有自己的时间,所以我的博文很久没有更新了,但是经常看到一些同学看了我的博文之后希望我给出demo,其实我写这些 东西的时候确实是我项目中遇到的问题,很多代码都是项目中抽离出来的,没有专门为了写博文而做一个demo。我写这些东西的初衷是希望有地同学在工作和学 习的过程中遇到了问题能够通过我的博文能有一些帮助,解决一些实际问题,并不是为了仅仅是出一个可以跑的小例子。所以我有时候看到那些要求我发例子的同学 的邮件或者回复我也有些遗憾,因为我更希望他们能和我讨论我代码中的问题,或者一些解决问题的方法经验。如果是仅仅给出一个例子,然后可能某些同学就拿这 个例子直接用在项目中,却没有很好的理解这个方法的用意,更不要说引入这个例子带来的bug。

 说 了这么一些终于引入我今天想说的话题了,如何更好的学习和思考(当然更多是讨论成为一个更好的程序员,但仍然对其他的领域普遍适用)?当然我今天说的这些 仅仅适用于还在学校,或者像我这样毕业时间还不太长的程序员,可能有些主观,并不对所有人都合适。一方面我自认为自己不是很牛掰的程序员,另一方面自己所 学的,所经历的未免还是有些匮乏,如果看到的同学觉得我说的并无太多的营养,就当是在看一个灌水帖吧。
        下面开始我的一些思考:

         1 .征求专业人士的意见,但无论是征求谁的意见,都要有自己的思考。

      先举2个我大学时候负面的例子:第一件事情是我认识的第一个师兄,学生会副主席,各种社团的负责人,刚去大学我各方面都征求他的意见。有一次我听他说 java好,于是我开始看java方面的书,当然我当时并没意识到上机操作才是学习编程的最重要的手段。有一天我拿一本java书去问他,他说,我没学过 java啊,我当时就特无语,当时心里怎么想的记不太清楚了,只是从此不再看java书了。第二件事情是,大概是大2了有了转专业的机会,当时我已经学过 几门计算机的课程了,觉得学计算机蛮有意思的,想直接转去计算机,但是就找了我们辅导员,问问他的意见如何。他当时就说了,计算机专业的课程很枯燥,转了 干嘛(太无语了,这位牛掰的辅导员据说后来去了国务院,国务院果然慧眼识珠.....).后来当然我也没转去计算机专业,所有在之后工作中遇到关于算法, 设计模式,计算机组成原理诸如此类的知识我都是自己看书,查资料才略有了解。可想而知,当时如果我是碰到一个以编程见长的师兄,以善于引导学生做自己感兴 趣的良师,当时我范的错误有二,1.我没有去征求以编程见长的师兄或者老师的意见,2,我轻易的在重大的抉择上做决定。如果不是那样,我现在的知识体系将 更加的完善,可惜我时间不可能回到过去。

 

         所以在之后的日子中我都深刻记住了这2次教训,遇事自己仔细思考,不轻易听信别人的,而是自己仔细分析。但是往往很多人还在犯这个错误,很多人就亲信家 里,亲戚的的建议,进入IT这个行业。自己喜欢不喜欢不要紧,别人觉得好,就干下去。很多的人每天都在挣扎,所以他们都是既不成功也不快乐的那些程序员。 每个人都是最了解自己的,所以做决定,尤其是重大的决定的时候,再多的思考,再多的衡量都是必要的。

 

         2.多些正能量,少些抱怨,多些学习,少些浮躁。

 

        大学一年级开始关注csdn的论坛,我当时特喜欢看灌水区。灌水区真是名符其实,各种程序员(所谓的程序员)整天在抱怨工资低,加班多,我当时就觉得这个 行业太不好了,所以大学四年最后才决定从事这个行业。直到现在,我偶尔有时间去看看,还是很多这样的程序员,其实这是个悲剧。通常这些程序员会抱怨社会不 公平,制度不合理导致他们怀才不遇等等这些,除了抱怨我觉得他们很少去想自己的原因,自己是不是足够努力,是不是真的能为老板创造价值,你有没有给足够的 理由能让老板给你加薪或者升值,如果你自己是老板会不会解雇自己,老板会喜欢一个整天抱怨,不认真干活的程序员么?

        说到抱怨,其实很多人都应该有些不满,现实中存在各种问题,平庸的人只是抱怨,牛掰的人会去寻找解决或者规避的办法。如果我们都身在某国或者采用你你所希 望的*,社会的不同层次和社会的竞争还是存在的,恐怕这些喜欢抱怨不愿意实实在在干些事情的人还是处在这样的位置吧。套用一句话,彪悍的人生不需要解 释,为何不收起你的抱怨,做一些能改变现状的事情呢?

 

     3.热爱并坚持

       在我暂时还不太长的职业生涯中,我认识一些牛掰的程序员,也接触过很多很一般的程序员。我发现他们最大地差别是,水平一般的程序员不太喜欢编程,编程只 是他们谋生的  手段,生活和工作是完全分开的,甚至有时候工作还干点别的事情。我刚毕业的时候认识一个三年的女程序员,干了三年并不比我刚毕业强,在学习能力和对编程 的理解上比我差多了,薪水也只比我多那么一点。 牛掰的程序员都是很热爱编程,把它当做乐趣在做这件事情,生活中离不开编程,工作之余还在不管学习,讨论技术方面的心得。我有些同事编程十多年对写代码的 热爱还是一如从前,经常自觉学习新的技术,和人讨论技术心得。

       其实我觉得前者不是真正的程序员,他们不热爱编程,所以他们在技术上提升不快,做出的产品不是那么的好,当然他们的薪水和职位都不是那么高,久而久之, 他们和另一些提升快的程序员拉开差距,对程序员这个行业愈来愈不感兴趣,形成了一个死循环。一方面,真的热爱编程的人,则越来越得心应手,快乐的从事自己 喜欢的工作。(以上关于牛掰程序员和平庸的程序员的论断绝对适用,肯定存在一些天赋奇高或者特殊的牛人。)

       我说的很明白了,真的不喜欢编程的人从事这个行业是比较悲剧的,因为程序员经常加班,赶进度,不是那么喜欢编程的人没有兴趣支撑的人是无法适应这个工作的,所以如果你不喜欢编程,乘早选择你喜欢的行业,并坚持下来。

      4.坚持学习

       有一次我调试一个接口,搞了2天,很沮丧。当时一个工作了十多年的程序员(真正的资深,我非常佩服)跟我说,别灰心,继续学习,所有的行业都遵守一万小 时定理。等你的时间到了,你自然就了解了。这所谓的一万小时成就大师,道理很简单经过7-10的时间,成为一个专家。程序员是个需要不断的学习的行业,汇 编,通讯,硬件,app,大数据,脚本,高级语言等等这些每一个小的领域都非常深,都需要不断的积累,不断的学习。就我做的这一块而言,我总是感觉自己的 知识不太够用,经常要向别人请教,上网查资料,所以我经常在地铁上看一些书,周末也坚持学习,花了很多时间在编程上面,即便如此我还是觉得技术上不是那么 的自信(当然我逐渐的有了一些自信)。我周围的很多程序员也都是这样,会要花很多的时间在学习上面,关于具体技巧的,关于理论的,太多了。所以如果不能持 续的学习,无法成为大师。 

 

      5.我的一些学习的方法。

      1)最好的办法是看别人的代码,如果自己team中有很好的程序员,那是最好的,看完高手的代码,能学到不少的东西,学完你还能亲自去请教。2)关注牛掰 人的博客或者论坛,推荐刘未鹏,徐宥,tinyfool这些大牛的blog。3) 看一些经典的书籍,代码大全,head first,C programming language, C++ primer,算法导论等等这些。4)不断的反思,这一点我要多说几句。反思,包括我们在解决实际问题的过程中不断的思考更好的解决方法,总结失败教训或 者成功经验,也包括在和人的交往中自己处理不当的思考,人只有在不断的总结中才能成长,不然我们掉到同一个坑里,以前的种种失败和挫折就毫无意义了。

 

      6总结

       关于我最先提到关于要demo的那些同学,其实我觉得从一个人的博文中能得到某些启发就不错,然后结合自己的实际问题去分析,逐步的分解问题,解决问 题。这样你的解决问题的能力才会得到提高,即便你套用了某个例子暂时解决了一个问题,但总不能每次遇到问题都套用例子吧。其实有时候遇到麻烦问题的时候, 别人一个指点,或者在搜索引擎上找到一个关键的术语也许就是你解决问题的关键,等待别人完整的解决方案是不现实的,自己也失去了价值。我决定,以后我每次 分享的时候我会附上一个demo,但是我希望诸位同学能和我讨论而不是直接下载例子,这样才是正确的学习的方式。

(转自“彭碧的专栏”)如何更好的思考和学习

上一篇:hdu 4104 (math 问题)


下一篇:$releasever 不正确解析