こんにちは、ウルフです。
私はjavaの学習を趣味で続けていて、ジェネリクスの章に突入しました。
しかし、意味や使い方がいまいち理解できず絶賛苦しんでいる最中です。
プログラミングを学習しているとこういうことがよくありますよね。
ジェネリクスが理解できなくて腹が立つから、ストレス発散のためプログラミング学習挫折しそうな時あるあるを書き殴っていきます。
プログラミング学習で疲れた時の息抜きでどうぞ!!
プログラミング学習に挫折しそうな時あるある

あるある①:初めてテキスト見た時
プログラミングテキストを探すため、本屋に突入!
「よし、俺はこの中からテキストを選んでプログラミング学習を始めるぞ!手に職つけてやる!」
….と意気込んだはいいものの、数ページ目をめくったところで挫折しそうになります。
理由としては、聞いたことのないコンピュータ用語に嫌になるから。
コマンドプロンプトとか、変数とか、データベースとか、コンパイルとか、開発環境とか
最初はもうわけわかんなくて、ちんぷんかんぷん。
「はっ?俺が見ているこれは、、、英語なのか??はたまた、暗号なのか??」
入口からPCアレルギーを発症し、学習の前から挫折してしまう人もいることでしょう。
あるある②:環境構築で何日もかかる
PCアレルギーを克服し、プログラミング学習のための環境構築を開始します。
ただ、その環境構築で挫折しそうになります。
理由は、普通に難しくて何日もかかるから。
プログラムを書いて動かすためには、開発の環境は必要不可欠。
開発環境がないともはや、何もできないんですよ、、、
パスの設定とか、ツールのインストールとか、バージョンとか、容量とか
普通に生活していれば、決して触ることのないツールばかり。
どこに触ればいいのか?どういう仕組みで動くのか?
なんでエラーが出るのか?なぜインストールがうまくいかないのか?
「誰か、俺に、俺に!!原因を教えてくれ!!!」
学習初っ端の環境構築でもうつまづいて、投げ出したくなる人もいるでしょう。
ちなみに、Javaの環境構築については別記事にて図つきで解説しているから諦めんといて!

