現役エンジニアが語る!エンジニアとして成功するために知っておきたい大事な9つのこと
これからエンジニアというキャリアを目指している方向けに成功するための大事な9つのことを現役のエンジニアが語っています。プログラミング初学者、未経験者は学習を始める上で知っておきたいことが詰まっているでしょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
本稿は、Codementorのブログ記事を、Codementorより了解を得て日本語翻訳し掲載した記事になります。
CodementorのSteve Klabnik氏(以下Steve氏)は、オープンソースプロジェクトのコントリビューターとして知られており、2014年には1900以上のコントリビュートを行っています。
今回は、Steve氏よりこれからエンジニアを目指している方に「エンジニアとして成功する上で大事な9つのこと」を紹介していきます。
1. 常に1つのことに集中する
自分が新しいことを学ぶときはいつでも、やるべきことを分解して取り組むようにしている。
プログラミングをする際、作業によっては複雑に構造化して考えるものがあるだろう。1つのタスクを消化するためにもあらゆる方法があり、選択するだけで迷ってしまう。
ただ、何をするにもプラス面マイナス面はあるわけだから、1つのことに集中し、それに向かうことが大事なのだ。
2. 人々はそれぞれいろんな考えを持っている
プログラミングを知らない人の中には、簡単なことだと思っている人もいる。そういった人は、アセンブリのコーディングをすればあとは全てコンピュータがやってくれると勘違いしている。
本当のWeb開発者は、マークアップ言語・プログラミング言語を書き、スタイルを当ててあらゆるデバイスやシステムに応じて作っているのが事実である。もちろん相当難しいことだ。
3. 80%の仕事で十分だ
同じ車というものを作る上でも乗用車とレースカーでは必要な機能が違うだろう。
レースカーに搭載されている機能すべてが乗用車でも必要になるということはほとんどない。それは逆も然りだが、つまり80%くらいの完成度で十分なのだ。残りの20%の機能というのはほとんどの人が使わないし100%完璧を目指すのはよろしくない。
残りの1%のバグを追いかけても時間を浪費するだけなのだから。
4. 「ググる」能力を高めよう
多くのプログラミング初学者は、「ググる」という仕事を過小評価しすぎている。私の仕事ではよくプログラミングをする時間よりも何か検索していることの方が多かったりする。
コスパとタイパ、両方結果的に良くなる良くなる学び方とは?
「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ
結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。
コスパ・タイパ最適化の参考として、
テックアカデミー卒業生がスクールを選んだ理由
をご紹介します。
- ・困ったときに、質問や相談できる相手がいるため挫折しなかった
- ・プロとして必要なスキルのみを深く学べたので無駄がなかった
- ・副業案件の提供と納品までのサポートがあったので目的を達成できた
安価・短期間で広く浅く学んでも意味がありません。
本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に
無料相談
に参加してみませんか?
カウンセラー・現役のプロへ、何でも気軽に無料相談可能。
30分か60分お好きな時間が選べて、かつ3回まで
すべて無料で
ご利用できます。
無理な勧誘は一切ない
ので、お気軽にご参加ください。
5. 分からなければ聞く、分からない人がいれば助ける
プログラミングは、社会的な活動要素が多い。もし知人のサポートが無ければ自分は良いプログラマーにはなれなかったと思う。周りの知人は何かしら得意分野があって何か聞けばすぐに教えてくれる。逆に彼らから質問があればサポートするようにしている。
6. 技術は常に変わり続けている
テクノロジーは常に変化しており、プログラマーも言語主義者でいてはならない。
もし私が1980年代にプログラミングを始めていたら間違いなくアセンブリ言語を利用していただろう。しかし今ではほとんど使われていない言語だ。
これは全てのテクノロジーに当てはめることができて、Ruby on Railsも誰も使わない将来が訪れるかもしれない。
7. オープンソースに貢献しなくても問題はない
私にとってオープンソースに貢献したりドキュメントを作ることはより自分をステップアップするために大事な要素だけれども、ほとんどの人はドキュメントを読むことすら退屈に感じるだろう。
だからオープンソースに貢献するよりも自分にとってのゴールに向かうことが大事なのだ。
私のケースを少し話そうと思う。
私がRailsのコントリビューターになりたいと思った時に、当時あった未解決のイシューに全て目を通したことがあった。その中から一つピックアップし、解決案を提出したらそれが受け入れてもらえたのだ。その体験が自分にとっては本当にワクワクするもので
より自分の技術のレベルを上げるために難題にチャレンジし、
8. プログラマーは失敗の連続である
もしあなたがテスト駆動開発をした場合、「red, red, red, green, red, red, red, green」といった反応を見ることになるだろう。どういう意味かと言うと、作業のほとんどがエラーの連続であるということだ。
もちろんエラーばかり表示されて先に進めないと気分も下がるだろう。ただ、完璧にいかなくても上手く動かなくても焦ることはない。それがプログラマーの仕事なのだから。
9. 諦めない
プログラミング初学者からすると、何が難しくて何が簡単なのかイメージしづらいだろう。だから簡単だと思っていたことが本当は難しい実装であったりする。もちろんその逆も然りだ。
XKCDのイラストはそれを見事に表現している。
Q. ユーザーが写真を撮ったらナショナルパークにいるかどうかチェックしてもらってもいいかい?
A. お安い御用。数時間あればできるよ。
Q. あ、あと鳥の写真かどうかチェックしてほしいんだ!
A. それは研究チームと5年くらい時間が必要だな。
同じような質問にも見えるが、開発の難しさは大いに異なる。開発経験がない人からすれば、何が難しくて何が簡単なのか分からないかもしれない。
ただ、それは難しいプロジェクトを完成するごとに自分で理解してくるもの。そして、解決案やこうすれば良いといった勘はやっていく中で身につくものだ。
もちろん初めの頃は極めて大変かもしれないが、やっていく中で簡単に感じていくものだろう。
[お知らせ]TechAcademyでは初心者でもエンジニアになれるオンラインブートキャンプを開催しています。これからエンジニアを目指す方はぜひご覧ください!
プログラミングを独学で学習していて、このように感じた経験はないでしょうか?
- ・調べてもほしい情報が見つからない
- ・独学のスキルが実際の業務で通用するのか不安
- ・目標への学習プランがわからず、迷子になりそう
テックアカデミーでは、このような
学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供
しています。
30分間、オンラインでどんなことでも質問し放題です。
「受けてよかった」と感じていただけるよう
カウンセラーやエンジニア・デザイナー
があなたの相談に真摯に向き合います。
「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」
こんなささいな悩みでも大丈夫です。
無理な勧誘は一切ありません
ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)