程序员的方式(C ++)

嘿。我和你在一起。我喜欢长距离拳击和奔跑,我只考虑运动,但学会了帆船。他从事航空业,并在29岁时成为C ++程序员。我将告诉您它是如何发生的。

到2017年10月,我对编程的了解与现在对量子物理学的了解一样多,一无所获。绝对。 “ Hello world”-甚至没有听说过这样的短语。从开始培训到就职的时间为一年半。

您为什么决定进行培训?-因为我自己知道在CIS找到一份好工作有多么困难。我还没有见过职业发展的地方,通常是在工程和相关领域的劳动力薪水,到处都是工人,每个人都有一个抱负,渴望提高自己的资格,以某种方式成长。

特别是我写这篇文章时,想到的是关于西伯利亚和远东地区的同胞,因为在那儿工作两次更加困难,关于不能过一辈子的残疾人,这不仅是因为他们的身体限制,而且还因为他们没有机会在正常的位置上工作,并有信心明天不会失去,需要您,得到重视。顺便说一句,我的同事有视力障碍,工作非常顺利。因此,对于某些人来说,我确信我的复制粘贴研究会做到。我将立即描述它,然后其余部分。

开始时需要做的是:Internet访问(您可能没有永久访问权限,只需加载页面即可),可以使用10年以上的旧计算机,对于俄罗斯30%的职位空缺,无需接受高等教育。如果您能取得丰硕的成果,那么大约需要一年的时间才能学习。不要相信老师“在1-4个月内成为一名程序员”,这是不可能的。程序员的工作还远不止于PL(编程语言)的语法知识。

除了YP,您还需要英语。如果您尚未决定从哪里开始,那么请以英语开始。

我通过阅读和翻译文本提高了知识,我使用了android应用程序-Smart Book。然后我在手机上下载了游戏,其中包含大量文本,切换为英语,从而增加了词汇量。一个游戏 -流亡王国

2017年10月10日,第一次偶然接触到“ C ++课程”,在第一周花了40个小时。

研究。一步步


他在工作日学习2到10个小时,在周末和假期很少花时间,甚至不记得它了。

从这个站点开始-有很多难题。
同时,可以在这里研究主题

半年后,

我解决了所有问题,除了最后一个级别(只能出现3-4个级别)- 这里。通常,此站点具有最佳的任务列表,并且对主题有很好的解释。

当这个话题根本没有涉及到您时,我建议您观看该老师的课程。优秀的解释,真正了解任何人。 *不要参与视频课程-没有实践就没有用。

在解决问题的同时,经过半年的培训,我决定通过编写控制台海战来解决阵列的问题。这很困难,起初整个程序在一个.cpp文件中大约有1300行。随着时间的流逝,我进行了培训,我改进了代码,结果,在四个.h .cpp文件中的代码以500行的大小出现在简历中,

差不多一年过去了,我开始研究Qt库。我写了.fb2文件的阅读器,并内置了一个小型的英语-俄语翻译器,能够保存我的单词供重复,删除它们,显示一列单词,然后方便地显示另一列。使用按钮在窗口之间切换,但不使用信号插槽通信。编写该程序使我可以学习SQL和一些html标记。这也打击了简历。

那时,2019年已经到来,我开始在新年假期发送简历(尚未编写读者翻译)。

在撰写本文时,我还对STL容器和智能指针的实现感到不满意(在第一次失败的面试之后,我意识到没有11个标准和对STL的深刻理解,在面试中就没有任何事可做)。

我实现了:矢量,一个链接列表,两个链接列表,unique_ptr,shared_ptr,auto_ptr。当我翻遍所有这些内容后,我开始对采访感到更加自信,这很有帮助。

所有这些都淹没在github上(使用git很容易,但是学习可能要花费很多时间),因此,简历中包括臭名昭著的海战,“项目”阅读器-翻译器,STL + smart_pointers的实现(仅在STL和SmartPointers上,他们问我问题,指出错误,他们要求我在面试时改正它们,这很有趣,没有人关注我的其他“涂鸦”)。

+我试用了一下,很肤浅,研究的基本模式(在接受采访时,图案的问题总是星号下),我可以口头说说MVC,MVP(但无法解释的差异)和3-4主生成模式-这里是一个很好的网站上模式。也是一个精美的设计。

另外,我听了并概述了高级编程讲座
我了解了15种不同的排序方式(事实上,我内心深处知道5-剩下的只有在马刺的帮助下)。

