JavaRush /Java 博客 /Random-ZH /登山者程序员
Илья Альтерович
第 33 级
Одесса

登山者程序员

已在 Random-ZH 群组中发布
卷宗
  • 人物:伊利亚·阿尔特罗维奇
  • 职业:工业登山者
  • 开始训练年龄:35岁
  • 居住地:乌克兰敖德萨
  • 第一份程序员工作:1年零8个月后(2015年2月)——37岁。
  • 他目前做什么:还是一名程序员,换了一家公司 =)
  • 本事
登山者程序员 - 1
如果你已经35岁了,这不是不开始读书的理由!当然,当你在背后有多年在另一个行业的宝贵经验时,这并不那么容易,但也并非毫无希望。我们有一个很好的例子 - 来自敖德萨的伊利亚决定在这个年龄从工业登山者重新培训为工业程序员。他成功了。阅读 JavaRush 上最引人入胜、最彻底的成功故事之一!

背景

我想分享我的故事,因为我对创造这个资源的优秀人们以及它所诞生的社区负有道义上的责任。我想以某种方式感谢创作者,我想鼓励那些尚未实现他们所珍视的目标的“Javarashites” ,并为他们提供良好的动力!底线:我作为程序员已经工作两周了,这很大程度上要归功于Java Rush
我今年37岁,已婚,有两个孩子,一个6岁,一个3岁。在过去的 15 年里,我一直担任工业登山者(高海拔登山者)。正如你所理解的,这项工作与编程的关系不大,或者根本没有关系。
总的来说,工作还不错,空气新鲜,它迫使你保持“状态”,你有足够的空闲时间,你是你自己的老板。而且物有所值(当季)。
  • 具有明显的季节性。也就是说,一年中有3-4个月几乎没有工作。
  • 没有前景。在这个领域工作了 15 年,我意识到在接下来的5 到 10 年内,任何事情都不太可能发生改变(至少变得更好)。
  • 孩子们开始长大,钱显然不够了……
  • 就开始变得无聊了…… 15年是一段很长的时间,任何事情都会变得无聊。
因此,2013 年5 月,我权衡了所有的利弊,得出的结论是,是时候换工作了……并且换了一份没有上一份工作缺点的工作。那是:
  • 一年四季都有工作;
  • 良好的增长前景;
  • 明显更高的薪水(如果不是立即,那么将来);
  • 我有兴趣从事有趣的工作。
我对编程有着浓厚的兴趣。确实,在实践中,这只导致了这样一个事实:我在学校用 BASIC 写了一点,用汇编语言写的更少(在ZX-Spectrum上,又名Sinclair曾经是一台非常受崇拜的计算机)。学习期间“高层建筑”的缺点对我来说却是一个优点:我在春天,尤其是冬天有充足的空闲时间,我可以有效地花在学习编程上。编程是一个灵活的概念。我用谷歌搜索,权衡了前景……我的选择落在了Java陛下。

学习

我的第一本关于Java 的书是Yakov Fain写的《 Java 编程给孩子、父母和祖父母》。我不确定是否要向初学者推荐这本书;也许还有更好的书,但当时读起来很有趣,也很容易理解。我仔细研究了那里给出的实际例子,这为我提供了进一步进步所需的最低限度的实践技能。我读完这本书并决定寻找课程。面对面的课程很昂贵,而且我不确定它们是否值得。就在那一刻,我想起在写这本书时,我在某个地方(似乎是在 habrahabr 上)看到了有关 JavaRush 的文章。一切都开始发生……读完这本书后,我像种子一样破解了前10-12个级别,这太简单了。但仍然很有趣。然后它变得更加困难,甚至更加有趣。
我严格按顺序完成了各个级别,即 我读了讲座,虽然我的理解是新鲜的,但我解决了它的问题,并且直到前面的所有问题都解决了才继续下一讲,除了极少数例外。所以我到了 20 级,还有 3-5 个未解决的问题。
如果您在解决问题时遇到问题,当然,论坛上的交流有很大帮助,同时,通过帮助其他论坛用户,您自己也提高了自己的技能!大约六个月后,我决定是时候碰碰运气并尝试参加面试了。我在 google 上搜索了简历示例,朋友给我发了几个简历示例,我还写信给 Sepp(Java Rush的负责人,编者按),他给了我一些简历的提示和模板。我将其编译并发送给 Sepp 进行审阅;他对此表示赞赏。接下来,我在热门求职网站上发布了我的简历,整理了敖德萨最大的 IT 公司人力资源部门的地址列表,其中有 Java 开发人员的职位空缺(不仅仅是初级”)。他们大约有20人。我立即留出一半以防万一我到处搞砸,然后把另一半的简历发出来。