あるある③:用語の意味や説明を見ても理解できない
環境構築という魔境を抜け出し、コードを書いて学習を進めていきます。
で・す・が
学習の過程で、新たな知識を学ぶほどに挫折しそうになります。
理由は、出てくる用語の説明を聞いても理解が全くできないから。
いや、冗談抜きで
役割を知っても、解説を見ても意味が全然わからんのですよ。
ポリモーフィズムとは?ジェネリクスとは?オーバーライドとは?
「プログラミング言語の様々な概念を初見で理解できるだろうか?いや、ムリ。」
用語を1字1句覚えようとしている人ほど、意味の分からない沼にハマってしまうのではないんですかね。
完ぺき主義者ほど、挫折しやすいんです….プログラミングって
あるある④:バグの原因を調べても事例が出てこない
用語をなんとか理解しつつ、プログラミング学習を進めていると
必ず遭遇するのがバグやエラー。
バグやエラーの原因を調べまくっても解決できずに、テキストをぶん投げて挫折しそうになります。
理由は、ググっても解決できないし解決事例がないことがあるからです。
バグやエラーってググれば解決できますが、中にはググっても全く解決できないこともあります。
出てきた手段を片っ端から試しても解決できない時の絶望感はハンパないですよ、、、マジで
全く解決できないし解決方法がわからないと
「いったいどういうことなんだ?これは、、、どういう状況だ?検索すれば解決できるんじゃないのか?」
頭の中がプチパニック。
もう手に負えなくて、嫌になったタイミングで挫折するんでしょうね。
ただ、全く解決できなかったエラーが解決出来た時
きもちぇぇぇぇぇぇぇぇぇ!!
と最高の気分になるから、エラーやバグを探し続けている自分にマゾヒズムを感じている次第でございますm(__)m
あるある⑤:テキスト通りにいかずエラーが出て絶望
テキストを進めていると、その通りに学習しているのに
急にうまくいかなくなることが、山のようにあります。
理由としてはテキストも完ぺきではないからです。
「初心者向け!わかりやすい!」
というようなキャッチフレーズのテキストも、完ぺきではありません。
他の人にはわかりやすいかもしれないけど、PC初心者の自分にとってはわかりにくい。
初心者向けに書き過ぎて、重要な細かい説明は飛ばしている
なんてこともザラにあります。
こうした、様々な要素が重なった結果
「テキスト通りにやっているのに、、、うまくいかないんですけどぉぉぉぉ」
テキストに怒りを覚える、情けない自分になってしまいがちです。
テキスト頼りでテキストを崇拝している人ほど、テキストを通りにいかない時に挫折してしまうんでしょうね。
あるある⑥:テキスト1周してもシステム作れない
テキストを1周したあなたはきっと
「よっしゃ!もう基礎は完璧!簡単なシステムくらい作れるやろ!」
とお思いでしょう。
しかし、ご安心ください、テキスト1周してもシステムは作れません。
テキストはあくまで基礎の習得、知識の補填に使われるもの。
実際にシステムを作るとなると、今までの基礎知識を組み合わせたり、派生させたりしなければなりません。
テキストが終わったここからが本番といったところでしょうかね。
「あれだけ苦労して学習したのに、、、システム1つまともに作れないなんて、、、」
自分の時間はいったいなんだったんだと、絶望して挫折しそうになることでしょう。
あるある⑦:需要あると言ってるのに、未経験転職がしんどい事実を知る
プログラミングで就職を夢見て、未経験から転職しようと色々調べていると
未経験転職はしんどい!
ということを嫌でも目にすることでしょう。
「IT人材不足で需要があると言っているのに、なんでなんだよ、、」ってなりますね。
この事実に直面した瞬間、絶望して挫折する人も少なくはないはず。
ただ、それもそのはず。
人材不足とはいえ、未経験でスキルがないと、しんどいのは企業側なのですから。
企業側のことを考えると、新卒の学生でもない限り業界未経験で雇うのはかなりリスキーに違いありません。
ただ、勘違いしないでほしいのは未経験でも決して不可能ではないということ
- 独学でも毎日学び続けている
- プログラミングにモチベーション高い
- IT知識に関心がある
- エンジニアに対して、あこがれと情熱がある
こんな人であれば未経験でも、30代近くでも就職することは可能でしょう。
必要なのはズバリ!伸びしろですね!!
【実体験】プログラミング学習を挫折しないためのコツ

