JavaRush /Java Blog /Random-TW /瓦爾哈拉神殿的奇妙之旅,或是歷史學家檔案管理員如何成為 Java 開發人員
Denis Sidorenko
等級 25
Новосибирск

瓦爾哈拉神殿的奇妙之旅,或是歷史學家檔案管理員如何成為 Java 開發人員

在 Random-TW 群組發布
介紹詞 大家好!我叫丹尼斯,在寫這篇文章時,幾週前我剛滿 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