根据 Stack Overflow 2016年开发者调查显示,全栈工程师是最受的开发者职业。毫无疑问现在有许多在线或个人课程来帮助程序员成为全栈开发者,甚至帮助这些开发者找到高薪的开发工作。
一些流行的在线课程,例如:Lynda,Udacity,Coursera,Thinkful,General Assembly 。除了这些在线课程,还有好多个人的新手训练营来提供给web开发者必须的技能。
在这篇文章中我不会讨论哪个在线或个人课程好,相反我会提供一个我认为成为全栈web开发者所需技能的权威指南。我将以下面三条为基准开始这篇博文:
- 2017年教给学生最多的课程是什么
- 我为公司面试开发者和有潜力的全栈开发者的经验
- 在 Coderbyte 接受新手训练,然后找到开发工作的开发者们的故事和反馈
权威指南
全栈工程师指既能开发前端又能开发后端的开发者。前端一般指一个应用中用户能看到和交互的部分,后端一般指一个应用中处理逻辑、数据库、用户授权、服务端配置等的部分。全栈工程师并不意味着你有必要完全掌握前后端的开发技术,而是你可以在构建应用时明白前后端开发到底发生了什么。
如果你想成为一名全栈开发者同时想得到一份工作,下面就是你应该学习的参考指南。
1.HTML/CSS
许多在线和个人课程都以HTML/CSS作为成为一名 web 开发者的开端,因为它俩是web开发的基石。HTML是网站内容的骨架,CSS是为网站内容美化的。下面是一些真实工作中和面试时经常需要的HTML/CSS内容:
- 语义化HTML
- 解释 CSS Box Model
- CSS 预处理器的优点(你并不需要深入了解,但是你应该知道它解决了什么问题和如何帮助开发者的)
- CSS Media Queries 解决不同屏幕和书写响应式CSS代码
- Bootstrap(一个CSS框架,事实上相对于Bootstrap的特点和方法,更重要的是对CSS基础知识的掌握)
2.JavaScript
每年 JavaScript 都变得越来越流行同时新的库、框架和工具都在持续不断的涌现。依据 2016 Stack Overflow 的调查,JavaScript 成为全栈、前端、后端开发的最流行语言。它是唯一一个既可以在浏览器运行又可在后端运行的语言。下面是你成为一个全栈开发所需要了解的内容:
- 知道如何处理DOM,同时也知道JSON是什么以及如何维护它。
- functional composition、prototypal、inheritance、closures、event delegation、scope、higher-order functions的一些语言特点
- 异步流程控制、promises和callbacks
- 学习如何架构你的代码同时抽取模块,了解webpack、browserify或者类似的gulp等构建工具如何帮助开发
- 最少了解一个流行框架(许多课程关注在一些库、框架上例如React、AngularJS,但事实上深入了解JavaScript更重要,一旦你对JavaScript有个很好的理解,然后再挑选一个框架从全局来看,你就不会感觉到有什么困难)
- 即使有些人在争论jQuery现在使用的很少或者它在渐渐的消亡,可是现在依旧有许多使用它构建的应用,实实在在的掌握jQuery依旧是很有帮助的
- 了解一些测试框架同时也应意识到测试为何如此重要
- 学习一些ES6的新特性
3.Back-End Language
一旦你感觉对HTML/CSS和JavaScript掌握的很好,你将需要学习一些处理数据库操作、用户鉴权、应用逻辑的后端语言。一些课程和新手训练营通常会专注一门特定的语言,但是随着你对后端开发的套路越来越清晰的时候,其实选择哪门语言已经不重要。如果你问不同的人,哪个后端语言适合学习会得到不同的答案,所谓仁者见仁智者见智。无论你选择哪个都要坚持学下去,不要三天打鱼两天晒网。下面是不同语言工作的需求量:
. Nodejs:这是一个不错的选择因为它本来就是JavaScript,所以你不需要学习一个新的语言。这也是一些在线培训和新手训练营选择Nodejs的一些原因。Express是Nodejs中一个很重要的框架可以帮助你开发web应用。
. Ruby:一些流行的开发框架,例如:Rails和Sinatra。相当多的课程已将Ruby作为第一后端开发语言。
. Python:其中的流行开发框架,例如:Django和Flask。
. Java:当谈及全栈开发的时候,Java并不会被经常提到,但是一些公司依旧在使用Java作为他们的后端语言同时也是一个需求量很大的语言。
. PHP:现在很少有教PHP的,但是它和JAVA一样需求量依旧存在。
4.Databases & Web Storage
当你在构建一个web应用,需要存储一些将来要使用的数据时,你应当掌握下面有关databases和storage的一些知识:
. 掌握关系型数据库,例如:SQL.
. 学习非关系型数据库,例如:MongoDB.
. 明白不同场景应该使用哪种。
. 掌握后端语言如何和数据库连接(Nodejs+MongoDB)
. 掌握像Redis和memcached的缓存好处
. 掌握像session,cookies和cached data浏览器端的数据存储
. 扩展数据库:ACID和ORM
5.HTTP & REST
heibanbao.jpeg原文:https://medium.com/coderbyte/a-guide-to-becoming-a-full-stack-developer-in-2017-5c3c08a1600c
有删改!
网友评论