老人不属于这里吗? 三十五点以后可编程



嗨,我叫德米特里(Dmitry),今年35岁。 我曾经经常听到程序员是年轻人的职业。 不过,去年夏天,我收到了邀请给Yandex的邀请,并搬到了莫斯科工作。


在本文中,我想谈谈一个在哈伯瑞(Habré)讨论过的问题:35至40年后成为一名程序员有多现实? 不是领导架构师,团队负责人,项目经理,还是程序员? 我不同意编程是年轻人的观点。 我认为这很有害,现在我将告诉您原因。


这个神话有几个原因。 让我们仔细看看它们。


说明1.需要神经和反应。


我们被告知:“编程需要年轻人独有的能量。 在成年期,这根本是不够的力量。”


程序员似乎很称赞,将他们与测试飞行员和宇航员放在同一块板上。 顺便说一句,我不是偶然地开始专门谈论飞行员。 女士们先生们,看看这个男人:


图片


这就是著名的切斯利·沙伦伯格(Chesley Sullenberger),他在58岁时成为美国的英雄,在哈德逊上降落了飞机。


公平地说,我要说的是:在编程中,确实有些地方要四十岁以后才是困难的,但这并不是因为一切都太聪明和困难,而是因为这些领域的特殊性。 例如,游戏行业经常发生紧缩:人们每周工作100个小时以上。 如果在青年时期仍然可以避免这种情况,那么40年后健康就不可能实现。 但是,这里的问题更可能发生在紧缩的公司上。 程序员可以在40岁时编写游戏,只是不能以这种疲惫和有害的方式进行游戏。


说明2.重新学习,学习。


我们被告知:“程序员的知识正在不断地过时,并且到30-35岁时,您在大学所教的内容对于任何人来说都不再是必需的,但是现在再培训已经太迟了。”


再次-似乎很讨人喜欢。 这个专业是如此有才华和精英,您必须始终处于发展的最前沿。


但是您还需要继续学习其他专业。 没有人从那里开车驱逐40岁的孩子。


召回律师。 立法正在变得过时。 这是常态。 而且,他们的情况比程序员还要严峻。 随着C ++ 20标准的发布,没有人会解雇使用先前标准编写的人员,他们不会要求立即对其进行培训。 但是律师别无选择:随着新版《俄罗斯联邦民法典》的发布,他不得不阅读,记住和使用它。


关于医生也可以这样说:他们被迫不断更新知识。 例如,为了明确说明外科医生应该学习的年龄,我们将阅读该国首席心脏外科医生Leo Boqueria的意见:


在任何时候,医生都是如此:人们希望得到有经验的医生的治疗。 以心脏外科医师为例,在美国,仅在37岁时才允许其参加手术,而作为独立外科医师的心脏外科医师将在40岁时出现在餐桌上,这仍然是一个大问题。 这适用于医生,科学家,教师,智力劳动者以及高技能工人。

注意“智力劳动者”-程序员与他们有关系吗,我希望吗? 这意味着经验与任何其他知识产业一样重要。


一个人在成年后能掌握多少新事物? 我不是合格的老师,心理学家,也不是神经科学家来回答这个问题。 但是,如实践所示,这是完全可能的。 甚至四十岁以后,很多人都处于进步的最前沿。 如果我们分心于IT行业,我们可以回想起同样的Sergey Pavlovich Korolev。 他是在45岁以后才取得主要进展的-几乎不是纯粹基于他在30岁之前获得的知识。


隐性知识也存在。 它们不能在大学获得,也不能从文学中收集。 在特定行业中需要花费几年的时间(有时甚至超过十年)。 在40岁的时候,程序员知道如何编程,并且(如果他参加了所谓的绝望项目)也知道如何编程,以及在选择软件体系结构和编写代码时应避免哪些错误。


说明3. 35岁的程序员不会产生任何值得的东西


我们被告知:“是的,您可以在35-40年内成为一名程序员,但是这样的程序员不会做任何严肃的事情。”


在这里,您应该从计算机的基础知识入手。 它是由Eckert和Mokley创建的。 埃克特当时25岁,莫克利只有35岁。


让我们继续研究那些在35年后创造出严肃事物的人。 让我们从著名的程序员权威Donald Knuth开始。 1978年,他40岁时,他开发了著名的TeX系统的第一个版本。 不久之后,在1981年,他提出了识字编程的概念。


快进更近的时间。 马丁·奥德斯基(Martin Odersky)出生于1958年,在对披萨和漏斗语言(以及成为Javac原型的GJ编译器)进行了十多年的工作之后,于2001年开始创建Scala语言。


这是一个程序员的另一个例子,他在青年时代就很出色,而在他的老年时代依然如此。 Anders Halesberg于1981年21岁时编写了Pascal编译器的第一个版本。 他从2000年(不到40岁)开始开发C#。 在2012年(享年62岁),Halesberg开始创建TypeScript。 出于兴趣,我曾经看过这种语言的资料库-来自Anders的大量提交。


此外,有一种观点认为,工程经验从40岁到55岁是最富有成果的,因为经验已经积累,没有什么事情可以分散工作:男人有家庭,孩子长大了……


此外,不要忘记,任何发现者不仅是十几个巨人,而且是一大批好工人。 他们创建了一系列基础架构,使发现者的工作成为可能。 有人编写了视频卡驱动程序,但没有驱动程序,游戏开发人员将无能为力。 有人正在建立网络协议,没有它们,多人开发人员再也不可能取得任何成就。 所有这一切都是一项巨大的工作,在大多数情况下,这些工作不是创新的,并且通常不被认为是值得骄傲的事情。 但是,没有这项工作,所有巨头都将一事无成。


说明4.您仍然不是领导者吗?


我们被告知:“程序员只是职业的第一步。 如果有头脑和能力,到三十岁,最晚三十五岁,你应该成为领导。”


这是最令人反感的解释。 就像,您可以沉迷于青年时代的编程,但是三十岁以后,您需要做一些严肃的事情。


如果您尝试将其应用到其他行业,则很容易理解这种观点的荒谬性。 尝试对50岁的律师说:“您仍然没有自己的律师事务所吗?” 尝试对50岁的外科医生说:“您还不是外科部门的负责人吗?” 最后,尝试告诉Sullenberger:“您是在58岁时将飞机降落在哈德逊河上吗? 您这个年龄的普通人早已拥有自己的航空公司。”


程序员和IT项目经理是不同的职业,尽管经理通常是从程序员中成长出来的。


我认为“程序员是年轻人的职业”这一职位非常有害,因为它大大降低了动力。 同意,如果您认为以后也将成为一名程序员,则最多也不能超过五年,因此很难在大学学习五年。 想象一下,他们被迫当医生学习了八年,但同时他们宣称:“医生是年轻人的职业,三十岁后您必须升任领导职务。” 那么这些年来努力学习的意义何在?


“程序员-年轻人的职业”的神话从何而来?


一次,我试图找出并强调两个来源:


  1. 编程的早期时代。 编写程序的那些浪漫年代甚至都没有出现在汇编程序中,而是出现在机器代码中,而不是在普通IDE中,而是在打孔卡上。 那时,软件开发比现在更加耗时。 我愿意承认,正是年轻人最容易承受这样的过程。
    但是,现在情况已经改变。 院子里已经不是五十多岁了,发展也不是那么困难。
  2. 纯粹是俄语细节。 Runet的黄金时代已经到了90年代:IT领域发展迅速,一切都实现了自动化,每个公司都有自己的文档管理系统,国外办事处也来到了中国……此外,这是ACM这样的比赛在辉煌的胜利时期。 然后,该行业真正迅速发展。 获得文凭后,您最多可以担任程序员五年,然后成长为项目经理。 也许是那时,人们开始相信程序员是他职业生涯的过渡阶段。

但是,现在情况已经改变。 造成这种情况的原因有很多,但我认为最重要的是人口统计上的失败。 去莫斯科时,我碰巧在省立大学任教,并在省级IT部门工作。 我可以亲自证明:在2010年已经出现地区的人员短缺非常严重。 青年人少得多,而大学无法安置合适数量的程序员。 也许在莫斯科和彼得斯堡没有这种感觉,但是在其他城市则是这种情况。 没有人可以取代所有30岁的程序员。 显然,他们不能离开其他职位-谁去编程?


人口统计学上的失败导致了一个事实,即该地区程序员的年龄限制开始显着但稳定地增长。 这是否在首都发生是一个悬而未决的问题。


给IT学生的提示


如何与您的职业联系? 要学些什么,以使您在三十五岁时不会被甩在后面,也不会为在大学里浪费的时间感到后悔? 这是我的想法。


  1. 不要把你的职业当成临时的,否则你将很难过。 程序员需要认真学习,但是您不能刻苦学习那些您认为与自己无关的事情:计划最多给他五年的时间,然后做一些真正有趣的事情,例如项目管理。 确定您是否真的一生都会成为一名程序员。 请记住,如果您认为您的职业纯粹是暂时的,那么您掌握该职业的可能性就会增加。
  2. 不要忽视诸如汇编器之类的低级编程以及诸如C / C ++之类的语言,尤其是指针。 如果您还没有掌握这一点,那么您会自动脱离许多开发领域。 最引人注目的例子是OS开发。 如果您觉得这是一个非常小众的领域,那么请考虑一下用于游戏的计算机图形:就是这样。 或关于现代设备的驱动程序。 而像nginx这样的东西将很难编写。 在工作方面,请不要忘记,几乎我们所有的企业(在国外都有)都有大量的微控制器,并且在不久的将来不太可能用Python对其进行编程。
  3. 不要忽略功能编程。 长期以来,特别是在90年代,在OOP的鼎盛时期,这种风格看起来有些学术性,而实际上在普通程序员的工作中找不到这种风格。 一切都从零开始变了,Twitter将权威地确认可以在Scala开发高负载的系统。 通常,函数式编程的概念比许多学生认为的要广泛使用。 在过去的十年中,几乎所有主流编程语言都包含函数式编程的元素。 他的概念将在很长一段时间内继续渗透到各个领域。 我本人向我推荐Abelson和Sassman的课程。 这是八十年代的麻省理工学院经典课程,在此之后现代语言的掌握要好得多。
  4. 尝试体育节目。 坦率地说:这是最具争议的建议。 运动编程由于其功能(该程序通过了一组有时间限制的自动测试,但是没有人检查体系结构的样式和健全性)鼓励不小心编写代码。 但是,另一方面,几乎不可能对算法有更深入的了解。 还记得您在大学里有多少场关于图形和搜索算法的讲座? 两三个? 您应用了多少次该知识? 还有两三遍吗? 不要与解决数百个问题所获得的经验相提并论。 在任何工作中,您都会通过实践成为专家。

而不是结论


在三十五岁以后,很可能成为一名程序员并找到一份工作-不仅在支持旧系统的工厂,而且在现代IT公司中。 最主要的是要发展,不要害怕新事物并热爱您的工作。


你觉得呢 同意与否? 你有什么经验?

Source: https://habr.com/ru/post/zh-CN455080/


All Articles