程序员 30 岁的不惑之年

点击“开发者技术前线”,选择“星标?”

13:21 在看|星标|留言,  真爱

640?wx_fmt=jpeg

来自:硅谷密探

地址:https://www.oschina.net/news/96226/programmer-30-years-old


最近,美国老牌科技公司 IBM 被爆出,从2013年以来,已经静静裁了超过2万名40岁以上员工。。。。美国华为裁员, 甲骨文裁员,中兴劝退35岁以上程序员已经不是什么新鲜事了。


640?wx_fmt=jpeg

40岁可是上有老下有小,要养家糊口的年龄,也是最难离开一份工作的年龄啊。

难道40岁,我就该面临被裁员的命运吗?其实,对于更多的科技公司员工来说,40岁才困惑或许已经晚了。知乎上,已经有程序员的“月经贴”,那就是:30岁了,程序员最迷茫的年纪,该怎么办?更年轻的毕业生已经在路上...

640?wx_fmt=jpeg

其实,无论是中国程序员,还是美国的程序员们,中年职场都难逃一种共同的忧虑,到底该怎么往下走,码农是不是个吃不起的年轻饭?

别担心,小探今天就请了一位前谷歌资深工程师 Yan 来跟大家讨论讨论,工作了1年、5年、10年的程序员们,该如何规划职场和提升自己。Yan 曾在谷歌连续三年获得“Top performer”的称号,也曾担任技术面试官。

最好的提升在工作中

IBM 想静静裁掉 40 岁以上的员工,显然没法静静。。一个最明显的指责出来了:IBM 你存在“年龄歧视”!

但 IBM 是怎么回应的呢?它说,我们为公司和员工能够重塑自己能力(ability to reinvent themselves)而自豪,这也是为什么我们是唯一一家超过100年的科技公司。

照这样来看,IBM 认为,裁掉的正是那些无法自我提升的员工。那问题来了,如果平日程序员工作很忙的话,又该如何找机会自我提升呢?

640?wx_fmt=jpeg

你别说,Yan 这位谷歌资深工程师就以亲身经历告诉小探,不要以工作时间长为借口,因为程序员自我提升最好的方式就是从工作中获得的。当然,这里也涉及不少人对程序员(码农们)的一个误解,那就是程序员做的都是重复性的、机械性的工作,但并非如此。

对每个程序员来说,是一个项目接一个项目做的。项目面前,人人平等。但是,面对新项目时,经理给不给你机会参与,这就存在不平等了。

怎么理解呢?Yan说,刚进公司,每个程序员都是从简单、基本的工作做起的,但是即使你在做简单基本的工作,你也需要让经理和同事认可你的能力。这就对新人提出了新的要求,如何更积极、更好地完成任务,获得上级的信任。“有能力者任之”。

“当你在组里表现出很强的主动性,得到肯定后,一旦有好的项目出现,经理认为你能够承担更大责任,项目自然就让你参与了。当你参与有挑战性的项目越多时,你就自然从项目里获得成长。” 总结下来,Yan 说了三个词,Impact(影响力),Motivation(动力),Ownership(主动性)。 Yan 在谷歌担任工程师时,曾连续多次获得“最佳员工”(Top Performer)。

640?wx_fmt=jpeg

这也是为什么像谷歌、Facebook 等国外大公司,会要求员工在一定年限内晋升,否则会被认为达不到公司对员工在主动性、影响力方面的要求。

以谷歌和 Facebook 为例,Level3 是程序员们进去的普遍级别,Level4 是具有博士学历程序员进去的级别,但往上升一级,公司都对员工有固定年限要求。升不了,就面临走人的可能。

28岁规划好,30岁不迷茫

如前面所说,对硅谷各大科技公司员工来说,在固定的年限里实现升职,是很普遍的要求。举个例子,谷歌程序员如果要从 Level3 到 Level4,一般需要1—2年,Level 4 到 Level5,一般允许2—3年。升职所需的3—5年,恰好就处于程序员25—30岁的阶段。

Yan 建议,如果要避免30岁不迷茫,就要28岁开始规划。

怎么做呢?比如说,当你是一位级别4的程序员时,就已经对业务较熟悉了。这时,应该想是不是希望升到5,如果是的话,不妨直接跟经理明确表达自己的期待,然后听取经理对自己现阶段和下阶段的期待(expectation)是什么。

“了解期待,才能让自己对下一阶段要做的任务和现有能力的差距进行充分判断。”还有一个方法,那就是多跟更高级别的人聊天。Yan 认为,中国程序员可能比较谦虚、内敛,但还是要先想清楚,再说出来。

回到知乎的问题,30岁的程序员确实迷茫,怎么办?在 Yan 看来,30岁的程序员,意味着是一个成熟的程序员。更多的可能是选择太多,但并不清楚要走哪条路而迷茫。

