《程序员探险记》系列文章包含三大部分(规划,技术与服务)共十篇,包括1开篇【扬帆】,2面试篇【起航】,3职业篇【指南针】,4学习篇【加速度】,5编程篇【续航】,6架构篇【望远镜】,7工程篇【同舟共济】,8业务篇【载体】,9产品篇【GPS】,10数据篇【宝藏】,详见下方的思维导图。不足的地方,望大家指正交流。欢迎转载,但请在文章头部明确注明出处、保留作者(anfield)和原文超链接。
你也许会好奇为什么取名《程序员探险记》,这是由于IT技术更新换代太快,我们这些程序员在这个浩瀚的知识海洋里航行就像在探险一样,若没有明确的方向和规划是很难到达彼岸的。比如JAVA,庞大的体系让学习的曲线陡然而立,也许你连spring都还没有精通的时候,springboot, spring cloud ,下一代微服务Service Mesh,Serverless......
本文首先能给徘徊在程序员门口准备入行的朋友一些建议。如果职业选择时对未来的方向不确定,推荐你通过命运之域分析法(特长+志趣的交叉点)找到人生的意义所在。其中的志趣是经历了感官兴趣(感性)到自觉兴趣(理性)后的再次升华。就像从你右脑(感性)到左脑(理性),再融入血液里的东西。
其次这几年面试了近300个程序员,发现很多人(特别是非科班出身与半途培训出来的)没有系统化的计算机基础知识。他们就像悬浮于半空中,向下面对基础的数据结构、编译原理、计算机网络、操作系统等时无从入手,向上被各种五花八门的语言和框架所累。平时仅通过浏览别人的博客来学习,或通过百度来解决问题。如果没有结构化的知识体系,只会使用一些常见框架又不懂原理并变通,在上手新的框架时就没有那么容易。所谓知其然,更要知其所以然。如果能看清事物的本质,那么万变不离其宗。比如近年来火热的中台技术,我认为就是复用的思想。微小到代码级的复用(设计模式),小到功能级的复用(微服务),中到模块级的复用(SOA),大到企业级能力复用(中台)......,只要掌握了复用的思想,就不容易被各种封装的概念迷惑。如果再进一步看,复用是社会分工,人类进步的必然结果,那就更容易理解了。
随着云计算的成熟并迈入云原生时期,不能向底层技术突破开发基础设施服务,也不能向上层业务融合的程序员将面临极大的淘汰压力。
这里我把自己的经验总结分享出来,希望帮你消除前进中的困惑,然后通过不停地思考总结与实践(构建知识体系)去突破瓶颈。当你越过了这道坎,你可能发现山不是山,你会再次陷入困顿。这时希望你能静下心来并坚持不懈,通过智慧(洞察力、理解力和判断力)迈上一个新的台阶——看山还是山(这就是达克效应,参见下图)。下面就请扬帆起航吧。