全栈工程师修炼指南
熊燚(四火)
Oracle首席软件工程师
立即订阅
2286 人已学习
课程目录
已更新 43 讲 / 共 40 讲
0/4登录后,你可以任选4讲全文学习。
课前必读 (3讲)
开篇词 | 从成长角度看,为什么你应该成为全栈工程师?
免费
学习路径 | 怎样成为一名优秀的全栈工程师?
导读 | 如何学习这个专栏?
第一章 网络协议和 Web 接口 (6讲)
01 | 网络互联的昨天、今天和明天:HTTP 协议的演化
02 | 为HTTP穿上盔甲:HTTPS
03 | 换个角度解决问题:服务端推送技术
04 | 工整与自由的风格之争:SOAP和REST
05 | 权衡的艺术:漫谈Web API的设计
06 | 特别放送:北美大厂如何招聘全栈工程师?
第二章 欢迎来到 MVC 的世界 (7讲)
07 | 解耦是永恒的主题:MVC框架的发展
08 | MVC架构解析:模型(Model)篇
09 | MVC架构解析:视图(View)篇
10 | MVC架构解析:控制器(Controller)篇
11 | 剑走偏锋:面向切面编程
12 | 唯有套路得人心:谈谈Java EE的那些模式
13 | 特别放送:选择比努力更重要
第三章 从后端到前端 (7讲)
14 | 别有洞天:从后端到前端
15 | 重剑无锋,大巧不工:JavaScript面向对象
16 | 百花齐放,百家争鸣:前端MVC框架
17 | 不一样的体验:交互设计和页面布局
18 | 千言万语不及一幅画:谈谈数据可视化
19 | 打开潘多拉盒子:JavaScript异步编程
20 | 特别放送:全栈团队的角色构成
第四章 数据持久化 (7讲)
21 | 赫赫有名的双刃剑:缓存(上)
22 | 赫赫有名的双刃剑:缓存(下)
23 | 知其然,知其所以然:数据的持久化和一致性
24 | 尺有所短,寸有所长:CAP和数据存储技术选择
25 | 设计数据持久层(上):理论分析
26 | 设计数据持久层(下):案例介绍
27 | 特别放送:聊一聊代码审查
第五章 寻找最佳实践 (6讲)
28 | Ops三部曲之一:配置管理
29 | Ops三部曲之二:集群部署
30 | Ops三部曲之三:测试和发布
31 | 防人之心不可无:网站安全问题窥视
32 | 和搜索引擎的对话:SEO的原理和基础
33 | 特别放送:聊一聊程序员学英语
第六章 专题 (7讲)
34 | 网站性能优化(上)
35 | 网站性能优化(下)
36 | 全栈开发中的算法(上)
37 | 全栈开发中的算法(下)
38 | 分页的那些事儿
39 | XML、JSON、YAML比较
40 | 全栈衍化:让全栈意味着更多
全栈工程师修炼指南
登录|注册

开篇词 | 从成长角度看,为什么你应该成为全栈工程师?

