我为何在 35 岁时没有成为一名程序员

我为何在 35 岁时没有成为一名程序员
从XNUMX月初开始,出版了《程序员的童年》、《N年后如何成为一名程序员》、《我是如何从其他行业转行到IT》、《编程之路》等主题的成功出版物等等,如一条宽阔的溪流涌入哈布尔。 类似这样的文章一直在写,但现在变得特别拥挤。 心理学家、学生或其他人每天都会写作。

每一篇文章中都会响起一首熟悉的歌曲:作者建议的主要内容是“尝试”、“不要放弃”、“不要害怕”和“向你的梦想前进”; 在评论中你经常会遇到这样的观点:如果你从小就喜欢电脑,那么最终使用它们就不足为奇了。 以我的传记为例,我想引导读者认识到初始条件可能比付出的努力更重要。 对公正世界的信念 促进心理安慰,但并不能非常准确地反映现实。

不允许:开始

我为何在 35 岁时没有成为一名程序员

Энциклопедия профессора Фортрана для старшего школьного возраста

我的故事始于童年时期计算机科学教室里的一台克尔维特计算机。 但这是后苏联教育黑暗领域中的一缕偶然的曙光——当时,计算机科学的正式学习必须从 11 年级开始。 我刚刚报名参加了随机开始的初中计算机教育选修课。 每周,他们都会为我们打开一间黑暗办公室的厚重铁门,窗户上装有铁栏,并向我们展示如何使用 Corvette BASIC 在屏幕上显示“Hello”。 这很棒,但好景不长。

显然这是某种教育实验,六个月后就结束了。 我没能学到很多东西,我只是设法变得感兴趣。 但当选修课结束时,他们普遍向我解释:计算机实际上不适合小孩子;人们在十一年级之前不会长大学习计算机科学。

值得注意的是,当时风风火火的九十年代盛行,当时先驱者殿堂里的各种技术圈子已经大部分关闭,家用电脑还没有变得司空见惯。 因此,你不能仅仅因为想学习技术或计算机就获得它们。 获胜者要么是那些融入新市场经济的人的孩子,要么是那些每天接触计算机的人的孩子——工程师、计算机科学教师、各个部门的“技术专家”。

例如,很多年后我得知,大约在同一年,我(未来的)同学的父母给了他一张 ZX Specrum。 当然是为了游戏。

最有可能的是,我仍然被排除在新的数字世界之外。 我在学习和成长过程中充满信心,相信我现在不会比十一年级更早接触计算机。 有趣的是,这就是最终发生的事情。 但大约在此之前的几年,一个真正的奇迹发生了——作为当地慈善活动的一部分,我收到了一台电脑。

看来我要弥补失去的时间了——但生活又做出了调整。

有句俗话说,如果你给一个乞丐一百万美元,他将不知道如何处理。 当然,如果他是一个聪明的乞丐,他会花一百万的一部分来进行培训,包括学习如何处理金钱。 但这仍然不能与一个有钱长大的人能做的事情相比。 当一个人超出了他的社会阶层的界限时,这样的灾难就会发生。

由于在正常情况下我永远不可能拥有一台电脑,我也没有钱购买任何课程或相关产品。 出于同样的原因,我在可以告诉我一些事情的人之间没有联系;我根本不属于这个圈子。 计算机实际上是另一个世界的一部分。 不是像现在这样的普通家用电器,而是类似精灵神器的东西。 因此,我无法尝试并从自己的经验中学到一些东西——“你会打破一个昂贵的东西。” 因此,我不能告诉我的同龄人,我家里有一台电脑——风华正茂的九十年代已经到来,你还记得吗? 因此,交换信息的机会急剧减少——我无法向任何人寻求建议,我无法提出问题或分享经验。 互联网? 什么? 什么互联网? 也许菲多? 是的,我们连电话都没有。

