丹枫在心
全栈工程师需要学习多种技术和领域,包括但不限于以下内容:
1、前端技术:HTML、CSS、JavaScript、React、Angular、Vue等
2、后端技术:Java、Python、、Ruby on Rails等
3、数据库:SQL、NoSQL、MongoDB等
4、服务器管理:Linux命令行、Docker、Nginx、Apache等
5、版本控制:Git、SVN等
6、网络协议:HTTP、TCP/IP等
7、安全性:Web安全、数据加密、认证与授权等
除了技术方面,全栈工程师还需要具备团队协作、项目管理、沟通能力和解决问题的能力。
全栈工程师工作内容及任职要求
1、在原有的产品框架上进行功能板块的独立开发,包括PC端.移动端.微信小程序等应用,并进行代码维护工作,优化代码质量,抽象组件,提取公共业务模块;
2.深度参与产品需求评审,提出可行的技术方案,确保产品具有优质的用户体验;
3.协助系统功能的测试,及时修复对应的问题,对项目功能的可交付落地负责;
4.承担一部分前端UI.交互设计,以及后端接口.服务器运维等开发工作;
5.基于公司宏观产品线,不断理解和优化产品架构,关注前后端前沿技术,并反哺其它开发模块和团队成员,指出架构中的问题,输出合理的调整建议,引领和推动团队技术进步;
任职要求:
1、全日制统招本科及以上学历,计算机.软件工程等相关专业;
2、精通各种前端技术,包括等,了解模块化思想,能进行模块化开发,掌握常用的e6语法;
3、熟练掌握React/Vue中至少一种前端框架,并使用对应的技术栈开发过至少1个以上的项目(有小程序开发经验者优先);
4、熟悉框架,有搭建或维护koa2中间服务器的经验,能编写API接口,了解ql语法,能使用nodej操作数据库(增删改查);
5、认可低代码开发环境,并有前端组件化的思维,能根据业务抽离出独立的模块(有低代码开发经历者优先);
6、自我驱动,优秀的逻辑思维能力.沟通能力和学习能力,有高度的团队协作精神,能承担一定的工作压力;
淡水氤氲
全栈工程师是指掌握多种技能,并能利用多种技能独立完成产品的人。也叫全端工程师(同时具备前端和后台能力),英文Full Stack developer。如何成为全栈工程师,从前端到后端的技术很多,全栈工程师并不需要你真的掌握所有的技术,你应该将自己的精力聚焦于关键开发技能以及一些必须掌握的附加技能上。你必须要会版本管理,精通一门语言,熟练运用开发框架和第三方库,精通前端技术,熟悉数据库与缓存,当然还需要基本的设计能力,沟通能力,和组织能力。全栈工程师决不是一夜练成的,你需要打好技术基础,强化核心技能,并持续学习
依我以希
为了在这个牛逼的市场里获得成功,我们这些开发者――通常都是完美主义者――应经常把“如果你想做正确的事”当做自己的座右铭,并经常质问自己。这会强迫我们自己集中精力在一处,而且必须学习所有东西,所以做一个全栈工程师往往要学会以下技能,济南IT培训优就业的小编整理发布:
1、服务管理/运维
一个开发者必须了解基础的服务器管理知识。包括当不限于以下知识:
通过终端或其他没有用户界面的环境来远程连接服务器
会写基本的shell脚本
服务器上的用户和群组管理
管理像Apache和Nginx这样的服务器程序来提供应用
防火墙管理和权限管理
安装和更新软件
除了这些基础技能,开发者必须懂得怎样去创建一个好的、健康的、分离的开发环境,在 Docker 或者像 Vagrant 这样的虚拟机环境中。如果上面所有的技术你都不熟悉,那我必须给你推荐一本超棒的书,点这里购买。
开发者必须对版本控制系统非常熟练,为了让开发有靠谱的生产备份和可分享、可协同的代码库,这些代码库能够根据时间来跟踪代码变化。现在已经没有开发者的工作流是完全离开版本控制的了。我们有一个非常棒的关于版本控制的视频教程,点这里购买。
2、云
和实际管理或者虚拟服务器不同,一个开发者也许要知道云主机平台,比如Heroku, Google Cloud, Azure, AWS等等。
有一点必须说明的是,平台和工具更多的是为了炒作而不是其实用性。尽管有很多平台和工具的实用性并不如宣传的那么好,但是了解这些大家都在谈论的服务,从长远来看会很有用――客户可能会随时要求更换服务提供商。幸运的是,我们拥有这些云主机部署权威指南。
3、后端
在后端,除了要懂选择什么语言以外,比如 PHP 和众多的框架 and CMSes,一个全栈开发者必须熟悉:
Web服务器,比如Nginx和Apache,和运维紧密相关
不幸的是,NodeJS 已经可以将 JS、CSS 和其他资源文件编译成静态可以方便缓存的文件了。幸运的是,也有办法避免学习 NodeJS,用PHP也是可以的
像Composer这样的PHP()包管理工具在现代化的开发环境中已经离不开了
好的API 设计,自从大部分新型网页都基于 API 而且仅仅为前端服务(下面会详细描述)
ElasticSearch (introduction here)这样的搜索引擎对于网站性能的提高是非常重要的
cronjobs 和后端的工作,使用Gearman 或者 Crunz 这类的库
了解缓存,Varnish, Redis 等牛B的工具可以分片存储数据,这样可以将一个项目部署的多个主机上
4、数据库
数据库是一个单独的部分,因为除了很好地掌握我们基本上不会有结构变化的关系数据库(MySQL或者PostgreSQL)的数据模式之外,一个全栈工程师应该对非关系型数据库有所了解,如MongoDB, Redis,或Cassandra ,更不用说像Neo4j这样的图形数据库了。
不幸的是,这些都是服务器上的东西,都在全栈工程师的控制下。也有几个类似 Mong 的远程解决方案,像RestDB或者Google-owned Firebase等。
5、前端
想知道一个正常的前端知识图谱是怎么样的,可以在JavaScript 版块看这篇绝世好文。但是作为一个全栈工程师,你需要了解
NodeJS and NPM
Yarn
预处理器和编译器(如Babel),用来编译 Typescript, ES6, LESS, SCSS, SaSS
构建工具,如 Grunt 和 Gulp
框架,如 VueJS、React、Angular
模块打包工具,如 Webpack、Browserify、Rollup
6、设计
在设计方面,全栈开发者需要了解怎样在一个产品变成真正可用的 HTML 、CSS 代码之前,画一个原型图。然后就可以去用 JS 写交互、后端也可以用假数据来模拟生产环境。只有这个关键的原型图完成,用户体验设计和接口设计就绪,真正的开发才能开始。这本身就是一项艰巨的任务,需要一套特殊的工具:
Photoshop和Illustrator 或者一些开源的工具比如Gimp/Inkscape。访问Design channel来了解更多这样的工具。
一个牛的、快速的编辑器,比如Atom或Sublime Text(这儿有十种好用的sublime插件)
像Subtlepatterns的背景选择器和颜色选择器能够搭配一些颜色
CSS的栅格系统
上面所说的前端所需要了解的所有知识和 JS 数据模拟
将原型图发表到网上供大家浏览并给于反馈,Ngrok就非常好用
7、日志系统
为了高效监控应用的健康度,全栈开发者必须能够追踪错误,找到错误日志然后从中提取出有用的信息。全栈开发者也需要从日志中预测一些趋势,比如 CPU 或者 I/O 占用率的上涨,以防应用不知道什么时候就挂了。这部分和运维也有一些关系,但是需要一些特别的技能:
推荐一篇非常棒的ELK stack的文章,这会帮助你了解做日志系统所需要的知识。里面包括了查找日志的ElasticSearch ,收集日志的Logstash,把日志用非常棒的图表展现出来的的Kibana,甚至还有提供解决方案的。
8、移动端
最后,我们该说说移动端了。随着iOS和安卓上的的webview变得越来越高效,还有 PWA(渐进式web应用)的到来,native 应用正在变得黯淡,因为他们开发起来实在是太复杂了。所以一个全栈工程师必须了解 PWA 或者 React Native,或者像NativeScript, Tabris, Cordova, Phonegap或者其他webview来让客户端应用调用 API跑起来。
优质工程师考试问答知识库