全栈工程师修炼指南
熊燚(四火)
Oracle 首席软件工程师
32206 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 46 讲
全栈回顾 (1讲)
加餐 (1讲)
全栈工程师修炼指南
15
15
1.0x
00:00/11:00
登录|注册

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

讲述:四火大小:10.07M时长:11:00
基于 Web 的全栈技术学习的必要性
全栈工程师是进阶方向
未来职业延伸的优势
最多的就业机会
创业的最佳技术角色
多技能、多角色的优势
视野的拓展
学习全栈技术中的套路
快速获得反馈的学习方法
互联网是全栈概念的诞生地
Web 技术是全栈工程师的核心内容
广义和狭义的全栈
2008年 forge38 文章提及全栈工程师
Web 技术的发展导致分工
互联网出现前的程序员
建立了独立博客
实践全栈工程师,信奉工程师文化
曾在华为、亚马逊和甲骨文工作
总结
就业和创业
个人发展
全栈工程师的理解
全栈工程师的概念
作者:熊燚(四火)
为什么成为全栈工程师
全栈工程师的定义和发展
从成长角度看,为什么你应该成为全栈工程师?

该思维导图由 AI 生成,仅供参考

你好,我是软件工程师熊燚,网上大家都叫我四火,很高兴在这个专栏和你见面。
先介绍下我自己。最早我在华为工作,曾是华为某大型视频门户和视频平台的初创人员,也是一名不折不扣的长期看护其基线版本的全栈工程师,这段经历其实为我的全栈技能打下了一个很好的基础。
后来我加入了亚马逊(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/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

成为全栈工程师对个人发展至关重要。全栈工程师具备多技能、多角色,能高效解决问题,是创业的理想技术角色,也拥有最多的就业机会。全栈技术学习过程拓宽视野,培养思考习惯,为工程师的成长提供广度积累。全栈工程师的底子为未来职业延伸提供有利条件。无论在互联网还是其他软件领域,全栈工程师都是一个非常好的进阶方向。全面而扎实的基础使得未来面对软件行业进一步细化时更有利。全栈工程师的学习充满必要性,无论读者的远期目标是在哪个软件领域。

2019-09-0918人觉得很赞给文章提建议

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《全栈工程师修炼指南》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(46)

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

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

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

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

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

    作者回复: 我想从我的理解谈两个方面: 第一,全栈学习和成为某个领域的专家并不矛盾,不但不矛盾,还有相辅相成的促进作用。这点我在好几处评论的回复中已经谈到了,你可以参考一下。就拿我自己来举例子,我之前做了许多Web全栈开发的工作,但我现在做的是分布式系统,和Web 全栈“看起来”没有直接关系,但实际完全相反,我在文中也提到了。 第二,确实有很多公司都招聘 Web 全栈开发,我在国内还是北美都工作过。你自己也认识到了技术体系上的欠缺 :),并且,当你产生了“年轻人更有精力而且要的也少”的想法,我觉得就要当心了——你的竞争力是什么,拼体力肯定拼不过年轻人的。你的竞争力应该是经验、思路、眼界等等这些东西。你说对吗?另外,我在 06 篇会讲到一点这方面,你可以留意一下。

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

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

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

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

    2019-09-09
    2
    7
  • inmo
    老师您好,我是名刚出来实习的大专生,现在走的方向是前端,对于以后的发展有点迷茫,希望老师看到后给予点指引 主要课程: 在学校期间,学的是计算机基础,计算机组装与维修,网络基础,ps,flash, c语言, linux, Dreamweaver, office,高数,英语,mysql,数据结构与算法,网络安全,jsp 课程情况: 1. 对于上面的课程,老师上课完全是读ppt,而且还不是这个专业的老师(除了数学英语),问他们问题,多数都是答不上来 2. 像我们计算机的,上了两年大专,还没有碰过学校的电脑,至于为啥,学校说没有多余的机房分配给我们,虽然我们老师也申请过很多次,但都被回绝了,但经过我的观察,多数的机房都是空的 3. 大专的环境,基本上上课了周边的都是打游戏的,由此上课都是自己带本书,到一个角落,学自己想学的 第一个学期,因为有c语言课程,觉得挺有趣就开始看视频自学,从c到c++再到qt,可以自己搞一些简单的小应用,工具 在第二个学期,一个同学的指引下,我接触到了html跟css,就开始了前端的自学路程,从此踏上了前端的道路 从html开始, css, js, jq, jq源码, node.js,webpack,vue全家桶, git, 中间捣鼓了一下flutter,折腾了下linux 疫情的时候使用flutter做了个起床打卡app,使用php搭建后台服务器存储数据 五月份左右,使用node.js+vue独立做了一个博客,并上线在宝塔中 至此现在毕业,找工作的时候面试了,5家公司,全是培训机构。说我能力不行,需要培养(费用2w,称可以帮我分期,培训完再开始还),知道这是个坑,果断的拒绝了。 后来在掘金看到了个内推网易的,就去试了下前端开发实习生。 笔试之前,做了很多复习: 笔试题, http,缓存,dns,浏览器渲染过程,手写各种es6的函数,this,原型链....., webpack原理, vue双向绑定, git...... 到了笔试那天,怀着忐忑的心,打开了笔试网页, 先是文化题,后是数学的,然后是编程题: 打开后人都傻了,就四题,但全是算法题,虽然学过算法课,但真要写算法,我也只会个冒泡,堆栈,链表! 然后硬着头皮做,虽然在本地运行输出没问题,但一题都没过,我想应该是一些极端条件没想到,结果就是网易跟我说拜拜了 心灰意冷,进了家小公司(有多小? 只有30来人)做着学徒,因为主要业务小程序的,又没有学过,所以只好从学徒开始干,每月600的补贴(不包吃住),其实就是每天去公司自学,也没人管你,我觉得这能把我零碎的学习时间组合起来,也挺好。 我知道大专跟正常的大学生有些很大的基础差距,我希望能够转正后系统学习计算机基础知识 再等实习完,参加升本考试(招聘硬性要求本科学历) 最后,希望老师能指点下,实在是迷茫不知道怎么走下去,虽然明确了学历前进的方向,但却不知道技术的道路如何走下去,难道真的要从算法开始学起来?

    作者回复: 你好inmo,读完了你的故事,我理解你的苦衷。 首先,读书期间的教育条件并不过硬,显而易见地,这影响了你早期基础的积累。但软件本身,其中的一个好处就是,自己学习一样可以做到足够的积累。你说在学校里面没有办法使用上学校的电脑,似乎还有些“耿耿于怀”,可是话说回来——即便能够,我觉得也很难获得足够的时间和环境,因此终归还是要靠自己的学习,也请不必太过沮丧。 其次,根据你的描述,我注意到你在前端已经有了一定的知识储备,现在在这部分,除了知识的记忆,你需要注意慢慢把它们串联起来,找到套路和体系。 再次,但却是最重要的,就是要把基础夯实。你已经通过网易实习考试认识到,“全是算法题”,没错,大厂的玩法确实是不一样的,它们往往更重视基础。你既然在学生时期由于种种原因落下了这部分,现在尤其需要优先捡起来。要知道,随着年龄增大,如果这部分最重要的短板不补上去,你面临的竞争压力可能会越来越大。 你问“难道真的要从算法开始学起来?”我的回答是:“对!” 另外,上面提到的第2、3点,我在不久前的直播中都有介绍,直播视频在B站,你可以看一下:https://www.bilibili.com/video/BV12T4y157Z7 祝你成功。

    2020-08-21
    7
    6
  • 业余草
    全栈就是“全都你一个人干”。。。我们只差一个全栈程序员。。。

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

    2019-09-09
    2
    5
收起评论
显示
设置
留言
46
收藏
76
沉浸
阅读
分享
手机端
快捷键
回顶部