JavaRush /Java Blog /Random-JA /将来の Java 開発者のためのガイド。インタビューとキャリア
Fry
レベル 41
Львов

将来の Java 開発者のためのガイド。インタビューとキャリア

Random-JA グループに公開済み
将来の Java 開発者のためのガイド。 インタビューと経歴 - 1 フォースは多くの人が水を飲むことができる川であり、ジェダイの訓練だけがその力を汲む唯一の方法ではありません。」— ルーク・スカイウォーカー 選んだ本はすべて置き去りにされます。どれを読むか、どれを読まないかを決めるのはあなた次第です。さて、あなたに残された目標はただ 1 つだけです。それは、熊手を踏まずに就職してキャリアを築くことです。 最後の記事は次のセクションに分かれています: - 仕事前 - インタビュー - 仕事中 この部分には私の個人的な意見が多く含まれているため、文脈を無視してフレーズを解釈せず、古い友人との率直な会話のように扱ってください:)。

仕事の前に

以下は、魂がプログラミングに惹かれているにもかかわらず、特定の状況がその人の邪魔をしているときに生じる最も一般的な 10 の決まり文句です。私の仕事は、あなたの猜疑心を止めて、ポジティブな考え方を身につけるように努めることです。この記事を読んでいるということは、あなたが思っている以上に進んでいることです。精神的には、あなたはすでに到達すべき場所に到達しており、すでに何冊かの本を読んでいれば、すでにその半分まで到達しています。したがって、疑うのはやめてください。これは多くの弱者です。前進のみ!もう良くなりましたか?それでは行きましょう! 「私には学歴がありません」 私がまったくの無知で大手アウトソーシング会社のアカデミーに入ったとき、面接官は卒業証書にはまったく興味がないことをやんわりとほのめかしたので、質問は具体的でした - OOP と基本的なことについてでしたジャワ。もちろん、技術が利用できる求人が見つかるでしょう。教育は明確な要件となるでしょう。私が言いたいのは、最近では彼の不在が障害ではないということだけです。多くの外国事務所では、コンピュータ サイエンスの学士/修士号、または関連する経験を求めています。説得力がありませんか?私が技術教育を受けていないという事実に勇気づけられるかもしれません ;)、しかし、だからといって私が大企業で経験を積むことを妨げるわけではありません。今聞いてください、映画を巻き戻すことができたらどうしますか? もちろん、KPI/NAUには行きますが、もし入れなかったとしても、それほど悲しいことはありません。心配するのはやめましょう。時間は経ちます - 望めば 40 歳でも学位を取得できます - しかし、今は今ここでジュニア開発者になることに集中してください。 「私より賢い人は必ずいる」 あなたよりも賢く、聡明で、柔軟で、才能のある人は必ず存在し、どんな仕事も例外ではありません。この事実は、あなたに目標から逸脱する権利を与えるものではありません。おそらく、地球の裏側のどこかには、あなたよりも早く数字の掛け算や割り算ができる日本の小さな男の子がいるかもしれませんし、チェコ共和国のおばあちゃんが、どの十代の若者よりも早く携帯電話のキーボードをタイプしているかもしれません。でも何も考えてないですよね?では、なぜ採用後に一緒に働く人々のことを気にする必要があるのでしょうか? ある意味では、あなたの将来の同僚はあなたより優れているかもしれませんが、他の点ではあなたよりも劣っているかもしれません。これで大丈夫です!それを取り消し線で消します。 「できるとは思えない」 まず第一に、それが簡単だとは誰も言っていませんが、これはあなたの目標が不可能であるという意味ではまったくありません。あなたが現在会計士や営業コンサルタントとして働いているとしても、挑戦することを妨げるものは何もありません。仕事終わりに来て、座って勉強してください。時間が経つにつれて何らかの進歩が見られる場合、これは正しい方向に進んでいるという兆候です。止まらないで!もしあなたがこれに少しでも興味を持っていて、それがあなたに与えられたとしたら、私はあなたがそれに値しないと確信させることができる点を何一つ知りません。 「怠惰に圧倒されてしまった」 怠惰とは単にモチベーションの欠如です。自由時間のほとんどを、勉強して計画通りに進める代わりに、愚かな仕事に費やしていることに気づいたら、急いで通知しますが、おそらくプログラマーであることはあなたには向いていません。少なくとも今はそうではない。怠惰を肥満と並んで現代の罪、病気、コレラと呼ぶ人もいます。この問題はキャリアのヒステリーに任せてください。私の意見では、この人生の周囲のすべてのものには、闘争と競争の幻想が染み込んでいます。誰が背が高く、誰が強いか、誰がより裕福かということです。チームの誰がよりクーラーな車を持っているか、誰がより高い給料を持っているか、誰がジムでより重いベンチプレスをしているか、女の子の中で誰が早く結婚して子供がいるか - これはあなたを悪臭を放つファストフードのように気分を悪くさせます。人々は生きることも人生を楽しむこともやめ、夢を追い、快適ゾーンをペプシかコカ・コーラの二者択一に置き換えた。私にとって、怠惰は良いことであり、素晴らしいことです。これは、体にとって役に立たないことにエネルギーと時間を節約するための、体の通常の保護機能です。人間は自由になるように造られたのですから、怠け者なら、ソファから尻を持ち上げようとするのはやめてください。おそらく、今はその位置にあるのかもしれません :)。 「お金があるからそこに行くんです」 開発者を集めて、「今後、あなたの給料はどのレベルでも 3 ~ 4,000 グリブナになり、テスターは引き続き同じレートを受け取ります」と言えば、質問は変わります。それは爆弾だということではなく、このニュースの後もプログラマーであり続けるプログラマーが何人いるかだ。多くの人がお金のためにIT業界に参入します。給料はドル、チーズ、高価なデジタル一眼レフカメラから換算されました。どれだけ人々と仕事をしていても、常にこのことについての会話がありました。これが悪いと言っているわけではありません。世界をより良い方向に変えるという純粋にスピリチュアルな目的で自分が来ていると自分に思い込ませないでほしいのです。私は若手として就職する前に、先輩、技術リーダー、さらには中間管理職の給与がどのくらいであるかを知っていましたが、プログラマーとして働く前の時代には、そのような数字を夢見ることしかできませんでした。これらのものを正しい名前で呼び、それを恥じるのをやめてください。 「これは私のものではないようです。」 では、誰のものでしょうか?ご存知のように、チェックするのは簡単です。Hortsmann の最初の巻を開いて、例からコードを読み書きし始めます。飽きておらず、2 週目に同じ章を続ける予定がない場合は、疑いを捨ててください。専門技術の勉強は連続したものです。A を知らずに B に進むことはできませんが、1 章戻って基礎を強化する機会はいつでもあります。頑張れ。 「私と同じような人はたくさんいるよ」 場所をめぐる競争は常にあります。たとえば、現在、経験のないテスターが 300 ~ 400 人、あるいはそれ以上のテスターが 1 か所にいます。はい、これは苦い真実ですが、一方で、そのような指標があっても、十分に深刻な点を見つけることができません。はい、1 か所あたり少なくとも 100500 です!! プロジェクトの経験を積む機会は常にあります。ある種のサービス、デスクトップ プログラムを構築し、知っているスタック全体を使用します。そして、すでに前進していますが、履歴書を送信する以外の残りの作業は順調に進んでいます。他には何もありません。 「私の履歴書に誰も反応しません」 上記の続きです。おそらく、経験のない将来の IT スペシャリストにとって、美しい履歴書を書けることは良いことですが、1 つの欠員に多数の人材がいる場合、多くの履歴書は互いに非常に似ています。もちろん、写真を送信することもできます。胸の谷間がある(女の子の場合)、または多くの技術を書いていますが、あなた自身はウィキペディアからしか知りません。どちらの場合も、人事部はまったく気にしません。たとえば、プロジェクトの欠員に AWS に詳しい人が含まれている必要がある場合、人事部は履歴書で AWS を探すでしょう。同僚からの推薦など、もう 1 つの重要な点を考慮に入れてください。これは、そのような知人がいない人にとっては苦痛です。なぜなら、後輩の大部分がそこから取られるからです(その人が推薦されている場合-もちろん、愚か者ではありません)。通常、若手のポジションでは、学ぶ準備ができ、食事も提供する、適切な活動的な人材を採用することを私は強調します。そして、そのような候補者が落ちた場合、次はあなたになる可能性が高くなります。そうですね、残りの人が面接を受けている間に、オープンソース、インターネット上のタスク、そして場合によってはフリーランスなど、スキルを向上できる分野がたくさんあります。 「面接に受からない/特定の企業に入りたい」 はい、おそらく最初の面接は失敗するでしょうが、そこで得られる経験はかけがえのないものです。その後の面接のたびに、あなたはより自信を持ち、機知に富んだものになるでしょう。私は今でも最初のことを覚えています...神様、私はなんてナンセンスなことを話していたのでしょうか?! 終わって帰るのはとても残念でした(私の顔でニヤリと笑ったあのグールを思い出しました)が、家に帰ってよく考えてみると、それは素晴らしい教訓だったことがわかりました。彼の後、その後の同様の出来事はすべて、安心感と自信にあふれていました。誰も死ななかった、彼らは私のような人を探している、つまり私が現れるということだ。自分を信じて!特に特定の会社に入社したいのであれば、私たちの環境で人気のあるライフハックは教えないと思いますが、それでも、この会社とのミーティングを企画する前に、競合他社との面接を受けてください。もしかしたら、断れない条件を提示されたり、より厳しい条件を提示されたりするかもしれません。一つだけ確かなことは、後悔しないということです。 「この仕事もやりがいを感じています」 ご存知のとおり、古いことわざに「Le mieux est I'enneini du bien」(「最良のものは善の敵である」)があります。もしかしたら、あなたの職場は最悪の場所ではないかもしれないが、そうだ、上司は最悪だ、だから何だ?または、たとえば、3 年目はボーナスはありませんが、特に私はすでに 30 歳を超えているので、給与は安定しています。これはある程度真実かもしれません。人生は一度きりであることを忘れないでください。それを無駄にすべきではありません。失望、想像上の慰め、周りに興味深いものがたくさんあり、自分の人生全体を理解するのに十分ではないとき。より良くなることを恐れないでください、最高になることを恐れないでください。誰の意見も聞かず、これが自分の本当にやりたいことだとわかったら、粘り強く目標に向かって進みましょう。変化することを恐れないでください!

インタビュー

概して、これらすべてはインターネットで見つけたり、友達に聞いたりすることができますが、それは不必要ではないと思います。以下は、私が面接官だったらと思う、ジュニア Java 開発者への面接の例です。質問は何でも構いませんが、私は病院に関する平均的なものを集めてみました。あなたが幸運であると想像してみましょう。 標準的なスキーム ステップ 1.採用担当者から電話があり、たとえば明日の 11:00 に面接を手配します。 ステップ 2. 11:00 はあなたのための時間ではなく、あなたを拷問する何らかの部屋を予約している開発者の時間である可能性が高いため、早めに到着します。採用担当者はこの点について警告することをお勧めします。 ステップ 3.実際、ステップ 3 から始めて、面接の進行が異なる可能性があるため、すべてのポイントを組み合わせることができます。たとえば、ここでは、どこから来たのか、なぜここにいるのかなど、基本的なことについて質問されることがあります。人事自身がこれを行うことも可能ですし、もちろん英語で行うことも可能です。本当に、それは会社次第です。 ステップ 4.あなたは会議室に招待され、そこで 1 人、2 人、または 3 人の人と会話します。そのうちの 1 人は将来一緒に仕事をする先輩または技術責任者で、残りはそこにいます。スクラム マスター、その他の開発者、または人事担当者である可能性があります。彼らはしばらくあなたにインタビューし、その後握手してあなたを解放します。 ステップ 5.おそらくこれは翌日、あるいはステップ 4 の直後になるでしょう。外国人顧客がいる場合はその顧客と会話するか、あるいは外国人顧客が自ら面接を行うことになるでしょう。ご覧のとおり、多くのオプションがあります。どこかに顧客がいて、どこかに電話インタビューもあります。これはほんの一例です。 ジュニア Java 開発者向けの技術面接の例 面接 で応募者の前で溺れたり、押しつぶされたり、見せびらかしたりする目的で賢明な文章を読んだ下位開発者たちを非常に残念に思います。あなたの目の前でそのような人を見て、彼の側にプレッシャーと緊張を感じた場合は、すぐに彼を3つの楽しいところに送ります。正常に完了した後、この愚か者と作業する必要があるからです。貴重な神経を無駄にしないでください。面接は、まず第一に、候補者が何を知らないのかではなく、何を知っているのかを明らかにすることを目的として行われるべきです。当然のことですが、特定のことを知っている人が必要な場合は、その人に尋ねてください。プロジェクトで使用しない無駄なことについて彼を煩わさないでください。結局のところ、人間でありなさい!以下は面接で出題される可能性のあるおおよその質問です。テクノロジーごとに 5 つの質問。 OOP 1. ポリモーフィズムの実例を挙げてください。利点は何ですか? 欠陥?簡単なコードをいくつか書きます。2. インターフェースとは何ですか? 抽象クラス?愚かにもすべてをクラス内に記述できるのに、なぜインターフェイスが必要なのでしょうか (少し挑発的ですが)。抽象クラスについても同様です。Java 8 のデフォルトのメソッドとは何ですか? 3. 架空のデータベースまたはプログラム (データベースからのさまざまなクラスのワーカーのリストがあります) とそれらの間の相互作用 (集約、合成) の特定の例を使用して、クラス階層を構築します。4. 構成は集約 (is-a、has-a) とどのように異なりますか? 5. Java で多重継承の禁止を回避するにはどうすればよいですか? JDK/JRE 1. JDK は JRE とどう違うのですか? JVMとは何ですか? 2. クラスパスとは何ですか?またその目的は何ですか? たとえば、他のクラスをクラスパスにロードするにはどうすればよいでしょうか? 3. クラスローダーについて何を知っていますか? 4. javadoc について教えてください。それはなんのためですか?5. JAR、WARとは何ですか? Java 共通 1. 静的メソッドと非静的メソッドの違いは何ですか? ファイナルって何ですか?2. ボックス化とアンボックス化とは何ですか? バイト b = 127、b++、結果は何ですか?またその理由は何ですか? 3. ラッパーとは何ですか?何のためにあるのですか? 4. 注釈を作成するには何をする必要がありますか? オーバーライド/オーバーロードとは何ですか? 5. String クラスが最終クラスなのはなぜですか? intern() メソッドは何をするのでしょうか? データ構造 1. Java のコレクション API の構造を説明しますか? すでに Stream API を使用したことがありますか? 2. ArrayList と LinkedList の違いは何ですか? ArrayList を使用する方がよいのはどこですか、LinkedList を使用するのはどこでしょうか? 3. HashMap がどのように機能するかを教えてください。TreeSet、HashSet を使用する場合の特徴は何ですか? グアバ収集の経験はありますか? 4. Java の配列、2 次元配列の例。5. hashCode は、例として HashMap を使用するのと同じですか? 同時実行性 1. プロセスとは何ですか? 流れ?スレッドを作成するにはどうすればよいですか? 同期とは何ですか? スレッドセーフなコードの一部を理解するにはどうすればよいでしょうか? 2. Thread.sleep、また wait、notify、yield とは何ですか? 3. デッドロックの例を挙げてください。4. マルチスレッドで作業する場合のコレクション。5. ThreadLocal および Atomic SQL/JDBC 操作 1. 特定の例を使用して、給与が 5000 を超えるユーザーを Users データベースから取得します。 2. 例 INNER JOIN、OUTER JOIN、Order By、Group By。3. JDBC ドライバーが必要な理由は何ですか? 例。4. ResultSet について知っていることをすべて、例をいくつか挙げて教えてください。5. RS を使用して簡単な DAO を作成します。 JPA/Hibernate 1. JPA の短所と長所は何ですか? 2. EntityManager とは何ですか? 実在物?3. JPA/Hibernate の基準。4. JPA/Hibernate での 1 対 1、多対多 5. Hibernate で JOIN を行うにはどうすればよいでしょうか? 本社? 1. DI/IoC とは何ですか? 利点。2. アプリケーションコンテキストとは何ですか? 豆?3. IoC 初期化にはどのような種類がありますか? 4. シングルトン、プロトタイプは春に? 注釈ベースの Spring? 5. 豆のライフサイクル? initメソッド、destroyメソッド? @PostConstruct、@PostDeploy? メイビン 1. Maven の主要フェーズ、ライフサイクル。2. テストありまたはテストなしで Maven を実行するにはどうすればよいですか? アーキタイプ、mvn 依存関係とは何ですか? 3. Maven でのプロファイル、作成方法、起動方法。4. Maven のスナップショットとは何ですか? 中央/リモートリポジトリ? 5. mvn のプラグイン、その仕組み、いくつかの例。 Algo 1. アルゴリズムの概念、その速度、Big-O-Notation。2. LinkedList の中央の要素を一度に見つけるにはどうすればよいですか? 3. プリミティブスタックを書きますか? スタックとキューの違いは何ですか? LIFO、FIFO? 4. クイックソート、マージソート。5. 数値が回文であるかどうかをチェックするプログラムを作成します。私もそう思います。おそらくバーはジュニアよりも少し真ん中に向かって曲がっていますが、そのような準備は間違いなく怪我にはならないと思います。それぞれの質問をさらに深く掘り下げてみてください。ちなみに、Java にはここでは示されていない領域も多くありますので、考慮してください。

仕事中

ここでは、すでに落ち着いているジュニア/ミドル開発者向けの小さな推奨事項をいくつか紹介します。これらの簡単なヒントは、私が役に立ったのと同じように、あなたにも役立つかもしれません。 頑固にならないでください 。たとえそれが真実に近いものであっても、自分の主張を証明しようとするのはやめてください。あなたはすでに長い間口論をしていることに気づいています。つまり、バリケードの向こう側には、人生で2つの意見しかない普通のロバがいます。自分の意見と間違った意見です。自分のエゴが揺らがないように、最後まで自分の立場を貫く頑固な人が信じられないほどたくさんいます。そして、これらはあなたの同僚だけではなく、ミニバス、店内、親戚、親しい友人など、どこにでもいますが、逃げたり隠れたりすることはできません。たとえその人が公然とナンセンスなことを話していると理解していても、何らかの方法で彼らと対話する必要があります。さらに、同じことがあなたにも起こる可能性があります。確かに、単純なことなら頑固な人でも説明できると思いますが、プロジェクトや個人的な意見でアーキテクチャの問題について話している場合はどうなるでしょうか? こんなジャンクのことは忘れてください - 柔軟になってください。私はみんなの前で間違いを認められる人をとても尊敬します。これはまさに、ジュニアスペシャリストとして役立つ資質です。特に、自分が学んでおり、間違いを犯す権利があると認めている場合、オープンな人と対立することは困難です。 遅刻しないでください 試用期間だろうが、みんなが忘れて 11 時に来る金曜日だろうが関係ありません。もう 1 つ重要です。時間厳守は、突然自分で追加ポイントを獲得するプロフェッショナルの特徴です。 。それに、経験のない人にとって追加点は害にはなりませんよね?遅刻をしないようにし、8時間真面目に働いたら退社しましょう。 見積もりを乱用しないでください 。残念ながら、これは私も過去に陥った非常に一般的な状況です。開発者はタスクを完了するのに 8 ~ 16 時間を設定していましたが、予想外に 3 ~ 4 時間で完了しました。彼は残りの時間を、私の場合と同様に卓球をしたり、YouTube やその他のエンターテイメントを見たりして個人的な時間を過ごしています。法的な観点から見ると、私たちは同意しているように見えますが、人間的な観点から見ると、あなたは非常に重要なものを自分から奪っていることになります。 1. 余分な時間を不必要なもので埋めているため、あなたは立ち止まっている。2. あなたが成長していないのは、あなたの急速な進歩を経営陣に知らせていないためです。あなたが予想よりも早くタスクを完了していることを誰も知りません。3. 値の平均時間を常に過大評価し始めます。これはどこへも続く道ではありません。時間をかけて勉強しましょう 機関車に後れを取る可能性は非現実的に高いため、テクノロジーと新しいバージョンは非常に急速に開発されていることに留意してください。今日の Java エバンジェリストを購読し、Java ダイジェストを読み、新しいことに興味を持ち、学びましょう。これはブランドの維持と発展に役立ちます。 他の人を助ける たとえ彼らがあなたと同じくらい環境に優しい人であっても、他の人を助けることを恐れないでください。第一に、あなたは自分の知識を大幅に強化するでしょう、そして第二に、あなたは他の人の目から尊敬を得ることができ、同時に彼らはあなたを助けるでしょう。このような環境では、最高のチームが生まれ、技術的にも個人的にも急速に成長します。 スポーツをする。趣味を持つ いや 、マジで。運動する人は見た目や気分が良くなるだけでなく、脳の機能も良くなります。側弯症、腰、過剰体重、内臓のさまざまな問題など、仕事以外でも24時間コンピューターの前に座っていることがこれに影響します。スポーツができない場合は(私はそうは思わないが)、ちょっとしたライフハックを活用してみよう。時々立ったまま仕事をしたり、2つ手前の駅で降りて歩いて職場に行く。そして一般的には、もっと歩きます。プログラミングに週 40 時間を超える時間が費やされると、燃え尽き症候群になるリスクもあります。写真や音楽など、個人的な趣味が役に立ちます。定期的に霊性を養う時間を作りましょう。 私生活のバランスをとる 彼女や妻が「ラップトップか私」と言ったら、人生の中でプログラミングがどのような位置を占めているかを注意深く考える必要があります。一方で、IT 分野への取り組みを始めるときは、より多くのことを達成するためにこれからたくさん勉強する必要があることを恋人に明確に説明する必要があります。彼らが理解してくれることを願っています。時間をバランスよく配分するようにしてください。 積極的に行動しましょう 。たとえば、知識を共有したり、興味深いトピックがあると感じたら、社内で他の人のために小さなコースを開催してみてはいかがでしょうか。自分にできることがわかっているのであれば、大規模なオープンソース プロジェクトに参加することを恐れないでください。ゲーム、ソーシャル プロジェクト、またはその他のアイデアを書きたい場合は、実行して、実行して、実行してください。立ち止まらず、常に発展する方法を探してください。 競争力を高める 新しいトレンドに注目し、Java コミュニティで起こっているトレンドを常に最新の状態に保ってください。たとえば、時折、DOU で Java の求人を監視することは問題ありません。ただし、仕事から逃げるためではなく、どのテクノロジーが依然として関連性があり、どのテクノロジーが市場から徐々に消えつつあるのかを知るためです。 。また、Coursera や Udacity などのコースを受講して、新たな視野を開拓してみてください。さらには英語です。スピーキング スキルを向上させるために、お気に入りの映画やシリーズを字幕付きでオリジナルで視聴し、言語学習用の興味深いアプリケーション (LinguaLeo など) をいくつかダウンロードし、最終的にはコースを受講してください。

結論

さて、DOU に関する私の小さなプロジェクトが終わりに近づいています。親愛なる友人の皆さん、私はあなたが仕事に就けることを心から願っています。また、これら 7 つの記事で説明したすべての内容が、すでに Java 開発者として働いている人にとっても貴重なガイドとなることを願っています。将来の後輩の皆さん、不可能なことはない、本気で努力すれば必ず成功するということを忘れないでください。最終的に自分に向いているかどうかを判断し、綿密なトレーニング計画を立て、冷静に実行してほしいと思います。沈黙が返ってきたとしても動揺しないでください。これはすべて一時的なものです。重要なのは信じて、決してコースから外れず、勉強して、勉強して、もう一度勉強することです。多くの素材を編集し、月曜日のゴールデンタイムを与えてくれた DOU チームに多大な感謝を表したいと思います。DOU は、ウクライナの IT スペシャリストのための単なるサイトではなくなったクールなコミュニティです。また、私の記事を斜めに読み、文脈を無視してフレーズを解釈してくださったコメンテーターの皆様にも感謝したいと思います。あなたがいなかったら、記事はこんなに面白く見えなかったでしょう :) フォースがあなたとともにありますように! 元の記事は DOU から引用
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION