プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

並外れて優れたWeb開発者になる方法:新人エンジニアが身につけるべき7つの原則

本当に優れたWeb開発者になるには、何が必要なのでしょうか?

プログラミングのキャリアをスタートさせたばかりの人なら、仕事が思うように簡単にはいかないことにすぐ気づいたはずです。

コーディングのチュートリアルを見たり、技術書を読んだり、ポートフォリオサイトを作ったりするのは一つのこと。しかし、仕様書をもとに実際のWebサイトを構築し、納期を守り、さらに上司やクライアントを満足させるのは、まったく別次元の話です。

そのうえ、テクノロジーの世界は変化が速く、最新トレンドを追い続けなければ、来年には時代遅れになってしまうのではないかと不安を感じるかもしれません。

でも、ある秘密を教えましょう。恐れる必要はありません。

仕事を続けるうちに経験は積み重なり、コーディングを学んだのと同じように、職場で高いパフォーマンスを発揮する方法も学べるのです。

優れたWeb開発者になることは学べます。さらには、「いなくてはならない」存在になれるほど優れたWeb開発者になることも可能です。(雇用の安定を保証することはできませんが、言いたいことは伝わりますよね。)

筆者は独学でWeb開発を学び、コンピュータサイエンスの正規課程は一度も受講したことがありません。この業界での経験は約7年で、その間、急な学習カーブやインポスター症候群(詐欺師症候群)にも苦しみました。

しかし同時に、貴重な経験やスキルも数多く身につけてきました。私の経験とあなたの経験には、どこか共通点があるかもしれません。

最初の仕事:恐怖との2年間

初めて本格的な職場でジュニアWeb開発者として働き始めたとき、私は興奮のあまり有頂天でした。

しかし正直に白状すると、最初の2年間は恐怖でいっぱいでした。

毎日、仕事でやり方がまったくわからないタスクに直面し、どう手をつければいいのかすら見当がつかないことも多かったのです。

自分が無能だと感じる瞬間が何度もありました。

幸いなことに、すべては最終的にうまくいきました。とても支えてくれる上司や同僚がロープの結び方(仕事のコツ)を教えてくれ、なんとか納期もすべて守ることができたのです。

時間が経つにつれ、以前ほどストレスを感じなくなりました。

そして4〜5年経った頃には、自分のスキルに自信を持てるようになっていました。「5年もかかるのか」と聞こえるかもしれません。特にキャリアを始めたばかりの人には長く感じるでしょう。

だからこそ、これだけは覚えておいてください。

成功は一夜にして訪れることはありません。しかし、努力を続けて諦めなかった日々、週、月、年の先には、必ず訪れるのです。

短いキャリアの中で多くのことを学んできたと感じています。そして、懸命に努力して今の仕事を掴んだ新人Web開発者たちの力になりたいと思っています。

以下に紹介する原則を実践すれば、集団の中で際立ち、会社や顧客にとってかけがえのない存在になれるはずです。

まだ就職していない段階でも、これらの原則のほとんどは学習プロセスに応用できます。

並外れて優れたWeb開発者になりたい方は、ぜひ読み進めてください。

1. あらゆる習熟はマラソンであり、スプリントではないと理解する

ブートキャンプや大学を卒業してすぐに仕事に就けたなら、それは素晴らしいことです!ただ、それがコーディングの旅の始まりにすぎないことを忘れないでください。

Web開発は幅広い分野であり、他のスキルと同じように、本当に上達するには時間がかかります。あなたの前には長い道のりが広がっており、現時点ではまだ知らないことが山ほどあります。

しかし、それでいいのです!あなたは初心者なのだから、今すぐあらゆることのエキスパートである必要はありません。

筆者が小学5〜6年生の頃、姉がアメリカの大学入試用標準テスト「SAT」の勉強を始めていました。妹の私はそれに憧れて、練習問題に挑戦してみました。

当然の結果ながら、全く解けませんでした。1問も正解できなかったと思います。当時から負けず嫌いだった私は、完璧なスコアが出せなかったことで癇癪を起こしたものです。

読者の皆さんがコーディングの問題が解けなくて癇癪を起こすことはないでしょうが、同じことです。今この瞬間に、すべてを知っている必要はないのです。

