前两年,刚工作不久,业余时间很多,也没有太多的事情分散精力,就一门心思的把时间用在学习上。

   基本上每天都要看看博客园等技术网站,吸取最新的技术知识。然后就是看书,进行系统的学习。

由于自己的求知欲太强,总想学习新知识,基本上,看完一本书,就看下一本,一年下来,看了就几十本书吧。从编程语言到编译原理,从系统编程到系统内核,从面向对象到函数式编程,从机器间通信到多线程并发,从Web前端到大数据处理。所有这些基本上是工作上用到的知识,或者自己感兴趣的知识,或者属于未来的发展趋势。

    虽然自己涉猎颇多,但无奈还没有达到过目不忘的程度,貌似什么都懂,实际什么都不懂。到现在,曾经看过的书,已经忘了至少90%的内容,还有一部分,可能只知道个概念。好在我还有时间,通过这么多的涉猎,基本上确定了自己的发展方向,这也算唯一值得肯定的地方吧。


   我的这种做法,也算是一种典型吧,方法不当,学的再多,可能都变成了无用功。对于一般人来说,只看书,不实践,只能达到了解的程度,只有不断实践、总结、消化、吸收,才能真正掌握这些知识。

保持一个好的心态,切记心浮气躁、急功近利,停止疯狂的学习,总结也是一种进步。

 

    我们搞开发的为什么会感觉到累,可能就是因为没有锻炼身体,或者没有坚持锻炼身体

    坚持做一件事情,一个月、两个月,一年、两年,可能不算很难,那么坚持一辈子呢,有几个人能做到呢。

    正是由于坚持很难,所以当我们真正开始坚持做一件事情的时候,必定会有收获,坚持的时间越长,收获越多。坚持就是胜利!

      我们累是因为我们所从事的事情变数很多,人最恐惧未来,因为未来不可知,上至诸侯王下至编户百姓无一幸免,我们就活在这样变化无常的区域里面,紧张嘻嘻,正是这样,久而久之变得抑郁,神经衰弱,麻木不仁,懒得动,懒得说话……恶性循环。

 

    装b不是坏事,为了装逼你不得不提升自己,那些说别人装逼的人才是自甘堕落。

    在我们公司有buddy制度。每个新员工都会被分配给一个有经验的员工。老员工会在新员工6个月的试用期内给予各种各样的帮助。前几天我被分配到一个新buddy。在和他一起聊天的过程中,明显感觉到他有一些忧虑。我以前主要做的是c++,没做过java,怎么能够快速上手那?咱们这个办公室主要使用的是什么技术?”“如果换了项目组的话,使用的技术会不会变那?


    从这些问题上,我可以感到他对自己不熟悉的技术、新知识很敏感,究其原因就是对学习新技术自信心不足。我想很多人可能都有这样的心态,在学习新技术上有抵触心理或畏惧心理。我之前曾写过一篇文章叫做《走出你的舒适区》,里面讲到抱着自己熟悉的技术就是呆在舒适区中。如果学习新技术就会走出自己的舒适区,很多人都会感到不适应。这种不适应很大程度上是由于人对未知事物的恐惧引起来的。

            不要对自己不熟悉的技术心存恐惧

    我记得去年跳槽第一天上班,就被拉入了一个主要使用Java的项目组。而这之前我的Java经验为0。项目组里使用了Spring MVCSpring WebFlow等开发框架,使用了Mockitoconcordionselenium等测试框架,使用了Maven构建工具……太多完全没接触的技术和框架让我手足无措。对于一个呆惯了舒适区的人极不适应。其实那段时间是我成长最快的时候,三个月内我学习、吸收了大量的知识,可以抵得上我两年的学习量。有的时候就是很奇妙,给了你压力才知道你的潜力有多大。正是这段经历使我完全消除了对陌生技术的恐惧。无论是以后学HaskellRuby还是JavaScript,我都是一种轻松加愉快的心态。

                   如何学习新技术

     而了解和学习技术最快的方式是直接上其官方网站。一般官方网站都有简单的介绍和入门教程,能让你快速的建立其对这个技术的整体认识。另外还有详细的文档供你进阶。当然,如果要深入掌握的话还需要大量的实践经验才行,毕竟实践出真知嘛。另外这些官方网站十个有九个半都是英文的(谁让大部分的技术都是老外发明的),所以将英文练好还是很有必要的

 

    比如前段时间我在研究云计算,想学习下Chef-一个基础设施管理工具。第一步是访问其官网。从官网可以了解为什么要设计ChefChef解决了什么问题,进而了解了Chef的架构、实现策略,然后根据官网的基础教程走了一遍。短短两天就可以建立起对Chef的整体认识,甚至我还在办公室做了一次Chef知识的分享。

    什么叫稳定?稳定不是你在一个公司一呆就是10年,而是你今天从公司离职,明天就能找到新工作。对于没背景的屌丝而言,唯一能跟别人竞争的就是自己的实力。能他人所不能,就是自己实力的最好实践。而坚持学习则是保证自己竞争力的唯一方法。

 

    好了,就写这么多了。如何判断一个程序员真的具有N年工作经验,而不是1年工作经验重复使用了N年?一个好的办法就是和拿出一个以前的项目出来,看他都会做哪些改进

    对于工作多年的程序员来说,知识面、视野一定要广,这样才有竞争力。这靠的是平时的学习和积累,还要善于思考,如何能把手头的事情做得更好。