
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
软件程序运行的环境不同,设备不同的话,我们在进行软件编程的时候选择的编程语言也都是不一样的。而对于许多的编程工程师来说,能够掌握多种编程语言的话,对于拓宽自己的职业道路也是非常有帮助的。
今天,我们就一起来了解一下,如果我们希望能够增加自己的就业方向和道路的话,应该掌握哪些编程技术,下面我们就开始今天的具体内容吧。
如果你想在2017年成为一个全栈Web开发人员,并找到你的第一份工作,下面是一个参考指南,列出了你需要学习的东西。
1.HTML/CSS
几乎所有程序,无论是在线的还是离线的,都在说明要成为Web开发者需要从HTML和CSS开始,因为它们是Web的基石。简单地说,HTML让你给网站添加内容,而CSS则为这些内容添加样式。下面的主题都是关于HTML/CSS的,在面试和工作中都经常遇到:
语义化的HTML。
解释CSS盒模型。
CSS预处理器的优点(你不需要深入理解,但应该知道这是什么以及它们对开发起到的辅助作用)。
使用CSS媒体查询针对不同的设备编写响应式的CSS。
Bootstrap(一个辅助页面设计和布局的框架,大量在线程序或学校都关注Bootstrap教学。实际上,深入理解基本的CSS比理解特定的Bootstrap特性和方法更为重要)。
2.JavaScript
JavaScript语言一年比一年流行,新的库、框架和工具层出不穷。StackOverflow2016年的开发者调查指出,JavaScript在全栈、前端和后端开发中都是最流行的语言。它是浏览器唯一支持的原生语言,同时也能作为服务器端语言(下面会看到Node.js)。下面是一些作为全栈开发者所需要了解的主题:
理解如何使用DOM。了解JSON并知道如何操作它。
重要的语言特性,比如函数式成分、原型继承、闭包、事件委托、作用域、高阶函数等。
异步控制流、Promise和回调。
了解如何正确地通过模块化组织你的代码,像webpack、browserify或者gulp这样的构建工具对此大有裨益。
至少会使用一个流行框架(很多程序将重要放在教你使用像React和AngularJS这样的库或框架,但实际上更重要的事情是深入理解JavaScript语言而不是特定的框架特性。只要你精通JavaScript,选用一个框架将不费吹灰之力)。
虽然有些人可能认为你应该减少使用jQuery,因为它正趋于死亡。但jQuery代码仍然存在于大量应用中,彻底理解它会对你很有帮助。
了解一些关于测试框架的知识,以及明白它们的重要性(有人甚至会认为这个话题可有可无)。
学习重要的ES6新特性(可选)。
3.后端语言
一旦你认为已掌握好HTML/CSS和JavaScript技能,你会向一门后端编程语言进军,以便处理类似数据库操作、用户认证以及应用逻辑的任务。所有在线练习平台和代码训练营通常集中于一门特定的后端语言,而实际上你选择哪一门也并不重要,只要你理解你正在做的事情并学到了你所选语言的本质。如果你问学哪一门后端语言最好,你会得到各种各样的无数的回复,所以下图我给大家列出了一些受欢迎的组合。
一个重要的提示:不管你决定学习哪一门,请坚持下去,并尽可能深入学习-所有下图列出的语言都有相应的工作机会。
Node.js:这是一个很好的选择,因为Node.js本身就是JavaScript环境,这意味着你不需要学习新的语言。这也是很多在线平台和训练营为什么选择教学Node.js的原因。这里你最有可能学习的也是最受欢迎的能帮助你开发网络应用的框架就是Express。
Ruby:用Ruby开发比较受欢迎的开发框架有Rails和Sinatra。很多教学平台把Ruby作为首选后端语言。
Python:Python受欢迎的开发框架有Django和Flask。
Java:现在Java语言很少被选中作为全栈网络开发的教学语言,但是一些公司现在还是使用Java作为后端语言,所以现在也还是一门有相当需求量的语言。
PHP:PHP现在也很少被这些平台教学选中,但就像Java一样,它也还是有一定的需求量,而且也是当今网络发展的基石。
4.数据库&Web存储
编写Web应用的过程中,有时候需要保存数据,以便稍后再进行访问。那么最好掌握下面这些有关数据库和存储的主题。
理解关系型数据,比如SQL,带来的好处。
学习NoSQL数据库,比如MongoDB。
知道在某些情况下,哪一种更合适。
知道如何使用你的后端语言连接数据库(比如Node.js+MongoDB)。
知道像Redis或memcached这类内存数据存储的优势。
Web存储可在浏览顺中存储会话、Cookie以及缓存数据。
伸缩型数据库、ACID和ORM(都是可选的)。
5.HTTP&REST
HTTP是应用于互联网的一项无状态应用协议——它规范了客户端连接到服务器的行为(比如JavaScript代码通过AJAX请求后端服务器中运行的代码就是采用的HTTP)。下面列出了你应该了解的重要主题:
什么是REST以及它为什么对HTTP协议和Web应用来说很重要。
设计RESTfulAPI的最佳实践。POST/GET请求。
学会使用ChromeDevTools是极其有用的。
SSL证书是什么。
HTTP/2&SPDY(可选)。
WebSockets、WebWorkers,以及ServiceWorkers(均可选)。
6.Web应用架构
当你认为已经掌握了HTML/CSS、JavaScript、后端编程、数据库和HTTP/REST,你就到了难对付的部分了。这时,如果你想创建一个稍微复杂的web应用,你需要了解如何组织代码,如何分割文件,往哪里保存大量媒体文件,如何结构化数据库里的数据,何处执行特定的计算任务(客户端还是服务器端),以及更多其他问题。
网上你可以读到一些最佳范例,但是最好的学习应用架构的方法是自己实践一个包含多个分散部件的大型应用——甚至更好的方法是:和团队合作开发一个相对大型/复杂的应用。
这也是为什么,比如有个七年以上工作经验的人,也许他未必比工作两年的另一个人更懂CSS或JavaScript,但或许是多年各种不同应用和网站的工作经验,使他学习到如何最有效的架构和设计应用(包括学习其他重要事项),并且在开发过程中能看清“全局”。以下书籍或文章可以帮助你学习如何有效架构你得网络应用:
学习通用的平台即服务,比如Heroku和AWS。Heroku允许你做很少的配置或服务器维护,即可轻松上传代码,并执行应用。AWS提供许多产品和服务帮助解决存储、视频处理、负载均衡以及其他更多其他的问题。
应用和流行浏览器的性能优化。
关于网络应用架构应该考虑哪些要素的一些观点。
微软文档:设计网络应用。
模型-视图-控制器编程模式(MVC)。
当然,最重要的还是应该尝试与别人合作项目,阅读Github上受欢迎的代码,以及尽可能向资深开发员学习。
7.Git
Git是一套版本控制系统,它允许开发团队的开发人员跟踪代码库的所有更改。了解与Git相关的一些事项非常重要,它能让你了解如何正确获取错过的最新代码,更新部分代码,修复并修改其他人的代码,而不会发生任何意外。你一定要学习Git背后的概念,并多做尝试。
这里是一个参考列表,它列出了你将会使用到的git命令。
这里是一本手册对Git和GitHub的初学者很有用。
8.基本算法和数据结构
这个话题在开发世界中有点两极分化,因为有些开发人员认为在Web开发中不应该如此重视计算机科学的主题诸如树的遍历、排序、算法分析、矩阵操纵等。然而,像谷歌这样的公司在面试中问这些类型的问题是出了名的。有人说谷歌的前端工程师面试:
也就是说,正如RyanMcGrath所提到的,我们的前端(FE)工程师要有一个坚实的计算机科学(CS)背景,就像我们所有的工程师一样。
虽然有些公司确实要求申请人拥有计算机科学学位或同等学历,也有很多公司愿意雇佣没有这个技术资格的人,如果他们能够证明他们懂得如何开发应用程序和展示出对整个域的理解。但是,作为一个合格的开发人员,而不是编写低效的代码或使用错误的工具,部分要求是理解一些基本算法和数据结构,能够分析权衡。所以你一定要学会一些东西:
研究哈希表并试着在更深的层次上理解它们。这个数据结构构成了JavaScript中的对象(Python中的字典,Ruby中的哈希)的基础。
理解树和图作为数据结构有何益处。
理解算法复杂度分析的基础知识,所以你不会做傻事,像创建实际上没必要创建的3层嵌套的循环!
懂得何时使用对象或是数组,并懂得取舍。
了解为何在处理大量数据时缓存是如此重要。也要了解内存存储和磁盘存储各自的利与弊。
了解队列和栈的区别。
学习所有这些是会很辛苦,但最终还是值得的,并且全栈开发充满乐趣!请在下面留下你的意见,并且访问Coderbyte进行算法练习。
太原电脑培训为了给大学生提供一份适合的岗位,特从合作企业中选取了上百个就业岗位,全部源自于企业的真实需求,只要求职者符合企业的面试要求和岗位条件,免费为求职者提供三次面试机会,详情请加QQ:3373924515咨询了解。
【免责声明】:本内容转载于网络,转载目的在于传递最新信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考