そんなことは非現実的ですし、大きなストレスのもとになります。

もちろん、学びたい、上達したいという向上心は大切です。

しかし、自分の進捗を俯瞰的に捉え、今の自分の位置を現実的に受け入れるようにしましょう。

目先の一瞬だけでなく、キャリア全体という長期的な視点で考えることが重要です。

2. 助けを求める前に、まず自分で全力で取り組む

キャリアの初期、未知の領域を探索しなければならない感覚は不安を煽りました。わからないことを理解しなければならないというプレッシャーを常に感じていたのです。

そんな状況で選択肢は2つありました。1つ目は、上司のもとへ戻ってこう言うこと。「申し訳ありません、これのやり方がわかりません。やっていただけませんか?」

それは短期的には楽かもしれませんが、長期的には良くありません。解決策を見つけられない社員は、周囲の時間を奪ってしまうからです。

もう1つの選択肢は、まず自分でできる限りの調査を行うことです。やがて自分が理解できる限界に行き当たります。

そこで初めて上司のもとへ行き、こう伝えます。「申し訳ありません、これは解決できませんでした。ただ、ここまで試したことと、おそらくこれに関係していると思う点があります…」

違いがわかりますか?

早々に諦めて他人に仕事を押し付けるのではなく、まず自分でできる限りのことを行い、助けを求めるときには自分なりに取り組んだ痕跡を見せるのです。

自力での調査と検証は、新しい概念を独学で学ぶ力を養います。これには2つのメリットがあります。

1つ目は、仕事を通じて新しいスキルを学べているということ――つまり、学びながら給料をもらっているようなものです。2つ目は、自力で解決できる質問で上司や同僚の時間を奪わないので、会社にとって資産となれるということです。

もちろん、逆の極端もあります。助けを求めればすぐに答えが得られた問題に、何時間も、場合によっては何日も悩み続けるのは得策ではありません。時間を使いすぎている状態です。

どこまで自力で試み、いつ助けを求めるべきかのバランスは、自分で見つけるしかありません。しかし経験を積めば、ちょうどよい中間点が必ず見えてきます。

3. 好奇心を持ち続ける

仕事を始めた頃、私は「スポンジのように情報を吸収する」という良い評価をよく受けていました。

やり方が完全にわからないことでも、何でも喜んで挑戦しました。物事がどう動いているのか、純粋に知りたいと思っていたのです。

物事の仕組みを理解したいという欲求は、あらゆるエンジニアの核心にあります。その欲求を、好奇心で育てましょう。

単にタスクを片付けるためだけに、その好奇心を閉ざしてはいけません。「なぜ」を理解することは極めて重要です。

何かの実装方法を調べているとき、Stack Overflowのコード断片で答えを見つけたら、そこで調べるのをやめていませんか?

差し迫った納期に追われていないのであれば、あと数分だけ時間をかけて、その解決策と自分のコードへの組み込み方を見てみましょう。

なぜ以前のコードは動かなかったのか、なぜ今は動いているのかを理解しようとしてみてください。100%理解できなくても大丈夫です。概念を掴もうとするだけで十分です。

今回完全に理解できなくても、次に同じ問題に遭遇したときには、より深く理解する準備ができています。

4. 常に改善を続ける

これはWeb開発だけでなく、人生のあらゆる領域に当てはまります。料理、車の運転、さらには人間関係まで。

何かがうまくいかなかったと気づいたら、一歩下がって状況を俯瞰してみましょう。自分自身に問いかけてください。何を望んでいて、なぜそれが実現しなかったのか?

コードが原因でWebサイトが壊れたなら、何が起きたのか、今後どうすれば防げるのか?

同僚に何かを説明しようとして口論になったなら、何が引き金だったのか?状況を悪化させる方向に働いた発言はなかったか?

次のステップを試してみてください。

  • うまくいかなかった状況を振り返り、分析する。
  • 何が起きたのかを突き止める。
  • 次回同じ問題を避けるために取れる具体的な行動を考える。

時間はかかりますし、すべての意思決定を振り返って分析する時間が本当にないこともあります。

しかし、失敗や衝突を学びの機会にせず見過ごし続ければ、同じ過ちを繰り返すことになるでしょう。

