技术是一条不归路,要忍受寂寞和孤独。你所要做的就是和代码一起跳舞。
什么都要靠自学
多数人入行是学校选的专业是计算机或计算机相关,少数人是几个月的速成培训班。但是归结一条,想要入行,什么都要靠自学。我是二本院校出身,深切感受学校的教学方式就是理论化,纯理论,到毕业了我都不知道一个产品是怎么做出来的,或者一个完整的项目程序是什么样子的。虽然我自己学习不怎么认真,但是我身边的同学基本都和我一样,所以我相信国内的大部分大学都是这样的模式,软硬件、师资等都限制学校给学生提供一个良好的学习和实践环境。不过幸运的是,学校学到了理论,了解了计算机的工作原理,对今后的自学过程是有很大帮助的。对于仅仅学习实现方法、语言语法的培训班学生来说,他们确实可以做出实实在在的东西,但是也只能到此了,如果你问他们这个程序在内存内里按0-1代码是怎么运行的,可能就会有些迷茫。基础理论是他们的短板,这也是需要认真学习的地方。
那为什么要自学?技术日新月异,既然入了行,不学?行么!?
学习要有方法
对于学习,每个人都有自己的一套方法。最近借了一本书叫《学习之道》,没看完。美国的一位国际象棋大师写的,我看到的这本是译本,比较晦涩,不便阅读。有人愿意去研究和写这样一本书,说明学习的方法是极其重要的。我也是一样的,过去我也不会学习,现在我思考这个问题,怎样才能用最短的时间学到最多的知识。这就跟做生意一样,花最少的成本赚最多的钱。利益最大化,是我们每个人一生最求的。
学习技术,最重要的是实践,所谓实践中出真知。做项目,不停的写代码是每一位初级的工程师必须经历的过程。那在这样的过程中,用什么方法能快速的提高能力,这就是一个非常有价值的事情。人生这么短暂,时间何其宝贵。在写的过程中,寻求最底层的实现原理,每一步是如何运作和执行将是非常有意义的工作。在此过程中,肯定会有很多理论的知识不理解,这时候桌子上摆得书就有发挥的余地了。在不停的写,不停的遇到问题,不停的查阅资料,不停的解决问题的过程中,进步是明显的。另外,研究别人开源的代码,是提高代码能力,拓展思维,理解深层次原理的又一个有效的手段。
可能在工作的过程中,没有多余的时间来供你这样的学习,这就要看自己的意愿了,能力的提高不是想想就能来的。
有爱才有动力
我在大学毕业的时候是6月份,当时已经考上研究生。想找一份软件的实习,但是我不知道我会啥,简历也做的很扯淡。所以就这么懵懵懂懂的就开始投,那时候也不知道所谓的大公司都会有实习招聘,就在51,智联上投那些小单位,但是小单位都是要能干活的人,无限打击之后去超市上班了。在超市干了两个月,混的相当熟,跟那些大姐大妈们。到8月份就没去了,因为我下决心,我要自学。为什么? 因为我想学了。
有爱,才有动力。其实所有的事情都一样,你喜欢做,才愿意花时间花精力。找同学要了一套Java的视频培训资料,开始没日没夜的看,因为对于应用完全不懂。记得之前去一个小单位面试,经理让我写html表单,可是我不会!到了研究生以后,我还在认真的看视频,练习简单的代码,认真上课。其实我的方法是不好的,多看少练,对于能力的提升着实很慢。这又体现了学习方法的重要性了。到公司上班以后,对于技术更是加班加点的学。再加上项目需要,又没有什么有经验的人可以请教,自己摸索,不停的抓狂,最后才略有小成。
技术是很枯燥的,只有爱上它的人才能学的好,虽然我现在也很爱它,但是不是我的最爱了。
Hack精神
做技术,要有Hack精神,唯此,你才能成为技术大咖。如果你对技术没有铁一般的钻研精神,请发现自己的爱好,往非技术岗位转。比如我,毅然放弃技术,转向产品。其实我技术也做的挺好,可是我没有钻研的精神,又对产品极感兴趣。就软件或者互联网公司来说,非技术岗也有很多选择,项目经理,商务,运营等,都可以作为选择。
再回到Hack,看到一篇阿里内推的帖子,里面对技术岗的部分要求:ACM大赛奖,Hack大赛奖,软件比赛奖,GitHub开源项目等,这样的要求典型的是一个Hacker。在业余有空的时候我回去参加一些行业会议或者沙龙,虽然比较水,但是也能学到一些东西。有一次就是去参加Html5的个Hack比赛,写测试用例。我跟朋友去蹭了两顿自助餐,很好吃的。多了解最新的技术,流行的不流行的技术。对于非常流行的技术而又有可能对工作有用的话,那就不仅是了解,而是要学习,并探索应用到工作的可能性。另外就是多参加开源项目,有能力的话,可以自己组织开源项目,国内普遍对开源社区的建设不怎么关注。所以最牛逼的技术都是在国外产生而传人国内,标准也是国外的来定制。开源的好处这里不多述,多数公司招聘技术牛人,都会看参加或者发起的开源项目的数量,规模,实用性等,这是一种精神和能力的体现。有机会的话,参加Hack大赛,如果有幸获奖,那好处是不言而喻的。
当然,最重要的还是自己的能力,想要做到大咖,Hack精神是必要条件。
坚持分享
在学习技术的过程中,很多地方有很多问题不会解决,就要上网去查找资料。这时候你就会发现,绝大部分的问题都是别人遇到并解决之后分享出来的。每每看到一个技术博客,无不钦佩,因为他们是牛人,他们愿意分享经验。
为什么要分享?一方面记录自己遇到的问题,可能以后还会遇到,也帮助复习相关内容和知识,甚至学习更多新的知识。写出去的东西,要有价值,这对自己本身就是一种压力,压力之下必然会想写出更好的东西,这是一个良性循环的过程。如同我现在写的这篇文章,这是我写了十几篇之后重新改版之后写的第一篇,我不知道这样好不好,但是我认为价值在提高。另外一方面,分享可以结交同行,为本就低调寂寞的生活增添一丝光彩。这是一个传播的过程,传播自己的影响力,如果分享的内容足够好,那你可能会成为一个局部知名的任务,对于未来的职业发展,是极其有利的。再者,分享让世界更美好。在解决自己问题的同时,为他人提供了自己的解决方案,虽然可能别人跟你遇到的不是一模一样的问题,但是在难题面前,哪怕是一点思路也是一种恩赐。
上苍是公平的,愿意付出才能得到回报,虽然是无形中的。
反思
反思对生活、工作都一样,阶段性的反思,能发现自己的问题,在未来的道路上走的更加顺畅和自由。
看到一句话:当你发现已经晚了时候,恰恰是最合适的时候。