现代项目的开发,需要掌握多种技术。互联网项目,需要用到后端开发、前端开发、界面设计、产品设计、数据库、各种移动客户端、三屏兼容、restFul API设计和OAuth等等,比较前卫的项目,还会用到Single Page Application、Web Socket、HTML5/CSS3这些技术以及像第三方开发像微信公众号微博应用等等。
Web前端也远远不是从前的切个图用个jQuery上个AJAX兼容各种浏览器那么简单了。现代的Web前端,你需要用到模块化开发、多屏兼容、MVC,各种复杂的交互与优化,甚至你需要用到Node.js来协助前端的开发。
所以说一个现代化的项目,是一个非常复杂的构成,我们需要一个人来掌控全局,他不需要是各种技术的资深专家,但他需要熟悉到各种技术。对于一个团队特别是互联网企业来说,有一个全局性思维的人非常非常重要。
特别是对于一些创业公司来说,全栈工程师的价值是非常大的,创业公司不可能像大公司一样,各方面的人才都有。所以需要一个多面手,各种活都能一肩挑,独挡多面的万金油。对于创业公司,不可能说DBA前端后端客户端各种人才全都备齐了,很多工作请人又不饱和,不请人又没法做,外包又不放心质量,所以全栈工程师是省钱的一妙招。虽然说全栈工程师工资会比一般的工程师会高很多,但综合下来,成本会低很多。
要成为传说中的“全栈工程师”,并顺利进阶BATJ,掌握扎实的技术是必要基础,与此同时,你还需要一些面试的技术,还需要掌握以下5个关键点(非常重要!):
【1】:全栈工程师的职业现状和前景是什么,主流技术有哪些?
【2】:1-3年工作经验,如何顺利跳槽到BATJ等一线大公司?
【3】:BATJ一线互联网公司在面试环节最看重哪几点?
【4】:那些前端大牛们都是如何做好自己职业规划的?
【5】:不同背景的前端工程师应如何提升自己,如何深入全栈开发的核心原理?
全栈web开发者是能够同时承担前端开发和后台开发工作的人。做为一个全栈开发者并不意味着你已经掌握了从事前端开发和后台开发所需的所有技能,只是表明你能够在这两部分工作并且知道开发一个应用该做哪些事。
如果你在2017年成为一个全栈Web开发者并且谋求到你的第一份职业,下面列出的就是你应该学到的参考指南。
1. HTML/CSS
2. Java
3. 后台语言一旦你感觉已经掌握了HTML/CSS和Java,你会想继续学习后台语言,用于处理数据库操作,用户鉴别和应用逻辑。所有的在线培训和代码训练营通常会专注于某个特定的后台语言,实际上你学哪一种(后台语言)并不重要,只要你明白其如何工作并且你了解所选择语言的细小差别。如果你问别人哪一种后台语言最值得学习,你会收到大量不同的答复,所以在下面我已列出一些常用的组合。一个重要的提示:无论你准备学哪一种,只需坚持学下去,并且尽可能深入-下列所列的语言都有大量的工作机会。
4. 数据库与数据存储
5.HTTP和REST
HTTP是一种无状态的互联网应用层协议-它允许客户端与不同的服务器进行通信(例如你的Java代码能够通过HTTP协议,向运行在服务器上的后台代码提交AJAX请求)。
6. Web应用架构
当你觉得已经掌握了HTML/CSS,Java后台开发,数据库和HTTP/REST,就到了这个稍难的部分。在这里如果你想创建稍微复杂的web应用,你需要知道如何组织你的代码,如何划分你的文件,哪里存放你的大媒体文件,如何组织数据库中的数据,哪里去执行确定的计算任务(客户端对服务器端),等等。
网上可以找到很多最佳实践,但是真正学习到应用架构的最好方法是你本人参与一个大型应用,这个应用包含多个有效的部分-甚至更好,在一个团队里工作并且一起开发过有一定规模和复杂度的应用。
这就是为什么有些人有7年多的经验,对于CSS或者Java的理解还不如那些只有两年经验的人,但是,在这些年里假定他们参与了所有类型不同应用和网站的开发,并且已经学习了如何架构和设计让应用最有效率(还学习了其他重要的事),在开发中也可以看到重点。下面你可以读到一些内容,有助于你学习如何有效率的架构你的web应用。
7. Git
Git是一个版本控制系统,能够协助开发者团队合作,跟踪开发过程中的所有更改,并将这些更改记录在代码库中。了解与Git相关的重点很重要,这样有助于你如何获得丢失的最新代码,代码的更新部分,进行修改,修改别人的代码而不会破坏别人的工作。你确实应该学习Git背后的概念并且自己能玩转它。
这个主题在开发世界里有点极端,因为在web开发中,有些开发者认为不应该将注意力放在诸如树遍历、排序、算法分析、矩阵操作等计算机科学主题上。然而,很多如谷歌那样的公司,喜欢在面试中问这些类型的问题。一些人谈论的的谷歌前台工程面试。
也就是说,如Ryan McGrath提到那样:我们的前端(FE)工程师,应该像我们所有工程师那样,具有坚实的计算机科学背景。
尽管有一些公司在现实中要求求职者具有计算机科学学位或者同等学力,如果求职者不具备这些技术资格,却能证明他们知道如何开发应用,并且展示其对于整个领域的理解,仍会大量的公司会雇用他们。但是,成为一个合格开发者的一部分,不写低效率的代码或者不使用错误的工具,都是对于基本算法和数据结构的理解,能够分析均衡。所以这有一些你应该学习的内容:
以上文章由雨中漫步网络转载与编译,如需转载请注明出处!专家介绍说:学习这些所有的内容是项辛苦的工作,但是最终会收获颇丰并且全栈开发本身也很有趣!