第一次采访

我不会说我受到了邀请的轰炸,但最终,在一个半月的时间里,我参加了六次面试。结果有些或多或少取得了成功,有些则不然。有两到三项测试任务,我都以不同程度的成功完成了,还有一项英语口语面试。我成功通过了,但没有参加技术面试:另一位申请人在我之前。我也差一点就进入了Luxsoft所谓的“标杆”:我通过了测试和面试,但在最后一刻,当我读到合同时,我改变了主意并拒绝了。简而言之,他们教你三个月,并支付你300 美元的津贴。如果他们喜欢你,他们会给你一份初级工作(500美元)。9个月后他们可以给你加薪,但是从合同上看,如果你不参加课程或者课程结束后一两年内想换工作,你就有义务向他们支付培训补偿金额为2,500 美元。我觉得这样的条件无法接受,就拒绝了。我还拒绝了另一个空缺:在我看来,我在那里没有前景。
但最主要的是我在面试中获得了非常宝贵的经验。每次面试之后,我都对下一次面试有更好的了解,大约会问我什么问题,以及期望得到什么答案……并不是所有面试都会问同样的问题,但几乎总是有人问很多问题。
每次采访结束后,我都会给自己列一个小问题清单,在其中“游泳”,然后找到明确的答案。总的来说,不管结果如何,去面试确实有用......

实习

大约在同一时间(2013 年秋冬), Java Rush在私人消息中写信给我,并提出参与“ Real Project ”的邀请。说实话,在他们列出其中使用的技术(SpringHibernateGWTMySQLMavenGit)后,我有点害怕,因为大多数情况下我是突然听到这些词的,甚至是为了第一次 。我想我没有什么可失去的,我有时间参与,就同意了。
起初确实很难,但在一两周后,阅读书籍和文章后,我深入研究了现有代码的工作,足以自己编写一些东西并进行第一次提交。
我很幸运能和参与这个项目的人在一起。我们有四个人:帖木儿(Timur)、热尼亚(Groomsh)、谢尔盖(SergeyKandalintsev) 和我。我们直接从 JavaRush 监督我们的项目。Timur 大部分工作在后端,Zhenya工作在前端Seryozha工作在数据库在前端工作了一点,在后端工作了一点。几个月后,我们成为第一个成功完成真正的“真实项目”的团队,现在所有 Javarashites 都在使用它 - 这就是“Ratings”项目(在新版本的 JavaRush 中不再使用该项目) 。说《The Real Project》给了我很多,其实是没什么意义的!除了有价值的知识明显增加之外,我还得到了一个更重要的认识:Java 远不是唯一必要的技能,尽管它是基础技能。Java是编程的基础知识,但除了基础知识你还需要了解拼写规则、语法、句法、正确造句、拥有丰富的词汇……并且在编程中你需要了解并能够使用很多框架,模式和开发工具,并且还知道从哪里寻找解决问题和回答您的问题。在真正的项目之后,我对更先进的技术产生了兴趣,加深了对那些我已经知道的技术的理解……我的兴趣超出了“纯” Java Core的界限。而且 - 我的简历中的“工作经验”栏出现了一个新的、可靠的项目,其中描述了该项目中使用的酷炫和时尚的技术。

进一步的考验

实习结束,我在高层开始了新的工作季节……空闲时间变得稀缺,转行的问题逐渐淡出人们的视线。然而,我几乎把所有的空闲时间都花在了编程上:我编写了各种“迷你项目”,有时在Java Rush中解决问题,监控职位空缺,并在秋末报名参加IT 办公室 DataArt 的免费课程。这些课程本身太笼统了:我在那里几乎没有学到任何有用的东西。但作为这些课程的一部分,学生被要求分成小组并编写一个“项目”。该项目包括编写一个在线测试系统,包括用户注册、用户部分(进行问卷调查)和管理部分(创建调查问卷和管理帐户)。我最终加入了四个团队之一,后来发现这个项目实际上是我自己编写的。在大约一个月的时间里(在高层工作时),我自己编写了一个在我看来还算过得去的 Web 应用程序,基于我们在Java Rush实习中使用的相同技术和模式(加上 jsp、Spring安全性和其他)。如果有人感兴趣,我可以发布一个包含该项目源的开放存储库的链接......

