广州白板笔价格社区

硅谷35岁以后的程序员都在做什么?

北美工程师求职顾问 2018-06-20 08:05:08


总说程序员是吃青春饭的,过了 35 岁编程生涯就终结了——是这样吗?


在 IT 行业,技术日新月异,各种库、SDK、编程语言层出不穷,对于程序员的要求也越来越高。在脑力劳动和体力劳动的双压力之下,年龄大小的优劣无疑显现出来,那么优胜劣汰的自然法则之下,无法与时俱进的人最终只会被淘汰。



一、

我今年 37 岁,曾经住在硅谷,并且我的整个职业生涯中一直从事技术工作。我从来没有在技术上“大获成功”,也从没有“走入管理层”。但是到目前为止,我已经处在了职业生涯的最佳位置。

“35 岁以后应该做什么”这个问题,不应该固性思维,而应该以一个成长的思维来看待。

在我 20 多岁的时候,一切看起来似乎都很好:我在创业公司工作,并且取得了一些成功,但每当我环顾四周时,都不断看到我这个年龄段的人在变得更酷,更酷的工作、汽车和生活。如果说在过去的十年里我发生了什么变化,那就是我从一个固定的观点转向了一个成长的思维模式。我已经认识到在学习的时候我才是最快乐的,并且更注重学习的过程而不是最终的结果。

在某些方面,我实际上比前几年过得要稍差一些,但我变得更快乐、更健康、也更有内涵。毫无疑问,我和其他人一样,有糟糕的日子也有美好的日子,但总体而言,事情正在逐渐变好。

“硅谷的生活结束于 35 岁,除非你大起大落”——这是不正确的,但这要等到35岁才会意识到。

二、

35 岁以上确实会面临着“过山车”般的境况,这是毋庸置疑的。

在软件开发方面,软件开发市场所需的技能每五年都要进行一次检修,所以程序员们需要乘着技术革新的浪潮才能在 5 年内成功通关。如果不持续升级,随着年龄的增长,那么会越来越难以躲避被淘汰的局面。例如,一个 35 岁的 ASP 程序员编写了 10 年代码,但是他没有机会编写 ASP.Net 或是 .Net-MVC 等应用程序,如果他失去了工作,那么不具备这 10 年的市场所需技能,10 年后的他只会被淘汰。

同样,软件开发人员在过去 15 年中不断提高的生产力,使得开发经理、架构师、构建者和其他一些人的需求大大减少,因为在许多小团队中,开发人员也会顺便接管一些其他的角色,因此,如果一名专职的经理、建筑师或建筑商 5 年后失去了工作,就很难在没有生产编码责任的情况下找到另一个相同职位的工作。即使找到了另一份工作,很明显他就需要和一个年轻人竞争:这个年轻人在相关技术上有两年的编码经验,而你有 10 年的无关经验和 0 年的相关经验。

另一大趋势是稀缺资源性质的变化。 20 年前,电脑是稀缺的资源,项目负责人围绕稀缺的计算资源和繁琐的语言、开发工具组织他们的软件开发计划和工作习惯。但在今天,计算资源并不稀缺,语言、流程和开发工具也得到了极大的改善。如果一个组织在软件开发习惯上已经使用了 10 年,那么这些新的实践需要经过一段痛苦的适应阶段。

对于这些因素中的每一个,35 岁以上的开发者或多或少地都会受到影响。此外,超过 35 岁的开发者往往还有额外的压力,如家庭、财产、社区义务和与年龄有关的健康问题,这往往就使得他们不愿意耗费全部的工作时间,以及下班后与团队交往等额外消耗。

三、

当我 37 岁的时候,我决定结束自己在学术界和工业界多年的研究工作,搬到硅谷。那时我正在西班牙的一家大型电信公司做研究,虽然我听说过 35 岁以后在硅谷工作不会成功的,但我最终仍然决定加入 Netflix。

是的,现在我已经搬到山谷,加入 Netflix 并且领导他们的算法/建议团队近 4 年时间了。事后看来,我认为这是一个非常成功的选择。但是由于我最近(41岁)加入了 Quora,所以我的硅谷之路并没有结束。虽然在 Quora 这样的年轻创业公司中的平均年龄相当低,但这并不意味着当你超过 35 岁的时候就不会成功。事实上,正因为很多人都还年轻,经验才是我们最大的财富。

现在我已经废除了“硅谷 35 后”这个论断了,但我认为任何大的职业变化都应该在 40 岁之前。

2001 年,我加入了谷歌软件工程团队,当时我 55 岁——没错,在谷歌工作的整整四年里,我是最老的员工。

