程序员应该具备的基本素质
作为一个非科班的程序员,一直以来都是靠着兴趣来驱动自己,工作了很多年,在半国企呆过,体验过500强,感受过创业公司,也遇到过形形色色的程序员,但我总结了几点优秀程序员的一些特质(自认为自己还谈不上优秀,但一直在追求优秀的路上)
自我驱动
无论是基于兴趣还是其他原因,能够自我驱动去完成任务的程序员成长也是最快的。it行业是飞速变化的行业,需要不断学习才能保持竞争力,工作中遇到的一些同事,在业余时间能够自觉进行充电,补充工作职责之外的相关技术知识,拓宽自己的知识面,比方说,一个客户端开发工程师如果能够了解服务器方面、协议相关的一些知识那么对于整个产品的开发会有一个更全面的认识,当遇到问题的时候也能够从不同的角度进行分析。
反观有些程序员,仅仅把写代码变成一个赚钱的工具,平时没有自己的思考,技术也不去积累,慢慢的就与那些积极向上的人拉开了差距。
富有责任心
责任心体现在平时的工作当中,从一个人的工作态度就可以看出来。对显而易见的代码逻辑错误视而不见,现场遇到问题装聋作哑,工作交接含糊不清等等都是没有责任心的表现。个人以为,作为一名合格的程序员不管是做开发还是技术管理都要有责任心,开发程序要思维缜密、逻辑清晰,要考虑程序的扩展性和可维护性,不仅仅是实现功能就行,作为技术管理者责任其实更大,一方面要做好表率,起到引领作用,还要能够对开发人员进行技术指导等。
记得第一份工作的技术主管,到现在仍然心存感激。当时作为一个非科班的员工入职,对于什么多线程、网络编程之类的都是一头雾水,领导都给与了耐心指导和示范,在平时工作中的待人接物方面也给我起到了引领作用。这样的程序员,就是我们的学习榜样。
团队合作意识
说到团队合作意识,我想到了那个木桶理论,一个水桶能够盛多少水取决于那块短的板子,而不是最长的那根。一个团队也是,作为长的那根板子,要有意识能够多去学会承担,短的那个板子要能够意识到学会自我驱动,尽快追上团队的进度,这样一个木桶才能盛更多的水。
有这样一类程序员,总喜欢研究新语言、新技术,这本无可厚非,但是团队有团队的技术选型,不是个人想用什么就用什么,如果一味的以自我为中心,那么就是缺乏团队合作意识的表现,这样的人即便能力很强,也不能算是一名合格的程序员
全栈
全栈工程师现在很抢手,特别是近两年互联网创业浪潮汹涌,众多互联网创业公司需要这样的人才。个人以为,全栈不见得是熟悉多少种语言多少种框架,是要有一种意识能够去熟悉前后端技术、底层通信协议、系统运维等比较全面的东西,当然对于技术也不能蜻蜓点水,至少要精通一门编程语言,最好的实践就是能够一个人从前端到后端能够独立完成一个项目。