`

研发工程师的学习路线和成长之路

 
阅读更多

 

        时间过得真快,一转眼,在研发这条路上走了都十多年了(1997-2013),回头看的时候,真是感慨多多啊,写下面的文字,也是给有志于软件产品研发的新从业者,起到一个参考作用。如果能让他们少走一些弯路,就善莫大焉。

 

     这里说的学习路线,就不再包括在学校里学的计算机方面的课程了,当然,这些课程(例如操作系统、数据结构、编译原理、编程语言等等)都是很重要的。但是,它们的重要性不一定你现在就能体会出来。这里想说到的一句话就是千万不要因为暂时用不上而忽视这些基础

 

   其实开发是一个很累人的行当,辛苦,更辛苦,是这个行业的常态。如果不能吃苦,活着对开发没有兴趣,其实没有必要勉强自己,没有浓厚的兴趣,别说之后的加班再加班了,就学习期间,能否守在计算机面前,没日没夜的,只为测试一下自己新学到的知识和技术,就成问题。

 

 说一说我认为研发工程师应该怎么学习吧。首先要学通C语言。不管此后的工作是否要用到C做开发,都应该花上一段专门的时间学习,弄懂C语言的语法、基本原理和各种表述等等。

 

开发工作本质上说就是让计算机来完成业务,两个关联最紧密的事务就是“业务”和“计算机”,而学习C语言,就是为了清楚,计算机是按照什么逻辑在工作,懂了这个,才能把自己所了解的业务内容,“讲”给计算机。从这个角度上说,学C语言,就是学计算机逻辑。

 

尤其是,C语言里,最困难,也最体现C语言精华的“指针”,如果不学通,那么,基本上等于没有学,呵呵,这是一孔之见:)。

 

第二,带着清晰的目的来编程。最好是有开发商用软件(项目或产品)的任务要求自己完成,在其中,会涉及很多的技术,甚至不止是一门语言(例如B/S系统开发就至少牵涉数据库的知识、Java、Html、JavaScript)。

 

在工作中学习最大的好处就是有压力才有动力,有明确的目标才能保证自己学习的知识都是有价值和意义的。通常,工作中进度和时间表的压力,会促使人释放出自己的潜能,激发自己学习的动力,这和自己捧本书啃书本有着巨大的区别(在我之前的经历中,捧着书本看通常都会犯困。。。。)。

 

在商业开发工作中学习的一个很大的好处,就是所有商业开发的团队,对规范性(例如编码规范)都有严格的要求,一开始就规规矩矩的做,对一个研发工程师来讲非常有意义,培养出好的工作习惯,以后受益无穷。

 

 

第三  要勇于承担有挑战性的工作,也不要忽视平淡的工作。这一条是上面一条的一个延伸。千万不要遇事向后退,和上面的道理一样,给自己压力,挤压自己,这是促进自己成长最好的途径。而平淡无奇的工作,也是磨练自己耐性的最好方法。

 

第四  经常回过头来看一看基础的东西。这和之前我的说法一致,在学校学习时,可能觉得书本上说得东西都是理论和教条,离实用很远,但是工作一阵就会有一些不同的感受,你会发现,实际工作中的某些东西实际上在书本上某章节讲到。所以工作一阵子,回来再仔细看一遍基础的一些书,例如学校的计算机教材,比如学Java,看看《Java 编程思想》,《Java 虚拟机规范》,都会发现很多之前没有发现的东西。

 

第五  关注自己沟通能力的提高。这是进阶话题。现代软件开发,不是个人英雄时代了,你无法避免和别人的沟通。作为一个开发人员,你要从别人那里获取到需求,不善于沟通的人,经常不能从别人那里获得全部的需求,或者得到的需求有很多谬误,这样的开发过程,因为偏离了目标,会带来工作大的偏差;作为开发人员,还会经常需要将自己的工作,表述给别人,包括给别人开发接口,或者工作中的配合,这在软件工程中叫做“可持续性”,因为一个产品,可能第一版、第二版会不断延续,中间可能会换几拨人来设计开发;一个项目,可能有一期、二期,中间也很难说一直由哪些人在做。后面的人看不懂前边人的东西,会造成工作上的弯路和浪费。

 

 

第六 文档能力。一是需要能看懂别人的文档;二是自己要能把自己的工作用文档清楚描述出来。

 

第七 职业素养的提高。职业素养的提高包含了很多方面,不单是掌握编程语言和数据库,通晓设计,更多的是,冷静对待任务,知道应该用哪些方法应对,出现问题勇于承当,不惊慌失措,不满怀愤怨,找到合适的办法解决,等等,不一而足。这些,没有固定的成法可依,能够在这里说的就是,不管在工作中遇到什么样的事情,预期的还是非预期的,都要平心静气应对,困难是成长的阶梯,职业素养是磨练出来的。

 

 

 

 

说到这里,做过小结。其实简单的说,就是 学习-->工作-->总结这样的一个过程不断迭代。

 

 

推荐几本书:

 

《深入理解计算机系统》

《C语言程序设计(谭浩强)》

<Thinking in C++》

《Java虚拟机规范》

《Java编程语言》

《Thinking in Java》

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics