私は最近、ソフトウェアエンジニアリングの理学修士号を取得しました。数週間以内に専門職のキャリアを始めようとしています。私の役割は、Javaと関連技術(その中のSpringとHibernateのうち)を使用してソフトウェアを開発する会社のジュニア開発者としてです。)正直なところ、特に何が来るのか本当にわくわくしていますJava開発者としてのキャリアを開発したいので。また、この分野での経験を積むことに非常に興味があります。さらに、これはプロの開発者としての最初の仕事経験になるので、最初から頑張りたいです。
あなたのチームの一員となることができる新しい専門家(ジュニアデベロッパー)で最も高く評価されるスキルと能力(ソフトウェアとして成功するためにどのスキルに焦点を当てるべきか)を知りたいエンジニア。
これらの多くは、あなたのキャリアのどこにいても当てはまりますが、特に始めたばかりの人にとっては特に重要かもしれません。
これが私の頭の上のリストです。
二つのこと:学ぶ意欲と学ぶ能力。
動機。やる気を出す方法を知っていますか?他の戦術よりも効果的な戦術を知っていますか?これは、一部の人々があなたがこれを脇で見つけたすべての教育からあなたが知ることを期待するかもしれない自己認識についてです。
基本的なテストとデバッグのスキル。単体テストとは何か知っていますか?問題をデバッグするいくつかの方法を知っていますか?これは、環境で何をすべきかを具体的に知ることではなく、最も基本的なテストが何であるか、問題を調べるための戦略についての一般的な考え方です。
コミュニケーション能力。言語をどの程度正確に教えていますか?技術から非技術へどれだけ上手く行くことができますか?これは発展するものであると認められますが、それは注意すべきものであり、主張することの意味を理解しないことによってトラブルに巻き込まれる可能性のある人を救うこともあります。あなたは人とどの程度うまくやっていますか?これは厳密な要件ではありませんが、同僚と良好な関係を築くことができれば、一部のジョブの処理が少し簡単になります。正直さと誠実さもこのスキルグループに該当します。一般的に、あなたが何を意味し、何を意味しているのかについての質問があるかもしれないからです。 "Office Space" にはコミュニケーション不足の例がたくさんあり、作品は架空のものですが、オフィス環境での作業に関して、一部の人々にとって実際に非常に近いシーンが数多くあったかもしれません。
汎用性。チームの新しいメンバーは幅広い責任を負う可能性があるため、小さな会社の場合、データベース、ネットワーク、Webサーバー、および開発以外のその他のものをセットアップする必要があります。チームが期限に間に合うよう支援するための提案は、ここでのもう1つの例です。
好奇心、熱意、自分自身に高い基準を設定し、学習意欲、彼らが知らないことを認める意欲、ビジネスが行うことへの関心、そしてそれがあなたの生み出す仕事にどのように影響するか。 (20年の経験があっても、すべての優れた資質)
優れた技術知識は素晴らしいですが、この知識をどのように適用するかを示す必要があります。
何よりも、面接担当者は、あなたがそこで働いて貢献したり、滞在したいのを見ることができなければなりません。あなたが上手すぎると、平均以下になるよりも早く一部の人々を先送りにすることができます。 ;)
私はすでに述べられているすべてに同意しますが、技術的な専門家である代わりに、これらの一般的な(そしてソフトな)スキルを決して忘れてはならないことを強調したいと思います。あなたは両方に取り組むべきですが、私はむしろ彼らが知っていることを伝えることができる中級者を持ち、それから一人で仕事をするマスターを持っています。
また、本であなたの鼻にあまり多くの時間を費やさないでください。本は良いですが、読むのにほとんどの時間を費やし、作業に費やす時間を減らした場合、それらの本から半分ほどは得られません。
私にとっては、学位のないジュニア開発者として、一生懸命に働き、自分自身を向上させるという私の意欲は、私のキャリアに大きく貢献しました。また、いくつかの批判(肯定的であるかどうかにかかわらず)に対処でき、それをフォローアップできることは、上司から高く評価されていることに気付きました。
新しい環境については、最初の1週間ほどはフローに進むことをお勧めします。私は一生懸命頑張って間違えました、それはnot感謝されました。
すべてが素晴らしい答えです。私が追加したのは、私の限られた飛行経験から-彼らがパイロットの免許と呼ぶものを知っていますか?
学ぶためのライセンス。
素晴らしい答えがたくさん。
私が「大物」のために働いておらず、私がグルではない場合でも、2セントを追加します。
人に優しく。
可能であれば、同僚との付き合いを心がけ、少しずつ時間を費やして、毎日一緒に過ごしてください。たまに一緒に夕食に行き、一緒に大笑いしましょう。
つまり、「コミュニティ」が存在しない場合は構築し、存在する場合はその一部になるようにしてください。
同僚と知り合うことで、同僚との付き合いがより簡単になります。さらに、オッズはあなたがそれを楽しんでいるのは良いことです。
コミュニティ(上記)から提出されたすべての優れたものと同様に、いくつかのハードスキルの証拠が表示されることも期待しています。完璧または超オタクの力ではなく、基本と基本概念の優れた実用的な知識。あなたはすでに仕事を手に入れました(ところでおめでとう!)だから、あなたはほとんどそこにいます。
しかし、知識をリフレッシュしたり、会社が使用するツール、言語、テクノロジーに慣れたりすることは、着実に第一歩を踏み出すことを意味します。
架空のperfectジュニア開発者は、次のようなもののfundamentalsを知っています。
等々。彼は立ち止まって基本を学ばなくても、新しいスキルを習得することに集中できます。彼は(好きなだけ賢明質問をする-ほとんどの上級開発者love尋ねられる賢明技術的な質問)を試してみることができます多くのジュニアが最初の数か月の間直面するオンラインフォーム、管理ページの日常的な運賃。信頼できるジュニア開発者になることが、最初のチーム開始テストになるかもしれません;-)
大企業のウェブチームでジュニアとして仕事を始めたとき、割り当てられた最初の仕事の大部分はやや刺激的ではありませんでしたが、毎晩本に出くわして、何をしているのか理解できるように課税されましたしなければならない翌日。私はそれを乗り越えました、しかしそれは私のマスターズコースの比較的贅沢の後のストレスの多い5または6ヶ月でした;-)
すべての基本的なことを効率的に行うことができれば、かなり興味深いことをかなり迅速に行うことができ、これはもちろんあなたのキャリアを前進させるのに役立ちます。
そして、上記の多くの言葉に倣って、コンピューターとコードの世界は常に進化しています。あなたは一日おきに新しいものを学ぶ必要があります。心を広く開いて、そもそもなぜこれに着手したのかを考えてみてください。今後数年間で、これがあなたの頭の最前線にならないときがあるかもしれません。熱意があれば、ほとんどの問題を乗り越えることができます。
そうは言っても、過去12年ほどの私の経験では、ほとんどのジュニアは最初の会社に永遠にとどまることはないので、「完璧」であることにこだわりすぎないでください。ミスをすることはすべて、ジュニアから最終的にどこにでも行きたいところまであなたを連れて行くプロセスの一部です。私はしばらくこれを行っており、少なくとも年に数回ほぼ-運用データベースをほぼ削除します。
あなたのキャリアで頑張ってください。
仕事への情熱
もっと&more&more。を学びたいと思っています。
正直
一貫性
すばらしい答えです。ここで人々が言うことをすべてフォローすると、誰でも彼/彼女がしていることを上手にできると思います。
いくつかの点を強調したいだけです。
仕事で最高
イニシアチブを取る。私はこれをまったく行わず、常に正確に何をすべきか教えられるのを待つ多くの人々を抱えてきました。改善すべき点がある場合は、それを実行してください。あなたは何かを改善するアイデアをお持ちですか?それを進めてください。何かを改善するために別のスキルが必要ですか?勉強しなさい。
自分がやっていることに関心があり、改善したいことを示します。
多くのJrプログラマーが持っているとは思えないスキルの1つは、独自のツールを作成する能力という非常に優れたスキルです。いくつかの優れたカスタムツールを使用すると、多くの時間と労力を節約できます。そして、それらは派手である必要はありません、私のもののほとんどは3行のシェルスクリプトですが、いくつかははるかに長いです。
しかし、物事を自動化することを学ぶことはあなたの人生を容易にします。 (そして、あなたが物事をうまくやり遂げることができるとき、あなたの同僚に印象づけてください)
あなたを怖がらせることはまったくありませんが、私がこれまでに取り組んだすべての会社でそれについて警告する1つのことは、大きな汚い巨大なスクロールメソッドと、ソースファイルを完全に開くことを恐れる悪質なオブジェクトです。そのような混乱のショックと恐怖。これらが通常見つかる場所は、ダイアログの[OK]ボタンのイベントハンドラ、またはWebページの[送信]ボタンです。
心よりおねがいします。メンタルアラームベルをインストールしてください。メソッドが大きく見え始めたら、10行以上ということです。別のメソッドを作成することを考えてください...多くのメソッドは後で、どの程度の責任があるかを理解します。あなたが開発しているオブジェクトは持っています。
私がお勧めする次の警報ベルは、メソッドの最大2〜3パラメータです。約10の入力パラメーターを持つメソッドが表示された場合は、OO言語...
この応答で表されたわずかな欲求不満でごめんなさい、私はそれをきれいなコードを書く方法を学ぶことがどれほど有益であるかを十分に叫ぶことはできません。
Robert。C Martins Clean Code のコピーを入手してください。毎週読んで、夕食に取り出して、枕の下で寝て、トイレでそれをコピーして、数ページを印刷して天井に貼り付けて、寝るときに前に読んでください。うなずきます;).
皆様のご活躍をお祈りしております。この時点でのあなたの情熱はすでにあなたが素晴らしいことをすることを示しています。
私が提供できる唯一のアドバイスは、学習を止めることではありません。それらのロックスターの開発者がそこにたどり着く方法は、新しいテクニックと言語を学ぶために時間をかけることによってあり、彼ら自身の自由な時間です。 10年間滞在するのは素晴らしいことですが、出てきたときはJava + Spring + Hibernateしか知りません。これが私の空き時間に.NETプラットフォームを見る理由です。 Python、およびアクティブな状態を維持するためのC++コード情報秒単位でMSに取り組んでいる誰かとして、時間は貴重であり、賢く費やす必要があります。
グーグルを使用する機能。本当に。
私は誰も、特に後輩を助けようとはしませんでした。しかし、継続的に問題を解決するためにデューデリジェンスを行わない人がいることに、いらいらすることはありません。
ジュニアソフトへのアドバイス。エンジニアは問題を解決するためにあなたのデューデリジェンスを行うことです。何かがわからないときは、グーグル、ウィキペディア、またはスタックオーバーフローを熱心にそして系統立てて使用してください。
組織のタイプにもよりますが、もっと年長の同僚に助けを求める前に、あまり長く待たないでください。人々がお互いを助け合う良い会社で、もしあなたが答えを見つけるために半日以上費やしているなら、助けを求めるためにあなた自身の研究をやめることを躊躇しないでください。
人々が常にお互いに意地悪である他の組織では、助けを求める前に、自分で数日を費やさなければなりません(これまでに行ったすべてのことと、調査したすべての場所を文書化します)。そのような会社では、あなたが何をしたかを文書化すると、「あなたはそれをグーグルでやった」と彼らがあなたに投げつける最初のレトルトになるのでそれを示すことができます。
しかし、とにかく、私がジュニアエンジニアに求めることの本質は、常に彼に回答を処理することを期待するのではなく、問題を解決しようとする彼のデューデリジェンスを行うことです。簡単に言えば、Googleを使用できることを示してください。
(1)オープンマインド。あなたは、すべてのプロジェクトで言語Xと環境Yを使用するように制度化された誰かを望んでいません。特定のテクノロジーが問題をきれいに解決できず、優れた代替手段を提供できない場合に、再調整できる人が必要です。その上、従来の考え方に挑戦し、ビジネスを動機づけるソリューションを考え出せる人を求めています。あなたはこれを自分で経験するかもしれませんが、人々は彼らがそれを変更しないプロセスに慣れていることに気づきましたが、それでも彼らが引き起こす痛みの量について不満を持っています。通常私が到着したとき、私はそれを改善する方法を見て、私のマネージャーに解決策を提供します。今、私はまた、個人は彼/彼女の提案について「外交的」であるべきだと言います:)
(2)優れたドメインモデリングスキル。これはかなり大きなもので、見落としている人もいます。私が働いたいくつかの場所では、ビジネスについて学ぶことは「手を汚す」ことであり、人々はスペルチェッカーをバージョン管理に統合するなどの純粋に技術的な問題に恥ずかしがり、彼らは改善に多くの時間を費やしませんビジネス。ビジネスを見て、そこからモデル(簡略化)を作成し、話されているか、視覚的(UML、SSADMなど)、またはその両方であるかを問わず、さまざまな対象者にそのことを伝えることができるため、その考え方を持つ人が必要です。
この件に関して私がお勧めできる2冊の本は The Passionate Programmer と The Pragmatic Programmer です。どちらの本も、ジュニアプログラマーとシニアプログラマーに良いアドバイスを提供しています。