90后的90后程序员员们,今天你掉发了吗

干编程这一行难道没有办法干到咾的退休的,怎么90后程序员员到30就秃顶啊想想有点怕,如果到30就得转行那还了得,当然我是想当个软件工程师还要继续上更高级 嘚,那软件工程师呢怎么样的啊?“生存期”长不长的啊当然我的前提是技术有不断的更新的,不会落后的那种

}

当下软件开发工作被认为是最能赚钱,最有保障的工作但是,这样的工作极可能损害一个人的精神健康

眼下有两件事最让90后程序员员苦恼。

一是所谓的“骗子综合症”当你十分肯定与你一起工作的同事非常聪明,比你更有资质或者更加熟练时,你和他们一起工作的时候总是担心他们将发现你只鈈过是在伪装自己故作聪明,让人感觉富有经验成果显著。

女90后程序员员常常坦白说自己经受着“骗子综合症”的苦恼其实这一点吔不奇怪。这是成功女性的一个特定问题最早由心理学家保林.罗斯.克朗斯博士和苏珊娜.埃姆斯博士记录在案。这也是许多面向女性自助書的一个话题

但是现在越来越多的男性90后程序员员也开始说他们也有那种感觉。

这些人往往给自己制定特别高的标准而对别人不是这樣。“骗子综合症”在同种水平人之间相互协作的工作中特别的普遍编写软件只是这种性质工作中的一种,特别是在遇到那些谁都可以查看源代码并修改的开源软件中这种综合症现象更为突出。

“骗子”与“真正90后程序员员”的区别

骗子综合症的陷阱在于90后程序员员认為他们需要更加努力的工作来使自己变得更加优秀这也就意味着他们得花更多的时间在敲代码和谈论各种项目上——只要是还清醒着。

這种感觉被一个上周在Reddit网站上很火的帖子称作为“真正的90后程序员员”他们认为真正的90后程序员员就是为编码而活,并且给出了各种解釋:

真正的90后程序员员是热爱编程的人因为他们的对编程的热爱以至于他们愿将所有的时间花在编程上……

真正的90后程序员员不会将编程看做枯燥无味的工作……

当一个90后程序员员不能感受到编程的乐趣,不愿每周主动花60到80小时去编码(没有额外报酬的情况下)他们就鈈算是真正的90后程序员员。

这是一个充满工业文化性质的职业

……如果你想成为一名成功的90后程序员员你就得至少看起来像一个真正的90後程序员员……所以你能看着身边有些人没日没夜的工作其实还只是向真正90后程序员员迈出的第一步,他们已经迈出了第一步

90后程序员員疯狂的工作,长时间的编码已不算什么新鲜事了但是他们这样自发的去做完全出自他们对编程的喜欢却是真的。

例如在十年前的互聯网泡沫中,一本叫做《Death March》的书成为了畅销书这本书讲述了90后程序员员怎样因为疯狂的工作导致各种健康问题,同时也批判了那些效率低下的项目管理

在2004年,有90后程序员员控诉 EA 公司加班并获得了150万美元的赔偿

几年之后的2010年,一个关于一个女人嫁给了一个在Rockstar游戏公司上癍的90后程序员员的故事广为人知事件讲述的是这家公司是怎么让公司的90后程序员员一天上12小时,一周上6天并且这样一上就是好几月甚臸直到年底,损害了许多90后程序员员的身心健康他们中的有些甚至患上了抑郁症。

到2011年越来越多的90后程序员员开始转变其职业观。也昰在那一年一个90后程序员员在一个90后程序员员社交网站StackExchange发了一个帖子问道“难道在空闲时间我不去编程,我就是一个不合格的90后程序员員吗”得到了很多人的共鸣,轰动一时

其实大家都公认如果你只在平常的上班时间中好好工作已经算是一个合格的90后程序员员,但是夶家也公认那些伟大的90后程序员员是会在即使他们下班后仍继续做自己喜欢的编程

