1. 梳理需求到落地开发的能力不同,初级程序员缺乏经验,只能看到需求的表面,没有思考,导致落地开发之后客户不满意,频频修改优化,导致开发和客户都不满意。高级程序员,能跟客户沟通需求的时候理解客户真实的意图,并提出不合理以及,提出更贴近客户需求,开发又很容易落地实现的建议,最终减少需求修改,提高效率,客户和开发都满意。
2. 项目整体梳理、推进的能力不同。初级程序员缺乏整体规划的能力,一般只会关注一小点,项目推进杂乱无章,自己对各个功能点也一团乱麻。高级程序员能够清晰梳理,形成文档,梳理出功能点,待解决的问题,待协调的问题,已解决的问题,功能详细落地实现的大概逻辑,在项目进行之初就把需要协调的问题上报给客户或领导,避免开发过程中才发现问题,然后进度卡住的现象。项目开发过程中对整个项目进程有很清晰的把控。
3. 开发效率的问题。初级程序员针对一个功能点开发,可能会各种尝试,解决各种问题,各种百度google。高级程序员由于经验、逻辑思维的优势,甚至写的的代码都不需要测试,最终初级程序员开发一个功能需要3天,高级程序员可能1天就够了。
4. 沟通效率的不同。初级程序员开发过程中,经常理解不到点,不管是开发合作伙伴沟通,客户沟通,上下级沟通,早知道沟通是很浪费时间的事情。高级程序员一般只有真正无法避免的情况才会沟通,一般他找你,那百分之80是你那边存在的问题导致无法进展。最终给合作伙伴、客户、领导一种很省心的感觉。
5. 代码质量的不同,初级程序员的代码缺乏清晰的风格,没有代码规范。代码他人无法清晰阅读,后期各类统一整合比较难,需求修改也比较难。高级程序员的代码则正好相反。
6. 代码阅读能力不同,接受他人的代码,或者修改一个非自己写的功能,初级程序员可能需要三四天,高级程序员看惯了各类源码,加上经验丰富,可能半天就够了,尽管这个代码很不规范。
7. 解决复杂问题的能力不同。初级程序员遇到奇怪的问题,只会百度而且百度效率底下,一旦折腾了很久之后依然解决不了只能放弃或者退而求其次想其他更笨的方法回避这个问题。高级程序员不管是从源码的层面追求问题的本质的能力,还是借住网络搜寻问题答案的能力都不是初级程序员可比的。