其他

求职丨全栈工程师,业界看重哪些技能?

2017-10-02 🐯 BitTiger



从简单的雏形到完美的成品,全栈工程师通常被认为是万能多面手,那全栈工程师到底做什么呢,让我们来一探究竟。


为了更好的了解其现在的工作,我们首先来看下以前的全栈工程师都做些什么。


在2000年时,全栈开发者通常会做这些工作:

  1. 用Photoshop或Fireworks 等工具设计一个网页

  2. 将网页编译成HTML,CSS或图像热点

  3. 编写一些PHP4.0脚本来处理服务端逻辑(当时还没有面向对象的PHP语言)

  4. 将所有动态数据存储在MySQL中,可能需要做简单处理

  5. 通过FTP将代码或数据等上传到服务器


当时全栈比较简单,个人开发数量颇多,工作压力不大,但现在,全栈开发已经不能同日而语。


为了在激烈的市场竞争中占据一席之地,全栈工程师需要不断学习各方面技能,主要包含以下方面:


服务器管理/Devops

程序员必须具备基本的服务器管理能力,包括并不限于以下知识:

  • 在非GUI环境中,通过终端连接远程服务器

  • 会写Shell脚本编程

  • 服务器上的用户和群组管理

  • 管理Apache和Nginx等服务器程序来提供应用

  • 管理防火墙和权限

  • 安装及更新软件


除了这些基本功,程序员还需要懂得如何通过Docker或虚拟机来创建完善的、运行良好的独立开发环境;以及熟练操作版本控制系统,以便可靠地生成备份和可共享的协作代码库,来根据时间追踪代码变化。



云端/Cloud

除了物理服务器与虚拟服务器外,全栈工程师还需要了解云端,例如Google Cloud、Azure、AWS等。


虽然很多工具或平台可能不会立即应用,但长远看来,熟悉每个人都在讨论的服务可能会派上大用途,客户可能随时要求更换服务端,所以需要早做准备。



后端/Back-end

除了需懂得选择哪种语言,还应该熟悉:

  • 与运维紧密相关的Web服务器,如Nginx和Apache

  • NodeJS会将JavaScript,CSS编译为静态文件,用PHP可以避免NodeJS的问题

  • 依赖管理工具的使用,比如PHP中的Composer

  • 良好的API设计,当前大多数网站是基于API的,很少有独立的前端交互

  • 对性能提高非常重要的搜索引擎使用

  • 用Gearman类工具,Crunz等库进行Cronjobs及后台作业

  • 缓存技术非常重要,使用Varnish,Redis或其他工具分片存储数据


数据库/Database

除了需掌握架构稳定的关系型数据库,如MySQL , PostgreSQL,一个全栈工程师还应该对非关系型数据库熟练应用,如MongoDB, Redis, Cassandra,更不用说Neo4j这样的图形数据库了。


数据库是在服务器上的,需要全栈工程师的控制,同时也存在远程解决方案,比如Mongo类的RestDB或Google的Firebase等。



前端/Front-end

说到前端,技术栈可能比较混乱。

作为一个全栈工程师,你需要了解:

  • NodeJS 和 NPM

  • Yarn

  • 预处理器和编译器(如Babel),用来编译 Typescript, ES6, LESS, SCSS, SaSS

  • 构建和任务执行工具,如 Grunt 和 Gulp

  • 框架,如 VueJS、React、Angular

  • 模块打包工具,如 Webpack、Browserify、Rollup



设计/Design

开发者需要知道产品在转为可用的HTML、CSS代码前应如何画原型,然后用JavaScript进行交互,在后端用虚拟数据做模拟测试,只有当原型图完成,用户体验和交互界面设计完成,产品才可以开始真正的开发。所以设计本身就是非常巨大的挑战,需要使用一套特殊工具:

  • Photoshop ,Illustrator或一些开源工具如 Gimp , Inkscape等。

  • 好用、快速的编辑器,比如 Atom 或 Sublime Text

  • 背景选择器, 如Subtlepatterns和匹配颜色的颜色选择器

  • CSS的栅格系统

  • 用于JavaScript模拟的相关知识

  • 把原型图放到网上供用户查看和反馈的方式,比如Ngrok


日志

为了有效的监控应用的健康度,开发者需要追踪错误,找到这些日志并找出其中有价值的信息,还需要预测一些趋势,比如需要注意CPU及I/O占用率的上涨,以防服务器突然崩溃。这些和运维有一定联系,也需要掌握更多专门的技能



移动端

最后说到移动端,随着 iOS 和安卓的webview变得越来越高效,以及PWA(渐进式web应用) 的到来,原本的应用逐渐不再流行,因为他们开发起来过于复杂。所以一个全栈工程师必须了解 PWA 或 React Native,或NativeScript、Tabris、Cordova、Phonegap等好技术开发出基于API的客户端。


看完上述技能要求,全栈工程师是否仍然吸引着你?

需要注意的是其实大多数全栈工程师并不是精通所有技术,也会在某些方面有所偏重,毕竟每个人的时间与精力都是有限的。全栈开发工作可能无法使人成为某一领域的专家,但却能让人很好的了解整个产品流程、项目需要的全部技术、以及对项目有更高层面的理解。