你可以去图书馆,免费查找书籍或参考书,然后第二个问题就出现了。 对于这些条件来说,这台计算机太先进了。 上面安装了Windows 95。

我拿了图书馆里关于计算机的主要(唯一)书籍——著名的海因/日托米尔斯基教科书《信息学和计算机科学基础》,封面是红色的。 现在您可以在 Internet 上找到它,并感受其内容与运行 Windows 95 的成熟计算机的内容之间的对比。 更糟糕的是,即使是盗版软件也很难获得——距 DVD 商店的鼎盛时期还有几年,这些商店的名字很吸引人,“All Office Software - 2000”。 然而,当它们出现时,我仍然没有钱买光盘。

顺便说一句,在这附近的某个地方,11 年级的“官方”计算机科学时间已经到来 - 我们收到了我在 91 年提到的教科书,真正的任务是绘制简单的算法树(用铅笔在纸上)并使用 Lexicon 文本编辑器。

形式打屁股

我为何在 35 岁时没有成为一名程序员

Настоящие программисты и я

结果,我的计算机开发这几年不幸陷入停滞。 我阅读Windows帮助,不择手段地在软盘上获得了计算机的各种程序,并通过编辑autoexec.bat文件学会了成为“高级用户”。 我从学校带来了词典,但是什么呢? 总的来说,当我终于能够回到童年并开始使用 qBasic 编程时,可视化界面已经在我周围占据了主导地位。

这种对比在很大程度上摧毁了我深入研究常规文本编程的动力。 原因是我开始真正沉浸在计算机世界的 Windows 95 的图形与我当时所知道的语言的单调文本屏幕之间的令人压抑的差异。 上一代程序员很高兴在编写 POINT(10,15) 时屏幕上出现一个点。 对他们来说,编程就是“在屏幕上画出不存在的东西”。 对我来说,屏幕上已经充满了表单和按钮。 对我来说,编程就是“让按钮在按下时执行某些操作”——而让按钮本身很无聊。

作为一个抒情的题外话,我想指出,现在编程语言的螺旋式发展又回到了同样的情况。 现在,所有“真正的程序员”再次在记事本中设计界面,并且每个程序员现在都再次有义务成为一名设计师。 同样,您需要专门使用代码在屏幕上放置按钮、输入窗口和其他控件。 因此,在这种情况下,经典的 80/20 规则如下所示:“我们花费 80% 的时间通过手动键入代码来创建界面,并用 20% 的时间设置界面元素的行为。” 为什么这是在 DOS 和 Pascal 时代——我明白; 没有其他选择。 当每个人都已经看到并接触过 VB、Delphi 和 C# 时,为什么现在会存在这种情况 - 我不知道; 我怀疑问题在于开发环境是收费的还是免费的。 方便的东西总是很昂贵,不久前还出现了上述环境的免费版本。

这就是互联网编程与我擦肩而过的原因之一。 不过,正如很久以后的事实证明,创建一个作品集并成为一名程序员是最容易的。 我尝试同时掌握 PHP 和 JS,但不想“在记事本中编写代码”。 嗯,另一个原因是互联网在 2005 年或 2006 年出现在我的生活中 - 在那之前它位于世界图景的边缘。 与手机一样,“富人使用的东西”。

因此,我放弃了所有 DOS 编程,一头扎进 Access Northwind 培训数据库,它为我提供了表单、按钮、宏和应用程序编程的巅峰之作 - VBA。 也许在那一刻我终于决定将来我想成为一名程序员。 我买了一张 Visual Studio 光盘,买了一本关于 VB 的纸质书(!),开始制作计算器和井字棋,很高兴整个设计在几分钟内就在表单上创建了,而不是手工写出来。 自从电脑不再是稀有物品,我终于可以走出去,和志同道合的人一起讨论编程了。

在这些讨论中,我发现 VB 已经成为过去,是一种为秘书发明的垂死语言,所有真正的人都用 C++ 或 Delphi 编写。 因为我还记得Pascal,所以我选择了Delphi。 也许这是我在成为一名程序员的路上遇到的一系列障碍中的下一个错误。 但我选择了阻力最小的道路,因为我想尽快看到工作成果。 我看到了他们! 我还买了一本关于 Delphi 的书,我把它与我已经知道的 Excel 和 Access 联系起来,结果我创建了一个初步近似的现在被称为“BI 系统”的东西。 可悲的是,现在我已经安全地忘记了所有的 pascal,因为我已经十年没有碰过它了。

当然,我曾两次尝试上大学成为一名程序员。 在我们的小镇里,这样做的机会并不多。 我第一次傻乎乎地去报读了“应用数学”专业,毕业的人就是这样一个专业——程序员,但要求他们具备远远超出学校课程的严格数学知识。 所以我考试没有及格。 我在接受中学教育时不得不休读大学。 第二次,我稍微降低了对自己的要求,去了工程专业——工程师的工作并没有太吸引我,但还是更接近于与计算机打交道。 只是为时已晚,人们已经尝到了专业技术的好处,纷纷涌向那里。 只有奖牌获得者才有资格获得预算席位。

这就是为什么我现在拥有人文学位。 它是红色的,但不是技术性的。 这就是成长的悲伤故事与找工作的悲伤故事开始交叉的地方。

不需要小提琴手

我为何在 35 岁时没有成为一名程序员

...но не обязательно выживу...

有一个非常普遍的神话:“他们不向程序员索要文凭”。 造成这个神话的原因有很多,我将尝试列出主要的原因。

首先,在九十年代初以及九十年代后期,计算机技术知识原则上很少见。 如果一个人知道计算机在哪里打开并且可以运行该程序,那么他就会按照业务要求进行操作。 劳动力市场的普遍混乱迫使雇主迅速找到任何有能力完成所需工作的人——他曾经在那里学过什么并不重要,重要的是他现在能做什么。 因此,相当一部分自学成才的人在面试中冷静地展示了自己的技能并找到了工作。

其次,在那些年里,商业发展非常迅速,但还没有HR这样的现代概念。 人事官员仍然是苏联人事官员,起草工作簿和雇佣合同,面试由专家或经理亲自进行。 由于他们中的大多数人对结果感兴趣,因此像教育这样的正式标准实际上是最后考虑的。

这导致了大众意识的严重失衡。 在这种情况下找到工作的人可以非常真诚地说程序员不需要文凭,并以自己为例。 当然,您认识这种类型。 如果一个人告诉你“只要展示你能做什么,他们就会雇用你”,这就是这样一个程序员,从那个时候起,他们雇用了他,他相信世界的不可侵犯性。 同样,老苏联人也会说这样的话:“但你在电脑上工作,还能读英语,有这样的技能我会哇!” 他们不再明白,这样的技能在苏联时代只是“哇”,但现在每个人都可以做到这一点。

然后,完全相同的事情发生在 XNUMX 年代初期,当时石油开始上涨,经济开始发展,成群结队的新晋商人涌入劳动力市场,寻找任何会开电脑的人。

但与此同时,石油资金的流动创造了生产力低下的人员——人力资源部门。 同样的老苏联人事官员也在那里,但他们完全出乎意料地被赋予了确定员工素质的任务。 他们当然无法做出这种级别的决定。 因此,他们根据来自西方的翻译书籍和教育等正式标准,制定了自己的评价标准,与现实相去甚远。 这样就发生了一个伟大的转变:从真正的技能到正式的标准。

这个神话仍然存在,只是略有修改。

经济仍在增长,人才从各地被抢走,从其他公司被吸引走,但人事官员已经将顽强的爪子放在了选拔过程上。 最重要的不是“展示你能做什么”——无论如何,人事官员不会理解他们向他展示的是什么——而是“工作经验”。 因此,那些曾经因按下按钮的能力而没有接受过程序员教育的人被吸引到另一家公司,仅仅因为他们以前担任过“软件工程师”。 再说一次,没有人要求文凭,因为没有时间 - 你有“经验”吗? 好了,赶紧坐下来干活吧!

最后,最后第三个原因是互联网和私人项目的快速发展。 人们创建了宠物项目,这些项目可以向任何人展示,从而证明他们的技能。 您发送一封信,附上您网站的链接 - 现在您已经证明了您的技能。

现在怎么样?

正如我们所知,石油价格已经暴跌,但神话仍然存在。 毕竟,有很多担任“软件工程师”职位的人实际上没有接受过专门教育就进入了这些职位。 然而,现在这些理由都​​没有完全发挥作用,现在很少有人能在就业方面重蹈覆辙。

  • 计算机技术知识已变得无处不在。 简历中不再标明使用计算机,就像那里没有标明读写能力一样(顺便说一句,这不会有什么坏处 - 即使在官方媒体中,我也开始经常遇到语法错误,在有关哈布雷的文章中,它们的出现频率令人羡慕)。
  • 人力资源部门和人力资源专家对自己的决定不承担任何责任,并且可以使用任何选择标准。 当然,人们会优先考虑正式的——他们会考虑年龄、教育程度、性别和在之前工作地点的时间。 技能和能力遵循剩余原则。
  • 长期以来,程序员一直不缺。 有短缺 良好 程序员,但这对于任何专业来说都是普遍存在的。 互联网上的每个小学生都是普通程序员;在自由职业网站上,人们实际上是在争取免费为自己的作品集做一些事情的权利。
  • 宠物项目也变得司空见惯。 互联网上充斥着个人网站和俄罗斯方块克隆,这个项目已经几乎成为强制性的,也就是说,在通过人员筛选后,你发现自己进入了专家筛选,他们说“给我看看你的 github”。

受过教育的人——或者在人力资源部门眼中拥有取代教育的经验的人——只看到第二部分。 他们通常会这样说:“程序员不需要学位才能工作,但 Github 上的项目会很有用。”

但由于人力资源部门并没有消失,所以它的表述相当真实:“程序员需要文凭(通过人力资源),还要在 Github 上做项目(通过技术面试)。” 而我,受过人文教育的我,充分感受到了这一点——因为我只是从受过技术教育的程序员的抱怨中认识了Github,但严格的人员筛选在第一阶段就把我淘汰了。

人们看不到空气,鱼看不到水,在 CODTECHNOSOFT LLC 接受过技术教育或工作经验的人看不到他们没有被要求提供文凭,因为这已经是暗示的了。 特别搞笑的是那些人的借口,比如“我工作了这么多年,我从来没有出示过我的文凭”。 你问,你把它写进你的简历里了吗? 嗯,是的,我当然这么做了。 那么,你是否建议我在简历上写上虚假的教育经历或者其他什么,因为他们无论如何都不会要求确认? 他们沉默不语,不回答任何问题。

顺便说一下,在所有预算名额都被奖牌获得者占据的专业中,只有一半的人是预算名额。 另一半是付费教育的学生——你知道,用父母的钱分期购买面包皮。 我的朋友去了那里并获得了文凭。 结果,我成为了一名成熟的“软件工程师”,从那时起,作为程序员的工作就没有遇到任何问题。 因为文凭上并没有说明你是免费学习还是免费学习。 但他们写道,“技术”是专业。

走出舒适区

我为何在 35 岁时没有成为一名程序员

Это я уверенно поднимаюсь по карьерной лестнице

当我到达莫斯科并开始找工作时,我并不知道这一切。 我仍然相信这样的神话:程序员展示他的工作结果就足够了。 实际上,我在闪存驱动器上随身携带了我的程序样本 - 展望未来,我会说没有人看过它们一次。 然而,邀请函却很少。

那时我还记得德尔福,并试图进入一些技术公司,至少是实习职位。 他一天发出十几封信,解释说我从小就对计算机感兴趣,想进一步学习。 有几次他们很诚实地回答我,我应该有技术专长——这正是人力资源经理捍卫大公司边界的原因,以清除各种人道主义弱势群体。 但在大多数情况下,他们只是收到了标准化的拒绝。 最终,我无法再继续我的搜索,最终找到了一份只需要使用 Excel 的常规办公室工作。

几年后,Access 和 SQL 被添加到 Excel 中,因为我记得年轻时并开始积极编写 VBA 脚本。 但这仍然不是“真正的编程”。 我再次尝试下载现代 Visual Studio 并深入研究 C#。 我将其作为初步近似研究,编写了一个小程序,然后再次尝试取得进展 - 没有忽视成熟的职位空缺或实习机会。

这次我的数百封信没有收到任何回复。 没有人。 因为,据我现在了解,我的年龄已接近三十岁 - 加上我简历上的人道主义专业,这成为任何人力资源部门的污点。 这极大地削弱了我的自信心和我对程序员关于劳动力市场的神话的信念。 我完全放弃了“真正的编程”,专注于日常的办公室工作。 我仍然时不时地回应不同的空缺,但回应我的仍然是沉默。

在这个阶段的某个时候,我开始明白,一个人没有注意到的东西,或者他认为每个人默认都拥有的东西,对他来说是多么有价值。 你向他们寻求建议或只是抱怨生活的人不会深入研究这些微妙之处。 他们读过心理学方面的热门书籍,并告诉你需要走出自己的舒适区。 尽管长期以来有一个众所周知的笑话,你首先需要进入你的舒适区。 随着年龄的增长,这种进入或退出的成本会增加——例如,现在我根本无法辞职去上班当实习生。 您只能小心地改变您的活动,同时保留目前的工作,直到您的收入相等。

有一些合理的顾问,他们给出的建议是我自己也会给出的。 这包括独立学习和远程工作或创建自己的项目。 但这里也有陷阱。

事实上,远程工作是那些有“工作经验”的人的特权。 对于需要帮助和培训的初学者来说这是完全不现实的。 反正没人想惹你,但这里你也需要远程操作。

自学是非常没有效果的。 例如,他们教给你的东西,在六个月内,你将需要两年的时间才能自己弄清楚。 比例是这样的。 你必须自己发现各种小事情、标准技术和已知的陷阱,不断地重新发明轮子。 当然,这在某种程度上可以让你增长见识,因为你自己发现并克服了这一切。 但这将花费您四倍的时间,而且您仍然不会在实际生产项目中获得任何实际经验。

同时,我深知,只有解决实际的生产问题,才会产生真正有用的经验。 从这个意义上说,像“写井字棋”这样的动作将帮助你在初始阶段简单地理解语言。 但即使你写了井字游戏、海战和贪吃蛇,在实际中你仍然无法做到你的业务需要的。

在这里,最不耐烦的人会再次想要提供建议 - 他们说,从一些自由职业网站获取真正的技术规范并在上面写下来,你将自己学习,甚至拥有一个投资组合。

好吧,我们最后考虑一下“pet-project”方法。 您需要编写一个对人们有用的程序,然后将该程序带到他们制作类似程序的地方。 理论上听起来不错,但实际上这是一个陷阱。 您最初不是在真正的项目上工作,而是将时间浪费在明显无意义的任务上,以便稍后您可以执行完全相同的任务,但有意义。

停止! - 读者会对我大喊大叫。 - 等待! 这是一次锻炼! 她无论何时何地都是这样! 如果这次培训能给我们带来成果的机会,我会同意。 但不是。 我们回到这样一个事实:我已经有过类似尝试、类似训练的经验。

