程序员的素养
程序员的核心职责
1.编码
程序员的首要任务是什么,自然是敲代码完成自己的编程任务。如果一个人从来都不编写代码,则就不能称为程序员。有些人的代码写的很漂亮,有些人则写的的让人难以直视; 有些人可能写的简单干练,有些人写的可能马马虎虎;
2.编码设计
程序员不仅仅要每天写代码,同时每时每刻也在设计。我们虽然不是架构师,但是我们几乎在写每行代码的时候都在做代码决策,小到变量的命名,大到类的职责分析和算法的设 计, 可以说设计本身就是编码的一部分,或者说设计是编码的核心。虽然每个程序员设计的工作量不同,但是每个人必然逃脱不了设计。
3.自测编码
自测编码与编码和编码设计一样,从未测试过自己代码的人,就不能称为程序员。有些人只是编码完成后简单的进行功能测试,有的人做的全面细致,将测试纳入自己的工作任务 中,甚至有的使用测试驱动自己的开发过程。
程序员的附加竞争力
1.工作的广度
工作的广度就是程序员的工作覆盖的领域,它展示了程序员从一个领域迁移到另外一个领域的能力,即程序员的综合能力,这需要一个长期渐进的积累过程。很多程序员在特定领 域工作一段时间后,需要快速的迁移到另外一个领域,并且需要维护以前领域的代码,有的人不仅需要同时兼顾多个领域,还需要维护其他人遗留的其他领域的代码。
2.积极主动
发现工作中的问题并自己积极主动的进行解决,并根据实际情况需求帮助;
积极主动反馈工作情况;
积极主动献言献策;
3.自我解决问题的能力
4.自学能力
主动学习工作相关的技能;
主动了解相关的新技术的发展动向;
5.创新能力
善于归纳总结,能够独立思考,可以提出独到的见解或解决方案;
6.应对压力和逆境的能力
程序员也需要处理外部或者心理压力,既有面对客户现场问题的束手无策,也项目接近尾声急于上线的心理煎熬。
程序员的团队互动竞争力
1.理解和沟通能力
能够清晰准确的表达自己的观点;
能够准确的领会其他人的观点;
2.执行能力
清晰了解自己的项目角色定位和项目的大局,能够按照预定的方向完成自己的任务;
3.主动帮助他人
协助团队其他成员解决工作中遇到的难题或者bug;
为团队其他成员提供可选的解决方案;
积极主动乐于分享自己的心得经验;
4.领导能力
帮助团队其他成员分析问题的本质,指出解决问题的可能路径;
指导并激励团队成员;