本記事では「独学でプログラミングを習得するのは無理なのか」というテーマで書いていきます。
ボクの経歴エンジニア歴:6年
習得言語:VBA、JAVA、Ruby、Dart(最近始めた)
【結論】プログラミングは独学で勉強できる
まず初めに結論を言うと”プログラミングを独学で勉強はできます”。
ボクは学生時代に独学で勉強して、簡単なアプリを作れるレベルまでになれました。
そのあと、企業に就職して実践的な学びを得て、今に至っている感じです。
また、以前までと現在ではプログラミングが学びやすさも違っています。
【以前】
少し前までは、今のように誰かがプログラミングを教えてくれるサービスや環境が整っていなかった。
加えて、ネットや本での情報も、今のように充実していなかった。
【現在】
現在は「お金を払えば有識者に教えをもらえる」から、比較的高い確率でプログラミングの基礎レベルに達することができる。
加えて、少し論理的に考える力があれば、ネットや本など低いコストで大量に良質な情報が得られるようになった。
以前までは今よりも多くの時間を使って、1つ1つの言語を習得する必要がありました。
しかし、現在は情報・学ぶ環境が整ってきていることから、勉強段階での断念する確率は低くなってきているといえます。
なので、ネットなんかでよく見かける「独学でプログラミングを勉強するのは無理だよ」という意見は疑うべきなのです。
スポンサーリンク
「プログラミングは独学じゃ無理」と言われる理由
じゃあ、「なぜ独学でプログラミングを学ぶのが難しい」と言われるのでしょうか。
ここではボクの経験やこれまでに仕入れた情報から、この意見について解説していきます。
主に次の3つが「独学は難しい」と言われる理由だと考えています。
・成長が実感しにくい
・周りから教わることができない
・何度も躓く&躓いたら長く進捗が出ない
では、上について深堀していきます。
成長が実感しにくい
プログラミングには「〇〇ができたら成長している」といった具体的な基準が分かりにくいです。
1つの言語でもできることの幅が広い。
なので、「どこまでできたら優秀なのか」というのが明確になりにくかったりする。
だから、勉強をしている最中に「自分は本当に成長できているのか」「学習速度が遅いんじゃないか」と不安に駆られる人も多いのです。
こういった客観的に成長を評価しにくいプログラミングの勉強を継続するには、自分を信じて勉強を続けられる人でないとキツいかもしれません。
周りから教わることができない
「人から教えてもらうことに慣れてしまっている」
学生時代の勉強では喜んで先生が分からない部分を教えてくれていたかと思います。
しかし、個人的に取り組むことでは、誰もタダでは教えてくれません。※お金を払ったとしても満足のいく学びが得られるとは限らない。
だから、「誰かが教えてくれる」という状態に慣れてしまっていると、プログラミングの勉強はキビシイかなと思います。
社会人になっても「新しいことは誰から教わるモノ」という考え方をしている人が多いです。
こういうタイプは「勉強のために高額な授業料を支払ってしまう」「躓いたら、いじけて断念する」といった結果になるかと思います。
現役のエンジニアたちは基本的にネットや本から情報を得ます。
「ただ垂れ流された情報の中から、自分が欲しい情報を見つけ、己の身にする」ことを繰り返しながら成長しています。
こういった”自分の力で情報取得・知識の蓄積できる人が成長”し、”常に受け身で「誰か教えて!」と考えてしまうタイプは断念してしまう”ことが多いと思われます。
何度も躓く&躓いたら長く進捗が出ない
「プログラミングが理解できるまでには何百時間もかかることを覚悟しろ!」という有識者もいます。
それだけプログラミングの習得は難易度が高く、躓きながら長い時間をかけて身に着けていくモノだということです。
そして、その中には「躓いてから長い時間進捗が出ない」なんてことも結構あります。
躓く内容によっては、何日も分からなかったり、今の技術レベルでは到達できないこともあります。
だから、真面目な人なんかは「この問題から目を背けることはできない!」と妥協できず、何日も進捗が出ないことから「自分は向いていない」と結論を出し、結局は断念してしまうという人もいます。
プログラミングは「難しいことで躓く頻度が高くなり、複雑さ故に躓く時間が長くなる」という特性があります。
この特性から「独学で勉強を始めると9割以上は断念する」といわれている大きな理由がコレなんですね。
スポンサーリンク
独学でもプログラミングの勉強が捗る人の特徴
次に独学でもプログラミングの習得が容易にできてしまう人の特徴の話をしていきます。
また、どれもプログラムの継続や成長に必要なことだと考えています。
では、さっそく解説していきます。
結果を出す心構えができている
「物事で結果を出すには多くの時間が必要である」
このことを理解し、ひたむきに努力ができる人はプログラミングが上達します。
ボクは技術が身につくまでは、平日の会社の時間に加えて、1日3~5時間勉強していました。
「会社から帰ったら、まず数時間眠り、そのあと出社時間まで勉強をしている」といった感じです。
「プログラマーは3年間働いて一人前」なんて企業では言われています。
この意見はただの目安にすぎませんが「それだけ多くの時間が必要なモノだ」とザックリ理解しておいたほうがいいです。
そして、プログラミングを習得できる人は、この意見を受け入れ、ひたすら圧倒的な努力をしていきます。
周りにプログラミングを学ぶ人(もしくは有識者)がいる
プログラミングの勉強は地味です。
加えて、達成感が得づらい分野だったりします。
なので、そういったモチベーションが維持しづらいモノであるからこそ、周りに共有できる人がいるのは助かります。
ボクは「あぁ、飽きちゃったなぁ」「全然わかんないんだけど…」って気持ちに昔は頻繁になっていました。
そんなときに同じ境遇の仲間と繋がっていると「モチベ減少」→「仲間から刺激を受ける」→「やる気になる」→「モチベ減少」…で、何とか勉強が継続できていました。
その結果、複数の言語であらかた思い通りにシステムが作れるようになりました。
今は実際の距離が近くなくても、ネットを介せば人と繋がれます。
ツイッターなどのSNSを使って、プログラミング仲間と繋がり、情報交換をするだけでも全然モチベーションの保たれ方が違ってきます。
こういった”外部からの刺激を受けやすくする工夫ができる”人はプログラミングの勉強が捗りやすいです。
アウトプット先を用意できる
ここまでで「プログラミングの勉強は達成感を味わいにくい」といったニュアンスで書いてきました。
ですが、プログラミングの上達が早い人は”必ずアウトプットを用意し、実践的な経験+達成感を得られる”ようにしていたりします。
・VBA:EXCELで仕事・自宅で使うツールを作成する。
・JAVA:PC・アンドロイドスマホのアプリを作る。
・C#:PC・スマホのアプリの他、ゲームや動画を作成する。
達成感を抜きにして「ただ自分が作ったコードをブログや動画、SNSにアップする」なんて言う人も結構見かけます。
これだけでも、他の人から反応がもらえて楽しく、モチベが維持できるかと思います。
なので、プログラミングの勉強でも、細かくゴールを設け、アウトプットできる工夫ができる人は勉強が捗ります。
スポンサーリンク
初心者向けのプログラミング勉強方法【流れ】
プログラミング初心者の場合、勉強の仕方が確立できなかったりします。
もしくは非効率な勉強手段をとることもあるかと思います。
この勉強方法をテキトウにしてしまうと勉強の断念に繋がります。
なので、ボクが新しい言語を学ぶ時の勉強方法をザックリ解説して終わりたいと思います。
ボクの場合は下の流れで勉強し始めます。
勉強の流れ・学ぶ言語を決める。
・youtubeで高評価がついた入門動画を2,3本観る(イメージをつける)
・参考書で中級者入門書を購入して、内容に沿って勉強する。※ネットでも調べる。
・自作のシステムを作る。
詳しくは下の記事にまとめているので、参考にしてみてください。
それでは、最後まで読んでいただきありがとうございます。
またね(/・ω・)/
スポンサーリンク
スポンサーリンク
コメント