身高已被拿下!

12月,我受邀去一间办公室面试。他们告诉我,当他们做出决定时,他们会打电话给我……“好吧,一切都像往常一样,”我当时想。“如果不立即服用,那就没什么希望了。” 但一个月后,新年过后,我给这家公司的HR经理写信,询问我的命运。令我惊讶的是,她回答说职位空缺仍在招聘中,尚未做出决定......
又一个月过去了,现在,一月底,她打电话问我是否适合找工作,我“毫不留情”地回答说是的,我还在找工作。她回答说我已经找到她了,因为我适合他们!
当然,这种感觉是难以形容的,当你在电话里得知这一点时,你的翅膀就会长起来!要明白这一点,你需要亲自去体验。这就是我在不久的将来对你的祝愿!我的第一份工作是参与一个大型ERP项目的开发——一个应用、长期建设。事实证明,该应用程序有很多具体的细微差别,因此基辅开发公司需要一名距离客户不远的程序员 - 在我居住的敖德萨。该应用程序是用GWT + ExtGWT + Spring + Hibernate + MySQL编写的,以及一堆支持的次要库。恰好这正是我所研究并有一定经验的技术栈。在缺点中,我要提到的是,该项目很旧,它使用旧版本的库和过时的设计方法,而且它们已经过时了,几乎不需要更新。原来我一个人才能完成其他程序员3-4年的工作成果!当然,我希望像任何初级人员一样,为我指派一位更有经验的团队领导,他也会指导我并审查我的代码。但命运却另有安排;我被委以一项专为经验丰富的独立开发人员设计的工作。“既然这样,”我想,“那就赶紧要求加薪吧。” 他把原来的数字提高了200美元。这并没有引起他们的任何愤慨。我不会给出具体数字,我只是提到薪水大大超出了我的预期。此外,我只有一个月(而不是通常的三个月)试用期。他们像往常一样通过SPD给我注册(这是程序员的常见做法)

对您工作有用的技术:个人经验

了解数据库、SQL ( MySQL )、jdbcHibernateJpa、网络技术htmljspservletxmlTomcat是非常理想的,甚至可能是必需的。需要了解基本的JavaSE 模式所谓的GOF模式);至少了解SpringSpringMVC、Maven 项目构建器log4j日志记录和JUnit 单元测试也将是一个巨大的优势。您需要能够使用版本控制系统,例如Git 。有时他们会询问或给出有关 Web 服务( SOAP、REST )的测试任务。除此之外,对 Java 核心的了解即使不是无可挑剔,至少也是非常有信心的。

第一印象

经过前两周,我开始深入研究代码,现在我知道一切都会成功......
我想立即指出,程序员的工作仍然不是一种手段;它首先是一项早起晚归的工作。但这项工作比许多其他工作要好得多。它有利息、金钱和前景。当你能够通过你的思想、工作和毅力自己实现这一目标时,那就特别好。我能够改变我的生活,从很多方面来说,你是自己命运的主人。
我唯一担心的是懒惰会战胜我。取得一定的成绩后,我会变得懒惰并停止专业成长。但我还是真心希望这不会发生。我要再次感谢这个精彩资源的创造者!对于你们,贾瓦拉什人,我祝愿你们在自己选择的道路上坚持不懈和耐心,正如列宁祖父所说:“同志们,你们正在沿着村庄的道路前进!” =),但不要放纵自己的懒惰,最重要的是“永不放弃”。走的人,才能掌握路!

后记:两年后...

...决定写我的“成功故事”的续篇。原因有以下三个:
  • 政府问我 =);
  • 我仍然相信这个特殊的资源在我“进入IT”过程中发挥了关键作用;
  • 我仍然相信,动机也是这件事的关键因素之一,而最好的动机之一就是与你(爪哇人)处境相同的真实人士的成功故事。因为我自己知道,有时一个人的手就会放弃……对许多人来说,他们再也不会站起来。这确实是一条艰难的路,但这是值得的!