これは簡単ではありません。ネガティブな出来事が過ぎ去ると、深く考えたくないというのが自然な本能だからです。

「人生のデバッグ」と考えてみてください。コードで毎回まったく同じミスを繰り返していたら、かなり非効率ですよね。それは、二度と起こらないようにするために学ぶべき何かがあるということです。

小さなミスであっても、自己認識と自己改善を組み合わせたこの習慣を続ければ、長期的には必ず報われます。

5. 問題解決能力を極限まで高める

Web開発者にとって、仕事の大部分は問題解決です。新しいコードを書くにせよ、既存のコードをデバッグするにせよ、最終的なゴールは「思い通りに動作させること」です。

では、コードにおける問題解決のスキルを磨くにはどうすればいいのでしょうか?

まず、それが何をすべきものであるかを正確に理解し、プロセスに関わるすべての要素を把握します。そうすれば、問題がどこで発生しているのかを特定し、修正できるようになります。

例:壊れた照明を直す

説明のため、動かなくなった照明を修理する場面を想像してみましょう。

トラブルシューティングの第一歩は、理想の動作を特定することです。この場合、「スイッチを『オン』にすると電球が点灯する」というのが理想の動作です。

それが実現していないなら、プロセスの各ステップを順番に確認して、どこで失敗しているのかを突き止めます。

チェックリストは次のようになるでしょう。

  • ステップ1: 家の電力はコンセントから供給される。家の電気が入っているか、コンセントが正常に機能しているかを確認する。
  • ステップ2: 照明器具がコンセントに接続され、電気が器具内を流れる。照明のプラグがコンセントに差し込まれているかを確認する。
  • ステップ3: 電気はコードとスイッチを通って流れる。コードとスイッチの両方が正常に機能しているかを確認する。
  • ステップ4: スイッチをオンにすると、電気が電球に届き、点灯する。電球が切れていないか、正常に動作するかを確認する。

各ステップを順にテストすれば、消去法によって問題の犯人を絞り込み、特定できます。

もちろん、コードの問題を発見・修正する作業は、電球のテストよりはるかに複雑です。しかし、プロセスは同じです。

正直に言えば、コードのデバッグやトラブルシューティングは非常にストレスフルです。特定の問題に文字通り数日、数週間も足止めされたこともあります。これこそWeb開発者の仕事で最悪の部分です。

しかし裏を返せば、ついに解決策を発見した瞬間の感動は格別です。その瞬間、全能感に近いものを感じるかもしれません。あの高揚感こそ、Web開発者の仕事で最高の瞬間なのです。

非技術系スキルを見逃さない

ここからの2つのアドバイスは、これまでの内容とはかなり毛色が変わります。プロのWeb開発者には、コーディングとは全く関係のない側面もあるからです。

いわゆる「ヒューマンスキル」「ソフトスキル」と呼ばれるものです。

私たちはコードを扱ってはいますが、最終的には人と共に働いています。私たちが作るWebサイトやアプリは、人間のためのものです。どんな職種であれ、顧客、クライアント、同僚といった人間と関わらずにはいられません。

最高のWeb開発者は、コーディングが得意なだけではありません。全体像を理解する力と、人と協働する力にも長けているのです。

個人的には、この最後の2つの原則こそが、他の開発者との差別化を生むと考えています。習得は容易ではありません。異なる種類の複雑な思考が求められるからです。

そして多くのWeb開発者は、こうした非技術系スキルを磨く必要性に気づいてすらいません。

こここそが、あなただけの唯一無二の価値を築き始める場所なのです。

6. 他者への共感を育む

共感とは、他者の感情、ニーズ、視点を認識し、理解することです。要するに、相手の立場に立って物事を見る能力のことです。

夫と喧嘩をするとき、私たちは最初、互いに反発し合います。私は「自分が100%正しい」と感じるかもしれません――現実にはそんなことは絶対にありませんが!それでも、辛くても難しくても、私たちはすべてを話し合います。

やがて、すべては誤解から来ていたのか、どちらかが疲れていたのだと気づきます。二人とも、相手の視点から状況を見られるようになるのです。

