プログラミング独学が続かない7つのダメな原因
プログラミング独学を始めたけどモチベが保てない……
なんて人は結構多いんじゃないでしょうか?
プログラミングに限らず何かを続けるのにはモチベーションを保つ必要があります。
なんとなくプログラミング独学を始めた人は殆どの人が挫折します。
私も24歳の頃プログラミングを覚え始めたのですが、意味不明で速攻挫折しました。
2度目の挑戦は基礎の基礎からやろうと思って再び立ち上がったのですが、 基礎構文(変数やif文やループ処理など)だけを学んでいたら何が面白いのかわからず挫折。
3度目はゲームプログラミングをやってみたいと思い、そこから何とか少しずつ覚え始めました。
しかしそれ以降も何度か挫折しています。でもゲームを作りたい一心で何度も何度も 立ち上がるたびに別の言語に入門していたら気付けばプログラミングできるようになっていたのです。
このように自分のやりたいことを見つけなければプログラミング独学は続きません。
プログラミング歴9年の私が味わった独学が続かない理由を7つ洗い出してみたので今回紹介しようと思いました。
失敗は成功のもと
というコトワザもある通り、プログラミング独学が続かなかった原因を知れば挫折する確率を減らせます。
それではプログラミング独学法第2回目を始めましょう。
目先の目標を決めていないのがダメ
目標が無い状態でざっくばらんに
「エンジニアになりたい!」
「プログラミングを覚えるぞ!」
っていう状態で、プログラミング独学を始めると余程の覚悟が無い限りほぼ100%挫折します。
エンジニアになりたい!は確かに大きな目標ですが、あまりにも抽象的過ぎます。
プログラミングはあくまで手段なので、何かを達成するために手段としてプログラミングを覚えないと意味がありません。
私で言えば「ゲームを作れるようになりたい!」という思いがあったのでプログラミングを続けられています。
全員が全員ゲームを作りたいというわけじゃないと思うので、 まだ目的が決まっていない人はこれを機に決めてしまいましょう。
全然決まらないという人のために「〇〇エンジニアになりたい」という例で 目標一覧を作ってみました。
- フロントエンドエンジニアになりたい
- バックエンドエンジニアになりたい
- 組み込みエンジニアになりたい
- セキュリティエンジニアになりたい
- AIエンジニアになりたい
組み込み・セキュリティ・AIに関しては少し難易度が高いので モチベを保ちやすいのはオススメはフロントエンドエンジニアでしょうか。
バックエンドエンジニアは楽しいですが、縁の下の力持ちタイプ(悪く言えば超地味)なので 自ら楽しみを見出させないと挫折しやすいです。
逆にフロントエンドエンジニアは求められるスキルが多すぎて、 満遍なくやろうとすると私みたいに中途半端なスキルの人間になりやすいです。
ある程度基礎を覚えたら、進む道を1つに絞った方が尖ったエンジニアになれます。
器用貧乏のフロントエンドエンジニアはこのご時世あんまり需要はありません。
しかし器用貧乏は非IT会社であればめちゃくちゃ活躍できます。
私でも複数ある会社の情報システムを一人で全部握ることが出来る程です(笑)
目標をデカくしすぎてたどり着けないのがダメ
いきなり手のひらをひっくりかえすようですが、目標を大きくしすぎると挫折します。
私の場合
FFやドラクエのような凄いRPGを作るぞ!
ってプログラミングを始めて何度も挫折しました。
そりゃ何人も集まってようやく完成する大作RPGをズブの素人一人で作れるわけがないのです。
先ほども「フロントエンジニアになる」と目標を上げましたがフロントエンジニアにもたくさん種類があります。
アプリ側の見た目を構築するのか、Webの方の構築をするのかで求められるスキルも大きく変わってきます。
大きな目標を達成するためには何が必要かを調べること。
そして必要なことを達成するためにはどうすればいいかを調べること。
大きな目標から小さな目標を複数見つけ出します。
プログラミングに限らず大きな目標を持つのは素晴らしいことですが、たどり着けなければ意味がありません。
余談ですが、実はプログラムを完成させるためにも同じ考え方が出来ます。
1つのアプリを作りたいと決めたら、それに必要な機能を作る必要があります。
アプリ完成が大きな目標。機能を作ることが小さな目標。
小さな目標を全部達成出来たら大きな目標が達成できるという仕組みです。
これはプログラミングに限らず何事にも当てはまりますね。
環境構築が難しすぎる言語を選んだのがダメ
プログラミングをいざ始めたものの、実際にプログラミングをするには環境構築という とても面倒臭い行為をしなければいけません。
インストール?
環境変数の設定?
仮想環境の準備?
(エンジニアを目指すならインストールぐらいはわかってほしいですが……)
この開発環境を準備するのがプログラミングをする上である意味一番難しいんじゃないかってぐらいです。
最近では入門記事を見てそれ通りに進めれば大体は簡単に構築できますが、 言語によってはWindowsを使っている人の場合は途中でエラーを起こしたりして環境構築に失敗する可能性も高いです。
環境構築でプログラミングを始める前に挫折した人もかなり多いんじゃないでしょうか。
そんなしょうもないことでやる気を削がれてしまってはもったいないので、 プログラミングを始めるときは環境構築を気にせず始められるプログラミング言語を選びましょう。
環境構築をしないでプログラミングをすぐに始められるオススメは以下になります
- JavaScript(ブラウザとメモ帳があればOK)
- エクセルに入っているVBAを使う(メーカー製であれば基本タダ)
- ニンテンドーSWITCHでプチコン4を買う(2500円買い切り)
- レンタルサーバーを借りてPHPを使う(月額料金)
- プリインストールされているRubyかPythonを使う(Mac限定)
最もオススメはWindows・Mac・Linuxのどれでも動くJavaScriptでしょうか。
メモ帳とWebブラウザがあればすぐに始められるのが最高ですね。
0からすべて作ろうとするのがダメ
これは私もよくやるというか今でもやりがちなのですが、素人が0ベースから作り始めようとするとほぼ挫折します。
プログラミングは基本的に基礎的なコードを書いて、凄い人が作った道具を呼び出せば凄いものが完成できます。
その凄い人が作った道具は基本的にオープンソースと言われ、無料で公開されています。
作者が明示している規約をしっかりと守った上であれば自由に使っても改変しても大丈夫です。
中には、
え!?こんなすごいものを無料で公開してんの?しかも商用に利用して良いの!?!?神!!
ってのがあったりします。
ですが頭の悪い人はそんないいものがあるのにそれすらも自分で作ろうとするので、挫折します。
成長するまでは大人しく神プログラマが作った道具を使わせてもらいましょう。
成長したら次はあなたが神プログラマになる番です。
知識0の状態でフレームワークを使おうとするのがダメ
言語の基礎を学ばないと成長は見込めません。
先ほどと似たようなことなのですが、作ってたら何年かかるんだよって機能を詰め合わせたキットがあります。
単体ではただの土台にすぎないのですが、必要な道具はすべてそこにそろっているため 本当に作りたいものに集中できるのがフレームワークという仕組みです。
フレームワークを使えばアマチュアでもプロが作ったようなアプリケーションを作ることが出来ます。
しかし最初からそれに頼っていると、フレームワークを使わないと何もできないプログラマになってしまいます。
フレームワークを使うのはいわゆるチートモードで俺tueeeeeeeをやっているようなものです。
Twitterを見ているとよく目立つ悪い例が
プログラミングスクールで覚えたRuby on Rails(以下RoR)だけを使っているエンジニアですね。
これはRuby用のメジャーなフレームワークなのですが、とても素晴らしい出来なので それに甘えてRoRの知識ばっかり増えて肝心の言語であるRubyの基本的なことを知らないエンジニアが増えているらしいです。
私はそもそも殆どRubyをやらないですし、他のエンジニアと協力したりすることをしないタイプのプログラマなので そんなエンジニアおらんやろーって思っているのですが、実際にはいるんでしょうか……
フレームワークは業務効率化するうえでとても有能なので否定するわけではありませんが、 その言語のフレームワークを使うのであれば最低限の言語の基礎を学んでおいた方がいいでしょう。
フレームワークに頼りすぎると基礎的な部分が疎かになります。
基礎だけで組むときに何もできないとエンジニアとしては使い物になりませんからね。
自分の出来なささに絶望して挫折する前に基礎をしっかりと学びましょう。
作ったものを誰にも見せようとしないのがダメ
これも私が良くやりがちなのが作ったものを誰にも見せないこと。
自分の中にしまい込んで次に行くと成長しているのかどうかわかりません。
成長してるかわかり辛いと挫折の原因になります。
前回も言いましたが、誰かに見せてこその作品です。
悪い所ばかり指摘されて落ち込んで自分には才能が無いと挫折してしまう人もいるのでそこは注意しましょう。
指摘するだけじゃなくてちゃんとアドバイスしてくれる相手を見つけるのが大切です。
しかしコミュ障の場合そんな相手を見つけるのも難しいので、そういう人はブログとかに公開しておきましょう。
そして次の作品に取り掛かり、1ヶ月後に自分で作った作品を見に行って自分の作品にボロカスに指摘してやるといいです(笑)
完全無料で覚えてやろうとするのがダメ
今やGoogleがあればほとんどのことは解決します。
こんな人多いんじゃないでしょうか?
いい本見つけたけどググったら書いてるような内容だし買わなくてもいいや
そして結局ググらないんですよね。
なぜかと言うとお金がかかっていないから本気度が低い。
性格にもよりますが人間、お金がかかっていないと本気になれないので 本当に覚えたいのであれば読みやすいと思った書籍は衝動買いするぐらいの勢いで買いましょう。
そしてそれにプラスしてGoogleで細かいやり方を知ると一気に知識が増えます。
私もこれに気付くのに何年もかかりました。
早く気づいていればもっと上のレベルになっていたかもしれません。
いい本を見つけたら買っておきましょう。
しかし買って満足するタイプは気を付けてください。
プログラミング独学法 第2回目のあとがき
プログラミング独学法第2回目はプログラミングを独学で続けるうえでの「ダメ」を7つ挙げました。
一気に全部実践する必要はありません。
これの中に最も自分に当てはまっているやつだけをまずは実践しましょう。
そしてある程度したらまた見直して
自分のココがダメだ!というのを自分自身で認識するのがプログラミング独学を続けていくためのコツです。
それでは。