【初学者の質問事例】土日だけの勉強でプログラマになれますか?

先日、プログラミング未経験の方と面談する機会がありまして、表題のような質問内容をいただきました。
話を聞いてみて色々と興味深かったのでその時の内容を書いておきます。

質問の背景

個人情報に差し支えない範囲で、相談者Aさん(仮)の経理を簡単に説明すると次のような感じです。

  • 現在はITとは別業種で働かれている

  • 今後の目標を叶えるためにソフトウェアエンジニアという選択肢も視野に入れて色々と情報収集している

Aさんは情報収集の一環として、いくつかのプログラミングスクールの無料カウンセリングを受けたそうで、相談するなかで次のようなアドバイスを受けたそうです。

■ プログラミングスクール T(仮)
土日でも十分に勉強すればエンジニアになれます。

■ プログラミングスクール S(仮)
エンジニアになるには、どこかのIT企業へ就職することが必須です。

このような回答に矛盾を感じたAさんは、僕に表題の『土日だけの勉強でプログラマになれますか?』という質問をしました。

僕の回答

その時に僕が回答した内容は以下のとおりです。

『何がゴールかによって正解は変わるため、一概に答えることはできませんが、個人的な考えとしては後者の『就職が必要』という回答に概ね同意します。』

これだけだと不足していうと思うため、理由を次のように補足しました。

プログラミングの能力は勉強(コーディング)すればするだけ伸びる

まず、前者の『土日でも十分に勉強すればエンジニアになれます。』という意見については、あながち間違いとは考えていません。

プログラミングは技術職であり、スキルはあるまでは経験した時間に比例して伸びていきます。かつ、ソフトウェアは特殊な分野を選ばなければ、自宅で実践的な環境を作ることも可能であり。専門的な勉強をすることが可能です。

このような特徴から、たとえ土日であっても十分に時間さえ積み上げることができれば、いつかは人並みにソフトウェアを作れるようになるのではないかと考えています。

ソフトウェア開発には一人の勉強では習得できない(習得しにくい)スキルもある

今回は『エンジニアになるには、どこかの企業へ就職することが必須』という意見に同意したのですが、その主な理由はこちらです。

ソフトウェア開発を学び、成長していくためには、一人では習得できないスキルや習得が難しいスキルが多くあります。例としては次のようなものです。

  • ① チーム開発の経験

  • ② 多くのユーザーが使用するアプリを運用する経験

① チーム開発の経験

ソフトウェア開発は、一人で開発するほうが少なく、多くの場合は複数人の
チームで開発しています。

一人でコーチングする能力も必要ですが、エンジニア同士でお互いに効率的に開発するプロセスやコードレビューのスキルなど、チーム開発でこそ必要となるものが多く存在します。

このような経験は、実際に体験して初めて身につくものですので、一人では身につけることが難しいと感じています。

ソフトウェア開発は、プログラマだけではなく、マネージャーやデザイナー、セールスやCSなど多くの人達と協力して、一つのソフトウェアを開発する『チームプレー』なのです。

② 多くのユーザーが使用するアプリを運用する経験

ソフトウェアは、ユーザーが使って初めて意味を持つものです。
ユーザーに使ってもらうことで得られるフィードバックやトラブルシューティングのスキルは、座学で勉強するだけでは身に付けられないとても貴重な経験です。

企業で働くメリットは、このような【実際にユーザーが使っているアプリの運用】に比較的容易に触れられることにあります。
ユーザーが使うアプリは一人でも開発できるかもしれませんが、初学者にとっては当然難易度が高く、多くのユーザーが使うアプリを開発することは遥かに難しいです。

これらのような理由から、エンジニアとして早く成長したいのであれば、企業に入ることは有効な手段の一つだと考えています。

何を目指すか(ゴール)によって答えは変わる

僕が本当に伝えたいのはこの『何を目指すか(ゴール)によって答えは変わる』ということです。

例えば目指す目標が【一人で趣味のアプリを開発できるソフトウェア】であれば、土日だけの勉強でも十分に実現できる可能性はあります。
しかし、目標が【有名なIT企業に就職したい】であれば、未経験者が土日だけの勉強で到達することは、そうとう難易度が高いでしょう。

『IT企業へ就職する』という目的だったとしても、どんな企業へ就職したいか?や何がやりたいか?を明確にすることで、もっと具体的なアプローチができるようになります。

【年収〇〇万のエンジニアになりたい】や【XXXに関連するソフトウェアを開発するエンジニアになりたい】など具体的な目標を持つことで、どんな勉強をするべきかも明確になってきますし、どんな環境で勉強するかも変わります。

極論『IT企業へ就職する』以外の別のアプローチをするほうが良い場合もあるでしょう。全ては『何を目指すか』を先に決めることが重要です。

まとめ

以上、僕が受けた質問について文章に起こしてみました。

これからエンジニアを目指す人や、今勉強中の人は色々と疑問に感じることや、経験者にアドバイスを求めることも多いかと思います。

その時は、話の前提として『何を目標としているか』や『何が目的か』を明確に伝えるとより自分の求める答えが返ってくると思いますので、参考にしてみてください。

宣伝

ソフトウェア開発やエンジニアの目標達成を支援する個人の活動を行っています。
ソフトウェア開発に不安があったり、目標を達成したいと考えている人はご覧いただいて、ご連絡ください!

この記事が気に入ったらサポートをしてみませんか?