未経験からエンジニアになるために。効率の良い勉強法と気を付けるべきこと
2022/12/15 2022/12/26 システム
はじめに
プログラミング未経験の方から僕にも私にもできますか?といったことや、何からやればいいかわからないといった質問をされることがあります。
気持ちはすごくわかります。
未経験からエンジニアになる方法は未経験からエンジニアになった人に聞くべきだと思うんです。
ということで、私は未経験の頃と経験者となった後の双方の視点から、何かしら参考になることが書けるのでは、と思いこの記事にしてみました。
未経験からエンジニアにはなれるのか
結論、なれます。誰しも始めは未経験です。
しかし、転向するなら悩んでいないで行動するのが吉です。
大学などから学んでいた人や新卒採用からいる同年代に追いつくためにはどうすればいいか。
自分の年齢と彼らの経験年数を比較して何倍くらいがんばれば追いつくか、当然それにかけた年数分同年代も成長するわけですから、追い越すにはそこから何倍努力すれば追い越すことができるのか。
生半可な覚悟では追いつくことすらできないと思います。
実際単純計算でいくわけではないですが、そのくらいの気力は必要かと存じます。
ただ、現職を退いて異業種に転職することを考えているという方はもう既にそれなりの挫折や苦労、成長を経験し、覚悟を決めていると思いますので、心意気の面では大丈夫かと思います。
上記はやや厳しめの書き方ではありますが、未経験ならではのメリットもあります。
システム開発業界は常に進化していますので、一度覚えればそれでよいということはありません。
もちろん基礎的な考えは変わらないのですが、常に勉強し新しいことを身に付けていくイメージです。
時にはこれまでの常識をまず取っ払って考えなければならないこともあったりします。
脳内にインプットするキャパが広いのは”今の”主流な開発手法をスピーディに吸収していくことができるので、それは未経験ならではのメリットになるかと思います。
プログラミング自体の敷居は実はそんなに高くない
真っ黒な画面みながらカタカタやってる。
プログラミングというだけで難しいイメージが先行しがちではありますが、掘り下げていくとそんなに難しくないよというのを説明するために、一度シンプルにしてみましょう。
プログラムは「3つの処理を組み合わせて作る」ことになります。その3つについては以下で説明します。
①順次処理
AをやってB、Bが終わったらC…と順番に処理を実行していくことを順次処理といいます。
最も基本的でわかりやすい処理となります。
②分岐処理
信号が赤だったら止まる。青だったら進む。など、特定の条件に対して処理する内容を分岐して処理を作ることを分岐処理といいます。
③反復処理
特定の処理を何回繰り返す。といった処理を反復処理といいます。10回繰り返す、5回繰り返す等。より実務的な処理では、サーバーへのリクエストに失敗すると3回まで繰り返すが、それでも応答がないときはタイムアウトにするといった感じで使われたりもします。
実際には他にも細かく条件を考慮する必要がありますが、上記3つの処理を自動販売機でシンプルに例えた場合。
お金を受け付ける→金額が130円に達する→商品購入ボタンを点灯させる→押された商品を出す[順次処理]。というのが大まかなフローとなり、その中で以下の様に分岐処理や反復処理が散りばめられています。
投入されたのが130円未満か否か[分岐処理]。
130円未満の場合、お金の入力を再び受け付ける[反復処理]。
商品が購入された場合、残金があればお釣りを出す[分岐処理]
上記のように、どんなに複雑な処理でも分解していくと3つの処理から成り立っています。
そのため、プログラミング自体を学び始めることは、決して雲を掴むような話ではないというのはわかっていただけるかと思います。
未経験エンジニアは何から始めるのが良いか
プログラミングが難しくないというのはわかった。
じゃあまず行動する、といっても何から始めればいいのかという部分についてお話します。
「独学で始めるほうがいいのか。スクールや職業訓練に通ったほうがいいのか。はたまた未経験を雇ってくれる開発会社を探したほうがいいのか」
個人的な意見としてはまずは自分で触ってみる。楽しいと思えたら組織に属するが一番だと思います。
以下でその根拠と注意点について記載します。
独学で始めるのをオススメする根拠
未経験の方が無料で始めることができる素晴らしい教材(サービス)はたくさんあります。
そういったサービスにまず独学で触れてみるというのは大正解だと思います。
例えば以下のprogateというサービス。
取っ掛かりとしては十分すぎるとも言えるボリュームを無料で学習出来て、より深い部分は有料で学習することも可能なのでバランスもよく、何より初学者向けにわかりやすい作りとなっているのでとてもオススメです。
progate
https://prog-8.com/
他にもドットインストールやPaiza、Udemy等オンラインで学習できるオススメサービスはたくさんあります。
ドットインストール
https://dotinstall.com/
Paiza
https://paiza.jp/works
ただあくまでも取っ掛かりとして、「プログラミングが楽しいと思えるかどうか」といった観点で取り組むのがいいかと思います。
独学で始めた際の注意点
気を付けたほうがいいのが、「安易な求人広告に飛びつかないこと」です。
数年前から急に増えたと思うのですが、「未経験から!Ruby60万~!JAVA80万~!」等の広告だったり、Twitterでは「未経験から年収〇桁、秘訣教えます」「フリーランスで楽して稼ぐ」といった甘い話が多すぎるのには注意が必要です。
そういう方の発信の中には「progateを2週したらココナラで案件を獲得してみましょう」といった発言などもあったり…。
もしそれをやってしまうと、ほぼ100%の確率でクライアントに大迷惑をかけてしまうことになると思います。
仮に基本的なプログラムが書けたとしても、クライアントからの要件を仕様として落とし込むことができますか?基本設計はあるから詳細設計に起こしてと言われたら?UT/IT/STレベルでテストをしてと言われたら?インフラ構築やデプロイ環境の管理はできますか?
いずれも不可能で、膨大な時間をかけて試行錯誤しつつ進めることになってしまうと思います。
プログラミングの学習サイトと実務案件は対応範囲から何から違うので、ここは気を付けるべきかと思います。
組織に属するのをオススメする理由
先述したように、実務レベルでの経験を積むのは組織に属するのが一番です。
また、聞ける相手(先輩や同僚)がいるというのは大きな力になります。
右も左もわからない状態だったら、調べるよりも聞いたほうが早いです。
百聞は一見に如かずとも言いますが、聞かぬは一生の恥とも言います。
未経験というステータスを利用して聞きまくればいいんです。
また、仮に独学から案件獲得の茨の道を突き進むとしても、実績がないので案件獲得自体にとても苦労すると思います。
組織に属する際の注意点
一方、組織に属する際にも注意点はあります。
開発会社なのかをきちんと確認する必要があるという点です。
当たり前のことを書いているように見えますが、蓋を開けてみると派遣会社じゃないかといった落とし穴もあります。
IT業界の商流も関係してくるので一言では書けませんが、開発会社だと思って入社したのになぜか別の会社に直行直帰で、周りもそれぞれ別の会社からの集まりなので疎外感を感じ聞きたいことも聞けない。放り出されてしまった感覚に陥ってしまうといったケースです。
新入社員の教育制度がきちんとしているかどうか、正直入ってみないとわからない部分のほうが多いですが、面接は自分を見てもらうだけではなく自分も企業を見定める必要があるので、不明な点があればどんどん質問してみたほうがいいと思います。
未経験からエンジニアになるために重要なことまとめ
ここまで、全くの未経験者がエンジニアになることを考えたときの取っ掛かり方法やオススメする動き方について記載しました。
ただ、最も大事だと思うことは、プログラムを書くのが好きかどうか。だと思います。
好きであれば、組織に属した後も普段の業務の点で疑問に感じることに対してなぜだろうと自然に考えるようになりますし、仕事が終わったあと、プライベートでサービスを1から作ってみたいと思えるようにもなります。
自分で興味が持てるサービスを、ガサツでもいいから1から10まで作ってみる。
全体像を知ることで、小さな部分も見えるようになりますし、今後の業務案件にも大いに役に立つと思います。
まとめとしては、プログラミングは好きになることでどんどん成長できる楽しい仕事です。
ということでしめさせていただきたいと思います。