那四年我做了什么?我不是经理......我只是一名软件工程师,与我所有亲爱的同事一起工作,他们的平均年龄比我年轻 25 岁。没有人觉得我的年龄有问题,我只是团队的一名普通成员而已。

没有什么所谓的“过山车”,只会变得越来越无关紧要罢了。为了避免变得无关紧要,我从不停止学习。在 1975 年开始我的职业生涯时,我们仍然使用打卡和大型机,使用 Fortran 和 PL / 1 进行编程。20 世纪 80 年代,有前途的新技术应用了人工智能,我很幸运找到了一个 AI 研究团队的工作,在那里我不仅学到了更多关于软件概念的知识,而且学到了尖端的重要性技术。

在经过十年的 Lisp 编程之后,1990 年我转向了新的面向对象语言 C ++。几年后,网络爆发,我开始使用 HTML 和 JavaScript 等更多新技术进入网页开发。学习,不断学习,是我职业生涯中所有转变的关键。

我看着我这个年龄的其他人要么进入管理阶层,要么开始攀登企业阶梯,有的也变得无关紧要,变成失业者,或转向全新的事业。几乎在我所有的早期工作中,我的经理都觉得我应该成为一名经理——但我自己知道我讨厌做一名经理,我只喜欢开发软件。有一天,当我的经理走进我的办公室,看到我在一个程序上工作,对我说:“你还做什么软件?你现在是经理!“

我喜欢且擅长写程序,为什么要强迫自己做一个经理?这给我带来了巨大的压力,我只想回到我的电脑前,专注地解决一些问题。最后,我在 1996 年的一天宣布,“我再也不会管人了”。我想,我不在乎是不是永远不能退休。

2000 年,我利用新获得的 PHP 技术,从波士顿迁移到了硅谷,那时我非常习惯和同龄的人一起工作,但突然有一天我下岗了。然后我进入了一家 200 名员工的小公司,向我承诺不会指望我进入管理层。事实上,她说他们刚刚决定聘用一些有几十年经验但又不想当经理的人。

四年后,我退休了。我一路上结交了许多亲密的朋友,同时我仍然在学习新技术。在过去的一个月中,我已经解决了 Ruby,现在我正在开发 Ruby on Rails,并且未来还将一直继续。

最后

技术焦虑是大龄程序员老生常谈的主题,其实不论国内国外,不论市场境况如何,面对生活和工作的重要岔口,都会不可避免地陷入自我怀疑的怪圈,重要的是随波逐流、逐渐淘汰,还是迎难而上、顺势逆袭——总之,保持一颗不断进取的初心是不会错的,更要做好技术焦虑的减法和解法。


8课时魔鬼训练课程

9大主题系统性解题介绍

30道算法,数据结构真题举一反三

覆盖leetcode 高频面试题

4周组队刷题狂潮带你赢取高薪FLAGOffer !

  明 星 导 师   

罗老师

Senior Software Engineer, 拥有8年一线软件工程师工作经验,曾就职Facebook, Google, Amazon等多家明星级硅谷一线公司,《程序员面试白皮书》作者之一。熟悉软件开发,数据结构和算法。长期参与技术招聘,面试人数超过200人,对CS和非CS专业学生如何求职软件工程师有独到的见解和高效的求职方法。Office Hour金牌导师,辅导学员超500人,独创的9大主题刷题法使你用最短的时间刷完最多的题!




  适 合 学 员   

  • 无算法基础,或算法基础薄弱,不系统

  • 希望求职Facebook, Google, Linkedin, Airbnb, Uber等硅谷知名企业

  • 面试经验少或无面试经验,不知道与面试官如何正确的沟通和展现自己

  • 网上练习题目那么多,不知道该从哪些题开始准备

  • 获取最新面试动向

  • 认识一起找工作的其他小伙伴


马上扫码入微信群,了解更多课程详情。



  开 课 时 间   

第一节课

2018/6/2(周六) 美西时间7:00pm - 9:00pm


第二节课

2018/6/3(周日) 美西时间7:00pm - 9:00pm


第三节课

2018/6/9(周六) 美西时间7:00pm - 9:00pm

第四节课

2018/6/16(周六) 美西时间7:00pm - 9:00pm

错过直播不要怕,直播结束后会发出直播视频回放

课后会有项目和微信群刷题,帮你巩固知识。

  课 程 大 纲   

第一节课 

你好,技术面试


第一课目标:

  • 针对程序员需求量最大的“热门公司”,一一讲解这些公司的面试特点。

  • 知道如何写出一份“tech interview ready”的简历

  • 全面了解技术面试流程,“兵来将挡”地应对面试中可能碰到的各类面试官

  • 知道怎样完整、全面地回答一道白板编程题,再也不会出现“我觉得面得不错,最后为什么没有进”的尴尬