大切なのは、正しさや議論の「勝ち負け」ではありません。共感を持ち、相手と同じページに立つことです。

同じように、人と一緒に働いていれば、意見の対立や衝突は避けられません。

しかし、早合点して相手を悪者扱いするのは避けましょう。相手の言動があなた個人を攻撃する意図だった可能性は、ほとんどありません。

相手と話をして、その背景にある事情を探ってみてください。忙しすぎてメールの返信を忘れていただけかもしれないし、最悪の会議を終えたばかりで、残念ながらそのストレスを素っ気ない返信という形であなたにぶつけてしまったのかもしれません。

相手に好意的な解釈を与えることにとどまらず、職場での共感には、他者の業務量や状況への配慮と敬意も含まれます。

例えば、同僚が締め切りに向けて猛烈なペースで働いているとしましょう。そのクランチタイムに、急を要さない無関係な件で邪魔をするのは控えましょう。

落ち着いた後に「どうだった?」と声をかけるのは、素敵な気遣いになるでしょう。

関連して、職場のマナーについてさらに学びたい方には、アドバイスブログ「Ask a Manager」をおすすめします。職場で何をすべきで、何をすべきでないかについて、非常に有益な情報が満載です。

7. 受動的ではなく、能動的に動く

筆者の考えでは、「能動的であるか、受動的であるか」は、成功する人と平凡な人を分ける資質です。

受動的な社員は、頼まれた仕事はこなしますが、それ以上のことはしません。問題が起これば修正はしますが、再発防止のために先を考えたりはしません。

全体像や、システムの相互に関連する部分がどう連携するかを考えることはありません。受動的な人のデフォルトの思考は「自分に影響がなければ、自分の問題ではない」というものです。

非常に短絡的な発想です。彼らの仕事の質が悪いわけではありませんが、本来成し得た多くのことを逃しています。

一方、能動的な社員は、割り当てられた仕事を終えて終わりにはしません。作業を進めながら、小さな改善を積み重ねます。

問題が起これば、何が起きたのかを分析し、再発しないための変更を行います。常に、職場のプロセスをより効率的にする方法を考えているのです。

要するに、能動的な人は、未来を改善するために現在に働きかけるのです。

彼らは全体像を見渡せ、その改善のために労力を惜しみません。

素晴らしいと思いませんか?

能動性というスキルを身につけるには、試行錯誤と大量の観察が必要です。しかし一度コツを掴めば、その恩恵は仕事以外の人生のあらゆる領域に波及していきます。

おわりに

優れたWeb開発者になるためのヒントをお読みいただき、ありがとうございました!新人のWeb開発者の方々に、少しでも役立つ内容だったなら嬉しいです。

ご質問やご意見があれば、遠慮なくコメント欄でお聞かせください。

  1. 【2024年最新】Snapchatで相手がオンラインかどうか確認する5つの方法

    Snapchatは、家族や友人と瞬間をリアルタイムで共有できる人気のSNSアプリです。スナップ連続記録(ストリーク)の維持、写真や動画の送受信、ストーリーへの投稿、チャットなど、さまざまな楽しみ方ができます。 しかし、Snapchatには一つ大きな弱点があります。それは、他のSNSのような「オンライン状態」の表示機能がないことです。InstagramやFacebookのように緑色のドットでアクティブなユーザーを確認できないため、「あの人は今オンラインなのか?」と気になる方も多いはず。 実は、Snapchatにも直接オンライン状態を確認するボタンはありませんが、いくつかの裏ワザを使えば相手がオン

  2. Chrome OSのデベロッパーモードを有効にする方法【手順と注意点を徹底解説】

    Chrome OSのデベロッパーモードを有効にするのは簡単な作業であり、Chromeオペレーティングシステムの新たな可能性を大きく広げてくれます。「Chromebookはできることが少ない」と誤解している人は多いですが、実際にはそうではありません。デベロッパーモードを有効にすれば、その壁を打ち破ることができます。 ただし、デベロッパーモードを有効にするとGoogleのセキュリティ機能が一部無効化される点には注意が必要です。その一方で、開発者はChrome OSの内部コードにアクセスできるようになり、UbuntuなどのLinuxシステムをダウンロードして、既存のChrome OSと並行して動作さ