首页 > 代码库 > 全栈工程师

全栈工程师

关键开发技能(硬实力)


一、Git/GitHub,必须掌握如何使用Git来掌握和分享你的代码。Git作为关键技能的第一条,是因为它不仅仅是一个代码管理工具,更是一种推荐的工作方式。它使你能在任何地方进行开发,高效地管理任何大小的项目,通过Git还能与其他团队成员进行分布式工作,大大提升工作效率。


二、至少一门编程语音,JAVA、PHP、C#、Python、Ruby、Perl等,因为大多数核心业务处理都需要这门语言来写。不但要掌握这门语言的语法,还需要非常熟透如何基于这门语言进行项目的架构、设计、实现以及测试。比如Java,你需要掌握面向对象的设计和开发,设计模式的运用,基于J2EE各个组件的开发等等。


三、运用开发框架和第三方库,流行的开发语言,一般都伴有出色的开发框架,比如JAVA的Spring、MyBatis、Hibernate,Python的Django,PHP的thinkphp、yin,nodeJs的expres等。熟练使用这些开发框架或第三方库能够避免重复发明轮子,是对产品或项目在质量与安全方面的最有效的保障。


四、前端技术,一个产品除了实现所需的功能之外,是否好用(用户体验)也正在成为评判一个产品是否成功的重要标准。至少需要掌握HTML5、CSS3、JavaScript等基本前端技术,同时进一步学习JQuery、LESS、SASS、AngularJS或REACT等前端框架或第三方库。


五、数据库与缓存,作为全栈工程师,至少需要掌握一到两个数据库,并知道怎样与数据库进行交互。目前流行的数据库主要有MySQL、MongoDB、Redis、Oracle、SQLServer等。MongoDB作为文档型数据库,在互联网产品中正被越来越多地使用,对于规模稍大的项目,仍推荐使用MySQL或商用的Oracle作为后端数据库。而Redis这样的内存数据库则可以用于缓存,以提升系统的性能。


六、基本设计能力,一些软件工程师的产品设计太差,开发者往往没有意识到问题的存在,比如色彩不一致,排版凌乱,不恰当的图标等。建议要掌握的基本设计能力,并不需要像专业设计师那样能够P出神图、制件奇妙的视频效果等,但需要掌握最基本的UI设计原则,如色彩的搭配,基本的排版,并具备良好的审美能力,和一些基本UI设计能力。
在掌握这些核心技能之后,可以根据自己的兴趣与发展方向,学习其它方面的技术。比如,对数据处理感兴趣,那么可以学习大数据方面的技术。如果对移动互联网更感兴趣,那么可以学习Swift,开发ios应用。


附加技能(软实力)


一、沟通,你总需要与同事、干系人或是客户进行沟通。成功的沟通往往是获得有效需求,与建立团队信心的第一步。在项目的进行过程中,你更需要通过有效的沟通去确定方案,消除误解,与项目成员协同前进。良好的沟通能力将使你在团队中更具有影响力,收到更多尊重和关注。


二、问题解决能力,全栈工程师首先是一名工程师,必须掌握工程化的方法解决遇到的各种问题。职业生涯中的几乎所有亮点,都与解决问题相关,大到提供整个项目的架构方案,小到以最快的速度解决生产问题等。其实有很多提高问题解决能力的方法,但没有一种比实践更有效。优秀的工程师,往往能够凭借直觉以最短时间的时间给出正确的解决方案,在这背后需要经过大量实践积累而来的经验。


三、时间管理,作为全栈工程师,可能会被安排同时在不同的项目中承担不同的角色。需要合理地分配时间,保证所有的工作都能按时交付。同样在业余时间,还需要花时间阅读和学习,同时可能还会有自己的Side Project。因此合理进行时间分配,并对一些关键任务,进行计划是很重要的。这或许会带来一些压力,但这反而会激发自身的创造力,并能让一切有条不紊地进行。


四、好奇心,对从事的任何工作都抱有好奇心,并愿意不断学习和改善是那些优秀工程师的共同特性。时常会有人发问,做计算机这一行一直会有新的东西产生,要去不断学习,是不是很累?对于将持续学习作为一种生活习惯的人来说,学习新东西并不会成为一种负担,反而是一种乐趣。


五、领导力,优秀的全栈工程师往往会被赋予技术Leader甚至项目管理者的角色。成为管理者并不是让你去支配他人,或让其他人替你做事。管理者需要理解你的团队成员的长处与不足,并知道如何以服务的态度使团队获得最大化的产出。一些非常优秀的工程师,当他们被安排去管理团队时,他们是排斥的,他们往往更愿意独自工作。但是,成为管理者,将会使人更加睿智、可靠和值得他人依赖,也会对个人未来的职业生涯带来极大的益处。因为,当机会到来进,请将它视为挑战,不要排斥它。

有经验的技术领导者在招聘时,往往会同时考察应聘者技术能力与上述附加技能,而对于初级程序员的招聘来说,那些附加技能往往更被优秀的技术公司所看重。开发技能是你的硬实力,而附加技能则可心看作是你的软实力,只有同时具备这两方面的技能,才能够成为一名优秀的全栈工程师。


优秀的全栈工程师需要走出去


一、参加技术大会,InfoQ、CSDN、GITC、优设、TED等网站都会定期举办各类技术大会。在这些大会上,你不仅能够能到技术大咖们带来的各自领域最佳技术实践,而且能认识很多行业内的朋友。这对开拓思路,扩大技术社交圈都很有帮助。因为,如果公司没有安排你去参加这些技术大会的话,那就自己买票参加,作为对自己的一种投资吧。
二、作公开演讲,全栈工程师并不需要是一个公开演讲者,但作为团队的核心成员,他一定需要在团队内部做技术、管理等方面的进行演讲。如果你是一个乐于分享的技术达人,那么可以尝试录制个个课程(视频或音频),并在慕课、网易课堂、优酷或像荔枝、喜马拉雅等各种媒体分享自己的技能和知识,不要因为自己并不是专家就不愿尝试。用心制作的内容,不但能够稳固相关的技术,而且会获得大家的认可,并收获一大批粉丝。
三、个人博客,每天进步一点点,一年以后便会获得质的飞跃。优秀的全栈工程师懂得如何进行知识的积累,而技术博客就是一个很好的方式,将自己平时的实践、思考记录下来,配以tag标签方便日后的回顾。最有意思的是,当在不断记录和更新博客的时间,还能通过博客认识世界各地的程序员。
四、参加线下活动,与以前程序员总是宅在家里不同,现在的年经程序员们更愿意分享和交流。很多网站也会组织不同技术主题的线下活动,在这些活动中可以听到一些技术大牛人的分享,还可以拓展的人脉。
全栈工程师决不是一夜练成的,需要打好技术基础,强化核心技能,并持续学习。终有一天将体会到自由运用技术,开发出优秀产品所带来的乐趣。

全栈工程师