今天的话题,会比较主观一些,基于我过去10多年工作的切身感受,里面的内容不见得对每个人都适用,将这些想法写出来,也是自勉,希望我自己能沿着这条路继续走下去,不忘初心。
作为一名技术人,技术能力的每一点提升来自于每天工作的积累,越是基础的只是越应该投入精力去学习,并保持持续的热情。基础的知识来源于大学的专业课,包括但不局限于以下几门:
1. 《数据结构》
2. 《算法》
3. 《计算机网络》(TCP/IP、HTTPS、七层模型,Web Socket等)
4. 《编译原理》 (语义分析,编辑器,解释程序)
5. 《计算机体系和操作系统》 (存储管理,进程,文件系统,I/O等)
这些课程,坦白的说,我是工作以后,才慢慢体会到它们对我成长的帮助的,这些年我学各种技术之所以能做到比较快的掌握,也就是靠这些基础知识给我的启示,用现在的话语来说,你的技术认知升级了,学什么都能归纳到同一条线上来。
掌握这些基础知识的真正好处在于,你已经建立了一套属于自己的技术OS,后来所有你学到的语言或者框架,都是跑在你OS上的APP,你的OS能提供足够好的系统接口,那么APP就能很轻松的接入,后续也能持续高效的迭代这些APP。
建立了知识体系,通过工作中的实践来修正体系中的各个知识点,这和目前机器学习的思路是一样的,我们大脑里的各个技术模型是需要训练不断修正的,然后找到适合自己的最优解,确定模型-->训练模型-->使用模型,最后,才能真正在工作中排上用场。
项目经验是经历建立在你的知识体系下的,每个人的知识结构决定了他能在项目中的产出量,反过来说,同一个项目,同一个角色,因为知识结构的不同,在这个项目结束后,不同的人能获得的提升也会不同,而本次项目获得的提升,决定了下一个项目或者未来更大的项目的产出和获得,这也是为什么同样两个应届生,在工作多年后,可能会有巨大的差别。所以,要成长得更快,需要先建立知识体系,然后靠每一个项目来最大化项目经验值。这不是有句老话吗,十年工作经验,还是一件事重复了十年,就在这里。
记得过去有个同学问我,怎么快速的学习“自己不知道的技能”,甚至是“自己不知道自己不知道的技能”(比较拗口),其实很简单,找到一位或者一群比你强的技术人,和他们在一起,你就可以。加入靠谱的团队,寻找到一位好领导或者出色的同事是实现个人快速成长,实现弯道超车的最佳实践。我个人职业生涯最受益的,就是在不同的阶段能遇到一些优秀的同事和前辈,从他们身上学习和借鉴到很多宝贵的经验。
最后,保持一颗好奇心,对自己未知的技术领域总是愿意去尝试,对各种TroubleShooting能乐观积极的去解决,用开放的心态不断放空自己,从而获得更广阔的技术视野。
(未完待续)
扫描二维码或手动搜索微信公众号: ForestNotes欢迎转载,带上以下二维码即可