偶仍然记得,偶第一份实习的时候,偶老大给偶定的5年方案。这5年是偶整个职业生涯的基础,那之后任何成就,都只是这份土壤上结出的果实。这份方案对偶的人生的影响大到不可估量,十几年后的今天,偶仍然能在脑海里回忆起那天的每一分钟,老大在偶的笔试单背面画的每一个框图。
偶先问你一个问题,工作前三年,如果你的工资还不能达到当地普通房价的一平方的一半的话,你还愿不愿意坚持下去?
如果回答是否定的,那你就不用读偶接下来的任何文字。大家不是一路人,偶建议你去读那些公众号,大V给的毒鸡汤。
第一年,你不知道你在做什么,你不知道这个公司的位置,你不知道你的语言的位置,你甚至不知道你做出来的东西有什么用。这是对的呀,如果一个东西,他不是面向最终消费者的,为什么你会知道?除非这个企业本身有道德问题,只要他在赚钱,他肯定有存在的道理,你什么都不懂的大学生,为什么第一年就能懂?你第一年做了些什么?把分配给你的任务做完了,好你觉得不错,这就是学生思维。在企业里,没有人会再督促你了,可能有个别老大人不错,像偶运气好,遇到了,你愿意把你的将来,赌这个运气吗?第一年的大学生,有多少重要的任务会分配给你?去抢,去要,去争,这才是你该做的。
第二年,你懂一些了,你能理解你所处的这个行业了,对不起,程序语言本身不是行业,做JAVA的?偶不懂你是什么人,要么做金融软件,要么做网站,要么做fintech,要么做工控软件,做什么行业是重要的,用什么语言是次要的,用vue?用java这个包?这又学生思维了,工具决定论?偶做金融行业十多年,主要用的java,然后net公司也找偶去,为什么?领域知识才是关键,这第二年,就是用来理解领域的,你开始能够承担较为核心的任务了,这时候靠任务去理解领域很重要。
第三年,基本上除非最大的公司,你已经开始成为组核心或者次要核心了,会开始接触一些最简单的设计了,或者是能参加一些设计人员的讨论了,这时候你应该要做什么?当然是大大的表现咯,到处说旧代码不行,声称偶要从操作系统开始往上重构。这是你最后一点学生思维的残留,所谓井底之蛙。再烂的系统,能卖出去,都有可取之处,这是其一。重新建筑一个东西的难度,远远低于保持运行并重构的难度,你只是选了个软柿子捏,还捏的煞有其事。你要海绵吸水,大量大量地吸,去了解,去思考,这时候你有学习的底子了,你能开始理解软件了,和过去学生的你不同了,过去你觉得技术最难的部分,无非是这个函数越界了,那个函数执行不到预期结果了,这些,都是无关精要的事情。
第四年,你已经是老鸟了,你开始接受设计工作,你可能还会去客户那忽悠忽悠,面试面试小弟。这年,是你的关键年,你需要开始提升自己的视野,从非软件的角度看待软件,从非技术人员的角度看待技术,这年你能转型成功,那么将来的道路你会很容易,转管理也好,走架构也好,走销售也好,之前4年都是你赖以成功的基石。否则你只会成为一个怨天尤人,到处抱怨程序员只能做到34岁的废人。
第五年,你开始了你作为高级人才的生涯,你面前有广阔的选择,你也要开始考虑家庭等很多因素,你已经不再是学生了,你是你,不在是任何符号化的人,你是一个领域里不可或缺的人。