散々語った挫折あるあるは全て実体験、現在進行形でjavaに苦しんでいる私ですが
今回の場合は挫折する気配は全くありません。
なぜなら、過去プログラミング学習で何度も挫折しそうだったし、乗り越えてきたから
なので、私が2年間のプログラミング学習人生で培った、挫折しないためのコツも伝授していきます。
挫折しないコツ①:完璧を目指さない
挫折しないコツ、まず1つめは完璧を目指さないということ。
プログラミングを学んでいるとよくあるのが
「実務を想定して完璧に覚えないと」
「忘れないように1字1句ノートにメモして覚えよう」
というような完璧に覚えようとする思考。
こんな感じだと間違いなく挫折します。
プログラミングの用語を完璧に覚えるなんてマジで無理です。
- 完璧に覚えようとする
- 覚えることができない
- 自分に絶望
- プログラミング学習に挫折する
以上のようなパターンが挫折の王道です。
完璧を目指さず必要はありません、その都度ググって解決できるくらいでいいのです。
プログラミング学習は6割理解でちょうどいい。
どうせ何回も同じことを調べることになるから。何回も何回も調べて覚えていくのです。
私の場合だと、完璧に覚えようとするのは禁止というルールにしてます。
だって、完璧ってしんどいじゃん?目的は完璧に覚えることでもないじゃん?
完璧に覚えても、使えなかったら意味ないじゃん?
挫折しないコツ②:何日もかけて理解する
挫折しないコツ2つめは、何日もかけて理解すること。
プログラミング学習を進めていると、初見で全く意味が理解できないことがよくあります。
わからないことに関して、意地になって理解をしようとすると
「全く理解できない、、、こんなことも理解できないなんて」
「あぁ〜全くわからん、何時間かけてもわからん、終わったわ」
というように、落ち込んだり、自分が才能がないと勝手に思いこんだりして挫折してしまいます。
ですが、プログラミングなんて1回は無理でも、何日もかけたら嫌でも理解できるようになります。
何事も1回で理解しようとするからしんどいんですよね。
プログラミングとは外国語を1から学んでいるようなもの、1日ではなく何日もかけて理解するようにしましょう。
プログラミング学習で重要なのは理解しようとする姿勢です。
その姿勢があれば、基本的にどんな用語でも徐々に理解できるようになります。
というか、毎日毎日、プログラミング学習をしていたら嫌でも理解できるようになってきます。
私は最初、変数の意味すら理解できませんでしたよ。
でも、毎回毎回出てくるから勝手に意味を理解できるようになりました。
今ではもう「はいはい、変数ね」みたいな感じです。
挫折しないコツ③:テキストに固執しない
挫折しないコツ3つめは、テキストに固執しないこと。
プログラミングのテキストを進めていると、テキスト通りなのにエラーやバグなんて余裕で怒ります。
「テキスト通りなのに、うまくいかない!!どうしたらいいんだ!!」
「えっ?テキストが急に用語の説明もなしに別のことをやり始めた、、、」
これはね~、多くの人が体験したあるあるだと思うんですよね~、私もそうだったので。
テキスト頼りに学習している人は、急にテキスト外のことが起きると
解決できず、意味不明で、イラついて、テキストに対する信用をなくして、投げ出して挫折
みたいな人がいるかと思われます。
ですが、私の経験的に100%わかりやすいテキストなんてないと思います。
著者がどれだけわかりやすく初心者目線で書いたとしても、プログラミングなんて外国語です。
わからないものはわからないし、壁にぶち当たらないことなんてないのだから。
どっちみち、テキスト外のイレギュラーなことはよくあること。
テキストに固執せず、わからないところは検索して、自力で解決するようにしていきましょう。
プログラミング学習の効率を上げるなら、テキストに書いてあること以外も検証することがオススメです。
テキスト外のことを検証すると、違う結果になるし、エラーやバグが起きることもあります。
これに対して「なんでなんだろう?どうしてなんだろう?」と考え原因を探ることで、学習に対する理解が深まります。
エラーやバグに対する対応力も身につくしね。
私はテキストに書いてあること以外を実証し過ぎて、もはやエラーやバグが起きても何も感じなくなりました。
焦りもしないし、慌てもしない
淡々とエラーを対処するマシーンと化しています。
未経験でエンジニアに就職する具体的な方法

プログラミングは需要が高いけど、未経験で就職するのはやはり難しいのも事実。
とはいえ、決して不可能というわけではありません。
プログラミングへの情熱があり、エラーやバグに耐えることができるのであれば、未経験でも就職することは十分に可能でしょう。
私はプログラマーではありませんが、プログラミング学習を続けて約2年間
Twitterやネットなどから様々なプログラミングに関する情報を集めてきました。
その経験から学んだ、未経験でプログラマーに就職する具体的な方法としては以下の通りです。
- 需要の高い言語を学び、言語を使ったポートフォリオ3個作る
- 作成したポートフォリオをネットやSNSで公開
- エンジニア専門の転職エージェントに登録
- 転職活動をしつつ他言語の学習は続ける
けっこう大変かもしれませんが、1~2年の長期目線でやれば決して難しいことではありません。
時間を見つけて毎日コツコツ2時間でもいいから、しぶとく学習を続けて参りましょう!!
まとめ
今回はプログラミング学習に挫折しそうな時あるあるをご紹介しましたがいかがでしたか?
共感できる部分はありましたか?
全て私の実体験を元に紹介しているので、共感して頂けたのであれば嬉しい限りです。
書いたらスッキリしたので、再びプログラミング学習に戻ります。
というわけで記事は以上、良きプログラミングライフをm(__)m