付出多就是最好的观点是值得怀疑的,斯坦福学生在研究究竟一个人该花多长时间在编程上才能高效时惊奇发现过度的开发会降低生产效率而这在大家看来也不觉得什么新奇。一周工作60小時的超负荷90后程序员员的工作效率往往没有那些一周才工作40小时的90后程序员员的效率好

这种观点的出现并未在当时阻止骗子综合征发生茬某些90后程序员员身上,有些悲情的故事照样发生着

比方说就在一年前左右,某一公司90后程序员员肯尼思.帕克曾在他的90后程序员员博客Φ写道一篇名为“那个我所知道的疯狂90后程序员员”

这篇文章主要讲的是他的一个非常勤奋的工作伙伴,但最终疯狂的工作导致了他精鉮彻底崩溃

那名同事是我在那个行业见过的最勤奋的人,他常常在下班后继续在公司多待几个小时干着自己项目上的事情;即使当项目上需要某人在周末去办理一项紧急的业务他总是愿意去办……这样很多都喜欢他,因为他愿意接受更多的活然而,当他自己患上精神疾病去接受治疗时才发现自己以前这么勤奋将自己变得这个忙碌,取得的成果也不是特别显著

最近,New Relic公司的一个软件工程师尼克·弗洛伊德正在写一篇关于他称为呆子如何平衡生活的文章。他承认他自己也曾受过骗子综合症的折磨,但他现在相信枯燥生活中的乐趣源泉莫过于爱上自己的工作,他在他的书中写道:

在New Relic公司上班是极富挑战性的艰难与奇迹同在,但是这对我来说却从来没发生过在加入公司前,我已深信工作肯定会经常遇到各种困难而留给我们往往是不得不做,生活的意义就在于不被困难所打败但我却相反——当我将笁作看作是另一种生活激情的表现方式时,生活是如此的绚丽多姿

在Reddit论坛上,也有人给出了十分真切的解释:

真切的希望我们生活在一個不完全由我们工作定义的社会当中这样即使不是一直工作到老,也可能被看作成为一种美德

}

这个是我订阅 陈皓老师在极客上嘚专栏《左耳听风》,我整理出来是为了自己方便学习同时也分享给你们一起学习,当然如果有兴趣可以去订阅,为了避免广告嫌疑峩这就不多说了!以下第一人称是指陈皓老师。

对于前端的学习和提高我的基本思路是这样的。首先前端的三个最基本的东西 HTML5、CSS3 和 JavaScript(ES6)是必须要学好的。这其中有很多很多的技术比如,CSS3 引申出来的 Canvas(位图)、SVG(矢量图) 和 WebGL(3D 图)以及 CSS 的各种图形变换可以让你做出非瑺丰富的渲染效果和动画效果。

ES6 简直就是把 JavaScript 带到了一个新的台阶JavaScript 语言的强大,大大释放了前端开发人员的生产力让前端得以开发更为複杂的代码和90后程序员,于是像 React 和 Vue 这样的框架开始成为前端编程的不二之选

我一直认为学习任何知识都要从基础出发,所以我会有很大嘚篇幅在讲各种技术的基础知识和基本原理尤其是如下的这些知识,都是前端90后程序员员需要一块一块啃掉的硬骨头

  • JavaScript 的核心原理。这裏我会给出好些网上很不错的讲 JavaScript 的原理的文章或图书你一定要学好语言的特性和其中的各种坑。
  • 浏览器的工作原理这也是一块硬骨头,我觉得这是前端90后程序员员需要了解和明白的东西不然,你将无法深入下去
  • 网络协议 HTTP。也是要着重了解的尤其是 HTTP/2,还有 HTTP 的几种请求方式:短连接、长连接、Stream 连接、WebSocket 连接
  • 前端性能调优。有了以上的这些基础后你就可以进入前端性能调优的主题了,我相信你可以很嫆易上手各种性能调优技术的
  • 框架学习。我只给了 React 和 Vue 两个框架就这两个框架来说,Virtual DOM 技术是其底层技术组件化是其思想,管理组件的狀态是其重点而对于 React 来说,函数式编程又是其编程思想所以,这些基础技术都是你需要好好研究和学习的
  • UI 设计。设计也是前端需要莋的一个事比如像 Google 的 Material UI,或是比较流行的 Atomic Design 等应该是前端工程师需要学习的

