五千年(敝帚自珍)

主题:【求助】请教各位前辈,IT男如何发展 -- 呆猴莫叫

共:💬7 🌺19
全看分页树展 · 主题 跟帖
家园 【讨论】一些小经验,供参考

从你的收入来看,且假设你是刚入行不超过3年的新程序员,后续的建议以此为前提哈,假如有其他情况,我们再讨论。

coding其实是个手艺活,所谓手艺活的特点就是从入门一直到熟手的层次,要提升唯一的诀窍就是“无他,唯手熟尔”,具体到开发上,无非就是“多看”,“多写”,“多想”而已。对于3年开发经验以内的程序员来说,“多看”,“多写”其实是驱动自己“多想”的主要途径。

我们一般认为,程序员能力的提升主要体现在以下几个方面:

1、对复杂度处理能力的提升:表现在处理复杂度较高的模块时的设计水平(逻辑清晰程度、模块分解、复用性、可调试性等)、开发水平(主要体现在每千行Bug数,这个与模块本身复杂度有关,不好横向比,但是可以与同类模块做纵向比较)、调试水平(迅速定位问题、较为多样的调试手段);

2、对开发周期控制能力的提升:表现在可以较好的将一个复杂的开发任务分解为可执行的相对独立的一组小的开发任务;可以比较靠谱的评估指定开发任务所需时间,可以在约定的开发周期内高质量的完成开发工作;这部分能力决定了一个程序员是否可以被视为一个工程师,抑或仅仅是一个不靠谱的代码小子。

3、对计算机技术知识水平的提升:表现在对开发所需的技术知识的理解水平的提升,常见的方面包括:算法与数据结构、网络、操作系统、数据库等,这部分的能力往往决定一个程序员可以承载的模块的深度;

4、对所处行业理解的提升:你所参与的产品是如何解决用户问题的?在所在的行业中,哪些因素决定产品和企业的成功?这些因素中,哪些是受研发部门影响的?对这些信息的理解,可能会帮助你发现职业生涯中的关键机会;

这4个方面的优先级是从高到低排列的,可以从这几个方面来审视自己现在阶段最重点要加强的内容。

具体到可执行的做法,这里也有几个小建议,供参考:

1、做好手头的工作:按时高质量的完成手头的开发任务(提升方面1和2);在公司允许的范围尽量多学习前人的代码(方面1和4);努力承接更多更难的模块(1和2);有机会独立负责单一模块的时候,主动对模块的进度和结果负责(2);

2、在业余时间多看书(1、3),抽空参与开源项目。假如有自己感兴趣的技术,在工作中又没有机会实践,可以自己发起一些小的开源项目,多练习多分享;

3、有机会的话,多与公司内其他岗位的同事交流。多听产品、市场、营销的同事们是如何思考的,有助于提升自己的行业理解(4)。

关键词(Tags): #程序员 职业生涯
全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河