程序员的三门课

于君泽 李伟山 张洪亮 彭首長 刘朋
作者简介 图片 于君泽 某互联网公司技术专家,在分布式系统架构设计、高并发系统设计、领域建模、研发管理、内建质量等方面有较多心得,乐于交流和分享,普创立技术社群“中生代技术”。 维护技术公众号“技术琐话”。 图片: 技术琐活 图片 李伟山 现任某人工智能公司技术总监,江湖人称“山哥”,在分布式系统架构设计、高并发系统设计、系统稳定性保障等方面积累了丰富的实践经验,擅于利用数据分析解决实际问题,对新技术有浓厚的兴趣,乐于分享。 个人技术公众号:技术方舟。 图片 写书、投稿、市场宣传等事宜可联系虾米编辑 邮箱;zhanggx@phei.com.cn 微信:zgx228 推荐序1 世界需要什么样的程序员 不想当工程师的程序员不是好民工。会编程不代表会工作,工程能力包含软硬技能,面向的是实际应用。从程序员变为工程师,得先“入门”,然后才是“上道”,从而成为“工型人才”。有人工作几年还没入门,只会简单开发;有人开发技能娴熟,却找不到进一步成长的路径,陷入迷茫之中;更有不少人自诩为IT精英,却不了解行业格局、发展趋势,很快就遇到职业发展瓶颈,蹉跎了岁月,虚度了青春。 在我看来,好的程序员应该是“工型人才”。所谓“工型”,是指从下到上的能力提升过程。具体来说,就是先要具备完成完整应用的能力,包括:线上运维,成为熟手,这是下面的一横;在某些领域足够深入,成为高手,这是中间的一竖;在达到更高的水平之后,兼通很多领域,比如业务、产品、项目管理、测试、运维、团队组织,成为驱动者和领导者,这是上面的一横。 每个人的成长都是不断打怪升级的过程,既要掌握技术和工具,又要学习方法和理论、积累实战经验,更要思考和沉淀。先进技术只是工具,最终目标是解决问题。经验丰富的工程师就像MMA(Mixed Martial Arts,综合格斗)高手,精通综合技巧,活学活用,不拘泥于流派。在勇猛、精进之外,踏实、…