以下是我对以下问题的回答: 在你找到新工作后,你的生活总体上发生了怎样的变化?那一刻你的感受如何? 嗯,当然已经改变了……首先,永恒的“时间-金钱”平衡已经改变了。钱明显多了,时间却少了……终于有足够的“日常面包”了,但还不可能存钱以备“未雨绸缪”。不过,我确信,如果你努力一点,你每月可以节省 200-500 美元(尽管事实上我是 4 口之家中唯一的一个人,我的妻子有有机会安心地照顾孩子)。稳定、对未来的信心,或者至少已经出现了一些幻觉…… 请描述一下你的工作。你做什么、学什么、与团队互动的流程是什么? 我目前在我的第二家公司 Electric Cloud 工作。这是一家美国公司,产品并不简单——一个用于持续集成/持续交付的DevOps工具,类似于Jenkins,只是规模大得多,而且是纯粹的商业产品。此外,它已经相当古老,充满了遗留代码(过时的代码,编者注),需要维护,修复错误,有时还需要编写新功能。总之,科技动物园让妈妈不用担心!你必须或多或少地处理 Java8、GWT、JS、PHP、Perl、HTML、CSS、Spring、Hibernate、JUnit、Mockito、Maven、Perforce,这些只是主要的......前几个月我很容易就看到了光,然后就习惯了。工作条件是标准的。每周 5 天,每年 18 个工作日 - 假期(加上所有公共假期)。日程安排基本上是免费的;如果您愿意,您可以在家工作。不过,我更喜欢办公室,那里的氛围更像工作。我通常工作 12 至 19-20 小时。我们每天都有 Scrum 更新(编者注, Scrum是一种灵活的软件开发方法),每周我们都会在晚上与我们的美国团队领导开一两次会议。 您在职业生涯中已经达到了哪些高度?您还计划翻越哪些大山? 我时常会查看我感兴趣的公司的良好职位空缺。虽然很少,但还是会发生,我会去面试。我已经意识到,找到一个高薪的地方比找到一个有好项目的地方更容易。要做到这两点,你需要非常努力。而且,我越来越认识到,我进入这个职业并不是偶然的,而是通过我的工作和毅力赢得的,尽管一定程度的运气,特别是在一开始,肯定会发生,而且:我非常怀疑我会改变它。到二月份,我的商业开发经验就已经两年了。如果按照普遍接受的概念来评价我的水平,在我看来,它类似于Strong Junior或Regular Middle。不过这个评价很主观,只是我确信还不是Senior。  对于那些仍处于旅程开始(或中期)的人,您有什么临别赠言吗? 我衷心祝愿每一个相信自己的人都能实现自己的目标,也希望我的榜样能够为此做出贡献。我再说一遍:无论别人告诉你什么,这都不是一条容易的路,而且很少有人开始实现他们的目标。但还有更多的人可以做到这一点!只是大多数人在道路中间缺乏一些东西:动力、欲望、毅力、对自己和自己优势的信心。许多人想出复杂的借口,不再实现自己的目标……所以相信自己,不要半途而废(小突破当然不算=)),你就会成功!正如古希腊人所说:“烧锅的不是神”。“程序员不是天生的”,还记得这句话(JavaRush 座右铭,编者注)吗?最后,还有一条建议:通过面试!这是最直接的路。我曾经在一次 IT 活动上听到过这样一句话:“我从来没有遇到过一个参加了 20 次面试却没有被录取的人。” 您已经参加了多少次面试?我知道你可以回答我:
  • 我还没准备好,我还需要学习……
  • 呃,没人打电话给我……
所以:这些都是烂借口!21级后我找到了第一份工作(薪水1100美元)!确实,当时我已经在 GWT、Hibernate 和 Spring 方面有了一些经验,这些经验都是从我的 JavaRush 实习中收集到的。但面试时他们并没有问这个;几乎所有的问题都是关于Java Core和一点SQL。所以不要害怕,寻找职位空缺,去面试吧!在 LinkedIn、Gina、求职网站上注册 - 无论您身在何处!跟踪最新的职位空缺并做出回应!“敲门,他们就会为你开门”,你的简历和信件充斥着你所在城市的所有 IT 办公室,这样你就不必等待很长时间就能收到面试邀请。很多选择!所以最短的行动方案是:
  1. 我完成了 JavaRush 20-30 级,还学了一点 SQL 和 JDBC。如果您还具备 Spring 和 Hibernate 的基础知识,那么您就完全有麻烦了。
  2. 我用例子打出了一份简历,在专门的网站上注册,发布了它,然后用我的简历用垃圾邮件轰炸了所有的 IT 办公室。相信我,你不会没有反馈,很多人只会回信说他们会记住你,有些人肯定会邀请你参加面试。
每一次面试,即使是彻底失败,都会让您离目标更近!因为在接下来的每一场比赛中,您都会感到准备得更加充分、更加自信。几乎所有地方 80% 的人都会问同样的问题。
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION