30代でジョブチェンジ

30代中盤、社会人経験約10年の男性です。転職をしてすぐに退職勧奨を受けて無職をしながらIT関連の学習をしていました。現在は業界で就労中です。

30代でプログラミング学習を検討している人と自分へ申し送り

自分は30代中盤から学習をしてなんとかプログラマーとして就労していますが、前からやっておけば良かったという後悔がたくさんあります。
最短はこうだとは言えませんが、こうは動くなということは言えます。

まとめ

  • 安易にプログラミングスクールに飛びつかないやるなら下地を作ってから。
  • 不安だからとプログラミングコンテストまで手をださない。
  • 完全オンラインのプログラミングのサイトや動画コンテンツなどはおすすめ

安易に飛びつくのはよくない。

安易にプログラミングスクールに行くな!ポイントは「安易」にということです。安易ではなく本気であれば全然いい。自分は転職を考えて、何が自分の武器か?を考えたときに、武器ないやん!となりました。1社に務めきるのなら、そこで使える武器をただただ伸ばせばいい。忍耐と世渡りがなんとかなれば生きていくことはできます。ただ、仕事を変えていくならば武器は必ず必要です。1社目、2社目との経験を踏まえ、丸腰であることにようやく気づいた自分は、武器を持つ人間にならなければと焦りました。
焦った結果、2社目を首になってから1ヶ月でプログラミングスクールに行くことを決めました。ド単純でした。自分の場合は時期尚早でした。ある程度の学習は進められていたとはいえ、いきなり、フリー学習プランで申し込んだのです。今は存在するかはわかりませんが、当時、自分の検討していたところでは以下の通りでした。

あるプログラミングスクールのカリキュラム

1ヶ月かけてフリーで学ぶ(カリキュラムはあるが、基本は自学、わからないところだけ常駐しているエンジニアに聞くという学習方法)

半年かけて学ぶ(就職まで斡旋してくれるパターン ただし年齢制限があり当時30までだった。)

1ヶ月パターンについては、カリキュラムはあるが基本は自学となり、質問し放題です。一見すると良さそうなのですが、自分は「聞きたいことが思いつかない」という自体に見舞われました。基本的にはカリキュラムに沿っていくので一通りのことは資料通りにやれば進められるのですが、進められるというのが落とし穴で、なぜそうなっているのかが一項に腑に落ちない。聞こうにも聞く下地ができていないという状況です。費用としては、資料+質問ができる料金に当時、1ヶ月100,000円ほどと端末購入費として110,000かかりました。
この値段なら本を買うもしくはオンライン学習のビデオで自学をした方がいいのではと思います。
また、2つ目の半年かけて学ぶコース。当時、32歳で年齢オーバーでしたが、2歳くらいなんとかなるだろうと思い、入学できるか相談してみたのですが、全然なんともならなかったです。それどころか、プログラミングスクールを1ヶ月通っていた間に受けた就職相談みたいなものでも30歳超えると厳しいぜ!と現実を突きつけられたので、心は折れそうでした。
ただ、断言できるのは、自分のような丸腰人間であっても学習して半年後にプログラマーとして就労できたのは事実です。プログラマーとしての1社目は扱いと金額に耐えきれなくなって、自己都合退職をしましたが、2社目ではいまのところ問題もなく就労中です。

プログラミングコンテストをといてみようと思わなくていい。

自分は言語学習の一貫として、アルゴリズムを学ぶ必要があると感じ、学習していました。その流れで、プログラマーならプログラミングコンテストの問題を溶けなければと焦り、挑戦してみましたが、正直このレベルのことはいらないかなと思いました。定石さえ、知っていればというか、調べられればいい。少なくとも就労を初めて、2年半くらい経過しましたが、今のところ必要だったなと思うことはないです。やるべきことの優先度で言えば低にあたると思います。当時は不安であれもこれもと手を伸ばしては中途半端に終わってしまっていました。

実際就労してみてどうだった?

プログラミング学習ってどうしても言語の基礎的なところで自分はお茶をにごしがちでした。変数とか、四則演算とか、順次、分岐、繰り返しの書き方とか。これは1通りやればよくって、プログラム全体を山として見たときに木の枝の部分しか見れていない状態です。例えばプログラム中の1ファイルの30行目から40行目までが繰り返しで書かれているとかというように。
実際必要なのはもう少し引いて見れる知識です。木全体を見たり木が集まって森となることを意識しだす必要があります。まだ全然できないので、偉そうなことは言えませんが、プログラムの全体の流れや、その周辺環境まで意識できている状態が必要です。
WebアプリならWebアプリ全体を通して、画面の描画しているところはどこか?とか、このURL叩くと走るファイルはどれか?とかそういうのが全体を通して学べるのが一番だと思います。
とくに就労後、ついた現場が既存プログラムの修正やらテストやらということになると、全体を見る力が必要だと思います。以下は就労前にもう少しつけておくべきだったという知識です。

インフラに関する知識(とくにコード)
環境構築に関する知識
今までに困った経験

とくに3つ目は重要で、困ったことをまとめておくと打ちてがとてつもなく増える、あれ?あそこでおきたエラーってこういうことなんじゃ?というつながりが増えて応用が効くようになります。多くの先人の失敗を集めて失敗集を作ったり、自分の失敗コンテンツをこのサイトでも作りたいとさえ考えています。

プログラミングスクールを活用するなら?

質問が飛び出てくる下地を作っていくことが必要だと思います。最低限予め疑問を持てるところまで学習をしておくこと。でないと質問し放題だけど質問したいことが見つからないというまぬけな状態になりかねないです。100,000円をドブにすてるのは自分だけでいいです。

疑問を持てるようにするには?

一通りの言語の基本文法を学び、一通りのアプリを作ることが必要だと思います。アプリを作ってから、書籍で原理を保管していくというのがいいと思います。たとえば自分であれば、プログラミングスクールを終えた時点で、Rubyでwebアプリを作ることを学習できる書籍を購入してアプリを作ってから、webまわりの基礎的な書籍や、オブジェクト指向に関する書籍を読みました。
また、書籍の代わりに、Udemyという学習動画コンテンツサイトの安い時期を狙って、動画コンテンツを買うのもおすすめです。(自分はセールのときしか絶対動画を買わないです。)その他としては完全オンラインのプログラミングコンテンツのドットインストールや、progateやpaizaなんかもおすすめです。この辺は別に記事を書きたいなと思います。

以上です。