四火 2019-09-09
00:00
10:59
讲述:四火 大小:10.07M
你好,我是软件工程师熊燚,网上大家都叫我四火,很高兴在这个专栏和你见面。
先介绍下我自己。最早我在华为工作,曾是华为某大型视频门户和视频平台的初创人员,也是一名不折不扣的长期看护其基线版本的全栈工程师,这段经历其实为我的全栈技能打下了一个很好的基础。
后来我加入了亚马逊(Amazon),负责数千万商品销量预测系统和成本利润计算平台的研发,从 0 到 1 重新设计并开发了数据分析和可视化系统,还维护和优化过数据分发的高可用服务,也改进过核算平台的分布式计算架构和工作流引擎,这些多领域的工作让我快速成长,并积累了大量的宝贵经验。
现在,我在西雅图甲骨文(Oracle)的云计算部门就职,职位是首席软件工程师,主要负责研发云基础设施的分布式工作流引擎。
入行这十来年,从前端页面到后端服务,从大小网站到分布式系统,从数据分析处理到可视化,从设计开发到线上运维,我都参与过,并带领团队攻克了很多大的项目堡垒,也以全栈工程师的身份上线了不少核心业务产品。
可以说,我是一名全栈工程的实践者,也是一名程序员综合发展的信奉者,还是一名工程师文化的鼓吹者,有一个建立了很长时间的独立博客“四火的唠叨”。
那提到全栈工程师,你可能第一时间会想到 “全能”“大神”这些词语,也可能听到过其他人对它或褒或贬的评价。那么,究竟该怎么恰如其分地认识这个角色呢?我想和你说说我的看法。
软件工程的范畴里,人类创造了大量的概念和术语,绝大多数都清晰而精确,但“全栈工程师”却是个反例。在互联网出现以前,甚至在客户端和服务端模式出现以前,大多数的程序员,就已经是一定意义上的“全栈”了,他们往往涉足硬件、软件,完成程序从开始到终结各个阶段的工作。
千禧年之后,Web,特别是 Ajax 等前端技术迅猛发展,而技术的进步就自然而然地带来了分工,于是有人负责前端,有人负责后端,甚至划分得更细,此时能够做两头事情的人,才显得更加珍贵。因此,我认为 Web 技术的发展和自然而然引发的分工才是全栈工程师出现的最重要的因素
2008 年,在 forge38 上面出现了一篇题目为“Full Stack Web Developers”的文章,被认为是最早提及这个概念的媒体之一。
文中是这样说的:
A full stack web developer is someone that does design, markup, styling, behavior, and programming.
大概意思就是说,一个全栈的 web 开发者,会负责设计、标记、样式、行为和编程这些全部的事情。
虽然从现在的眼光看,这个概念的解释似乎有些古老而片面 ,可从上面的历史文字中足以看出,为什么当我们提及全栈,往往总是基于“Web”,而非其他领域了。
到了今天,全栈工程师已经变成了一个有些被滥用的概念,不同人有着天差地别的理解。
我认为,首先必须明确的是,“全栈”不是“全能”,当然,在这个标准下我们依然可以将全栈理解为“广义”的全栈和“狭义”的全栈。显然前者的包容性和不确定性过大,我觉得只有后者才有更实际的讨论价值,并且,广泛的 Web 技术才是一名通常意义上的全栈工程师最该专注的核心内容,而此处的 Web 技术,包括网络、前端、后端 MVC、持久化技术等多个层次。
那从成长角度看,为什么我说你应该成为全栈工程师呢?
和其他软件工程师发展的路线相比,除了通用工程师的技能以外,我认为基于 Web 的全栈技术是一种非常适合用来进一步发展和修炼的技能树,和其它的技术类别比起来,它至少有下面这样几个明显的优势。

关于个人发展

首先,互联网是全栈概念的诞生地,也是软件领域最激动人心的产品和技术的诞生地,这是传统软件所无法比拟的。这些互联网的全栈工程师,每天都在接收新的资讯,每天都“不得不”和这些全新的技术理念搏斗,他们拥有着和这些产品与技术最近距离访问、全面接触和深入研究的机会。你可能很难预测下一波互联网的技术浪潮什么时候到来,技术主角又是谁,但全栈技术是可以帮你打好基础,做好随时拥抱它的准备的。
其次,可以掌握能够快速获得反馈的学习方法,这对于保持持续学习的动力和热情很有助益。比如说,几行 HTML 代码就可以马上看到效果,简单安装和配置,就可以搭建一个健壮的 Web 服务,对当前浏览器即时的标签、脚本、样式修改,立即就能看到变化。
再次,全栈技术的学习之路上有很多纷繁精彩的“套路”,而它们可以应用在软件工程的其它领域。可以说,全栈技术中,有太多能帮助程序员开启新世界大门的东西了,比如 JavaScript 的异步编程,比如各种数据、模板和逻辑的解耦和分层,再比如说持久层技术里面的读写模型分析。
最后,必然是视野的拓展。工程师的成长过程中,在早、中期可以利用全栈技术拓宽视野,并养成思考的习惯。最终也许我们需要“学得精”,但是一开始我们一定要“学得杂”。只有在广度上有足够的积累,足够的内容去比较,才能养成思考的习惯,拥有更全面地看待问题的视野。
拿我自己来说,工作以来我花了很多时间去做一些不同领域的项目,比如我现在的工作是研发一个分布式工作流引擎,从 Web 全栈技术上学到的东西,是能够帮助我快速上手这些技术的。同时,理解它们的本质,也能拓宽分析和解决问题的思路。毕竟,在软件领域,技术都是相通的。