为什么这么说呢,因为30岁并不是初级员工的阶段了,面临的项目可能已经很成熟。这时候,不妨问一下自己最感兴趣的是什么,是继续在这个领域钻研,打造行业经验,还是跳槽找一个新的发展环境。

但总的来说,对于自己的职业发展还是要有提前意识,并不断地调整。“提前两年就应该想了。”

人到中年?更容易实现突破

硅谷有这么一个说法,那就是:大公司做程序员升到级别5,就意味着“安全”了,公司并不会主动辞退你。这个说法在同为程序员的 Yan 看来,有正确的一面,但也有不完全的一面。

Yan 举例,谷歌大概有 60%—70% 的员工是工作三年以上的“老员工”,自己在20个人的组里,有3到4个都是级别5这样的员工。正确的是,对级别5的员工来说,确实很“安全”,可以不需要担心辞退,安心做着原有的任务。但也有人不因为年龄而限制自己能力,真正实现级别跨越。比如自己的一位领导,到了40岁实现连跳两级的跨越,可见,35—40岁反而是把自己沉淀下来跃升的黄金时段。

同时,Yan 观察大公司产品创新、技术创新路径发现,一般创新都来自级别5以上的员工。除了初级员工暂时无法达到真正创新的能力,公司对更高级别员工,也有能主导产品创新,找到团队下一步发展方向等能力的要求。

如果顺利升到资深工程师的级别,也度过30岁大关,又该如何规划自己呢?

Yan 建议,如果不改变自己的工作环境,还是应该提升自己,否则也可能因为表现不佳,被放到“观察区”。不妨用突破舒适区的心态,学习新的技术。毕竟,技术更新换代很快,当时自己正用得熟练的技术,可能就不是当下最火最热门最新潮的技术了;又或者,可以在公司内进行换组,大公司换组相对是比较容易的。总之,找到感兴趣的方向,才能实现提升。否则,确实容易陷入上升天花板。

软实力可培养

最后,谈及自己为什么能多次获得谷歌“最佳员工”的经验,Yan 给了三点建议,第一,要主动(Take ownership);第二,知道自己当下做什么;第三,做得比别人快,比别人好。

无论什么行业,Yan 认为,都要找到你职场里的导师,新进入公司的员工,更应该多交流,跟更高级别的人交流,从而帮助自己建立起职场计划。Yan非常感激自己当时的经理,是一位非常好的导师。正因为他明确地告诉 Yan,对你的期待,你下一步应该做,才让 Yan 的职场走得比较顺利。“知道这几年分别要完成什么事情,也就提升了自己的能力。”

---END---

选择”开发者技术前线 “星标?,内容一触即达。点击原文更多惊喜!

开发者技术前线 汇集技术前线快讯和关注行业趋势,大厂干货,是开发者经历和成长的优秀指南。

历史推荐


为了找到盗照片的人,我在网上叫了个“小姐”!

鸿蒙会干掉安卓吗?刚刚 ,首款搭载华为鸿蒙OS终端正式亮相!

互联网再无中年人

640?

点个在看,解锁更多惊喜!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。在编写C程序时,需要注意变量的声明和定义、指针的使用、内存的分配与释放等问题。C语言中常用的数据结构包括: 1. 数组:一种存储同类型数据的结构,可以进行索引访问和修改。 2. 链表:一种存储不同类型数据的结构,每个节点包含数据和指向下一个节点的指针。 3. 栈:一种后进先出(LIFO)的数据结构,可以通过压入(push)和弹出(pop)操作进行数据的存储和取出。 4. 队列:一种先进先出(FIFO)的数据结构,可以通过入队(enqueue)和出队(dequeue)操作进行数据的存储和取出。 5. 树:一种存储具有父子关系的数据结构,可以通过中序遍历、前序遍历和后序遍历等方式进行数据的访问和修改。 6. 图:一种存储具有节点和边关系的数据结构,可以通过广度优先搜索、深度优先搜索等方式进行数据的访问和修改。 这些数据结构在C语言中都有相应的实现方式,可以应用于各种不同的场景。C语言中的各种数据结构都有其优缺点,下面列举一些常见的数据结构的优缺点: 数组: 优点:访问和修改元素的速度非常快,适用于需要频繁读取和修改数据的场合。 缺点:数组的长度是固定的,不适合存储大小不固定的动态数据,另外数组在内存中是连续分配的,当数组较大时可能会导致内存碎片化。 链表: 优点:可以方便地插入和删除元素,适用于需要频繁插入和删除数据的场合。 缺点:访问和修改元素的速度相对较慢,因为需要遍历链表找到指定的节点。 栈: 优点:后进先出(LIFO)的特性使得栈在处理递归和括号匹配等问题时非常方便。 缺点:栈的空间有限,当数据量较大时可能会导致栈溢出。 队列: 优点:先进先出(FIFO)的特性使得
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值