全栈工程师修炼指南
熊燚(四火)
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
你好,我是四火。
每一项综合技术都有自己的特点,基于 Web 的全栈技术也不例外。它五花八门,涉及面广,同类技术多,技术迭代迅猛,技术资料新等等,就如同下山的猛虎,成为了很多程序员朋友迈向全栈大门的一道阻碍。经常听到这样的抱怨:
想学 Web 全栈技术,期待能独立交付产品,但真的很迷茫。
具体某项技术还好说,可全栈包含了那么多技术,眼都要看花了。
我该从哪里开始,遵循哪些原则,学习哪些技术?
今天,专栏伊始,徙木为信,言能践行,就让我带你一起打破这道障碍。想要入门或者正在进阶的你,期待这个专栏能让你产生不一样的理解,收获独特的方法,在全栈技术的道路上迈上一个更高的台阶。

怎样修炼全栈技术?

首先,我想说的是,先成为合格的工程师,再谈全栈
就像相声演员的说学逗唱一样,工程师也有自己的必修课,比如数据结构和算法,可以说没有基础代码能力时一切都无从谈起。对于任何一个领域的软件工程师而言,它们都是基础,怎样强调其重要性都不为过。并且无论你是刚入行的程序员,还是打拼了几十年的架构师,标准都是一样的。
就拿我工作过的 Amazon 和 Oracle 来说,我们面试的时候,虽然对技术级别高的程序员候选人,会更多地考察基于经验和思路的系统设计等方面,但代码层面的要求,包括数据结构和算法,对于不同级别的工程师来说 ,基本是一样的。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《全栈工程师修炼指南》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(13)

  • iHTC 置顶
    四火老师教师节快乐!感谢!

    全栈,在所有程序员应该都曾梦想过,但是能坚持不懈的不多,毕竟中国互联网才30年,大家想用5年就做到,或30岁就达到,我想不是人人能做。如果抱着学到老,那应该没问题呀~

    数据结构与算法的重要性,我也不多说,就是理科和数学理论,理解不复杂,但能推导和演算,可能是需要很多精力~

    说到英语,我就被坑害了差不多半辈子。像我这样农村出来的,80后90初后,教育中英语重视不足,自己也没这环境,实不相瞒我高考英语三十几分,最后努力上了不错的二本,理综二百多。我不是不聪明,只是没有遇到对的人。我相信想我这样的情况,远方的农村还在重演中。很庆幸自己上了大学,眼界不一样,自己也很坚强面对。毕业来到大城市,技术的眼界,自己更珍惜每一个机会。现在英语还是没有养成听说,也许努力还不够吧。说那么多,我不是想抱歉,因为现在小孩学英语太简单了,手机App多的数不清,而自己已经没有精力再重来了🥵

    关于思考、总结、知识体系、阅读,我认为还是要多见识,能形成自己体系的架构能力,才能提高效率,

    作者回复: 你好,看了你的故事,我觉得有些小小的感动,有句话叫做成年人的故事没有童话,每个人的成长生活过程都不容易。
    别的不谈,我就说一说英语——我知道有很多言论都说英语的听说读写要均衡发展,语言能说出来有多么重要,发音正确有多么重要……
    但是我认为,作为一个技术人员,最重要的还是“读”的能力。鸡汤故事里面那样每天伴着太阳升起去大海边含着小石头练发音,这种事情老实说离绝大多数人都太远太远了。
    在大家精力有限的情况下,我认为反复让自己适应英文文档、手册资料等等的阅读,是可行而且比较容易获得收效的。
    当然,我们也要看到幸运的一面,互联网帮助我们打开了窗口,英文的视频、文字都唾手可得,这还是让英文的学习容易多了。

    2019-09-11
    2
    6
  • pyhhou 置顶
    四火老师好,一直期待这个专栏,之前看到您的博客 “四火的唠叨” 中的有些文章的观点我非常的认同,很早就想跟您学习一些互联网行业中的进阶方向、方法和思想。我是一名毕业,工作 1 年多的软件工程师,现在在北美的一家 startup 工作,由于公司方向和分工不明确,我做的东西很杂,写过一点点 react,后端用 node 也写过一两个小项目,但是对很多技术并没有特别深的概念,很渴望学习技术,特别是一些应用广泛的技术思想,但是不是特别清楚到底该先学什么,后学什么,以及有哪些必须要理解的重要的基础思想,包括对整个全栈并没有太多的经验和认识。对于我这种情况适合这个专栏吗?时间精力重点该放在哪呢?感谢老师指点

    作者回复: 很好的描述和问题。其实你的情况很有代表性,在写专栏之前,我们和一些工程师交流过,他们中的很多都有类似的困惑,都做过一点前端,也做过一点后端,但是感觉没有系统,也经常提到“困惑”和“茫然”这两个词。
    接着来回答你的问题:全栈是有体系的,先学什么、后学什么,按体系学固然好,不过我认为实际上也并不那么重要,但是,把知识点联系起来非常重要,等具备了一定的积累,你会发现它们很多在本质上都是相通的,套路和玩法都是一样的。
    在最初策划专栏内容的时候,我说这个专栏要不一样一点,市面上具体技术的教程很多,但是技术之间横向比较,介绍技术演进,从而探寻技术本质的却很少。因此我相信这个专栏可以帮助你,至于你问的时间精力重点,我在这篇学习路径的“怎样修炼全栈技术?”中已经有了介绍,看看它是不是能够回答你的问题?:)

    2019-09-10
    2
  • Calvin
    谢谢四火老师的总结
    个人对于本文的理解就是:
    1、先学基本功,要做四则运算不会加减法可不行。
    2、要学会经常归纳和总结,学会从不同的知识和方案中选择最适合业务的那个。关于学习归纳和总结,就突显了英语的重要性。
    3、站在岸上学不会游泳,实践才能出真知。

    作者回复: 都很正确,你提到的“归纳和总结”以外,请允许我再加一个“类比和权衡”,目的都是学习技术的本质,把零散的知识点联结起来。至于英语,不只是全栈,我认为是软件大部分领域,要达到一定程度的进阶都要打倒的纸老虎 :)

    2019-09-09
    3
  • liu_liu
    1. 全栈涉及到的技术太多,不知道选取那种技术学习,且不知道某项技术中的重点。
    2. 如何根据项目选择合适的全栈技术。
    3. 什么样才是一个合格的全栈开发?

    作者回复: 你好 liu_liu,这都是非常好的问题,让我来一一回答你。
    1. 技术确实多,但是选取哪种技术,不妨先选类型,然后再去确定的类型下选择典型、常用的技术。你当然也可以跟着我们的专栏一步一步往下走,特别是对于一些典型技术的重点,专栏中会有提示的。
    2. 这是技术选型的问题,选型的前提是了解、比较、权衡,我们会有很多的特性和实例分析来帮助你形成自己的 方法。
    3. 这个问题很大,我认为它可以从两个方面理解:
    (1) 首先得是合格的开发 :)
    (2) 其次才是合格的“全栈”开发,这意味着能合理地选用全栈的技术来解决问题。

    2019-09-10
    1
  • leslie
    全栈:我自己从开发->开发兼DBA->DBA兼OPS或OPS兼DBA:金融业所给的空间较小,Google SRE又提出了对于OPS/系统运维的定位;做为传统的运维&&DBA欠缺的其实是开发这块的理解和使用。
           就我个人而言:擅长的是数据库和系统运维以及对计算机硬件的理解,软肋是开发这块;全栈应当是从前端程序的开发->中间件->后端开发->数据系统->操作系统完全一个人可以搞定甚至常规的网络问题都OK;这是我对于全栈的理解。这其中我薄弱的应当是开发前后端的程序开发以及后端开发。

    作者回复: 不得不赞一个对自己清晰的认识,并不是所有人都能做到这一点的。
    你对全栈的理解和本专栏知识架构有一定相似之处,希望你能在这里收获进步,特别是你提到的薄弱环节。

    2019-09-09
    1
  • joker
    讲一些经典的例子,或者好的代码。

    作者回复: 嗯,会有经典的问题介绍,以及代码示例。

    2019-09-09
    1
  • 許敲敲
    用的windows, 只用虚拟机能cover?

    作者回复: 完全没有问题。考虑用 *nix 的原因是,有少数涉及到的命令,在默认情况下 Windows 下面是没有的,而且对于实际的互联网应用来说,Linux 要常用得多。

    2019-09-09
    4
    1
  • jxs1211
    目前用python写后端,之前用过一些其他语言,但还是用回了python,前端也接触过Vue,感觉前后端差异还是有点大,后端都在写接口,并发,消息队列,集群,缓存,数据库,算法等等,前端界面渲染,处理用户交互,知识点多而杂,不过感觉现在慢慢感觉都渐渐走向了工程化,模块化,又有些相似的感觉,如果能做全栈还是很不错的。不过现在面对的框架和技术好多,都需要好好理清,形成自己的知识体系才行
    2019-09-20
  • 微尘
    老师你好∶
    1.全栈学习东西较多,但是能整体思考一个问题,我认为这样能减缓淘汰速度
    2.整体性应该学习那些知识,以及学习路径
    2019-09-19
  • 知行筠
    入行是iOS开发,写过半年Android,写过半年管理后,写过一年接口,现在写Web前端。自己总结了一下:1.“全栈”是一个梦想,只能向他靠拢;2.全栈 不是在多少个平台开发过,而是通用知识、底层知识的认知范围;3.通用知识、底层知识 应该优先学习高频使用的!4.以解决问题的根本原因为出发点,每个人都是“全栈”!

    作者回复: 思路很清楚,希望你能够在专栏学到你希望得到的东西。

    2019-09-18
  • Aaron Cheung
    后端是JAVA做示例吗

    作者回复: 后端如果需要使用代码的话,是的,一般是 Java,但实际上例子我会尽量追求简单,因此一般情况下语言本身不是问题。

    2019-09-10
  • 老王的老李头
    学习全栈技术,不仅要关注技术的特点,更需要体会技术之前的协作关系。整个学习的过程需要更多耐心的思考和系统的总结

    作者回复: 说得不错 :)

    2019-09-10
  • 业余草
    全栈就是“全都你一个人”。。。

    作者回复: 这是一个常见的误解 :)

    2019-09-09
    2
收起评论
13
返回
顶部