全栈工程师正成为 IT 行业的新秀,无论是上市互联网公司还是创业公司,都对全栈工程师青睐有加。本书作者是腾讯公司高级工程师,在前端、后端和 APP 开发方面都有丰富的经验,在本书中分享了全栈工程师的技能要求、核心竞争力、未来发展方向、对移动端的思考。除此之外,本书还详细记录了作者从零开始、学习成长的心路历程。
余果,腾讯社交用户体验设计部高级 UI 工程师,前端开发组负责人,熟悉前端开发、iOS 开发、PHP 开发和 Ruby 开发等;曾独立开发 iOS APP(撸大师)和 CMS(33PU);翻译有《众妙之门: 网站重新设计之道》和《响应式 Web 设计全流程解析》;平时喜欢编程、写作、演讲、摄影和英语等,希望自己能做一个终生学习者。
您手中的这本书,是我在腾讯五年工作和学习的一些个人心得。
- 我从助理 UI 工程师,一步步晋升为高级 UI 工程师。
- 我从稚嫩的毕业生,变成了领导数十人的团队管理者。
- 我独立设计、制作、发布并开源了一个淘宝客 CMS 系统,并登顶 GitHub 热门关注排行榜首。
- 我作为发起人和主导者,组织数十人一起,翻译了《众妙之门:网站重新设计之道》和《响应式 Web 设计全流程解析》两本书。
- 我从零开始学习 iOS 开发,半年后独立制作并发布了一个 iOS App,赚回了两年的开发者费用。
- 我从一个不敢对陌生人讲话的菜鸟,变成了在几百人面前分享的演讲者。
在这五年中,我最大的收获就是,领悟到做一个“全栈工程师”的快乐。能够做自己喜欢的事情,能够全心投入,能够边学边做,能够不追求完美,能够自我驱动,能够不被自己的头衔局限,能够看到不同技术的联系,能够被老板认可,能够被业界认可,能够相信自己……
由于平时的工作和技术学习都比较跨界,所以在几年前全栈工程师的话题刚刚兴起的时候,我就进行了很多研究和思考。哪些技术对一个组织是真正有用的?全栈工程师的标准能力模型是怎样的?为什么有些人学习和晋升更快?
带着这样的思考,从2014年开始,我在豆瓣网发表专栏《谈谈全栈工程师》,发表了20篇连载专栏之后,得到了很多读者的欢迎,有五千多人订阅了我的专栏,并且在评论中跟我交流心得、表达感谢。我在开心的同时,也知道自己写得还不够好,文章还有很多语法错误和逻辑不清的地方。于是我打算投入更多心力出一本更好的作品。
经过半年的整理和撰写,这本书终于完成了。我把这本书定义为“轻松的技术杂文集”,希望读者可以以轻松一点的心态来读。书中一小部分内容来自豆瓣网专栏的扩充,一小部分来自 我的博客,一小部分来自这一年多来的梦境和灵感,一大部分想法来自阅读。
本书需要读者有基本的编程基础,能理解基本数据结构,了解一门编程语言的语法。
如果可能,本书尽量不提供某种具体语言的代码实现。此外,读者可能对某一章的内容想作深入的了解,因此我在每一章节的末尾提供了延伸阅读推荐。
简单说说我自己吧,我从小一直很喜欢读书,高中开始对计算机技术燃起狂热的兴趣。还记得高中时候我每个月必读的两本杂志是《大众软件》和《散文》,即使是最忙碌的高三也没有停止,毕业的时候杂志堆起来一米多高。
《大众软件》话题覆盖面很广,从游戏评测到硬件展览报导,从软件推荐到硬件速递,从手机评测到 CPU 架构介绍……也许从那个时候起,我就养成了对各种新技术来者不拒的习惯吧,这也是我下定决心报考IT专业的原因。
小学时候看过很多散文、唐诗宋词,这可能跟我父母都是文科生有关系;可我偏偏热爱并擅长理科,尤其数学和物理,长大后渐渐喜欢看编程类的书。在父母都是文科生的环境下长大,导致我可能有一种感性和理性相结合的特质。
从理性的角度来讲,我做事情非常在意逻辑、证据、数据和对比;从感性的角度讲,我喜欢把我理解的知识用图形化的方式储存在脑海中。还记得高中做数学题的时候,有些关于象限的题,既可以用方程和公式去计算,又可以用图形去推理,我就非常喜欢用图形去推理,看到一个方程式就能“脑补”出解的集合曲线。一个方程组的解就是象限图种几条曲线的交集,因为线是点的集合,所以交点就是既满足方程A也满足方程B的解,这对我来说是非常容易理解的事情。但副作用是,由于长期不开发自己的记忆能力,所以我很容易忘事,也经常记不住人的名字和脸。理科中,我的生物和化学成绩就不怎么好。
后来我在西安电子科技大学读软件工程专业,西安是一个很美的城市,在沙尘中有一种古老的沧桑感,整个城市也方方正正(处女座最爱),鞋子和衣服在阳台上放两天就会有一层灰。我很喜欢西安,我在西安度过了美好的四年。
从大学第一天起我就开始写博客,大学生时间比较多,期间折腾了很多域名和很多服务器,以及各种各样的博客程序,也丢过很多内容。在大学毕业那年,我开始启用http://yuguo.us/这个域名,并抛弃 WordPress,开始用静态站点生成器 Jekyll 生成站点,并使用 GitHub Pages 提供的免费服务器来托管页面。使用静态页面的最大优点就是访问速度非常快,而且不会出现服务器错误和数据库错误。如果说各种博客程序之间的 PK 就像高手对决,那么 WordPress 这种重型 CMS(Content Management System,内容管理系统)就像降龙十八掌,变化多端,是力量和技巧的极致,有一种无法掩饰的王者霸气。Jekyll 则像是小李飞刀,不会与您正面争锋,但是“小李飞刀,例无虚发”,是速度和精准的极致。
因为非常喜欢折腾网站前端的技术,所以在毕业的时候,我意料之外而又情理之中地选择了前端工程师这一个职业,并且很幸运地在校园招聘中,初次面试腾讯就被录取,并在腾讯工作至今。后来证明,大学的软件工程专业学习很有用。读书时觉得理论知识和后端的知识比较无用,但在工作中却证实,它们非常重要,所以我现在也经常回头复习一些基础知识。
就像乔布斯在斯坦福大学那场著名的演讲里说的,一个人在年少的时候,可能无法看到自己现在做的事情跟自己的未来会有什么关联。您无法预知未来,只能回顾。但是您需要有信心,当您很多年后回头看时,这些点点滴滴会连接在一起,让您朝自己的理想迈进。
我无法预知未来,但回头看过去的五年,我在这期间遇到种种困难,解决各式各样的痛点,帮助项目和团队成长,并成就自己的成长。虽然这些痛点不是每个人都会遇到,世界上也没有完全相同的项目,但是我觉得全栈工程师的理念是通用的,所以我的经验可能对其他人也是有帮助的,这也是我写这本书的初衷。这些思考,我会在本书中一一道来。
最后我想说的是,做您自己感兴趣的事情,学您想学的知识,不要怕走偏了,如果有人说您不务正业,那就让他们说去吧。如果您能远离传统的路子,您将会不同凡响。
全栈工程师(Full-Stack Engineer),是一个在 IT 行业圈子里越来越热门的话题,无论是像 Facebook 这样的大型公司,还是刚刚起步的初创公司,都开始招募全栈工程师。据说,Facebook 声称:“我们只招全栈工程师!”
“全栈”是一个外来词,对于中国读者而言,会觉得它很陌生。当我第一次对某人提到“全栈工程师”时,他一头雾水:“全栈?您是说全端工程师吗?”
其实,“全栈”翻译自英文 full-stack,表示为了完成一个项目,所需要的一系列技术的集合。“栈”是指一系列子模块的集合。这些软件子模块或者组件组合在一起即可实现既定功能,不再需要其他模块。
全栈中的“栈”与计算机数据结构中的“堆栈”不是同一个概念,后者是指先入后出的串行数据结构。顺便说下,“队列”是指先入先出的串行数据结构。
IT行业之外的人其实很难理解 Web 开发是多么复杂的工程。人们一般认为,在计算机公司或者互联网公司工作的人,就应该能够解决与计算机相关的所有问题:电脑开不了机、应该买什么型号的手机、家里上不了网,等等。在他们眼中,计算机行业的从业者天生就带有“全栈光环”。
但是拿着这本书的您知道,要开发一个 Web 页面,工程师需要掌握的知识至少包括:服务器(比如 Linux)、数据库(比如 MySQL)、服务器端编程语言(比如 PHP)、前端标记语言和脚本语言(HTML、CSS、JavaScript)等。这些技术中的每一个,都需要几年的学习和练习才能达到精通的程度。Web 工程是一个如此大的专业类别
原文链接:https://blog.csdn.net/valada/article/details/79910101?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171837794916800180657233%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171837794916800180657233&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-15-79910101-null-null.nonecase&utm_term=%E8%A5%BF%E5%AE%89%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%89%98%E7%AE%A1
原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/33364