编程漫谈(十二):选择编程职业
选择编程开发作为职业对于不善交际的人是比较幸运的。
第一,编程不需要高精尖的科学学术背景和高大上的设备,而对逻辑分析思维和语言表达能力要求较高,需要深且广的计算知识体系和条理清晰的语言表达才能写出像样的不被同行骂的程序,能够持续理解和完善日益复杂的大型逻辑系统。编程行业所需的知识壁垒可以过滤80%的人类同行竞争,—— 让我安静滴做个写程序的魅男子吧!
第二,编程需要细致耐心的处事个性,多或少一个分号或逗号或括号就会让人盯着屏幕看花眼掉下若干截美发。初入编程行当的人很快就有体会,这会赶走一批耐性不佳的人。编程需要非常缜密的思维,考虑到各种正常、异常、组合场景下的复杂处理。在深入到软件开发三五年后就会意识到这一点。这时候,就会让人思考,自己究竟是否适合继续干这行 :)
第三,由于计算行业日新月异,编程需要持续地学习和应用新技能。当用新思路去解决旧问题时会发现许多技术工程挑战,而不是大量的体力活,如果存在很多体力活,说明要转换思路来做。比如写单测花时间,试着自动化生成单测,会迫使学习大量高级语言特性和编译器相关的知识才能做到,甚至会反过来优化程序的设计和实现方式;如果要清洗大量脏数据,试着去改进领域模型、数据存储设计和前端设计;当需求过多要加班时,不妨从整体上思考产品的设计以及用户的真实需要,从架构和模型上优化实现的通用和可扩展性,实现具有内在系统逻辑性的产品和容易复用可扩展的软件。这些都是智力挑战。
如果智力不够用,就需要大量体力和时间精力来补偿。而这些体力和时间精力本可以用于创造更强大自动化的系统。如果搬不动大石块,试着找一些支点去撬动它。这涉及到对事物原理的发现、理解和应用,而不是无章法的蛮力。
编程开发是一个智力中高度密集型的职业。智力泛指理解和应对信息变化的意识能力,并不限于专业知识技能的理解和掌握。编程开发需要保持脑力思考问题和双手敲键盘的持久活力,因此需要大量脑力性体力和一定的简单操作性体力,但不需要操作机器的复杂操作性体力和大量移动自身或物体的奔波性体力。编程开发越来越需要多人的协作,需要很多交流和协调,是60%的智力+40%的交流,并不是坐在屏幕前一天到晚敲键盘。这也比较接近我理想中的职业模型:64%的安静深研+36%的社会活动。
综上所述,编程是一个具有持续增长型智力壁垒的职业,可以自然地过滤90%的人类同行竞争,唯一的要求是,要喜欢和享受智力的挑战,能通过这个职业设置的智力考验,具备日益精深的计算功底和友好的交流技能,持续精进,才能长久地生存下去,享受这份职业带来的安宁和红利。事实上,我并不是非常擅长编程开发,与编程开发职业的契合度大约是80%,与人类异常极客黑客还存在不少差距。不过这已经很不错了。特别要注意的是,多注意身体的活力和健康,懂一点情商和社交,学一些人文,找一位看得顺眼的异性伴侣,生一个聪明的小宝宝,再加上一份契合度88%的职业,人生从此幸福啦!夫复何求!
关于职业的思考:
知命,即是指精于自己所喜爱和擅长的事情,并将两者融合。 潜心学习与创作。
勿为纷扰世界和技术潮流所迷,弄不懂分布式,就别去管区块链。勿追逐,勿盲从。
粗浅的了解没有意义;运用擅长做出实事才有意义。
我选择编程职业的理由:
1. 个性是爱安静自由,探索事物运行机理(更胜于好动与交流)
2. 精练流畅的编程表达能力,可充分利用已有的技能和经验
3. 有挑战、有趣、有意义
4. 有职业门槛
5. 可以与最先进的技术相结合
6. 移动互联网智能时代需要能够有效处理海量数据的设计与算法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了