获得徽章 5
- 十年经验告诉我,至少有两个方向的积淀可以成为程序员的护城河。
其一必然是技术。比如,C++ 程序员技术上的护城河,可以是对 C++ 标准的深入理解;可以是对 CPU、内存序以及任务并发的了然于心;还可以是对网络安全以及软件性能的独到见解。这些相对底层的知识和“技能”可能会被认为只能算是程序员的“基操”。是的,对于科班出身的程序员,以上内容可能在大学前三年就捣鼓得清清楚楚。然而尽管是在大厂,我面试过的应聘者或合作过的同事,不少人在这些基础问题的认识上都非常含糊,知其然而并不知其所以然。所谓“熟练掌握 C++”,甚至都没法独立完成网络库的自动化测试代码... 所以,我认为基础和底层的知识能够构筑起程序员夯实的根基,再配合一定的编码水平以及架构设计能力,大有可为。
其二是软实力,比如良好的沟通能力、需求理解能力、产品能力等等,会比单纯技术上的牛逼更加重要。举几个反例:前期的需求理解没到位,会导致团队几个月的开发成果并不是客户想要的东西(而尽管用了很牛逼的技术...);在对接上下游时的含糊,可能会导致联调中反复出现各种问题而延误交付时间点;初期缺乏审慎考虑的 API 设计,在后续出现不兼容变更时遭到客户大量投诉(因为需要重新适配不兼容的 API)
虽然上面提到技术和软实力都是程序员的护城河,但随着工作经验增长,后者的重要性会越来越大。单纯拥有拔尖的技术,可以把一个技术点做得很好;但还需要具备多方面的软实力,才能真正做成一件事。展开12
![[给力]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_129.0b59244.png)
![[送心]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_56.5777828.png)