JavaRush /Java Blog /Random-JA /2.5か月でJava Middle。
novago219
レベル 34

2.5か月でJava Middle。

Random-JA グループに公開済み
ゼロから2ヶ月半もあれば本当にミドルになれると 思っていた読者の皆さん、こんにちは。急いであなたを失望させますが、これは自分自身に非常に熱心に取り組んだ場合にのみ可能です、そして私は誰もが一度にすべてを望んでいることを知っています-今、そして他の方法ではありません。そして、「ゼロから始める」というフレーズは、特定の条件付きの状況でのみ私に当てはまります。なぜなら、私はプログラミング言語としての Java についての知識がまったくなかったからです。しかし、JavaRush に出会う前から、私はすでに何かを知っていて、実行することができました。私のキャリアの成長は、ある意味、知識、スキル、運のかなり奇妙な組み合わせであるため、おそらくこれから話を始めたいと思います。 そこで、私に他の人よりも競争上の優位性をもたらし、また、JavaRush (レベル 34 まで) を非常に早く、それほど困難なく通過することを可能にしたリストをあげましょう (少なくとも私は驚きませんでした)。このリストは大学から教えてもらった知識と私自身が興味を持ったことで構成されています。どこに何があるかは分けませんし、大学の名前も言いません。大学で教えてもらえない場合は、必要に応じてこれらの知識をすべて自分で習得する必要があります。
  1. アルゴリズムとデータ構造:この方向への私の道のりは、アルゴリズム構築の原理を勉強し、古典的な本 (Knuth) を読み、Pascal プログラミング言語を勉強することから始まり、C 言語、すべてのデータ構造の実装、およびデータ構造の分析と続きました。それぞれの長所と短所。他のすべてに加えて、私がチューリング マシンとマルコフ アルゴリズムの使い方を知っているとは言いません。というか、これはすでに述べましたが、これは無視しても構いません。ただし、私の意見では、無限のメモリテープとそれに沿ったポインタの動きは、コンピュータが内部から実際にどのように動作するかを最も正確に理解するのに役立ちますが、これは私の謙虚な意見にすぎません。
  2. コンピュータ アーキテクチャとアセンブラ:コンピュータの動作原理を完全に理解したと判断したら、非常に低いレベルでプログラムを書いてみてください (そうしないと、Java のすべての楽しみをどのように理解できるでしょうか?)。私は個人的に、これ 1 つですべての教育オプションを検討しました。 、2 つ、3 つのレジスターがあり、レジスターが 1 つしかなく、プログラムが機能するときにどのように回避する必要があるかがわかりました (驚くべきですよね?)。
  3. 離散数学:当然、上記と並行して、この主題を取り上げる価値もあります。論理的思考を完全に理解できるためです。また、有限状態マシンの理論により、プロセッサーの内部がどのように配置され、どのように動作するかがわかります。それらは集積回路内に組織されています。ここではグラフ理論も勉強しますが、100% 余計なものではないことを忘れないでください。
  4. 高等数学:頭が混乱しすぎないように、他のすべての数学的主題を 1 つの段落で強調することにしました。数学的分析、確率論と統計、線形代数 - ところで、3 次元グラフィックスを作成したい場合、非常に重要なことです (私は知っていますが、誰もがゲームを書くことを夢見ていますが、そのためにはあなたもゲームを書く必要があります)微分方程式と数値手法のコースを受講する必要がありますが、これはほんの些細なことです)、およびその他の分野です。
  5. OS アーキテクチャ。Linux:ここで慣れてくると、Java でのマルチスレッドに関する疑問がはるかに少なくなり、哲学者に関するおとぎ話をどこかで聞いたことがあることがわかります。
  6. OOP、C++ 言語:そうですね、私たちは食物連鎖の頂点にほぼ到達しています。ここでは詳しく説明しませんし、C++ での OOP の実装が注目に値する理由についても述べません。
  7. さらに、私がすでに知っていたいくつかの小さなことは、コンピューター グラフィックス (OpenGL、Unity 3D) と C# (コア) でした。