两个论坛对我的学习有很大帮助,现在我使用它们- 网络论坛evileg

在整个培训期间,我找了一位私人辅导员C ++(每节课约1500r)来澄清一些主题,其中只有6次是在Qt中进行的(当时有5堂课是在Qt上讲的,那是紧紧地给我的,然后是在就业后的一段时间)。新年过后,我开始参加英语课程。我每个月花大约3000卢布上个别的英语课。

我建议:

  • - . , . , , Python — .

  • , 250 ( 10 1 ) — , , 30. , , .

  • , , .

  • - .

  • , , , , . , , . . , - , . — , , . , . , . , - , , - 30.

  • , ++ . , , .

2019年5月16日,经过6次面试(4次失败),我找到了工作,在圣彼得堡有工作机会,我选择了居住城市。

链接

purecodecpp.com-理论,实践
ravesli.com-理论
cppstudio.com/cat/285-主要任务
www.youtube.com/playlist?list=PLrCZzMib1e9qjGLjg83bCksf3N7FIy7jg-深入研究
cpp-reference.ru/patterns的优势-
重构模式.guru / ru / design-patterns /目录 -模式(带有可视化)
www.youtube.com/channel/UCtLKO1Cb2GVNrbU7Fi0pM0w-有关主题详细说明的视频。
www.cyberforum.ru/cpp-beginners
evileg.com-可为您提供帮助的论坛。

关于Qt,如果您像我一样决定学习它,并且真的想在工作开始时有一个很好的,虽然肤浅的代表,我建议您了解模型/视图架构-模型/视图(顺便说一下,学习的开始还不错)模式MVC模型/视图/控制器,MVP模型/视图/演示者)。这种架构就像简化的MVP模式。

信息在这里虽然不算多,但是花了几个月的时间我才或多或少地自信地使用了Qt的所有好处。

在就业之前,我对此一无所知,但我建议您研究一下。

摘要


我的简历以表格形式出现在老板面前。除了指向GitHub和电话号码的链接外,我没有进行任何更改。

全国各地发了一份简历,以增加就业机会。所有采访都是远程进行的。但他的结果是在居住城市接受了采访没有定居。雇主只对履历表上的内容感到满意。

我在求职期间多次复制了我的简历。

重要建议

  • , , , , .. - , , , . , - , .

  • / .

  • . . , , , , . , . .


  • , -, .

  • , . . — , . , — 80. , , 5 , . , , .. . , . . ? - 3 , IT. . 2 , , 2 , 3 , 4 , , 2 14 , - , . , , — — , . , , .

  • 说明您的成就。如果您是一个很酷的艺术家,为什么不指出呢?您已经取得了一些成就,做得很好。

  • 不要指出您的缺点。

  • 优质摄影作品集。当然,不是我的情况:-),但是,我几乎要花5,000美元为简历中的普通照片拍照。

我每周寄出约20张简历。有时,在面试不佳之后,我休息了一段时间(一个大约一个半月)来加强我的知识,然后再次发送。
我在3月份将简历发送给了现在正在为之工作的雇主,但是没有得到答复。他们在五月给我打电话。

工作面试


我进入了IT的这个阶段- 知识堆栈(也许是一堆?),关于编程:OOP中的所有内容都是基本知识,包括11,标准STL,表面上的Qt(甚至无法使用信号/插槽连接),基本的SQL查询和git,我在上面写过的模式。

更详细地讲(我重写了马刺中面试的内容,每点一到两张):auto,decltype ; 前进 ; 明确的 ;无不易变的{deque,stack,queque,unordered_map}-由于某种原因,我从这里学习了这些类的所有方法;重载功能/运算符重载;模板类/函数;关于OOP中的“虚拟性”(函数,类,纯虚拟函数等)的所有内容;有关设计人员的所有信息(复制构造函数,委派构造函数,移动等);禁止在课堂上复制; move()语义,引用(lvalue,rvalue,xvalue,glvalue,prvalue); std ::前进;析构函数/构造函数中的异常;在适当的地方尝试\ catch;映射哈希表和映射;静态的违约覆盖易变的reinterpret_cast; constexpr;易挥发的默认的临时对象传输;基本的单元测试。

从深度编程的课程中,上面已提供了相关链接-预处理器,编译器,链接器,低级内存,虚拟内存,堆栈/堆上的内存分配,malloc,新的全局内存,内联,现代编译器的一般工作功能-编译器通常以完全不同的形式(而不是您编写的形式)呈现代码并进行解析,而不是通过指针/链接/链接const传递对象的功能,基于此,如何传递对象的选择,lambda函数,std ::函数,关于种姓,朋友,函子,最终,菱形继承,多重继承的主要内容。

这正是马刺和笔记本中的东西。

我不了解多线程编程(我在几次采访中问了我的技能,我立即回答“我知道一点理论,我没有使用过”)。我了解容器的STL没问题,这是可以理解的,也许是我写了容器,但是无论如何我都无法使用智能指针,我只知道关于它们的理论以及它们在内部的排列方式。

面试阶段


自从我在俄罗斯各地发送简历以来,面试分别是在遥远的地方进行的。这是怎么发生的:他们打电话给您,请您花费5-15分钟,与您讨论共同的主题,如果一切都很好,则您同意进行技术面试-这是2个阶段,但也许更多。到指定的日期,整个显示器已按照排序算法用刺骨粘贴在贴纸上,并且将刺骨在桌子/地板/墙壁/椅子周围360度粘接。在马刺上,我腿上的所有东西都是我的演讲书,在每页上我都贴了笔记-您可以窥视。顺便说一句,我没有时间使用马刺,您可以编写它们,但不要使用它们。与在这种混乱中导航相比,记住起来要快得多。

他们从未问过我的英语水平,但我什至没有碰到一家需要英语会话的公司。

所有采访都是在Skype上进行的,没有视频(对我来说可能是相同的,在我看来,在大多数情况下,采访都是通过视频进行的)。前20分钟将告诉您有关公司以及您自己的信息。然后,团队负责人将与您联系并开始折磨您,用最简单的“什么是多态性?编写一个将两个数字相加的函数”和类似的基数,然后突然要求您在原始函数中添加一些逻辑,然后一切都会变得更加复杂。接下来的40-50分钟。所有这些都将与理论上的问题混合在一起。此外,他们可能会向您发送测试任务,或者可能在面试之前发送给您,或者可能不会发送。面试一周后,或通过测试后,将对结果进行反馈。

关于测试任务:我几次收到一些默默无闻的公司的电子邮件,后来我意识到,这些只是某些任务,其解决方案将在重构后注入我的项目中。简而言之,您已摆脱了任务,希望您可以免费工作(例如“解析站点”,从那里提取此类数据并以某种方式进行组合)。但是确实有真正的测试对象,我在DrWeb和其他公司决定……解决了,但没有决定。

我将谈论一些采访。

第二次面试


我的第二次采访是在下诺夫哥罗德。我真的很喜欢他们描述自己的方式,他们的站点,他们的活动范围以及与我交谈的人。不幸的是,我没有学到知识,但是总体上还是令人满意的。面试后,我联系了经理并解释说,我喜欢与他们,他们的公司的联系,并且我希望将来有第二次与他们合作的机会。我得到了与我进行这些采访的人(不是Tim Lead)的联系,然后我通过Skype与他联系。起初,我请他帮助我学习金钱,以便他为我准备接受他们的采访,但他不同意。我们同意他将提供主要研究主题,并会不时提示我。有时,我联系了他,他给了我简短的演讲。他的昵称是Elu-Puki。如果您阅读此我非常感谢您,您为我的就业准备付出了大约20%!我坚定地握手,我不会忘记您的帮助。经过一个月的培训,下一次面试安排在他的身边,据我了解,这个空缺不是程序员,而是测试员。他们问我一些我无法理解的事情,我什么也没回答,我很沮丧,感谢Elou-Puki并开始为下一次面试做准备。总的来说,不清楚我是如何接受积极的开发人员培训的,因为我知道工作是测试人员。一个奇怪的时刻,但事实是这样。感谢Elu-Puki,我很沮丧,并开始为下一次面试做准备。总的来说,不清楚我是如何接受积极的开发人员培训的,因为我知道工作是测试人员。一个奇怪的时刻,但事实是这样。感谢Elu-Puki,我很沮丧,并开始为下一次面试做准备。总的来说,不清楚我是如何接受积极的开发人员培训的,因为我知道工作是测试人员。一个奇怪的时刻,但事实是这样。

第三次面试


第三次采访(在莫斯科或下诺夫哥罗德)令人恶心。他们打开了相机,我在圆桌旁看着他们三个。立刻变得很清楚,他们直到现在才对我的履历表熟识,然后才不见他。在询问了我的年龄之后,技术方面的所有问题并没有超过2 + 2,因为他们发现我很快就脸上露出了笑容,总之,如果我在这样的办公室里工作,我会非常生气和诚实。此刻,我肯定会说一句“有什么好笑的?”,或者说很难的话。我艰难地忍受了最后,并在标准的“我们正在……(可能是打电话)”期间打断了对话。我记得那天晚上我用手在房间里打了一扇门。他们的行为令人反感。

第五次面试


第五次采访在圣彼得堡举行。我们聊了很长时间,大概一个半小时。我非常喜欢这些问题,这对面试官了解我的知识非常重要,我询问了某些时刻的底层工作,并询问了我在github上的一些容器和指针的实现,我更正了错误,我自己解释了一些要点,我写下了自己在草稿中,以免忘记。两周后,他们提出了要约,但据我了解,尽管面试进行得很顺利,而且我“用星号”回答了几个问题,但他们仍然不确定我是谁。

第六次面试


安德烈(我的经理)打电话给我,并邀请我接受采访。我在晚饭后放假,有点担心(毕竟,我从来没有面对面编写过代码),但是总体而言,我很确定,尤其是在上次面试后知道自己已经有一个职位。我手里有我所有的马刺和一本书(为什么我不知道我为什么拖着它),但最后,他们只是告诉我有关该项目的信息,总体上的工作以及“什么时候可以工作?”在同一天,我写了辞退书。我选择在居住城市工作,因为一开始,小锡分别亏钱,我需要租房,再加上我的妻子很长一段时间都不想完全分开。

其余的采访都没有成功,没有什么特别的要说的,我没有很好地回答问题,并且由于羞耻而变成了番茄。

下诺夫哥罗德情报局也有邀请,该协定于19:00通过电话进行了小型对话。他们大约在我开车时18:20打电话给我,当我单击“接听”电话挂断时,我无法回叫,也没有在指定时间打来的电话……好吧,命中注定。我给他们写了一封关于这种情况的电子邮件,并要求再次联系,但他们没有回答我。

这个职业有什么好处?


资历的无限增长,将无法达到上限。资格增长转化为财务增长。有了英语知识,所有的门都打开了。舒适的工作氛围。它们重视您的工作空间,不会产生不必要的干扰,使工作分心-以前,我总是头疼工作,音乐尤其令人讨厌,收音机无处不在,而且我喜欢安静地工作,现在没有问题了。远程工作的能力,这是该地区第三天的隔离,而且我是第一次在远程站点上工作,这还不错,有时您可以练习,但仍然不是我的,它在办公室效率更高,因此您必须在家中进行处理,尽管花相同的时间去办公室。这项工作非常适合内向的人。


对我来说,只有两点-经验是不够的,学到的东西都很难,而且不断的感觉是你的愚蠢不会离开你,所以有时你必须处理它(这不会打扰我)以赶上任务。从这里开始,第二个减号-自从开始学习以来已经两年了,我还没有实际练习过-我总是没有足够的时间,加上久坐的工作,从身体上看,我的体力已经大大降低了。

关于动机


我没有绝对地激励自己。在此之前,我不断地用这些动机,目标折磨自己,您不应该放弃,“朝着梦想的方向撒谎”和其他废话!

在这样的浪潮中,我没有实现自己的梦想和目标,只是精疲力尽。相信我,其中有很多。这次不一样了。我没有想到任何目标,就好像它不存在一样,对我来说根本没有动力,有一个确定,冷静,必要的目标。就是这样。每天您至少需要花费3个小时来学习。在这波浪潮中,情感上很容易。我不认为这就像您必须扎紧皮带并拖拉负载或突破...否。我什么也没有,里面只有什么,只是学会了如何去商店,这不是目标,您不需要动力,您只需逛精品店就可以了。所以我就走了。

我从拳击中学到的主要知识,它帮助我学习,并以这种方式建立自己,最努力的人获胜。任何在圆环中提出一些任务,解决问题的人,每一秒都忙于某些事情,而不仅仅是在那摆姿势,他会赢。这被投射到我们生活中的所有事物上。

总而言之,我想将这段视频留在这里“我们工作的同时,我们生活”。

直到。

All Articles