世界上是否至少有一家公司说——我们公司生产信使,让我们用这样那样的语言给我们写一个信使,有这样那样的参数,然后我们就会雇用你? 不。 这总是有可能的,而对于一个年龄和教育程度不对的人来说,这种可能性是很低的。 生活向我很好地解释了这一切。 例如,在我人生的不同时期,我了解并使用过 VB 和 VBA、Pascal 和 Delphi、SQL、R、JS、C#,甚至(我自己也很惊讶!)Genesis32。 事实上,我找到并参加了课程,完成了臭名昭著的项目,可以在面试中展示它们并回答有关它们的问题。 还有什么?

首先,没有人只是感兴趣,也没有要求展示任何东西,我愚蠢地没有参加这些采访。 其次,在这一切中,我现在真的只记得VBA+SQL,因为我一直在使用它们——其余的没有用,都被遗忘了。 此外,情况看起来真的很艰难:他们不像是看着我的项目并说“听着,这里一切都很糟糕,你不知道如何编写代码,它在这里和这里都不起作用。” 不,他们只是无视我。 文科教育,你知道吗? “因为我是黑人。”

结果

我为何在 35 岁时没有成为一名程序员

Когда даже под гнётом обстоятельств ты сохраняешь внутренний покой

尽管文字很悲观,但我并没有放弃尝试。 只是现在我的可能性空间急剧缩小,我只看到一条现实的道路——这就是上面提到的“宠物项目”,但其目的不再是“找工作”,而是“试图找到工作”。创建一个企业。” 你需要找到一个未解决的问题,解决它并找到至少几十个人会使用你的解决方案。 另一个问题是,这听起来很简单,但事实上,很难找到一个尚未被数百万程序员和有抱负者解决的问题 - 而且,对于初学者来说足够简单。

现在我已经掌握了Python,按照许多前辈的例子,我已经解析了Habr并正在准备一篇关于结果的文章。 我希望将其作为我的第一篇 Habra 文章发表,但我仍然需要在那里添加一些文字。 然后,主题为“我如何通过一点点努力成为一名程序员”的出版物开始大量涌现,几乎每天,甚至一天两篇。

所以我忍不住告诉你为什么我付出了很多努力却始终没有成为一名程序员。

简单总结一下,我想说的是:

  1. 愿望和努力确实可以做很多事情,但物质基础仍然是决定性的。 对于那些拥有它的人来说,他们的愿望和努力可以帮助他们取得更多成就。 那些没有它的人,他们的愿望和努力不会帮助他们取得通常的结果。 从小对计算机有热情可以帮助你成为一名程序员,但帮助不大。 那些对计算机从来没有兴趣,但富有的父母送他们去学习流行的技术专业的人,成为程序员的机会要大得多。 但爱好本身是不够的,如果你小时候没有购买过可编程计算器(就像最近的一本出版物中提到的那样)
  2. 是时候最终放弃这样的神话了:作为一名程序员,知道如何编程就足够了。 充其量能够做到这一点就足够了 编程,比如“在板上写代码”——是的,这样的人会用手撕下来。 谈论人们被带离街道只是为了知道键盘位于计算机的哪一侧,这是一种非常夸张的说法;在这样的对话中,我们看到了幸存者的典型错误。 每个程序员的空缺周围都存在着人力资源部门的“玻璃墙”——​​受过技术教育的人根本看不到它,而其他人只能毫无意义地用头撞它。 或者——正如最近的另一篇出版物所指出的那样——“通过熟人”找到一份工作。
  3. 要在成年后“成为”一名程序员,您需要拥有与年轻时相同的成功环境。 当然,一个成年人可以做得更好(他看到了自己要走向的目标,有培训和发展的经验,知道市场的真正需求),但他被剥夺了很多(他必须养活自己,花更多的钱)日常生活中的时间,他的健康不再是那样)。 如果像最近的另一篇出版物一样,有家庭的物质支持和自己住房形式的生活稳定,那么改变活动确实容易得多

来源: habr.com

添加评论