1. 面试风格和面试题

  • Facebook

  • Google

  • Apple

  • Cisco

  • Oracle

  • 初创公司

2. 如何写简历才能看起来更像一个高大上的码农?

3. 如何准备技术面试?技术栈总结

  • 从“软”到“硬”了解程序员的一天

  • 程序员面试技术栈

  • 程序员的分工和合作

  • 前端,逻辑层和后台我是和哪个

  • 了解你的面试官

  • 从容应对HR和工程师

4. 如何在解题思路上征服你的面试官?

  • 白板面试的答题思路

  • 白板面试答题流程


课件预览


第二节课 

算法101


第二课目标:

  • 了解面试中最常见的基本算法问题

  • 如何衡量算法效率(复杂度分析)

  • 逐一讲解算法基础内容

  • 利用“模式识别”,快速判断应该使用什么算法,利用代码模版快速解决


1. 算法面试总结

  • Merge sort, quick sort, insertion sort

  • Binary search (and variations)

  • Tree traversal: pre-order, in-order, post-order, level-order

  • Algorithm analysis

2. 复杂度计算 Time Complexity

  • 时间和空间复杂度计算

  • 顺序和循环结构复杂度计算

  • 事前分析估算法

3. 排序 Sort & Search

  • 快速排序

  • 合并排序

  • 桶排序

  • 二分查找和k选择查找

  • Sort & Search 真题1,2,3分析和应用

4. 递归和动态规划 Recursion & Dynamic Programming

  • 递归三要素和动态规划四要素

  • DP应用场景

  • 状态转移方程 

  • 遍历算法和分治算法 Traverse and Divide Conquer

课件预览


第三节课 

数据结构101

第三课目标:

  • 了解面试中最常见的基本数据结构问题

  • 逐一讲解数据结构的概念和基础内容

  • 利用“模式识别”,了解数据结构的出题套路,见招拆招


1. 数据结构总结

  • List, Stack, Queue

  • Binary Tree, BST

  • (Hash) Set, Map

  • Priority Queue (Heap)

2. 数组和字符串 Array

  • 数组,矩阵,树状数组

  • 数组的处理方式

3. 链表处理技巧 Linked List

  • 双指针算法

  • 巧用“哑节点”

4. 哈希表 Hash Table

  • 常用的哈希库

  • 哈希表的实现原理

  • 冲突解决方法(Open Hashing, Closing Hashing)

  • 哈希表高频面试题

5. 栈和队列 Stack & Queue

  •  Stack & Queue 应用场景

  • Stack & Queue 真题1,2,3分析

  • 解题原理,复杂度分析, 拆解同主题题目

6. 树 Tree

  • 二叉树,二叉搜索树,字典树

  • 二叉树的序列化

  • 二叉树的分治算法

  • 递归三要素


课件预览



第四节课 

当算法遇上数据结构

第四课目标:

  • 算法和数据结构课程的进阶,挑战面试中最有难度的问题

  • 从经典算法问题中总结模版,举一反三

  • 了解算法在实际工作中的应用


1. 树和图的周游

  • 递归算法

  • 深度优先

  • 广度优先

  • 真题1,2,3分析

  • 解题原理,复杂度分析, 拆解同主题题目

2. 图的算法 Graph

  • 贪心算法

  • 最短路径算法

  • 真题1,2,3分析

  • 解题原理,复杂度分析, 拆解同主题题目

3. 堆排序 Heap

  • 堆的基本原理

  • 优先队列与堆的联系

  • 堆的高频试题

4. 从内排序到从外排序

  •  B树

  • 文件系统

  • 解题原理,复杂度分析, 拆解同主题题目

5. 挑战高级程序员

  • 程序设计

  • 系统设计

课件预览


课程形式为线上视频直播,每次课程可与导师互动交流,每次课程只限20人报名,保证学习质量。中国美国可同时观看直播。每次课程结束将会给所有学员发送视频链接,可反复观看复习课上内容。

  学 员 战 绩  

部分往期精品小班学员入职公司汇总

  求 职 宝 典  

报名后即可获得价值$120的全部工程专业的求职宝典!《独家面经和题库》《美国就业手册》《硅谷求职攻略》《工程求职宝典》等的求职材料和求职资源。



  报 名 方 式  

关注北美工程师求职顾问公众号

并回复关键字:

“小班2”



 往 期 学 员 反 馈  




Copyright © 广州白板笔价格社区@2017