关于就业和创业

首先,全栈工程师本身就拥有多技能、多角色。团队非常欢迎这样的人,因为当一个人可以扮演多个人的角色,就减少了沟通和配合的损耗,提高了效率。出了问题,从客户端到服务端,对多个层面都有所了解的全栈工程师可以更高效地分析和定位问题。这个世界需要专家,但我觉得更需要通晓各个层面知识,能够快速解决问题的人。
其次,全栈工程师是创业的最佳技术角色。有了创意和点子,全栈工程师就可以快速地开发原型,迅速实现第一个版本,并能马上提供优质的宣传推广和用户体验。不要小看这一点,在很多情况下,全栈工程师不需要其它额外的协助,自己就可以很快地将想法变现
再次,全栈工程师拥有最多的就业机会。有朋友半开玩笑说,你知道世界上什么类型的应用最多见吗?网站!各式各样的网站,内部的管理系统、报表系统、论坛、博客,但无论是哪种类型,它们都是全栈工程师最熟悉的东西。你可能耳闻过著名的 Facebook 只招全栈工程师这样听起来似乎有些“极端”的故事,可事实上,几乎所有的互联网大型公司,都会招聘大量的全栈工程师。
(上图来自 HackerRank,报告原引用于 HackerRank 2018 Developer Skills Report,在开发者评价自己角色的时候,最多的人投票给了“全栈开发者”。)
最后,不妨考虑下未来的职业延伸。有了全栈工程师的底子,未来面对软件行业进一步细化,选择其它细分职业时,会因为有了全面而扎实的基础而更有利。
举例来说,假如你做过一段时间的前端程序员,那往往对用户交互设计是有一定的心得的,我有朋友就是从一个擅长前端的全栈程序员转行做了产品经理;而在 MVC 部分学习的分层和解耦经验,持久层部分积攒的那些对于一致性、可用性的理解,对于将来想投身于分布式系统设计开发的程序员朋友会很有帮助。
我认为对于大多数程序员来说,全栈工程师这个职位对于自己的发展而言,是个非常好的进阶方向。而基于 Web 的全栈技术学习,充满必要性,无论你今后是否志在互联网,无论你的远期目标是在哪个软件领域。
最后,我想认识一下你。你可以在留言区中做个自我介绍,说说你现在的工作、学习情况。或是说说你眼中的全栈工程师是怎样的?你认为应该具备怎样的特质,才能成为全栈工程师呢?欢迎你在留言区和我交流。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《全栈工程师修炼指南》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(33)

  • 老王的老李头 置顶
    作为一个八0后,我不怕别人嘲笑我能力低下,从事行业传统,技术栈陈旧。这些都是我前进道路上的动力,我希望自己知识面很广,对技术的钻研很深,最重要的是有自己的理解跟体系。到了这个年纪,不奢望轰轰烈烈,只希望脚踏实地,学多少会多少,会多少用多少。这就是我的全栈梦,老师见笑

    作者回复: 技术栈确实有新有旧,但是很多技术的本质都是一样的,新的技术都是由某些旧的技术演进而来的,而有很多基础知识都是几十年也没有大的变化的。所以请不要觉得旧的技术栈就“无用”。在专栏中你也会看到技术之间大量的类比和联系。技术的学习没有任何可笑之处,加油!

    2019-09-09
    29
  • leslie 置顶
    全栈:我记得Google的SRE 就是类似的概念;完全的80后,早年开发出身,早年的中后期工作需要开发兼数据库,中期在基本上算是数据库兼系统运维或系统运维兼数据库,这个角色干了超过5年,MYSQL和Oracle的OCP;职场工作10余年的老兵。
           目前回到二线城市原本是准备继续之前的职业平谈下去,理想很美好现实很残酷;去年某个DBA圈子的老友又刚好把极客时间推荐给我了,学了赵成老师的运维体系,二叉树视频陈皓老师的跳出金融业的行动引发了反思;目前在本地的某互联网企业主要负责数据库和linux系统相关的性能维护和优化。
          全栈这个词我是在Google SRE这本书看到的:DepOps其实同样是全栈,这本书中强调运维开发其实不分家,其实这就是一种全栈;故而我非常想从老师的课程中去学习和明白道理的修正/调整,以便能够够好的走好后面的路。

    作者回复: 很棒的回复。
    我特别想回复一下运维开发不分家这一点。其实不只是 Google 的 SRE,太多大型互联网公司都崇尚小团队 + 服务自治了。工程师需要 oncall,解线上问题,通过运维的快乐和痛苦反哺开发(“吃自己的狗食”这一说法就指的是这个)。这种环境下工程师就要一专多能,在亚马逊对 SDE - Software Development Engineer 有一个“戏谑”的解释,叫做 Someone Does Everything。这方面我在专栏中会有展开介绍。

    2019-09-09
    2
  • Brave
    四火老师您好,看到您的专栏很有感触,我先做个介绍,男31,工作8年,坐标天津,自我评价是一个技术狂热的人,每天工作到夜里2,3点很正常,目标做全栈工程师(主后台全栈),最早在北京做ABAP+JAVA,后来赶上移动互联网android回天津,再后来由于跨平台对原生的冲击,跳槽混合APP医药电商公司,同时H5+CSS+JS+JQuery+Bootstrap+移动框架都补了起来,再后来由于APP需求减少转了JAVA后台,Spring,SpringMVC,SpringBoot,SpringCloud各种全家桶,Spring源码和底层实现,中间件等都搞了起来,前端部分:Angular+Ionic,Vue全家桶,React全家桶(无实战),NodeJS,微信部分:微信公众号,小程序,JSSDK也都深入学习实战过,去年年底到今年做了基于Vue的前端工程化,过程中阅读了很多源码,webpack优化,写了一些便于前后端协作的插件和工具,说到这里我的优势和劣势基本都体现出来了,我可以胜任多个开发岗位,项目紧张时前后端可以一起搞省去了很多沟通设计成本,熟悉前后端技术栈能够用最简单方法做收益最大的方案,能够快速学习新语言新技能,缺点就是技术栈太多,带来的学习压力,每个领域都希望能做精,不满足仅仅是会了能写的状态,"自杀式"的学习方式让我身心俱疲,我也阅读了很多时间管理,精力管理的书籍,如番茄工作法,确实有了很大改善,但目前我依然面临着一个巨大的问题:即便我能够平衡好作息,能够兼顾几个重要技术分支进行深入学习,但始终没有办法同时应用起来,就会造成遗忘,对于这个问题,我目前只能对各个部分做笔记写博客,加深理解认识,减少二次学习的成本,我觉得全栈的思想很重要,而不应该是什么都会,我需要裁剪掉哪些技术栈?四火老师是否也有过同样的困惑,能否指点一下?

    作者回复: 你好 Brave!

    从你的描述我确实你感受到你对技术的“狂热”,你接触了非常多的技术,首先,我希望你更能把它视之为你的优点,而不是“累赘”,要知道并没有多少人能像你一样拥有这么全面的经历的,这是你的财富。接着,对于你的困惑,我有这样几个建议:

    1. 把书读厚之后,要把书读薄。也就是说,要多做一些归纳和整理,寻找这些技术之间的联系,把握住技术的本质,而不是机械记忆。事实上,有许多记忆性质的知识,并没有那么重要,需要的时候搜索和查看文档就可以了。

    2. 你可以逐步明确下自己想着重的领域和方向了,全栈当然是一个方向,但是全栈不是简单地做全面,它也有自己的重点。当然,你可以根据自己的情况来决定。每个领域做精显然是很难的,也不具备可持续性。你不需要“裁剪”掉任何部分,但是,你需要把主要的精力专注到你较少的目标上。

    3. 最后,仅仅是带有偏向性的个人建议——如果可能的话,因为以你描述的能力,已经超过了大多数人,你完全可以一边夯实基础,多去面试,去开阔眼界(不只是技术上的眼界),然后去尝试挑战一下互联网更高级别的岗位(你有北京的经历,我认为北京的机会远远多过天津,甚至,你也可以考虑北美的互联网公司)。

    希望我说的对你有帮助!

    2019-09-14
    1
    10
  • 許敲敲
    四火老师好,我是 一名web developer,工作年限比较少,仅半年,外企的话,工作轻松,相对职责确定,不会接触到所有的业务。平时工作就是做web相关的开发,工作中写 前端组件,Angular,React,Vue都有接触,写基于组件的showcase ,写单元测试,写集成测试,有时候也要自己配置 CI/CD环境,也需要了解一些运维的东西。自己喜欢接触新技术,也学了很多机器学习,NLP的知识。一直都想着自己开发一个app,能把自己学的东西连起来,做一个东西出来。
    自己学的话,老是觉得很多技术层出不穷,而且接触很多方向的话,每个方向的深度都不会深入太多,而且学东西,实际工作用不到,或者做不出什么东西出来的话,感觉学习效果没那么好。之前也有看到国外的full stack 培训班,可是3000,5000刀的价格确实太贵。
    不知道学习这门课,是不是可以在老师的指引下,做一个完成的包含前后端技术栈的产品出来? 希望至少对软件架构这块有个入门。

    作者回复: 你好。
    你提到了培训班,确实如此,并且相较来说,据我观察北美的程序员圈子里面 full stack 的讨论氛围比国内要浓厚许多。
    对于深度的问题,其实广度和深度不但不矛盾,还有相辅相成的特点。技术都是相通的,在专栏中你也会看到,某一些有深度的技术都是别处“借鉴”过来的,“套路”都是一样的。
    关于你的问题,是一个很好的问题。这个专栏并非围绕一个完整的技术栈的产品而设计的,但却会覆盖很多项目中的实际问题和例子。在下一篇学习路径中会讲到专栏内容的设计。
    另外,从描述中可以看出,你有很多优秀的品质。:)

    2019-09-09
    1
    4
  • 业余草
    全栈就是“全都你一个人干”。。。我们只差一个全栈程序员。。。

    作者回复: 全栈可不是“全干”啊。我认为偏狭义的理解,比如定位到我提到的基于 Web 的技术栈,更有学习和讨论的价值。

    2019-09-09
    1
    4
  • 轻飏
    我是一名阿里巴巴的java研发工程师。四年前本科毕业的来了阿里,岗位是测试开发工程师,可是还不到两年,因为拥抱变化,这个岗位在我们部门就被干掉了。于是转型做纯开发,但是究竟是专注于后端还是前端我很迷茫,因为团队当时处于初创,需要大量前端且招不到人,而我又偏向于做后端开发。所以都在学习。自己最初的一个研发项目是将一个配置发布控制台从0到1实现,需要从前端写到后端。最终我成功完成了这个项目,虽然技术上没什么特殊的难点,但是涉及到的知识点非常多。这段经历也让我学习了很多,了解一个web应用系统的全貌。直到后来我终于有机会专注于做后端开发,有时候需要和前端同学配合的时候,也可以站到他们的角度思考这里的实现方案。
    对我而言,全栈不是意味着全要精通,而是需要熟悉整个研发体系,了解技术栈。这样子无论是团队合作还是后来带团队带项目都是非常有帮助的。而且通过加强全栈学习,也会改变自己思考问题的方式,这种影响不局限于工作范围

    作者回复: 嗯,很详细的描述,也恭喜你从测试开发工程师转纯开发成功。我想这个过程一定不容易。
    我相信你已经有了初步的知识,因此才有了这样的感悟。下一步,你可以利用专栏,在每一章的学习过程中,把你经历的那些技术,特别是 Web 技术对号入座一下,了解具体技术背后的那些原理和套路。

    2019-09-10
    3
  • mmm
    四火老师好,我工作了6年,感觉做着全栈的工作,但找工作并没有优势,迷茫中,求指导,我在华为做了三年通信行业c语言业务研发,互联网三年就是跟着公司需求走,做过Android 和ios的sdk开发,做过web前端页面开发,做过后端服务开发,做过大数据的项目,现在做监控告警方面的系统运维开发,一路过来感觉对前端到后端,开发到运维的流程都清晰了,但找工作时,因为工作6年了对方往往期待你是某一方面的专家,不care你是不是全栈,可我在各方面只有一到两年的积累,前端和后端都没有形成完整的技术体系,跟某一领域干了三年的人比反倒不占优势,因为年轻人更有精力而且要的也少,请问老师什么工作岗位特别需要全栈,或者我的发展方向哪里有问题需要调整?

    作者回复: 我想从我的理解谈两个方面:

    第一,全栈学习和成为某个领域的专家并不矛盾,不但不矛盾,还有相辅相成的促进作用。这点我在好几处评论的回复中已经谈到了,你可以参考一下。就拿我自己来举例子,我之前做了许多Web全栈开发的工作,但我现在做的是分布式系统,和Web 全栈“看起来”没有直接关系,但实际完全相反,我在文中也提到了。

    第二,确实有很多公司都招聘 Web 全栈开发,我在国内还是北美都工作过。你自己也认识到了技术体系上的欠缺 :),并且,当你产生了“年轻人更有精力而且要的也少”的想法,我觉得就要当心了——你的竞争力是什么,拼体力肯定拼不过年轻人的。你的竞争力应该是经验、思路、眼界等等这些东西。你说对吗?另外,我在 06 篇会讲到一点这方面,你可以留意一下。

    2019-09-13
    2
  • 笑忘日月星辰
    我觉得java全栈应该掌握下边的技能吧:
    1. SQL: mysql、oracle、sqlserver, db2, MongoDB, HBase, 人大金仓,神通
     1.1 对接过程中需要申请应用id秘钥,解密,存库,加密。
     1.2 已有应用对接办公平台,会牵扯到数据初始化,数据迁移。

    2. JavaScript, html, css, Ajax, jsp前端技术
     2.1 办公桌面负一屏,会牵扯到前端接口的调用,需要用到基本的JS
        2.2 平台对接过程中可能会遇到应用前端代码的问题,需要阅读应用前端源码

    3. vue,webpack,react等前端新技术
        4.1 技术一直在持续发展,好多公司也会追随新技术的步伐,学习流行的技术也是为更好的技术支持服务做铺垫。

    4. Nosql技术: memcached, redis, Ehcache, mongodb

    5. elasticsearch,Lucene, solr等搜索技术

    6. 负载均衡:
        Nginx:高性能、高并发的web服务器;功能包括负载均衡、反向代理、静态内容缓存、访问控制;工作在应用层

        LVS: Linux virtual server,基于集群技术和Linux操作系统实现一个高性能、高可用的服务器;工作在网络层

    7. webserver:

        Java:Tomcat,Apache,Jboss,Tongweb, AAS

    8. service:  

        SOA、微服务、spring boot,django

    9. 容器:

        docker,kubernetes

    10. 协调中心:

        zookeeper、etcd等

    11. rpc框架:

        grpc、dubbo、brpc

    12. 消息队列:

        kafka、rabbitMQ、rocketMQ、QSP
     消息队列的应用场景:异步处理、应用解耦、流量削锋和消息通讯

    13. spring, spring boot, spring cloud, hibernate, mybatis, maven, gradle,网络编程,并发编程, http、tcp协议等

    作者回复: 这是我看到的第一个具备那么丰富的知识点的回复,这里面有许多在本专栏中都会涉及到。

    2019-09-12
    1
    2
  • 蜉蝣
    我的岗位是 web 后端,语言用 python 而非 java,前端基本不会。可以说与这个专栏格格不入,但我还是想啃!

    作者回复: 赞一个积极的态度!但是对你描述做个说明:
    首先,你提到的“web 后端”本身就是我所理解的基于 Web 的全栈的重要一部分;
    其次,语言是 Python 还是 Java 并非什么大问题,我工作中用了差不多十年的 Java,但是现在我所在的团队用的全部是 Python。你所学到的全栈技术,特别是技术的本质,还有常见的“套路”,往往和你的实现语言没有关系。:)
    再次,至于前端,它能给你带来很多好处(第三章我们还会详述),我推荐每一个程序员都学习前端,无论在未来是否专注于这个部分。

    2019-09-09
    2
  • 王智
    老师中秋节快乐, 哈哈, 我现在的工作是服务于教育的, 给学校做网站, 这种工作一段时间闲, 一段时间忙, 最近就比较闲, 但是不知道该做什么, 希望跟着老师的专栏好好学习一下.
    对于全栈的理解我就比较模糊了. 大学喜欢前端, 后来毕业学了后端, 现在前端忘得差不多了, 主攻后端. 对于如何成为全栈工程师前途迷茫啊.
    先跟着老师好好, 规划一下学习路线, 总觉得公司用什么学什么太慢, 但是不用又忘, 难受. 哈哈 学习学习

    作者回复: 每个人的遗忘曲线都不一样,但是学了就忘很有可能还因为其实没有学透彻,只是理解怎么使用、怎么配置这只是表象。

    对于最后一条,我非常同意一点,如果跟着公司用什么,就学什么的话,这局限性太强了,想必你也不想把你的能力和未来绑在“公司用什么技术”上,对吧?

    2019-09-13
    1
  • Paradise丶朽木
    这是我订阅的第二十个专栏了π_π,正走在成为全栈工程师的路上…

    作者回复: 加油,也欢迎你和我们一起分享你走这条路的心得。

    2019-09-09
    1
  • 靠人品去赢
    全都精太难了,但是怎么说做后台懂点前端,做前端会点SQL,Node服务器语言还是可以的。关键两个科技树技能点和要求还是有区别的,现在连半截树都点不亮。

    作者回复: 感谢你的观点和分享。
    我认为,全栈技术的广度和你希望钻研的技术深度并无冲突,事实上,还有相辅相成的作用。程序员的发展总是要面临深度和广度两个维度的。
    确实如你所说“有区别”,但是它们之间的“联系”更多。别担心,希望这个专栏能带给你帮助,帮你“上道”。

    2019-09-09
    1
  • Geek_East
    从您的博客Trace到您的领英,从中国到美国,我也有类似的经历;
    本科是跟计算机完全无关的文科,出于兴趣,研究生到了CMU读信息系统,不算是非常正统的计算机科目,但是有机会跟很多出众的同学们学习。现在在澳洲一家创业公司任职全栈工程师不到一年,看到您的文章,认同其中很多观点:选择全栈也是因为它可以让我自主构建项目;工作机会多;可以从广度上了解这个行业,为将来架构或者说管理层面打下基础。将来打算base澳洲,赶赴美国任职软件工程师,现在也是在学习全栈技术的同时,偶尔看看数据与算法的题目。文末感谢您提供的课程给了我很多很多启发。
    2019-11-11
  • ꯭玩꯭世꯭不꯭恭꯭ヾ
    现在刚开始大二,学校学的东西比较杂,大一学了C++、Java、计算机组成原理;这学期正在学数据结构、软件工程、离散数学、操作系统。学的东西很多,但是对于一个普通本科生来说,速度太快了,很多东西就是一带而过,老师按培养计划讲,像Java就只有16节课(每节课90分钟)我真的不知道能学到什么,对未来充满了迷茫。

    作者回复: 别着急,大学里学习或多或少都有这样的感觉吧!一带而过之后还是要靠自己消化。慢慢来,时间还长。

    2019-09-23
  • 小寞子。(≥3≤)
    老师好!标准90后 在土澳刚毕业 IBM做顾问一年。 发现澳洲这技术人员落后(也可能是IBM的锅) 不知不觉总是在团队里充当技术最牛逼的人。。 实际上只是我学习速度快。 从小接触编程, 自学深度学习机器学习。 发现土澳很难用到。 机缘巧合下在一个项目中自学了spring boot。一个人搭建了整个测试自动化框架的后端。。既然我全栈已经接触了一半, 另一半应该也不难。。希望能多学习前人的经验。😁

    作者回复: 👍

    2019-09-22
  • 微尘
    老师你好,针对于这几个问题,我的情况是这样的∶
      - 自我介绍∶3.5年java开发(92年)
      - 工作情况∶前三年个人小公司,现在外包,技术应用较少,但有时间学习
      - 学习情况∶之前跟着项目学习,现在学习前端和后端提升,书籍方面阅读部分经典书籍,但是转化为自己所用太少
      - 全栈理解∶能独立开发应用,部署正常使用
      - 应有技能∶我的理解是后端需要2到4种(java,c,python,go),前端独立开发,计算机网络,算法,操作系统
      - 我的问题∶请老师指正我的想法有什么不足。

    作者回复: 你的想法和计划都挺好的,每个人都可以对全栈技术有自己的理解。这个专栏主要的内容是基于 Web 的全栈技术,希望可以帮到你。

    2019-09-19
  • Boogie 捷
    四火老师好,同为亚麻员工,深谙oncall的痛苦。我研究生毕业以后就一直在亚麻,目前工作两年,想请问下老师怎么看待跳槽或者内部转组这个事儿?先谢谢啦!

    作者回复: 你好,很抱歉,Amazon 内部转组这个问题我觉得不适合在这里讨论。

    2019-09-19
  • Geek_JaneJane
    不知道老师还能不能看到我的留言。我是毕业两年,一毕业在某大型通信公司做基带软件开发,后来转了互联网,一开始做前端开发,什么小游戏小程序web前端vue都做,后来做golang后台,后来做Python后台。现在觉得自己的基础比较差,并且之前所做的东西有点像蜻蜓点水,现在给自己的计划是,第一个强化基础吧,第二个是把之前的经历体系化,系统化。老师如果看到的话,可以给我提点建议吗?

    作者回复: 我觉得你的想法非常好啊!你也可以看看这篇下面的其他回复,但就现阶段而言,你说的计划基本就是我想说的。

    2019-09-17
  • 颜林林
    我的技术栈虽然略陈旧,但我自信自己的技术栈更宽;我是来加深自己在“狭义全栈”这部分技术的深度的,以便成长为一位全栈数据科学家 ^_^

    作者回复: 全栈数据科学家,很有意义的方向,加油!

    2019-09-13
  • anginiit
    做java后台开发有几年了 搭建一套服务框架 ,很快能够上手最新工具,业务逻辑的实现对我来说都很简单 ,今年一直考虑想学习得更宽一点 正好遇到了这堂课 特别兴奋 想要马不停蹄的学完 然后用起来

    作者回复: 赞!

    2019-09-12
收起评论
33
23
返回
顶部