随着信息产业的迅猛发展,IT行业人才需求量也在逐年扩大。
据国内权威数据统计,未来五年,我国信息化人才总需求量高达1500万—2000万人。其中“软件开发”、“网络工程”等人才的缺口最为突出。以软件开发为例,我国软件人才需求以每年递增20%的速度增长,每年新增需求近百万。
这也是目前很多非科班出身的同学为了搭上互联网的快车开始学习编程的原因,但是刚开始应该选择哪个学科,却给很多同学带来了很大困扰。
达妹在和同学的交流当中发现,大家对于“前端、后端、全栈”的概念还非常模糊,俗话说“磨刀不误砍柴工”,了解了互联网的工种定义、职能及技能需求,才能使你能更高效,更有计划的学习,从而迈向互联网经营的目标。
一、前端方向
网站的“前端”是与用户直接交互的部分,包括你在浏览网页时接触的所有视觉内容--从字体到颜色,以及下拉菜单和侧边栏。这些视觉内容,都是由浏览器解析、处理、渲染相关 html、css、JAVAscript 文件后呈现而来。
技能与工具
前端开发,就是要创造上面提到的网站面向用户的部分背后的代码,并通过建立框架,构建沉浸性的用户体验。为了实现这个目标,开发需要熟练运用下列语言、框架、工具库:
三大语言:HTML,CSS,和 JavaScript;
此外,掌握 jQuery 和 LESS 等工具库也很重要,它们能帮助开发者以更高效的方式编码;
很多前端开发岗也要求 Ajax 方法的使用经验,它可以帮助你使用 Javascript 在后台从服务器拉取数据,协助实现页面的动态加载。
打个比方,前端开发者的工作专注于“房屋”装修,而盖房子的工作由后端开发者负责。
通过一些专门的工具,前端开发者与设计师/用户体验分析师密切合作,帮助构建原型或是线框图,参与产品开发到发布的全过程。
一些前端开发者甚至能准确定位影响用户体验的特定问题,并给出建议或是代码解决方案,对产品设计带来积极影响。
在专业能力外,与其它团队协作,以理解特定目标、需求、机遇,以及高效的执行力也非常重要。
这听起来工作内容很多,但也回报丰厚。“我是一名技术人员,也是一名设计者,在数字平台上使用标记语言和代码修改视觉元素并与之互动是很自然而有趣的体验,”有八年前端开发经验的 Mikey Ilagan 说“这让我能够直接影响到用户体验,操纵应用和网站里用户所见并直接与之交互的元素,这非常棒!”
总之,前端开发者要为后端开发者搭建的“房屋”进行内部设计和装修工作。装潢风格由房屋所有者指定。Apptix 的产品市场负责人 Greg Matranga 表示:“前端开发者有时更容易为他们的工作感到振奋,因为他们有更广阔的空间发挥自己的创造力。”
薪资参考
以下为在某主流互联网行业招聘网站上,搜索“前端”限定“3年及以内”经验后最先出现的4份岗位待遇信息。下文中后端、全栈薪资信息截图条件相同。
二、后端方向
是什么给网站前端提供支持?数据存放在哪里?这就涉及后端内容了。网站后端包括服务器、应用还有数据库。后端开发者构建并维护这些组件,为网站提供多方面支持。
技能与工具
为了让服务器、应用、数据库能够彼此交互,后端工程师需要具有如下技能:
用于应用构建的服务器端语言:php, Ruby, Python/ target=_blank class=infotextkey>Python, Java, .NET 等;
数据相关工具:MySQL, Oracle, SQL Server 等;
PHP框架:Zend, Symfony, CakePHP等;
版本控制工具:SVN, CVS , Git 等;
还要熟练使用 linux 作为开发和部署环境。
后端开发者使用这些工具编写干净、可移植、具有良好文档支持的代码来创建或更新 Web 应用。但在写代码之前,他们需要与客户沟通,了解其实际需求并转化为技术目标,制定最有效且精简的方案来进行实现。
“我热爱后端开发因为我喜欢操纵数据”,资深后端开发者就职于 Wildbit 的 JP Toto 说。“现在共有和私有 API 已变成移动设备、网站以及其它互联系统交换数据的必备通道。创建对大家有用的 API 是我工作里非常鼓舞人心的部分”。
薪资参考
三、全栈
有时前后端之间并没有明确的界限,“前端开发者通常需要额外学习后端技巧,反之亦然,尤其在特定市场条件下”,Matranga 说:“开发者需要跨领域知识,有时甚至需要成为全才。”
全栈工程师,最初是6年多以前由 Facebook 带动的概念。全栈的核心,是指这批开发者能够承担包括前端、后端在内的所有功能开发任务,他们拥有一个技能全家桶。
“能够同时承担服务器端和客户端工作会为你带来更多机会,” Grovo 的全栈工程师 Federico Ulfo 说 “当然这也就意味着更多的挑战。以厨艺作类比,掌握烹饪和烘焙都需要时间与经验积累,同时掌握两者要花费更多精力。照着菜谱做谁都可以,我此处所说的是做出真正美味东西的能力。”
技能与工具
全栈开发者也通常在服务器端进行编程工作,但他们熟练前端语言,能够操纵网站面向用户的部分。基本上可以形容他们是百事通。
下图表来说明全栈开发不断增长的复杂性,这是过去与当前技术需求情况对比:
具体工具依项目和客户需求而定,全栈开发者需要对 Web 架构的每一个层次都有足够的了解:搭建和配置 Linux 服务器,编写服务器端 API,利用客户端 Javascript 代码驱动应用,将设计层面的东西转化到实际的 CSS 代码。
掌握并使用大量工具的同时,全栈开发者需要敏捷地分配服务器端和客户端任务,提供解决方案并对比不同方案的优劣。
薪资参考
看了这些,是不是对于未来的选择有更清晰的认识了呢?