「なりたい職業1位」から考える、これからITエンジニアを目指すあなたへ
なりたい職業の1位が「エンジニア職」という衝撃
2021年に実施した高校生向けのアンケートで、なりたい職業の1位が「エンジニア・プログラマー」となったらしい。
背景としては、
- 情報系の授業が増えた結果、ICT教育が盛んになった
- プログラミング教育が必須化された
などが考えられるでしょう。
文系出身のエンジニアは一定数存在する
おそらく、ここにどっぷり浸かっているような皆様は「まーさかそんな〜」と思っているかもしれませんが、
毎年のように、某社のようなSIerへは、プログラマーを志望する文系学生が一定数現れます。
そのような人たちが数カ月程度で活躍できるかといわれるとそうでもないわけですが、情報系出身者だから活躍できるかといわれるとそうでもありません。
そもそも、「プログラマーの素質」ってなんだろう?
「エンジニア育成」というものに片足を突っ込んではや数年になりましたが、
プログラミングの素養は、あまり学生時代の勉強内容とはリンクしないことをひしひしと感じています。
文系や理系・情報系といった「卒業学科」という大きな括りよりも、「何を勉強してきたか」という方が大きな比重を占めます。
その上で、「エンジニアへなるために気をつけたいこととは何か?」を紹介します。
はじめに:謝辞
この記事内容は、「ITエンジニアを目指したいんだけど大丈夫かなぁ?」と考えている方へのメッセージです。
ITエンジニアになりたい君へ送る言葉
その1:学校の授業で充分かといわれるとNO
稀に、学校でJavaやC言語を勉強していても、エンジニアとしての仕事がうまくできない、という人がいます。
簡単にいうと、言語の知識はあるけど「どう使っていいか」がわからない、応用力がまったくない人です。
あまり深くは触れませんが、学校の授業の多くは「暗記ゲー」です。
これは情報系の授業でも同じで、たとえ「forの正しい書き方を選べ」とか、「この中からプリミティブ型を選べ」とか、そういった類の問題が多く出題されます。
そうなると、「プログラミング言語」の知識はあるのですが、それをどう使うべきなのかまでは勉強できません。
とはいえ、「アルゴリズム」に関する部分まで包括していたり、実際に演習形式でサービス構築までが含まれる学校も多く、このようなパターンは正直稀です。
まずは自分で考えて作ってみよう
「何か勉強しておいた方がいいですか?」
と学生に聞かれたら、間違いなく
「なんでもいいから自分で考えて作ってみたらいいよ。今ならスマホアプリとかいいんじゃない?」
と答えています。
特にスマホアプリである必要はなくて、WebエンジニアならWordPressを立てて運用するとか、
インフラエンジニアならVPC契約していじくり回すとか方法は色々です。
「まずは自分の力でひとつ作ってみる」ができれば、エンジニアのファーストステップとしては必要十分条件を大きく超えています。
ただし、「できなかった」からといって悲観する必要はありません。
「なぜできなかったのか」「何がわからなかったのか」を覚えておきましょう。
先輩社員が優しく教えてくれます。きっと。
その2:勉強はしなくてもいいが自己責任
たまに「家でも勉強した方がいいですか?」と聞かれますが、しなくてもよいと思います。
ただし、学習意欲が高い人にはどうがんばっても追いつけません。
同様に、「勉強が苦痛だがなんとか覚えている人」も同様です。
残念ながら、覚えただけでは仕事になりません。
その知識を自分の力にして活用できてはじめての「エンジニアリング」です。
「これさえ覚えておけば安泰」という技術はありませんし、この先登場することもないでしょう。
あるとしたら、「とりあえず使ってみてなんとかできる」という適用力くらいです。
結局、これを身につけるためには情報収集力と吸収力を普段から養っておく必要があります。
目の前に出され、いきなり10を覚えるのは大変です。
しかし、その10を目の前に出されたとしても、過去の実績をもとに5からスタートすれば労力は半分です。
優秀なシニアエンジニアの多くは、最新技術に触れるときでも、過去の知識から少し横にずらしてうまくショートカットしています。
結局、CPUなんて0と1の世界で動いていることに変わりはないし、
ネットワークなんてTCP/IPさえ知っていればあとはそれの応用です。
若い時は目の前に出された情報だけでなんとか仕事がまわりますが、
自分より若い人に抜かれていくことも余裕で起こりうる業界です。
高校生(15才)の頃からプログラミングを始めていれば、大卒入社の時点でPG歴7〜8年なので3年目くらいはすぐ越せます。
成長の早い人の半数は何かしら自己研鑽しています。
残りの半数は趣味でやってるだけなので勉強しているという自覚がありません。
それをどう考えるかはあなた次第です。
逆にいえば、「好きでやれる」なら何も心配要りませんので安心してください。
趣味の範囲でZennやQiitaといったサイトを巡回しているあなたは十分こっち側の人間です。
その3:数学嫌いは向いてない
高等数学の基礎知識はともかく、関数の概念を知らないとまともに設計なんてできないよ。
クラスの概念が理解できない人の多くは関数のin-outの考えすらまともに理解できていない。
プログラミングとは、ただソースコードを書くだけではなく
「プログラムがどう動くのかを想定してコードを書く」ことが重要です。
確かに、目の前に数学は現れませんが、
プログラムの設計業務は、数学の証明をしていることとそう変わりません。
物ことを論理的に考えるのが苦手なのであれば、エンジニア職は向いていないでしょう。
文系・理系で物ことを考えるのはやめよう
ちなみに、この話は文系だからダメとかいう話ではなくただの個人差です。
高校数学レベルになるとなんともですが、
「中学の数学が意味わからなくてヤバかった。だから文系行った」
という人はプログラマーに向いていません。
結局のところ、プログラマーの必要なスキルである「論理的思考」のスキルが見えてくるのが「数学」と教科だった、というだけですので安心してください。
いきなり三角関数や行列計算を使うのなんてゲーム業界かロボット分野くらいでしょう。
ただし、AIやFintech、ロボットやNFTといったバズワードが絡む先端技術を扱う場合、数学の知識が必須になります。
コンピュータの裏側が数学で成り立っている以上、裏側では高度な数学知識が張り巡らされているということを認識しておいた方がよいでしょう。
その4:コミュ障でもOKは幻想
人と会話する方が多い職業であり、会話せずに仕事をする日なんて稀です。
会話と言っても、対面とは限りません。
優秀なエンジニアであればSlackなどを用いて文章で会話しますので、
結局何かしらの方法でコミュニケーションを取っています。
(なんなら、会話よりテキストの方が高いコミュ力を要求されます)
対面、音声、テキストチャット。どれをとったとしても、誰かと会話せずに仕事は進みません。
「コミュ障でも大丈夫!」とか言ってる人は、よっぽどのコミュ力お化けです。
その人から見れば「低い人がいっぱいいる」のは事実なのですが、その人から見た「コミュ障」は普通の一般人です。
気をつけましょう。
エンジニアの素質ってなんだろう?
以上を含めて、エンジニアとしての「素質」ってなんだろう?と考えてみます。
いかに当てはまるようなら素質があるといえるでしょう。ウェルカムです。
- モノを作るのが好き
- 「効率化」と聞くとワクワクする
- プログラミング言語を道具としか見ていない
- 「ないなら作ればいいじゃない」
ITに限らず、エンジニア職ならだいたい当てはまるんじゃないでしょうか。
さいごに
「好きこそ物の上手なれ」
という言葉があります。
「好き」であるのがベストですが、「興味がある」というレベルでもじゅうぶんだと思います。
IT系の技術はその辺りに転がってますので、
- とりあえず拾い食いをする
- 本を一冊買ってやりきってみる
など色々と方法はあります。
とにかく「まずはやってみる。そこから考える」というのが簡単にできる業界です。
裏を返せば、そのうち「なんで何もやって(勉強して)来なかったの?」と聞かれるようになるかもしれません。
IT業界にいかなくても、今後IT知識はあって当然になると思いますので、「まずは触ってみよう」から始めてみてはどうでしょうか。
Discussion
内容に直接関係ない話ですが「あくまでも個人の感想によるものであり、特定企業の採用活動には一切関係ありません。」のところ、Zenn 独自のメッセージ記法を使うとおしゃれに意図が伝わりやすくなりますよ。
!!!
ありがとうございます、(こっそり)変えさせていただきました!