JavaRush はそれと何の関係があるのでしょうか?
さて、このようなジャンクな知識とともに、昨年の 9 月に JavaRush に出会い、いくつかのレベルをスクロールして諦めました。大学卒業後は簡単に仕事を見つけたからです (プログラマーとしてではなく、IT 分野でしょうか)誰かがそれが何であるかを推測できるでしょうか?)。しかし、私はすぐに、自分がこれにまったく興味がないことに気づきました。数か月で限界に達しそうになり、会社の経営陣がほとんど面白いオプション (その中には DevOps) を提供してくれたにもかかわらず、ここで開発する意味がないことに気づきました。私はそれを拒否しました。同時に、私はコンピューター サイエンスのオリンピックに向けて学童の準備をしていました (言い忘れていましたが、私はスポーツ プログラミングが大好きでした)。本業を辞めた後、真っ向からオリンピックに向かいました。これにも飽きるまで、約4〜5か月間すべてに満足していました。質問が繰り返され、すべてのトピックが取り上げられたとき、私は JavaRush のことを思い出しました。合理主義者 (貪欲) なので、最初の 10 レベルを最初から最後まで見て、それからさらに詳しく見ていき (レベル 15 で十分なように思えました)、これが非常に興味深いことに気づき、私の典型的なやり方で、ただそれを実行しました。いつでも自由な瞬間に。5分ほど時間はありますか?わかりました。メソッドのロジックを追加します。合計: 2 つの月次サブスクリプションを購入しました。最初の 1 か月でレベル 10 から 28 になり、未完了の 2 か月目 (約 15 日) でレベル 28 から 34 になりました。時系列的には、4 月から 5 月中旬、つまり 1.5 か月かかりました (ルーブルで自分で計算してください)。どうすればいいのか、どうやってはいけないのかは説明しません。これについてはすでに多くのことが言われています。
雇用
レベル 30 くらいのとき、私は自分の住む街の求人情報を見て、急いで全員に履歴書を送らず、希望する企業を具体的に選び、準備を整えてから、人事部に落書きを送ることにしました。落書きも丁寧に描いたので、とてもいい仕上がりになりました。私はすぐに面接に招待され、自信を持って面接に合格しました (少なくとも Java Core に関する限り)。質問の内容については説明しません。問題は、Spring がどのように機能するのか、そしてエンタープライズ テクノロジを少しでも知っているかどうかを私に尋ねられたことから始まりました。実際、私は分からないと言いましたが、そのようなレベルでは、ジュニアが保証されています(より高くジャンプすることはできません)、それでもジャンプしました、そしておそらくここで、最も興味深い部分が始まります。一般的に、条件(2ヶ月-試用期間、ポジション-ジュニアと給与範囲)を説明されたとき、私はそれらがあまり好きではないことに気づきましたが、同意すると言い、後で働き始めてもよいか尋ねました。新しい会社に入社する前に、現在の仕事を終わらせる必要があったため、モチベーションが高まりました。そのため、私は準備にほぼ 1 か月を費やしました。5月上旬に面接を受け、23日から勤務開始となりました。当然のことながら、要件をもう一度調査し、使用されているテクノロジ (Java EE 6) を確認し、作業の準備をしました。
ミドルかミドルではないのか?
さて、私は仕事を始めて、彼らが約5人のジュニアを採用したことを発見しました、その中で、もちろん私は目立っていましたが、それほどではありませんでした。まず、直属の上司に会い、彼が喫煙していることに気づき、一緒にタバコを吸いに行くようになりました(私は全く吸いません)。私たちにはもう一人プログラマーもいたのですが、彼については後ほどお話しします。一般的に、私は喫煙しながら(勤務日に 3 ~ 4 回)マネージャーと話し、自分の成功についてさらに詳しく話し、さりげなく自分の知識について言及し(きっと役に立ったはずです)、そして概して、自分ができる最高の自信を得ることができました。できた。最初の週の終わりにバーベキューとビールを飲みながら、より良い関係を築くことができました。それを私が企画しました。私は警備員に追い出されるまで、午後 11 時 (勤務日は午後 6 時半まで) までオフィスに残って働きました。時々、会社の CEO と CTO が私と一緒にオフィスに滞在し、コミュニケーションを取り、一緒に夕食をとり、一緒にオフィスを出ました (CTO は私に家まで車で送ってくれると言ってくれましたが、私は丁重に断りました)。こうして私は、第一に直属の上司と良好な関係を築き、第二に、上級管理職に対して、仕事を終えてから家に帰るつもりであることを示しました。当然のことながら、これらすべてが私を中級者にするわけではありません。それで、それは何をしたのでしょうか?インタビューの前に、私はフレームワークを 1 つも知りませんでした (JUnit を除く)。ここで、上で述べたプログラマーに話を戻す価値があります。彼は 20 年の経験を持つ非常に強力なプログラマーで、モスクワで 5 年間、アメリカで約 7 年間 (チーフプロジェクトアーキテクトとして)、その他多くの場所で働き、特に重要な政府プロジェクトを含みました (私はこれらすべてを喫煙中に学びました)彼と一緒に)。そこで、このプログラマーには非常に重大な任務が与えられ、私をアシスタントとして採用することにしました。この任務を与えられた後、緊急に出国する必要があり、働けなくなることが判明した。彼はアプリケーションのフレームワークを書き、遠くから監視すると言って私に責任を任せました。この瞬間が、私がミドルになり、試用期間を 2 か月ではなく 1 か月で終了し、より本格的な給与を受け取る資格を得るのに役立ったのでした。なぜなら、このプログラマーは遠くから監視することができず、プロジェクトは完全に私に任せられていたからです。1 か月以内に無事完了し、ポジションを獲得し、より高い給与に応募する機会を得ることができました。
道徳とは何ですか?
このような知識をすべて与えてくれた場所で勉強できて幸運だったと言えます (ただし、私はそれを上司に言及するために使用しただけです)、そのようなプロジェクトが私の肩にかかるような状況だった、そして JavaRush は何をする必要があるのかそれをどうするか、そう思われるでしょうか?もう一度思い出してもらいたいのですが、JavaRush を導入する前は、私の Java 熟練度レベルは 0 でした。それだけです。第二に、52 回目の試行で問題を解くと、何かが心に残ります。私には例外やチェックなどのコツがあり、それが他の人よりも競争上の優位性でもありました。そして一般に、JavaCore を非常に徹底的に理解し始めます (これは OCA 証明書を証明するもので、私は会社の費用で合格し、94% のスコアを獲得しました)、これがなければ次に進む意味があまりないと思います。来週、私はゼロから新しいプロジェクトに任命され、私自身がそのプロジェクトを主導することになります(データベース設計、テクノロジーの選択、チームの採用も含む)。また、面談を行ってジュニアの成長状況を確認し、やりがいがあるかどうかを判断します。これらの問題において、私は事実の知識だけでなく、チームとのコミュニケーションを確立する能力、経営陣に自分をよく見せる能力、印象を与える能力、そして自分が最後までやり遂げるという証明をする能力によっても助けられたと言いたいのです。終わり。ご清聴ありがとうございました。皆様のさらなる忍耐と細部への注意を願っています。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION