读:为什么在地球上讨论这个话题?我们要再来“贩卖”一次焦虑。

我该学啥?Web开发者学习路线图之2019_java


当今世界,如果不扩大你的技能树,可能会面临以下一种情况: 


  • 随着时间的推移,你可能会被淘汰出IT行业;

  • 即使能够生存下去,你也会在平庸或不那么具有挑战性的工作中消磨时间,工资也不会那么好。

  • 在当今IT以及互联网行业,希望开发人员具备多种技能,比如掌握至少2-3个IT领域的技能。

  • 如果你没有广泛的技能,相信你肯定自信心不够。


那么,本篇文章的目标受众是哪一类人?


如果你是以下条件中的一类人,非常欢迎你来继续阅读:


  • 作为软件工程师在IT行业工作,有5年左右的经验;

  • 是一名前端或后端开发人员;

  • 到目前为止,你的能力非常有限或比较弱;

  • 你希望在IT行业中长期发展;

  • 你不想呆在平庸的工作中,做着没有挑战性的工作,也没有具备吸引力的报酬。


下面是关于全栈开发者的的技能路线图,可以根据自己的个人情况进行优化。


但对于所有人来说,解决方案都是相同的,那便是:“永远不停止学习,不断拓展自己的技能”。


我该学啥?Web开发者学习路线图之2019_java_02


图1 全栈开发者技能路线图


我们从上图可以看到,无论是后端开发人员还是前端开发人员,都应该熟谙以下通用技术:


  • 数据结构和算法:

    现在,许多开发人员似乎忽略了这一重要的方面。但可以肯定的是,这个区域根本不应该忽略。

  • 基本终端命令:

    这也是一个重要方面。但是它可以与其他学习和能力一起提高。这些命令可以包括但不限于使用vi,cat,ps等等......

  • 版本控制(Git):

    现代程序员必须了解git的工作流程及其基本原理,比如命名空间,分支,标记,合并等操作。


做为全栈工程师,你应该具备的技能(可根据情况优化):


包含软件工程师应该学习的技能,这些技能可能会根据情况而有所不同:


  • 至少一个后端框架:你需要精通至少一个后端框架。根据所使用的后端技术,它可能是Laravel / Symfony或Spring等。

  • 至少有一个前端框架:  同样你需要非常精通至少一个前端框架。它可能是Angular(我个人喜欢的),ReactJS,VUE.js或类似的产品。

  • NoSQL数据库:这是一个非常大的需求,我们必须亲自动手使用如MongoDB这样的NoSQL数据库。对于像MySQL数据库以及Join的概念,使用应该非常熟练。

  • 一个缓存引擎:在实际场景,一次又一次地搜索数据库,搜索类似的数据,对于服务器上是一个巨大开销。需要对缓存引擎有极强的动手能力,像Redis或Aerospike这样的任一一种 缓存引擎的人。

  • 搜索引擎:搜索数据库中的查询经常发生,通常会给服务器带来巨大开销。为了解决这个问题,大多数公司正在转向Elasticsearch这样的搜索引擎,它们可以非常好的解决这个问题。

  • 沟通技巧:这一点,经常被技术人员忽视,它经常被证明是沟通和交易的破坏者,人们应该逐渐磨练团队的沟通技巧。