读:为什么在地球上讨论这个话题?我们要再来“贩卖”一次焦虑。
当今世界,如果不扩大你的技能树,可能会面临以下一种情况:
随着时间的推移,你可能会被淘汰出IT行业;
即使能够生存下去,你也会在平庸或不那么具有挑战性的工作中消磨时间,工资也不会那么好。
在当今IT以及互联网行业,希望开发人员具备多种技能,比如掌握至少2-3个IT领域的技能。
如果你没有广泛的技能,相信你肯定自信心不够。
那么,本篇文章的目标受众是哪一类人?
如果你是以下条件中的一类人,非常欢迎你来继续阅读:
作为软件工程师在IT行业工作,有5年左右的经验;
是一名前端或后端开发人员;
到目前为止,你的能力非常有限或比较弱;
你希望在IT行业中长期发展;
你不想呆在平庸的工作中,做着没有挑战性的工作,也没有具备吸引力的报酬。
下面是关于全栈开发者的的技能路线图,可以根据自己的个人情况进行优化。
但对于所有人来说,解决方案都是相同的,那便是:“永远不停止学习,不断拓展自己的技能”。
图1 全栈开发者技能路线图
我们从上图可以看到,无论是后端开发人员还是前端开发人员,都应该熟谙以下通用技术:
数据结构和算法:
现在,许多开发人员似乎忽略了这一重要的方面。但可以肯定的是,这个区域根本不应该忽略。
基本终端命令:
这也是一个重要方面。但是它可以与其他学习和能力一起提高。这些命令可以包括但不限于使用vi,cat,ps等等......
版本控制(Git):
现代程序员必须了解git的工作流程及其基本原理,比如命名空间,分支,标记,合并等操作。
做为全栈工程师,你应该具备的技能(可根据情况优化):
包含软件工程师应该学习的技能,这些技能可能会根据情况而有所不同:
至少一个后端框架:你需要精通至少一个后端框架。根据所使用的后端技术,它可能是Laravel / Symfony或Spring等。
至少有一个前端框架: 同样你需要非常精通至少一个前端框架。它可能是Angular(我个人喜欢的),ReactJS,VUE.js或类似的产品。
NoSQL数据库:这是一个非常大的需求,我们必须亲自动手使用如MongoDB这样的NoSQL数据库。对于像MySQL数据库以及Join的概念,使用应该非常熟练。
一个缓存引擎:在实际场景,一次又一次地搜索数据库,搜索类似的数据,对于服务器上是一个巨大开销。需要对缓存引擎有极强的动手能力,像Redis或Aerospike这样的任一一种 缓存引擎的人。
搜索引擎:搜索数据库中的查询经常发生,通常会给服务器带来巨大开销。为了解决这个问题,大多数公司正在转向Elasticsearch这样的搜索引擎,它们可以非常好的解决这个问题。
沟通技巧:这一点,经常被技术人员忽视,它经常被证明是沟通和交易的破坏者,人们应该逐渐磨练团队的沟通技巧。