做程序员有前途么? 当今社会, 我还要不要做程序员?
- 背景
- 本文成于2023年, 基于当前的社会形势, 以及笔者自己的工作经验而成.
- 笔者的职业是程序员, 有很多人在考虑要不要做程序员, 公司也有很多程序员, 就连程序员自己也会考虑: “程序员到底有没有前途, 要不要转行, 以后怎么发展, 遇到中年危机怎么办” 之类的问题.
- 仅以此篇, 简单记录下我的看法, 自我勉励, 也给他人一个参考.
- 点题
- 本文标题中有2个问题, 笔者以为, 两个问题要分开考虑, 因为即使程序员有前途, 也不意味着我们就应该成为程序员, 不是人人都适合某一个特定职业! 况且追赶热门并不意味着一定能赶上, 仍然是千军万马过独木桥的格局! 反之: 即使程序员没有前途, 也不意味着我们不应该做程序员, 取决于有没有更好的选择, 因时而变, 因势而变, 因己而变, 立足每个人的具体情况具体分析, 做出适合自己的决策.
- 这两个问题, 前者唯物, 后者唯心. 前者是对现实形势, 行业特征, 经济政治, 社会发展进程等方面的分析和考虑, 更贴近于唯物主义. 而后者, 则完全取决于用户自己的性格, 家庭背景, 社会关系, 知识/技能体系, 兴趣爱好, 心情好坏(千金难买我愿意)等因素, 更贴近唯心主义.
- 唯物分析
- 程序员是干什么的
- 一言以概之: 程序员是给机器设计指令的, 称之为程序设计人员. 程序就是给机器的指令, 意思是让机器按照你的指令去完成你交代的任务.
- 扩展一点看: 现实业务千变万化, 要落实为有效的机器指令, 有的项目非常复杂, 需要成千上万人, 工作好几年都不一定能成功. 为了应对这个复杂性, 提高成功率, 诞生了软件工程. 因此, 程序员也被称为软件工程师. 用工程化手段来推进项目进度, 确保项目质量.
- 程序员有前途么
- 有!
- 依据如下:
- 社会发展进程
- 已然经历了: 原始社会 > 农业社会 > 工业化社会 > 信息化社会 > 智能化社会. 信息化/智能化的推进落实, 程序员群体是主力大军之一. 因此, 程序员被网络戏称为码农, 当今时代的程序员犹如古代农业社会的农民, 专门生产社会所需的指令代码, 不可或缺, 短时间内不会成为夕阳行业, 不过虽则行业越来越成熟, 竞争会加剧, 素质要求会越来越高.
- 经济政治形势
- 如今全球都在进行科技竞赛, 各国政府重视科技发展, 政策大力扶持科技创新, 记得小时候政治课本上都写着”科教兴国”. 近年来的科技战争愈演愈烈, 中兴/华为等制裁事件犹在眼前, 科技战犹如领土主权战争, 生死攸关, 其中, 程序员群体还是主力大军之一(软硬件协同, 程序员属于软件部分).
- 行业形势
- 农业逐渐向大规模农场聚集, 男耕女织的家庭农业社会荡然无存. 工业很发达, 需要大量各工种的工人, 但如今工业也高度依赖信息化产业, 正如前几年流行的”互联网+”, “AI+”, “无纸化”, “自动化”战略, 程序员群体是信息化产业主力大军之一, 有一定的战略纵深. 此外: 像华为, 阿里, 腾讯, 百度, 小米. 苹果, 谷歌, 微软, 甲骨文, 特斯拉等科技企业如日中天, 耳熟能详, 各种科技创新公司如雨后春笋, 琳琅满目, 程序员群体也是这些企业里的主力大军之一.
- 程序员职业生涯
- 技术线: 初级程序员/测试员(俗称码农) > 中级 > 高级 > 架构师(初/中/高) > (甚至可以走软硬件协同) > 技术经理/总监 > CTO(首席技术官)/CIO(首席信息官) > CEO(首席执行官).
- 管理线: 程序员/测试员 > 项目组长 > 项目经理/产品经理 > 部门经理 > 董事会成员/CEO
- 据说, 雷军, 马化腾, 李彦宏, 周鸿祎, 张一鸣, 丁磊, 史玉柱, 张小龙等人, 都是做程序员出道的. 当上CEO赢娶那啥虽是一句戏言, 但也说明这个行当是具有长远发展的可行性的!
- 程序员所需的基本素养
- 数学基础, 不能一看到数学就头疼
- 英语基础, 不能一看到英语就头疼
- 计算机/信息技术/数据结构与算法/操作系统/编译原理/网络技术, 软件工程方面的知识
- 较强/缜密的逻辑思维能力, 洞察力, 想象力, 团队协作能力, 学习(自我提升)能力
- 从善如流: 纳谏能力, 要能广泛吸取其它优秀可用的东西, 不能闭门造车, 盲目自大
- 坚持自我: 要有主见, 知道哪些适合借鉴采纳, 哪些不适合. 众多方案各有优劣要能够从容选择, 果敢实践. 外界干扰诱惑众多, 要有我行我素的气魄.(这一条看似与上一条相反, 实则不然, 阴阳相辅, 缺一不可)
- 要做好程序员的话, 综合素质要求还挺高.
- 其它能力欢迎补充
- 唯心分析
- 性格
- 要偏静, 或动静结合, 偏动的话恐怕不太适合. 有的人坐不住, 一会儿不找人热闹热闹就浑身不自在, 就算呆在这里也身在曹营心在汉, 这种性格不适合. 程序员经常需要长时间沉静下来研究方案, 排查问题. 要能够与机器打交道.
- 要坐而言不如起而行. 要勇于实践/探索, 敢于尝试, 敢于犯错, 敢于担责, 对新技术新方案感兴趣, 乐于尝试.
- 要具备主动性. 那种别人推一下走一步, 自己不会发现战机并发动战斗, 拿下胜利的也不太合适.
- 要能开放协作, 尊重科学规律和现象. 有的人疑神疑鬼, 又不去设计具体方案来排查落实, 只顾着胡思乱想, 甩锅推责, 错误都是别人的, 功劳都是自己的. 遇到问题自己闷着, 不知道/不愿意汇报的, 新的协作方案变更不愿意优化不愿意拥抱变化一根筋的, 这些类型不适合. 要能够与人打交道.
- 要有主见. 虽然甩锅推责不可取, 但要能机敏的判别责任属于谁的, 谁对谁错要能判断, 不怕得罪人, 不做背锅侠, 有的人你不怼得ta无言以对ta就得寸进尺. 技术上更需要有主见, 否则浩如烟海的技术栈就能耗尽人的心力, 弱水三千独取一瓢.
- 以上只是笔者个人经验之谈, 也不是绝对的, 只是要成为程序员并有所建树最好具备这些特征.
- 其它性格欢迎补充
- 知识体系&兴趣爱好
- 笔者一直认为: 面对就业困难, 最好根据自己的兴趣爱好做选择, 其次是技能特长, 最后是实践验证排查. 尝试一下如果感到恶心不感兴趣就难以上手. (我尝试前端css的时候就恶心, 所以选择后端)
- 正如本文第4节所示, 程序员需要一些基础知识, 有的人对英语/数学/计算机/信息技术/数据结构与算法/操作系统/编译原理/网络技术/软件工程等科目反感, 一看到就头疼的不适合
- 如今社会上, 科技企业对于学历要求越来越高, 一些名不见经传的企业可能都要求211本科起步, 所以如果学历太低, 又不能提升学历, 又没有关系可以走的, 也会缺乏竞争力, 做这个行当进展会更困难. (企业招聘时都会标注学历门槛, 能力特别强/面试情况好的有几率可以谈, 稍微放宽学历要求)
- 家族/社会关系
- 如果家族中, 或者周围认识的人, 有做程序员发展不错的, 并且自己并没有明确的择业方向, 面临择业困难的, 且不反感程序员所需科目的, 那可以尝试尝试, 反正不知道干啥, 尝试总不会吃亏. 不断尝试, 分析, 总结, 进而找到适合自己的方向.
- 如果有认识关系好的程序员, 则可以获取更多帮助和引导, 事半功倍. 在就业进公司方面也更容易, 且容易形成报团取暖的格局.
- 女生做程序员, 在就业时稍微占点优势(虽然都说男女平等, 但物以稀为贵, 同等条件下说不定有的领导更愿意招女生. 以前有遇到公司里有女生技术一般般, 又不愿意积极干活都被招进来的, 不提倡这种…)
- 心情
- 很多时候, 并不是走投无路, 其实有很多方案都可以实施, 但是实际情况却是一团乱麻, 为什么? 因为人, 方案是通过人实施的, 如果人有抵触心理, 不愿意落实实施, 你再好的方案都是空谈! 所以, 没办法的办法就是好办法, 能够让大家都认可并实施的方案就是好方案, 哪怕它本身并不是最好的.
- 如果你就算满足上面提到的各种素质和条件, 但你就是心里不高兴, 就是瞧不上程序员, 那完全没必要强迫自己.
- 如果你的确举棋不定, 说不定抛色子, 转铅笔, 抛橡皮, 丢硬币, 随机选一个都行, 反正比原地踏步强. 就算最后证明这一个不合适, 那也积累了实践经验, 并且排除了一个错误选项, 离正确选项又进了一步, 回头看也是一个重大的进步.
- 参考文章
- ( 程序员工作只能做到 35 岁吗?之后的路是怎么走的呢? – 知乎 (zhihu.com)
- (IT行业岗位及发展方向大全? – 知乎 (zhihu.com)