全栈工程师:能处理数据库、服务器、系统工程、客户端所有工作的工程师。根据项目的不同,客户可能需要移动堆栈、Web堆栈或本机应用程序堆栈。
全栈:是指完成一个项目所需的一系列技术的集合。一个人是不是合格的全栈工程师,要从能力和思维方式两个方面来判断。简单来说,全栈工程师就是能够独立完成一个产品的人。
1、Web开发流程
产品研发。大中型互联网公司的d流水线:产品设计-交互设计-视觉设计-前端开发、后台开发-测试-发布。
产品经理:产品经理其实就是从根本上负责一个产品的经理。他平时的工作包括制定产品规划,协调各种资源,控制产品方向和质量细节等等。有时候,他从零开始规划一个新产品,但更多的时候,他是在优化现有产品的一部分。总之,在流水线上,产品经理从策划到发布都需要跟进,这是一个非常重要的角色。
用户研究员:用户研究员的工作是研究用户行为。他有时候会从宏观角度分析数据,有时候会从微观角度分解用户场景,有时候会召集一些用户进行访谈或者观察用户产品的使用。从输出的角度来看,用户研究人员一般输出用户研究报告交付给产品经理和交互设计师,作为产品设计的目标参考。
交互设计师:交互设计师通常被称为互动简称。他和视觉设计师最大的区别是交互设计师更专注于如何优化用户界面的信息分发和操作流程。交互设计者的输出通常是一个描述互动用户和网站之间,以及描述页面信息结构的折线图。输出线框将被交付给视觉设计师。
视觉设计师:在细分交互设计师和视觉设计师的大公司,视觉设计师根据交互设计师输出的线框做一些打磨和设计,输出最终产品视觉稿后,将视觉稿交付给前端工程师。在一些小公司,不细分交互设计师和视觉设计师,他们统称为设计师,其职责是设计整个用户界面。
前端工程师:产品视觉稿经产品经理和交互设计师确认后,交给前端工程师,由前端工程师制作页面,实现视觉稿和交互功能。从标题的变化可以看出,这是编码真正开始的时候。前端工程师需要非常熟悉HTML、CSS和JavaScript,以及性能、语义、多浏览器兼容性、SEO、自动化工具等方面的丰富知识。
后台工程师:使用服务器编程语言开发服务器功能。在编程语言的选择上,很多公司会根据现有团队成员的知识储备、程序员的供给或者语言表现来做出选择。在这方面,后台语言的选择相对自由,不像前端工程师为了页面兼容,不得不使用HTML和CSS。如果你关注一下各大公司的招聘信息,就会知道不同的公司使用的后台语言是不一样的,比如传统的C#和C,Java,PHP,或者新潮的RoR和Python。小公司的后台工程师除了功能开发,可能还要负责服务器的配置和调试,数据库的配置和管理等。在大公司,这些工作会分配给后台工程师、运维工程师、数据库管理员(DBA)等岗位。
运营与管理。维护工程师:操作与维护工程师。维护工程师是与服务器打交道的人。他会关注服务器的性能、压力、成本、安全性等信息。
测试工程师:顾名思义,测试工程师保证产品的可用性,即使在小公司,这个岗位也是不可或缺的。
注:甘特图经常用于项目管理。甘特图是一种条形图,显示项目、子项目、进度等与时间相关的系统的进度。
:技术的发展
说到全栈技术,就不得不提一个有代表性的全栈框架——MEAN,它是MongoDB-Express-angular js-node . js的缩写,是从数据库、服务器到前端页面的完整技术栈。
MongoDB是一个面向文档的NoSQL类型的数据库。MongoDB颠覆了传统的基于表格的数据存储方式,采用了类似JSON的文档结构来存储数据,因此在存储数据时可以更加灵活。
Express是一个Node.js框架,可以创建灵活的Web服务,比如单页应用、多页应用和混合应用。
AngularJS是一个开源的JavaScript框架,由Google和开源社区共同维护。它用于创建单页应用程序。它的目标是通过使用模型-视图-控制器模式来标准化Web应用程序,并使开发和测试交互式单页面应用程序变得更加容易。
Node.js是运行在服务器端的JavaScript运行时环境,其底层是基于Chrome的JavaScript运行时环境——V8引擎。Node.js可以作为一种服务器端语言来创建快速且可扩展的应用程序。Node.js也可以在这台机器上运行,做一些本地操作,比如加快本地开发进程,或者实现一键发布。
MEAN可以说是传统灯方案的有力竞争者。因为从服务器端到页面端采用了相同的语言(JavaScript)和相同的架构模式(MVC),一个擅长JavaScript的工程师可以兼顾前端和后端开发,前端模板代码和后端模板代码可以复用。
3、越来越多的平台提供PaaS服务
随着Web技术的发展和开源社区的积极努力,很多公司都提供了便宜方便的一站式服务,可以解决很多独立开发者的烦恼。
比如亚马逊提供的PaaS(Platform as a Service)可以省去创业开发者架设和维护服务器的麻烦。
而GitHub在2012年获得了1亿美元的融资,也说明了市场对代码托管市场的信心。可以预计,未来为开发者提供服务的公司会越来越多。未来,小公司也能以更低的价格获得世界一流的IT服务支持。毫无疑问,更多的IT服务将托管在第三方服务器上。
VPS(虚拟专用服务器)是一种将一台物理服务器虚拟化为多台虚拟专用服务器的服务。每个VPS可以分配独立的公有IP地址,运行独立的操作系统,拥有独立的磁盘空间、内存、CPU资源、进程和系统配置,模拟了独家计算资源的使用。
4、一个专业多长?
我和一位行业专家讨论过全栈工程师的话题,但他没有我不太同意这个方向。在他看来,工程师应该有专门的技能和目标。新手要想做大做全,并不是什么都擅长。我理解他的担心。如果一个工程师没有扎实的基础(比如专业理论知识,对常见设计模式的理解,或者某个特定职业的基础知识),他所掌握的非专业技能越多,就越容易迷失。
所以,我认为,全栈工程师首先应该一专多能。专业化的意义是,工程师一开始有一个专业化的方向,在这个方向足够精通(高级工程师级别)之后,就可以以此为突破点,学习更多的知识,增加自己的长处。如果你还没有don 不要急于学习其他领域的知识。
有些知识需要时间来积累,它可以快速阅读是无法掌握的。术语全栈工程师可能会引起读者的误解。唐不要在沙滩上建塔。"全栈是一个长期积累的过程,是专门的工程师在不断解决问题的过程中积累知识和经验的能力,而不是一蹴而就的过程。
5、解决问题,不沉迷于技术
公司的意义的存在就是为了解决问题。公司要解决用户问题,而员工必须解决公司的问题。
该公司的问题可能是降低成本、扩大用户群、增加交易量、优化性能等等。不同的问题有不同的重点。同样投入的时间,有些项目可以增加公司美国人的收入增加了几百万,而其他人只能增加几万。
互联网发展很快,问题的优先级总是动态变化的,所以团队往往每半年或者三个月回顾一次现状,做出新的工作计划。如果新计划不是你的专长呢?你应该马上开始学习新技术。那这就是我所说的集中注意力,而不是沉迷于技术。
高级工程师可以选择上下游拓展能力,承担更多的责任,给公司带来更大的利润和更大的成长空间。程序员在小公司主动承担更多责任,无论是自己还是公司都会相应成长。在自由职业市场,全栈工程师是最耀眼的明星。全栈工程师也是天生的企业家。
标签:工程师公司服务器