如何将您的专业变成程序员?

你厌倦了工作吗?没有前景?也许才刚刚开始您的旅程?

在本文中,当他们开始向您发送在非常可口的条件下出国工作的邀请时,我们将考虑您需要走哪条路,需要花费多少时间,精力和金钱才能从头开始达到水平。







您好,我叫Alexander Zelenin。我是一位拥有15年以上经验的程序员。在这段时间里,我设法从Web开发人员到CTO,在不同国家和城市的不同级别的公司(从5人到2000+,初创企业,公司)中工作。我在整个时间里还采访了1000多人,讲授了教育课程,进行了指导等等。



*本文仅是我的看法。它并不假装是完整的,绝对正确的,没有错误的,不准确的。在任何决策中都应使用常识,并对这些决策承担个人责任。



-是否需要相关的高等教育?



不。它不会直接影响可用的工作,工资或机会。文凭对签证程序有一点帮助,但从未停止。在我的整个职业生涯中,只有当所有事情都已经签署并且有必要在该国居住时,才要求我提供文凭。雇主总是找到解决此问题的方法。



-但是,高等教育会更容易吗?



是的,因为在培训过程中以一种或另一种方式涉及了许多主题。即使一切都被遗忘,恢复知识的速度也会更快。然后,如果是-好,否-好,和他一起去吧。



-我性格内向。程序员是性格内向的最酷选择,对吧?



怎么说。直到某个时刻,可能是肯定的,但是几年后,成长将需要沟通技巧。您可以根据需要解决这些问题。



-学习困难?



是的,非常。当然,这都是个人,对于某人来说,这很容易(对我个人而言,这一切似乎都很容易,但是路途很长),但是,基本上,每个接受过培训的人都说这很困难。



主要的问题是您从头开始为自己(特别是当您是另一个领域的专家)进入一个新领域。不断感觉到自己愚蠢,了解不足,决策缓慢等等。这是一个严峻的挑战。比见到眼睛还严重得多。



-值得吗?



这取决于您对世界的看法,当前状况以及您特有的许多其他因素。



高级专家可以期待以下内容(在撰写本文时):



  • 俄罗斯联邦:薪水约200,000卢布白色,自愿医疗保险(适用于家庭),小甜饼,免费时间表,儿童教育/幼儿园付款,专业会议旅行,稳定性高,有趣的任务,一套完整的搬家套餐(一个月的公寓,门票,货物运输,寻找住宿的协助等)
  • 对于欧洲:薪水大约为5,000欧元,原则上更高。搬迁一揽子计划通常还包括一笔7,000欧元左右的一次性付款。通常,当地的养老金开始减少,以后有机会获得居留许可/公民身份
  • 美国/加拿大/瑞士/中东:年薪在10,000美元左右,所有杂项都较高


-“高级专家”是什么意思?



按照惯例,通常将专家分为3个级别。需求通常有很大的不同,但是总的来说如下:



  1. 初级-可以有效地解决问题,但是当面对不确定性时,需要经验丰富的同事的帮助(任务不明确,不清楚如何解决,不清楚要问谁等等)
  2. 中层是一个独立的部门,可以很好地解决问题,并从必要的来源收集所有信息
  3. Senior是一位专家,不仅了解软件部分,而且了解他所从事的业务,并且可以提供完全不同级别的解决方案


-好的,每个水平学习需要多长时间?



在心理上,第一阶段可能是最困难的。在Junior上,您需要大约1500个小时的净时间(这是半年,每天8个小时)。



之后,您将担任大三学生约1.5年。



在那之后,中间仍然是两岁。



如果您尚未更改主题领域,则欢迎加入老年人(共4-5年)。



-等待,等等...我看过课程,每周有3次,共2个小时,两个月后,他们答应我一个月10万的薪水!



好吧,如果他们答应了,那将是(否)。



我出于个人兴趣教授了其中几门课程。甚至到第二个月末,学生的工作量增加了2.5个小时(每个小时5个小时),增加了2.5倍,但仍获得了很好的技术“概况”。



经过这些课程,几乎没有竞争力。这不计入“经验”。那是 您可以在简历中至少写5年的经验,但这不会给您带来经验。



-好的,好的,付费课程有什么好处吗?



通常,如果您不坐下来等待海边的天气,而是积极地利用机会与导师进行交流,并且前提是除了这些课程(每周6个小时)之外,您还应该将自己的34个小时投入到顶部。



-您会推荐哪些课程?



自由。我是认真的。课程的主要价值是与导师沟通。这就是他们的利益终结的地方。许多这样的平台的问题在于:他们上有很多参与者,导师的注意力分散,导师没有资格。



通常情况下,平台的实施只需要几分钱,几乎立即排除了准备带领他们的优秀专家的出现(除了意识形态专家很少,您会发现无花果)。



-嗯,那该如何学习呢?



  1. .

    , , . ? , , ( ). .

    — . , . , . ( ) , .
  2. ,

    ,
  3. 制定计划并设定期限

    导师将帮助您制定计划。单凭自己是不真实的,因为您不知道自己不知道的东西


-导师,导师...什么,没有他绝对没有什么?



您可以没有它。但是,您必须阅读,做更多的事情,尝试浏览所有内容并不断仔细检查自己。



我曾有机会与拥有10年以上经验的人进行交流,就知识而言,他们甚至没有达到Juns。这是如何产生的是一个难题。捕捉停滞的时刻并不容易。

您可以监视市场,查看他们正在寻找什么技术,查看不同的新解决方案,等等。



然后找到一个导师。即使您已经是大四学生,向经验丰富的专业人士寻求建议也总是很酷的。



— , , «» , 8 . ? 4 ?



赶上。这是一个非常困难的问题。根据以前的经验,减少小时数会不成比例地增加培训时间(即4小时不是预期的年份,而是1.5-2)。另外,根据当前的工作,掌握复杂的材料可能根本就不行,仅此而已,也就是说,结合起来可能行不通。一切取决于一切,都是个别的。

一种方法是积累资金,并花六个月的时间进行这种过渡。当已经有家庭或其他抵押形式的要求时,这可能非常困难。而且还可以证明,在飞行中或在任何不可预见的情况下(例如冠状病毒)很难找到工作。



另一种方法是...好吧,充分解决它。你想要什么?:-D



-我的朋友在两个月内完成了课程,并在开始后立即每月获得$ 5000



几种选择:要么他在撒谎,要么他是一个天才(在这种情况下,这当然与课程无关),或者他很幸运(以狡猾的方式雇用了一位熟人,等等),或者这是一种高度专业化的东西,他发现了漏洞... 让他告诉你如何。当初创公司不知道在哪里从投资者那里花钱并且明显多付时,也会发生这种情况。在第一家有足够发展的公司中,情况将完全不同。



-在哪里找工作?



在首都或至少百万个城市中。如果您不在莫斯科,基辅,明斯克或任何地方,请准备好了。本地市场规模太小,无法提供足够的职位空缺(尤其是对于初学者),增长机会很小,依此类推。通常,如果您删除整篇文章并仅保留此建议,那将是最佳的职业决策之一(!,但是对于您的其他因素而言,这可能不是最佳的)。



当一些大公司在较小的城市设有开发办事处时,也有例外。如果您针对的是这样的公司,或者您所在的城市中有一家,那么建议您将所有选项预先进行比较。



-是否可以立即找到工作?



首先,对于您而言,这可能会变得更加困难。不是因为工作本身是不同的,而是因为对问题的回答将被延迟,所以一个人不可能用手指来指点什么和为什么。是的,现在有很多工具(电视,聊天,Skype,面板不同),但是就舒适度和通信速度而言,却有所不同。如果您瞄准某个距离,那么您需要准备好从规范中得出x2,以便至少跟上适当的步伐。



-我今年45岁。他们会在没有现场经验的情况下带走我Juniur吗?



是他们会。年龄甚至会为您带来好处,因为生活中的许多经验都可以很好地转移到技术上。由于每天的经验(从“中间”阶段开始比技术技能起更大的作用),您很有可能更快地走上高级领导的道路。随着年龄的增长并且没有塔楼,将房屋迁往某些国家可能会更加困难,但这也可以解决。



-学习什么语言?



取决于您要做什么。如果您不想玩彩票并走上安全之路,那么Java是您的选择。无论如何,它都可以让您一路走下去,而无需进行强大的技术变革并获得丰厚的回报。



如果您有一个朋友承诺在六个月内将您设置为PHP开发人员,那么这也是一个不错的选择。因为语言不重要。



-我以为你是在说英语。需要教他吗?



不是一开始。尽管许多文档,信息和文章都是英语的,但所有这些都可以通过翻译来吸收。决定搬家时将需要英语。成为初中生后的几个月可能是开始学习的好时机。是的,您肯定需要与以英语为母语的人交流-也准备为此进行投资。



关于翻译器,这是一个小例子:最近,我不得不处理一个图书馆,该图书馆的实际文档仅以中文(MyBatis-Plus)存在-Google翻译帮助我找出了没有什么冒险的东西。



-等等,您说的语言并不重要...什么?



这并非完全正确。当然,这很重要,但是在某个阶段(高级)之后,您将不会在乎您使用哪种语言编写。程序所基于的概念已从一种语言转移到另一种语言,而正是他们的研究需要更多的时间。



相对而言,可以想象有一个专业作家决定用他自己的语言以外的语言写一个故事-这个故事不会那么富有表现力和优美,但故事本身会很酷,因为他已经知道如何写一个很酷的故事了。语言只是一种交流工具。



-好的,你能给我个计划吗?



  1. 确定您真正需要的东西。这值得么?
  2. 确定您要做什么。理想情况下,列出您想工作的公司。理想情况下,选择六个月,两个月和五个月后的位置。
  3. , . , .
  4. , ( 2 3)
  5. , . . . . .
  6. . 1 , easy .
  7. . , . - - , .
  8. .


无论使用哪种语言,我都建议在计划中包括以下主题列表:版本控制(git,github),结构和算法(知道所有常见的概念,大O,知道“有类似的东西并且可以快速找到)”,IDE(为什么,如何设置),调试和概要分析(如何查找错误,断点等),测试(至少编写最简单的测试并理解要包含的内容),数据库(关系型,网络型,面向文档的),文档化(如何编写,为什么),计划和优先级排序(需要多长时间,做什么以及何时进行),根据您的语言学习样式Gudie,Linux(基本了解其中的内容,原因和位置,在此处运行代码的能力),包管理器(如何使用,为什么如何维护),语义版本控制(为什么这样做,如何遵循),框架(使用所需语言,至少对于一些人来说是这样),用于组装和自动化的工具,加密(基本存在的东西,而不是怎么做),授权和身份验证(为此目的是什么以及存在什么)。



深入研究每个主题的深度取决于条件,您决定学习的内容等等。对于某些主题,15分钟就足够了,对于某些主题,您可以在半年中分配一两个月。



-我看到一家对我来说很有趣的公司从头开始雇用员工。有什么收获?



前一两年的薪水很低。但是总的来说,这是一个很酷的选择,因为有了适当的动力,这是一份有保证的工作,现场经验和有动力的导师,他们会教您确切的公司需求。从理论上讲,这可以减少增长后的变化或延长增长期,但这在很大程度上取决于特定的公司和产品。如果您感兴趣的公司中有一家从头开始有类似的实习机会,那么值得仔细研究一下。



-锡,一切都很复杂。



是的,没有。最难的部分是一开始。此外,许多概念被记住并且不需要牢记。只要您知道要使用什么Google,就可以在10秒内完成很多操作。



All Articles