プログラミングを学ぶ際に、プログラミングスクールに通うか?独学で勉強するか? そんな選択肢について、自営エンジニアを20年以上続けてきました僕なりの考えを書いてみたいと思います。
※参考サイトは最下部にまとめております。
目次
結論
結論から言うと独学がおすすめです。というよりも独学に慣れているような人の方がエンジニアには向いている…と思います。
理由は、エンジニアと言う職業は、日進月歩のIT業界の中で、新しい OS やプログラミング言語、フレームワークやライブラリなど…それらを用いて あるいは組み合わせながら、その時代のニーズにあった新たなシステムをイメージし構築していく…そういった職業です。
つまり日々の業務が、誰かから与えられるものではなく 自力で突破しなければならないソリューション(問題解決)の連続です(フリーランスの場合には余計にその傾向があると思います)。
日々クライアント様から依頼される案件・要件をどのように解決していくかは(プログラミングスクールなどで)誰かに教えてもらいながら得られる知識とは違い、自らが調べ情報を得て発想し、どの言語のどのライブラリを使って実現していくのか?そういった問いに対して経験を通して答えを見つけていく…しかありません。
そういった問題解決の現場では独学で学習していける能力が少なからず必要であり、独学に慣れている方の方が向いている と考える理由です。
現代のプログラミング環境
ただ、現代のプログラミングの環境は 僕が中学一年のときにポケットコンピュータ(CASIO PB-100)でプログラミングを学び始めたときとは 時代背景・IT環境が全く異なります。
僕がコンピュータを学び始めたときには、購入したポケットコンピュータに BASIC 言語のマニュアルがついており その冊子を読み始めたことが独学の一歩目だったのですが、その後デスクトップパソコンを使うようになった頃でさえ 耳にしたプログラミング言語といえば、BASIC、アセンブラ、マシン語…その数年後に C 言語…くらいしか存在していなかったのです。
さらに言うと、パソコン教室もプログラミングスクールもなかったので、独学するしかなかった…と言う話しもあります、、
ところが、現代のプログラミング環境といえば、プログラミング言語やフレームワークは無数にあり、コンピュータのニーズが拡大してIT業界が成長・発展したことで 職種もプログラマー、SE、プロジェクトマネージャー、ネットワークエンジニア、データベースエンジニア、ITコンサル…と こちらも多種多様な職種が存在しています。
それらの巨大なIT業界の中で、自分がこれから先 どんな職種のどんな現場で どんな言語を用いることが最短コースを進んでいけるのか?!その解を導き出すのは…確かに容易なことではありません、、
まずはスクールからはじめて基礎を教わり、独学力や問題解決能力は その後 実際の業務を通して身に付けていく…という選択肢も 決して間違った進み方とは言えないと思います。
(かくいう私も 個人的にプログラミング相談を受けたりしてますので、、)
目的とする働き方/ポジションは?
フリーランスで一人で仕事を受けていく、とか、社内で上の役職(トッププログラマーやプロジェクトリーダー)を目指す…といった人には独学力は やはり最低限必要とは思いますが、IT業界のエンジニアがすべてそういった職種の方々だけで構成されている訳ではありません。
そういったシステム設計を担う人を指して「エンジニア」と呼んでいるイメージもありますが、それらとは別に それらの設計者の指示に従い 具体的にコーディングを進めていく “プログラマー” や “コーダーさん” もチーム開発には必要になりますし、それらのポジションの方々にとっては 独創性よりもむしろ調和性(コミュニケーション能力)の方が重要となるポジションもあり、そういった場合には スクールのような大人数/グループの中で協調性を保ちながら学習を進めていくことで また別のスキル(例えばコミュニケーション能力など)を身につけられるのかもしれません。
実際、現在弊社で求めているのは 独創的なエンジニアではなく、指示通りにコーディングをして頂けるような…言ってみれば独創性のないエンジニアさんだったりしますので。
※独創的で突破力のあるエンジニアさんも良いのですが、納品先の弊社にとって理解できない世界観のプログラムを書かれても システム保守の観点からは 全く優位性があるとは言えません。。
また、プログラミングを学ぶ理由が、例えば在宅でちょっとした仕事が始められればいい、または、週末に副業したい…など、そこまで本格的なエンジニアを目指しているわけではないと言う方にとっては、そう神経質に考える課題でもない という状況も大いにあり得ると思います。
独学のデメリット
では逆に独学のデメリットですが…
あまりにも自分の世界に入りすぎて、まわりが見えなくなる、、どんなプログラミング言語が最新なのか、、全くついていけなくなる、、「Python てナニ?!」みたいな、、汗
そんな井の中の蛙状態になってしまう危険性があります。独学が好きであっても、他者との協調性を損なわないように気をつけながら学習していく必要はあると思います、、
最後に
僕個人もプログラミングを教える活動をしていますが(MENTA 他)、ご相談頂く方の中にも「プログラミングスクールへ行こうと思っているのですが、どういったスクールが良いと思いますか?」と言う質問を受けることもあります。また、昨今は街を歩いていてもネット上でも Progate をはじめ パソコン教室やプログラミングスクールなどが多数ありますし、言い換えれば そういったニーズが多くあるということに他ならないと思います。
当ブログでも この先、それらのサービスにどんなメリット・デメリットがあるのか…を僕なりに少しずつ考察していきたいと思います。
参考サイト
Progate
https://prog-8.com/
MENTA
https://menta.work/member/dash
Udemy
https://www.udemy.com/
SNS開発18年で2つのSNSを開発・運用中の当社が、あなたのアイデアを形にするお手伝いをします。