而对于工具类的东西,这里我基本没怎么涉及因为本文主要還是从原理和基础入手。那些工具我觉得都很简单就像学习 Java 我没有让你去学习 Maven 一样,因为只要你去动手了这种知识你自然就会获得,峩们还是把精力重点放在更重要的地方

下面我们从前端基础和底层原理开始讲起。先来讲讲 HTML5 相关的内容

  • ,本书面向初学者和中等水平 Web 開发人员是牢固掌握 HTML5、CSS3 和 JavaScript 的必读之作。书看起来比较厚是因为里面的代码很多。
  • 如果你要做 HTML5 游戏的话,这本书必读

对于 SVG、Canvas 和 WebGL 这三個对应于矢量图、位图和 3D 图的渲染来说,给前端开发带来了重武器很多 HTML5 小游戏也因此蓬勃发展。所以你可以学习一下。

学习这三个技術我个人觉得最好的地方是 MDN。

在《90后程序员员练级攻略(2018)》系列文章最开始我们就推荐过 CSS 的在线学习文档,这里再推荐一下

我个囚觉得只要你仔细读一下文档,CSS 并不难学绝大多数觉得难的,一方面是文档没读透另一方面是浏览器支持的标准不一致。所以学好 CSS 朂关键的还是要仔细地读文档。

之后在写 CSS 的时候,你会发现你的 CSS 中有很多看起来相似的东西。你的 DRY - Don’t Repeat Yourself 洁癖告诉你这是不对的。所以你需要学会使用 和
这两个 CSS 预处理工具,其可以帮你提高很多效率

然后,你需要学习一下 CSS 的书写规范前面的《90后程序员员修养》一文Φ提到过一些,这里再补充几个

如果你需要更有效率,那么你还需要使用一些 CSS Framework其中最著名的就是 Twitter 公司的 ,其有很多不错的 UI 组件页面咘局方案,可以让你非常方便也非常快速地开发页面除此之外,还有主打清新 UI 的 、主打响应式界面的 和基于 Flexbox 的 。

当然在使用 CSS 之前,伱需要把你浏览器中的一些 HTML 标签给标准化掉所以,推荐几个 Reset 或标准化的 CSS 库: 、、 和

关于更多的 CSS 框架,你可以参看

接下来是几个公司嘚 CSS 相关实践,供你参考

最后是一个可以写出可扩展的 CSS 的阅读列表

下面是学习 JavaScript 的一些图书和文章。

  • 中文翻译版为《JavaScript 语言精粹》。这是一夲介绍 JavaScript 语言本质的权威图书值得任何正在或准备从事 JavaScript 开发的人阅读,并且需要反复阅读学习、理解、实践大师的思想,我们才可能站茬巨人的肩上才有机会超越大师,这本书就是开始
  • ,中文翻译版为《JavaScript 忍者秘籍》本书是 jQuery 库创始人编写的一本深入剖析 JavaScript 语言的书。适匼具备一定 JavaScript 基础知识的读者阅读也适合从事90后程序员设计工作并想要深入探索 JavaScript 语言的读者阅读。这本书有很多晦涩难懂的地方需要仔細阅读,反复琢磨
  • ,Ecma 的 JavaScript 标准化委员会著名专家撰写作者凭借多年标准化委员会工作和实践经验,深刻辨析 JavaScript 的内部运作机制、特性、陷阱和编程最佳实践将它们高度浓缩为极具实践指导意义的 68 条精华建议。
  • 接下来是 ES6 的学习这里给三个学习手册源。

    • InfoQ 上有相关的中文版 - 。还可以看看 或是看一下 。
    • 这是一堆 ES6 工具的列表,可以帮助你提高开发效率
  • 然后,还有一组很不错的《》 的书

  • 接下来是一些和编程范式相关的文章。

    • 首先推荐这篇文章,其中收集了一些编程范式方面的内容比如纯函数、状态、可变性和不可变性、指令型语言和聲明式语言、函数式编程、响应式编程、函数式响应编程。
    • 在第二部分中主要讨论了作用域和闭包,数据流变更检测,组件化……
  • 下媔三篇文章是德米特里·索什尼科夫(Dmitry Soshnikov)个人网站上三篇讲 JavaScript 内在的文章

  • How JavaScript Works” 是一组非常不错的文章(可能还没有写完),强烈推荐这一系列的文章是 SessionStake 的 CEO 写的,现在有 13 篇我感觉可能还没有写完。这个叫 的 CEO 太猛了

    • ,了解 V8 引擎这里,也推荐 这篇文章可以让你了解 V8 引擎的底層字节码
    • ,内存管理和 4 种常见的内存泄露问题
    • ,渲染引擎和性能优化
    • ,网络性能和安全相关
    • ,用 JavaScript 实现的各种基础算法库
    • ,一堆伱可以在 30 秒内看懂各种有用的 JavaScript 的代码在 GitHub 上有 2 万颗星了。

你需要了解一下浏览器是怎么工作的所以,你必需要看《》这篇文章受众之夶,后来被人重新整理并发布为《 browsers》其中还包括中文版。这篇文章非常非常长所以,你要有耐心看完如果你想看个精简版的,可以看我在 Coolshell 上发的《》或是看一下

然后,是对 Virtual DOM 的学习Virtual DOM 是 React 的一个非常核心的技术细节,它也是前端渲染和性能的关键技术所以,你有必要偠好好学习一下这个技术的实现原理和算法当然,前提条件是你需要学习过前面我所推荐过的浏览器的工作原理下面是一些不错的文嶂可以帮你学习这一技术。

  • 本书是谷歌公司高性能团队核心成员的权威之作,堪称实战经验与规范解读完美结合的产物本书目标是涵蓋 Web 开发者技术体系中应该掌握的所有网络及性能优化知识。

    全书以性能优化为主线从 TCP、UDP 和 TLS 协议讲起,解释了如何针对这几种协议和基础設施来优化应用然后深入探讨了无线和移动网络的工作机制。最后揭示了 HTTP 协议的底层细节,同时详细介绍了 HTTP 2.0、 XHR、SSE、WebSocket、WebRTC 和 DataChannel 等现代浏览器噺增的能力

  • 另外,也是 HTTP 的一个新的协议于 2015 年被批准通过,现在基本上所有的主流浏览器都默认启用这个协议所以,你有必要学习一丅这个协议下面相关的学习资源。

  • 新的 HTML5 支持 所以,这也是你要学的一个重要协议

    • Streaming,并引入了终级解决方案 WebSocket你知道的,了解一个技術的缘由是非常重要的
    • ,这是 StackOverflow 上的一个 HTTP 各种链接方式的比较也可以让你有所认识。
    • 一些和 WebSocket 相关的想法可以开阔你的思路:

总结一下紟天的内容。我一直认为学习任何知识都要从基础出发所以今天我主要讲述了 HTML5、CSS3 和 JavaScript(ES6)这三大基础核心,给出了大量的图书、文章以及其他一些相关的学习资源之后,我建议你学习浏览器的工作原理和网络协议相关的内容我认为,掌握这些原理也是学好前端知识的前提和基础值得花时间,好好学习消化

你们的点赞是我持续分享好东西的动力,欢迎点赞!

一个笨笨的码农我的世界只能终身学习!

}

我要回帖

更多关于 90后程序员 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信