JavaRush /Java 博客 /Random-ZH /瓦尔哈拉神殿的奇妙之旅,或者历史学家档案管理员如何成为 Java 开发人员
Denis Sidorenko
第 25 级
Новосибирск

瓦尔哈拉神殿的奇妙之旅,或者历史学家档案管理员如何成为 Java 开发人员

已在 Random-ZH 群组中发布
介绍词 大家好!我叫丹尼斯,在写这篇文章时,几周前我刚刚满 30 岁。整整 6 个月以来,我一直在俄罗斯最大的金融科技公司之一担任 Java 开发人员。我用Java 8编写代码,同时学习React,以免失去长船的速度并航行得更远。老实说,我仍然不相信正在发生的事情。好吧,现在——讲故事本身。 历史是写在我的膝盖上的。如果发现任何错别字或违反发布规则的情况,我会进行更正。 成功史 有一天,我发现自己流落街头(字面意义上的):这就是许多 90 年代失去父亲的孩子的生活。这段时间我唯一的闲暇就是一台日本CD机和一张流行组专辑的单碟。为了让自己的生活更加丰富多彩,冬天的时候我就去市图书馆取暖。我开始在图书馆阅读奇幻小说,但有一天,当我到达技术文献室时,我偶然发现了 Brian Kernighan 和 Dennis Ritchie 所著的《C 编程语言》一书。我很欣赏这种语言的语法。对我来说,这似乎是一个标准。但那时我能知道什么标准呢?我无名小卒,也没有办法给我打电话。然后我对学习这门语言非常感兴趣,并偶然发现了 Deitl 兄弟的一本书《C/C++ 语言》。让我马上预约,你可能已经明白:没有电脑怎么学语言呢?是的,我连住的地方都没有。但我只是在纸上研究了一下,或者想象一下,如果我至少有通常的“桶”,它会如何运作。我试图记住数据类型、结构等。当我们头顶上的屋顶和第一辆基于英特尔赛扬的汽车出现时,生活发生了很大的变化。当然,没见过任何生活乐趣的孩子拿到电脑后,首先就冲上去玩。当时,《魔兽世界》游戏已经发布,仍处于测试版。当时我住在库普奇诺(圣彼得堡区)。互联网“超级快”,本地网络更受欢迎(我们在那里玩 CS 1.6、战地等)。《魔兽世界》发布后,附近的孩子们真的很想一起玩,当然,不需要支付暴雪官方订阅费。在这里,人们对 IT 的投入程度更高。我找到了一个中国人用Delphi写的模拟器,作为WoW的服务器,效果很好。然而,所有评论和文档都是中文的。经过一些调整后,它起作用了。在互联网上,我发现有爱好者正在解析WoW网络数据包并为游戏编写自己的服务器。用C++编写的著名的Mangos项目出现了。我们制作了现成的服务器构建、一键安装程序等。互联网上没有手册——只有手册和指南。为其他人撰写指南。上面简要描述的整个童年时期发生在所谓的“学年”。我没有上学,不知何故完成了 11 年级的所有 3 个年级,除了历史 4 个年级。当问题只是为了生存时,我没有时间走路。奇迹般地,我没有失败并通过了2008年的国家统一考试,进入了历史系,主修历史档案学家。我还能去哪里?数理化也是零知识。我们可以谈论哪些知识?我应该成为一名工程师吗?您甚至不必尝试入门数学。在历史学院前三年全日制学习时,我的宿舍里有专门关于代码的书籍。其中包括 Andrew Troelsen 的 .NET FRAMEWORK 3.0,以及有关 SQL、JS 等的书籍。来到古代东方的课程时,我想到了代码。然而,忙碌的学生生活和活跃的考古发掘让我很忙,几乎没有时间做我最喜欢的消遣。令人惊讶的是,那时距离我第一次接触C语言已经过去了6年多,但我仍然纯粹出于好奇而感兴趣。著名的“律师和经济学家”时代。虽然没有“转向 IT”的宣传,但您仍然感兴趣。在第三年结束时获得牛津大学奖学金后,我被迫离开俄罗斯前往意大利(家族史)。当然,我也不得不退学。在意大利呆了三年后,我学会了美妙的意大利语,但我完全忘记了在意大利之前学到的一切。当我回国并在家乡圣彼得堡的一家意大利餐厅找到一份调酒师的工作时,我开始学习 PHP。当时有Specialist、著名老师Igor Borisov(Galygin配音)关于PHP、JS等的热门课程。在研究这些技术的同时,我积极寻求编写自己的论坛,但这有什么意义呢?毕竟,有出色的引擎可以做到这一点。但话又说回来,这很有趣。回国8个月后,我还记得离开的大学和在里面度过的时光。我去那里康复,但作为一名历史学家兼考古学家。经过三个月的学习后,我做出了一个极其奇怪的决定 - 从圣彼得堡搬到兹拉托乌斯特市(车里雅宾斯克州)。由于财务缓冲很小,而且没有工作,我试图理解正在发生的事情。什么?为了什么?为什么?搬到内陆地区是出于家庭原因;我想找到我的父亲,他在 1992 年那个“美好”的年份把我们留在了街上。在寻找兼职工作的同时,我继续修补 PHP。意识到当时这家公司的无用性,并怀着从大学毕业的强烈愿望,我搬到了车里雅宾斯克,转学到了当地的一所大学 - SUURSU(是的,WinRAR 的创建者 Evgeny Roshal 就读于同一所大学)。但令人惊讶的是,“历史”方向没有,或者更确切地说,没有信件格式。一个选择出现了:神学和政治学?当然,我选择了第二种。JavaRush 第一次出现在地平线上。朋友们建议你先玩完前 10 关(是的,当时还是免费的),如果你喜欢,就继续吧。老实说,我只完成了前 7 个关卡,意识到即使达到了 10 个关卡,我也没有更多的钱了。当我第一次接触Java时,我每天的心情都是复杂的。这似乎让我心碎并导致拒绝。这些袋子,把所有东西都装进袋子里。我将类命名为“Dog”,文件名是相同的。在经历了 C++ 的“混乱”和强大之后,Java 正统观念显得极为不寻常。所有这些东西的速度还有很多不足之处。总的来说,我真的像一种安静的恐惧一样匆忙地忘记了它,即便如此,我还是再次把目光投向了 C#。早在 2007 年,我记得当我读一本关于 .NET FRAMEWORK 3.0 的书时,我心里想:“这当然可以用来编写有趣的游戏。” 好像在期待Unity和其他东西的积极发展。当然,这离不开C++的帮助。但让我们回到 Java 的故事。在第一次尝试 JavaRush 并停留在 7 级之后,我开始沉浸在政治学的人文学科中。我写了科学文章,只有在梦中我才尝试编译代码。钱勉强够维持生计。当然,困难时期。但在上帝的帮助下,我完成了学业并捍卫了我的文凭。辩护结束后,我立即收到了攻读硕士学位的机会,但不是政治学,而是社会学。预算形式的教育吸引了我,我同意了。 在这里我会立即预约(我省略了我生命中的两年):当我开始学习 PHP 后,遇到一个年轻的设计师,我们携手在一个自由职业网站下订单。他负责设计,我负责布局。这只是前端的一个小经验。 南乌拉尔国立大学的社会学硕士学位似乎已经成为一种更具应用性和实用性的追求。课程内容包括高等数学、数学。分析、统计等(几乎现在数据科学路线图中的所有内容)。就连 Python 也已经是我硕士学位的最后阶段了。而就在此时此刻,硕士第二年开始,我明白自己其实并不想从事这个工作,对“社会学”的需求微不足道。我再次关注开发,并再次写信给曾经为 JavaRush 提供建议的朋友。从第一次尝试开始,花了3-4年的时间。令我惊讶的是,这些人已经成为 Java 开发人员,担任中间职位。他们没有写成功的故事,但在个人交流中,我很惊讶地发现,在 18-19 级之后,他们找到了实习生或初级人员的工作。我又开始思考,到处闲逛,到处奔波……整天看着Tiobe、Pypl等的收视率。youtube 上的视频 - “在 XXXX 中首先选择哪种编程语言?” 直到现在,当了6个月的开发人员后,我才意识到这个问题的荒谬。我所在地区(当时是车里雅宾斯克)的 hh.ru 上的职位空缺数量还有很多不足之处。一位已经找到开发工作的“成功”朋友,用平白的文字说道:“别再想了,付费订阅JR,升到20级,然后我们会帮你做Spring基地,然后到时候就看你的了。” 我记得这个美好的一天,2019 年 9 月 11 日 - 在促销活动中以 5800 卢布的价格购买年度订阅......当时我什至无法想到这次购买会带来 100500 倍的回报。这是一个5个月的旅程。我还记得JR(Java语法任务)的第8级:结果是一个转折点。当时和我一起学习的很多人都无法忍受任务的复杂性,给JR留下了这样的话:“哦,管他呢,我去开始投资,每月将获得20万卢布的被动收入”。迄今为止,我认识的所有在第 8 级放弃的人都没有成为投资者、百万富翁,甚至中产阶级。他们有时会说:“借我一些钱。” 我对 JavaRush 第 8 级(Java 语法)的感受:瓦尔哈拉神殿的奇妙之旅,或者历史学家档案管理员如何成为一名开发人员。 - 1 一位朋友,我们一起并肩历练到了 20 级,比我大 9 岁,成功在 Luxoft 找到了一份工作。我想他还有时间写他的故事。 如果我们根本不讨论克雷洛夫的寓言,那么其寓意和结果如下: 1) 第一份社会保障是车里雅宾斯克的 Zaycev.net 公司。我成功地失败了(1.5小时有极其奇怪的问题,剩下的20-25分钟我尝试做纸上测试)。谢谢大家第一次面试的经历。测试包括一个有关 OOP 原理的标准问题,然后是从一种数字系统到另一种数字系统的转换。总共有6个任务。最后一件事是编写一个排序算法 - 我只是没有抽出时间,因为...... 卡在第 5 号(任务:“这段代码有什么作用?”),时间耗尽了。2) 2020 年 3 月社会保障服务失败后, zaycev.net 开始了 大萧条——Covid-2019 大流行。这是一个极具争议性的时期。论文答辩将如何进行?接下来做什么?去哪里工作?最重要的是,我的别墅被烧毁了,我花了几十万买了它,希望建造自己的房子。至少有一些,只是不要在30岁的时候徘徊。3)在大流行期间,我决定从车里雅宾斯克搬到新西伯利亚(我会失去什么?反正别墅被烧毁了)。这次旅行本身很“有趣”,库尔干地区禁止出入境。担心警察会拦住​​你,并用“未经登记不能去新西伯利亚”的字样将你带回家。所谓“自我清算”政权时期。4)搬到新西伯利亚后,我找不到工作。2GIS公司的优秀人员,在第四阶段面试后,告诉我,对不起,我们浪费了你的一个月时间,但已经找到了其他人(这不是为了找一份开发工作,而是一个电话接线员的常规空缺);5) 接下来,我在很棒的 Lenta 商店找到了一份销售员的工作,因为现在是 2020 年夏天,这个选择看起来就像一个童话故事。前餐馆老板被迫穿着黄色 Yandex. 食品袋并用脚工作。他们尽最大努力活了下来。这些事件都很新鲜,你自己记住吧。6) 一位和我们一起解决JR问题的朋友(上面提到的),已经找到工作了(在JR上学习了5个月),邀请我参加一个Java开源项目。我喜欢接受和分享经验的想法,即使你没有为此获得报酬。这个项目中有一个人自己组织了这场“运动”。同时,他在莫斯科一家大公司担任 TeamLead QA。他喜欢我对该项目的想法以及如何尽可能最好地使用 Spring(当时我只知道基础知识)。7) 有一天,同一个开源项目组织者问:我可以投入更多时间吗?我在哪里工作?听到“Lenta”这个词和销售顾问,他向他的公司推荐了我担任移动质量检查的职位。凝胶渗透色谱装置。我对 Selenium、Appium 等一无所知。但在短短几周内,我就掌握了为基于 Android 和 iOS 的手机编写自动测试的精髓。高于1000美元的基本工资给我留下了深刻的印象。从那一刻起,生活就走向了完全不同的方向。8)2020年8月即将到来,实际上我在公司担任QA已经有1.5个月了。那是八月的一个晚上,初级从简历标题来看。我还在一个新的地方添加了一点商业经验,我在JavaRush中的进度(当时是22级)。他还表示我正在参与一个开源项目,并发送了 github 上 Zaycev.net 唯一测试任务的链接(顺便说一下,是的,我做了一个月,显然我做了一个真实的案例 - 它是气象服务)。9) 就在 X 天到来的时候,在“下一个”八月的早晨,我检查了我的邮件。我看到 hh.ru 发来的消息,有一家大公司想与您交流。第一反应是:“是吗?认真的?开玩笑吧?我已经给你发了哪一年的简历,而且只是现在?” 说我正在准备面试是轻描淡写的。我只是没有做好准备,意识到要么我现在的知识已经足够了,要么对不起,朋友,但你还是要教啊教。10) 与 hr 进行 Zoom 通话的日子已经到来。会议开始前一分钟,我开始思考:现在值得联系并让自己难堪吗?但为什么这么想呢,我没有什么可失去的:在 Zaycev.net,我已经竭尽全力了,但我需要面试经验。泡了一杯咖啡后,我准时在约定的时间进去了。令我惊讶的是,有两个人在等我:1)产品负责人和 2)团队负责人。我讲了一个与您目前所读到的故事类似的故事。他回答了诸如“你为什么去读研究生?”、“你为什么从意大利回到俄罗斯?”、“你为什么从米兰的生活换到新西伯利亚的生活?”等问题。在那一刻,实际上是电话会议的前一天,我正在纯 Debian 9 上设置 Wildfly 服务器,用这句话我结束了我在采访中的迷你独白。短暂的停顿后,我意识到已经建立了联系,并简短地宣布:“您是否同意进行测试,如果成功,我们将雇用您?” 我的回答是:“是的。” PS 我在几天内完成了测试,同时继续担任 QA 工作。这个任务非常有趣:需要在纯 Spring 中编写一个服务,其中接收请求作为控制器输入,需要实现多个 DTO 层,并且在存储库中,不是从数据库接收数据,而是从json 文件,其结构是我必须自己想出的。任何对任务细节及其解决方案感兴趣的人,请以个人信息写信给我:我不知道该材料的发布是否合法。当天提交作业供审核后,我收到了邀请我的公司的“是”。我已经正式成为一名Java开发人员了。我不得不省略很多内容,以免让您对文字感到厌烦。整个情况的美妙之处在于,我于 2019 年 9 月 11 日支付了 JavaRush 的订阅费用,并于 2020 年 9 月 11 日收到了报价——整整 1 年,在大流行开始期间有很长一段时间的停顿,并准备捍卫我的权利。硕士论文。迄今为止,我在开发商业应用程序方面获得了宝贵的经验。6个月的学习时间比几年的学习时间还要多。但如果没有 JavaRush 的实际经验,这是不可能的(问题和更多问题)。现在,我怀着对 JR 项目的感激之情,尝试帮助我的朋友们,对于像我一样想从事 Java 开发的人,我会提供一些年度高级订阅。多亏了工作,我才不去上班。我什至不能称之为工作:我喜欢困难的任务。这段时间研究了从Kafka到Hadoop的技术,个人的技术栈也没有停止补充。我的学生时代,总共将近九年,灌输了坚持不懈的技能以及不断教授和学习新事物的愿望。如果没有这一点,每月数千美元不会特别激励你。仅仅为了钱进入这个领域绝对不值得。 曾几何时,住在街上,我什至无法想象我会在西伯利亚开放空间的生态区给自己买一栋房子。做你喜欢做的事,获得体面的工资——幸存模式就此结束。 我记得《权力的游戏》系列中培提尔·贝里席的名言: 瓦尔哈拉神殿的奇妙之旅,或者历史学家档案管理员如何成为一名开发人员。 - 2 生存了近30年,正好在疫情发生的一年内,成为了瓦尔哈拉殿堂,所有维京人也在为之无拘无束地奋斗。如果您只是想学习 Java?我需要这个吗?我能做到吗?只需滚动到 JR 主页的页脚并阅读这三个词:程序员不是天生的。 忠告栏 没有忠告怎么会有这样的故事呢?1)我不建议深入游戏任务,前提是你需要尽快解决。为什么?但因为你会花费大量时间在实际上不需要的事情上。但学习 Spring 反而会让你更快地接近你的目标。(不过,如果你有时间,生活甜蜜,有栖身之所,你可以做一些游戏)。但我再说一遍:Java 与游戏开发无关。哦,是的,一般来说,忘记在计算机上玩游戏,在手机和其他媒体上卸载 Steam。在担任开发人员 5 个月后,我再次玩了《巫师》。2)花更多时间在数据结构和集合上(首先是在执行代码重构任务时需要它们);3) 如果你打算通过面试,你只能在Join之前学习SQL。剩下的 就抽吧在去办公室的路上。RuNet 目前最好的资源:sql-ex.ru 4) Spring。是的,是的,它已经像Java-core了。前提是你想找工作。Alisev 在 Youtube 上的视频课程和几篇关于 Habré 的文章对我来说已经足够了。5)让它弹跳的算法?虽然不太可能,但了解几种常见的类型也没什么坏处。我还没读完 Grokai 的《算法》整本书。6) 事实证明非常有用的书籍是 D. Bloch - Java effectiveprogramming(第 3 版)和 R.Martin - Clean Code。我还没读过 Bruce Eckel 的《Java 哲学》(我读到了 150 页)。7)参加任何可以获得经验的运动。开源,你自己喜欢的项目,也许是实习。当然,在你的简历中反映有用的活动:一般来说,“梳理”你的简历。8) 你不可能毫不费力地从池塘里抓住错误......如果你诚实地通过了 JavaRush 的第 8 级(Java 语法),包括额外的任务,你就会知道:你几乎已经成为一只 Java 猫了。那么就会容易一些。9)如何准备面试?请奥丁原谅我打开宝箱,这里是链接:https://github.com/enhorse/java-interview 10) 并且不要忘记浏览 Java 中的 Lambda 和 Stream API 主题(最好在之前面试,但更常见的是从设备使用的第一天起就可以提高工作效率)。一开始你不会明白它是什么或者它的使用频率。然而,在学习了这个主题之后,你会全心全意地喜欢流。感谢您阅读我的短篇小说。我很乐意回答您的问题,并特别邀请您来我的公司实习或直接工作,具体取决于您当前的知识(PM 中的详细信息)。 我完全忘了。截至2021年3月,全球Java开发人员人员严重短缺。公司负责人被迫付钱给你,让你暂时忘记消费,屈尊离开沙发,成为一名开发人员。 仅仅因为有人开始学习一门语言并达到了 3-4 级,这并不意味着你不会在市场上占有一席之地。一旦你至少掌握了 Java Core 的基础知识,你就会被真空吸尘器(字面意思)。全球化引领我们走向数字化(你好,赛博朋克),它不仅需要一支开发人员大军,还需要大批 Java 猫!哦,是的,他们继续用 Java 编写新项目,而不仅仅是支持遗留项目。在 2021 年的今天,你必须是一只超级懒的浣熊才能不进入开发阶段。公司正在等你。公司已准备好支付您的培训费用。只要向他们迈出一步!不要害怕!阿戈里!
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION