国内的信息产业环境不成熟,举个最明显的例子,目前编程领域的从业人员超过半数都是通过培训机构出来的,甚至那些计算机专业毕业的学生,也不得不通过几个月的技能培训,才能找到工作,那我上了四年的计算机专业学了有什么用?通过剖析计算机从业人员接受的基础教育结构,市场环境,还有企业需求,最终得到的结论是,一个标准 IT 企业需要具备的条件如下:
- 计算机底层研发能力
- 企业应用编程
- 推向市场的产品 相对于这三项对位的计算机从业人员团队需要的技能如下:
- 计算机底层知识
- 企业应用逻辑编程
- 产品定位与规划能力 从业人员的个人能力获得途径如下:
- 学校的信息技术基础教育(底层知识)
- 培训机构 (编程能力)
- 企业工作经验(产品能力,也就是项目经验) 综合国内基础教育结构,市场环境,还有企业需求,可以看出,培训机构是国内信息技术教育缺失的产物,简单来说就是学校只教基础,而企业需要高层编程能力,所以培训机构就是在这样的环境下产生的。一句话总结本质原因就是:
产学脱钩,导致学校人才供给无法满足市场企业需求。
说明了原因,再来看另一个问题,写代码的都知道有 “一致性” 的概念,大了说有架构一致性,小了说有代码风格一致性,看前人的代码看着头疼就是因为你和写代码的人设计,代码风格都不一致,所以会有冲突。
那么对于我们从小学到大学的整个教育过程这个大项目来说,其实存在巨大的不一致性,举个例子,你的小学老师教了你们六年,对学生的能力,特点是最熟悉的,可是升入初中之后,换了初中老师,这个过程中唯一留下能让初中老师用的 “交接文档” 就是以前的分数,这样的情况下,因材施教,因地制宜,从何而来?非要一对一的提高成绩的话,那么之前小学老师做的工作,初中老师要重复做一遍,才能对学生充分了解,并且初中老师只有三年时间,还没算上中间换老师的情况。过了初中之后,同样的情况会在高中,大学老师的身上重复发生,大家都在重复造轮子,就是因为一个求学者整个十几年的教育流程中的设计和把控是有缺陷的。
这还是在学校教育项目内的问题,那么像毕业之后参加培训这种项目外的情况如何呢?这个影响就严重了,在没有人引导和告知的情况下,培训生普遍不知道培训机构的本质是大学教育过程的延伸,几乎所有的培训生都是觉得,培训就是用来找工作用的,潜在逻辑是,参加培训,培训机构包分配,然后我就能找到工作了。这种情况下,在培训机构学到的东西与学校知识的对接,不一致性就极其巨大了。
通过以上分析,终于可以说回为什么工作四年才会看代码这个问题。从培训出来找到工作开始,之前分析的1,2,3条件中的2,也就是编程能力,已经在编程机构初步获得了,3条件,也就是企业产品需求,需要在长时间的工作当中去获得相关的感觉或者产品意识。当工作个五六年,随着自身职称的提高,遇到的问题也越来越难,面对企业的高并发,高访问这些问题,已经不能用培训机构获得的 CURD 来解决了,这个时候学校底层知识才迎来了应用的机会。这个时候,才会回顾以前的职业生涯,总结经验,然后把学校的底层知识捡起来,去解决 CURD 解决不了的难题。这个时候,才懂得了代码的深层意义。
可以看出,理想的情况应该是,大学坚实的底层技术,配合中间层的编程能力,然后获得高层的企业工作能力,这个良好的架构设计最终因为现实原因割裂开了。底层是学了,但是没有用武之地,学生毕业之后没有在学校获得编程能力,面临的是 “断崖式的成长”,是的,本来应该是平缓过度到社会,结果却是断崖式的,中间缺失的一部分,将在生活中,通过鼻青脸肿式的棍棒教育,在社会这所大学里获得。
大家读到这里,是不是觉得生活黑暗,要怨天尤人,并且抱怨为什么有这样的教育设计?这里要说一下的是,先有鸡还是先有蛋这个问题,是一个难题,好的学生是好教师教出来的,但是好的教师是哪里来的?如果没有好老师,那么教出来的学生是什么样的?将来这些学生成了老师又会是什么样的?这样岂不是恶性循环?要知道,教育问题,在世界上都是个及难解决的问题。并且教育问题不是靠个人能够解决的问题,这需要国家,社会,企业,家庭,教师,学生等等一起努力去改革,家长简单的把学生扔给学校,是没有办法100%培养出高素质人才的。我国目前还只是社会主义初级阶段,国家的重中之重是经济建设,有了钱,才能搞教育,除了教育,还有医疗,国防,还要抵御西方的恶意抵制。用钱的地方那么多,钱包却那么小,所以要辩证客观的看问题。一个企业在资金有限的情况下还会有所权衡,更不用说一个16亿人的大企业,我们所要做的,就是不灰心,充满希望的继续乐观生活,只有国家强盛,才有我们生活质量的进一步提高。
最后说一下怎么避免工作很久之后才发现底层知识的缺失吧,不废话,直接给出如下:
- 未雨绸缪,不要太功利主义,不要觉得之后能赚钱的知识才是要学的知识,平时多看些编译原理,数学方面的知识,不是计算机专业的同学可以去搜一下国内外计算机专业名校的课程安排,然后去慢慢学习
2.多写代码,没有时间看底层,就反向去学底层,以代码为手段,遇到问题就深挖原理,在编程中深入底层,熟悉原理
3.培养全栈思维,全栈不是一个岗位,而是一种思维,可以用一种系统的观点让你重新认识自己目前的工作与岗位,获得全栈的简单方式就是多用新技术,然后横向对比,最终回到自己目前所用的语言,也就是跳出语言学语言
4.寻求大神帮助,大神的经历与能力都是经过实践验证的,大神的能力提升方法也一定是高效率的,通过大神的提点,能够避免许多走弯路的情况。
5.多读人文历史类书籍,在团队中工作,没有好的情商,好的人文情怀,同事关系一定会出问题,技术只是实现产品的手段,产品之外还有广阔的知识领域与人生乐趣,不要太封闭自己,多读好的小说和书籍,你会发现一片不一样的天地。
6.最后一点,对于以后想要成为大神的同学也是最重要的一点:警惕碎片化方式。不管是生活还是工作,大众的生活习惯已经趋向于碎片化,这是社会高速发展的结果,而编程需要的核心能力却是与碎片化相对的深度思维方式,不要小看碎片化,长时间在这种方式下生活,会丧失大脑的深度思考能力。是不是看超过5分钟以上的长文会有头晕不适的情况,是不是短视频app看的停不下来,有多久没有读一本超过300页的长篇书籍了?适度的娱乐是没问题的,但长时间如此的生活方式,会使大脑处理信息的能力退化。未来 AI 浪潮是大势所趋,国家也制定了相关的人工智能战略,而 AI 时代的编程从业者,需要的就是深度的,长时间的思考能力。 你可以不学底层,你可以继续靠 CURD 就能月入过万,但寒冬来临时,如果被裁了,那就不能怨社会了。如今都在谈论现在的寒冬有多可怕,又有多少人看到 AI 领域百万难求一人的情况呢。这一冷一热的两重天气,只有系统化思维的人才能看到原因,也只有这样的人,将来的路才会越走越宽。寒冬不可怕,在寒冬里没有生存能力,才是最可怕的。
以上言语,写出来与君共勉。年底了,我在这里提前给大家拜个年,祝大家在“寒冬”里,能够度过一个幸福安稳的新年 ~~