全栈工程师可能不是一个“JavaScript 巨星”,“Elasticsearch 黑马”,“MySQL 大师”,“运维狂人”,或者“移动端老司机”,但可以测试应用到不同的技术,为产品提供与众不同的解决方案,成为不可缺少的统帅人才。


想要成为全栈软件工程师?

BitTiger带你学习全栈所需的所有技能。


Less Time, Better Job!


BitTiger全栈软件工程师直通车——第五期

招生通道正式开启


课程目标

3个月成为全栈软件工程师,由内而外冲击Google、Facebook等一线公司高薪offer。


课程内容

高强度专业培训

第一阶段:Collaborative Online Judge System项目强化训练

阶段目标:

亲自实现类Google Doc在线协作编程、LeetCode代码自动测试系统。


第二阶段:“今日头条”新闻挖掘与推荐系统项目强化训练

阶段目标:

亲自实现新闻服务的Web 前端与后端,健全的数据采集系统,机器学习离线训练与线上预测系统。


第三阶段 : Capstone个性化实战项目

阶段目标:

基于两个项目的理论与实战,从实际企业级需求出发,按照真实工作的流程,进行系统设计、技术栈选型、模块组织,并搭建一个完整全栈系统。学员将基于适合自己的Track,在导师的指导下完成各自的项目,参考项目题目如下:

  1. Collaborative Online Judge System 项目扩展

  2. 今日头条”项目扩展

  3. 即时通信系统

  4. 爬虫采集与机器学习


项目成果展示

邀请来自硅谷一线公司参与学员的Capstone项目展示,并对项目进行评估,为学员的求职之路提供最强助力,更有直接获得Onsite的机会。


强大内部学习资源库

课程期间随时访问太阁精心总结的海量视频:

  • 全套基础知识视频:JavaScript、Java、Python、算法设计、系统设计、OOD

  • 全套硅谷之路视频:深入浅出解读硅谷前沿技术

  • 全套面试指导视频:职场面试老司机为你梳理如何应对技术与非技术面试

  • 太阁精心总结的面经:来自太阁学员们的一手经验


Code Lab

  • 个性化LiveCoding指导

  • 项目功能延展

  • 即时答疑解惑


个性化学员成长档案

  • 摸底评估、全程跟踪

  • 个性化学习指导

  • 就业面试实战辅导


强大面试指导

  • 100道Full-Stack面试真题讲解

  • 面试流程和必备知识技能解析

  • 针对学员的情况提供专属简历修改

  • 优秀学员有效内推


真实模拟面试

  • 1对1面试情景还原

  • Flag面试全真模拟


课程组

Mao Chan

Senior Software Engineer @ Google

毕业于CMU,目前在Google Ads team担任senior software engineer


Payson Wu

Front-end Engineer @Microsoft, MMath

就职于Microsoft,五年全栈开发经验


Zhe Wang

Full-stack Tech Lead,PhD

CS PhD 研究方向分布式系统容错与安全, 现在硅谷大数据公司担任软件工程师, Apache Ambari Project Committer。


Thomas

Senior Software Engineer and Architect

有多年高流量,大容量,低延时系统的架构设计,研发及运营经验。曾主导开发多个大型在线系统,包括大型房地产经纪系统及网络搜索、在线广告系统。


Bob

Software Engineer @ FLAG

毕业于Carnegie Mellon University,在校期间因为能力出众而导致总是有一堆人围着帮忙求debug所以是名副其实的技术帝,擅长machine learning,cloud computing,distributed systems。目前就职于硅谷的FLAG之一,工作表现非常出众。


报名第一节公开课(免费)

或查看课程详情

第一节课时间

美西时间:11月11日 7pm

美东时间:11月11日 10pm

北京时间:11月12日 10am


1. 复制链接或点击“阅读原文”

https://www.bittiger.io/livecourses/QZvpMfkmTzzikrKBx

2. 点击“第一节课报名(Free Lecture)”即可报名


课程咨询及求职相关问题

1. 复制链接或点击“阅读原文”

https://www.bittiger.io/livecourses/QZvpMfkmTzzikrKBx

2. 点击“课程咨询(Class Consultation)”即可报名


课程组老师会在收到简历后24小时内进行简历背景评估,并电话回访,帮你做职业指导及解答你对课程的相关问题。


查看课程大纲,公众号后台回复“CS503”



联系课程负责人Angela,备注“全栈课程”


若你在求职SDE的过程当中遇到了问题,我们的Career Advisor教师组一直在这里,随时帮助同学们分析问题、拆解问题、提供解决方案。


往期学员评价

非常感谢YiChi老师和Mao老师的指导,无论是知识方面,还是coding实战方面,都学到很多,两位老师,还有Payson老师都辛苦啦!

——程同学


感谢几位老师的倾情教学!这几个月来收获了很多,不仅仅是专业技能。最后capstone表现虽然不好,但是在失败之中也收获了不少。

——张同学


通过payson老师和chan老师的教学,对新的技术和项目架构有了较深的了解。最后周老师的capstone指导提升了我对最近软件项目审查视角

——Shirley同学


最新Offer英雄榜

本文译自:https://www.sitepoint.com/full-stack-developer/


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存