2023.5.28
【プログラミング初学者向け】プログラミング学習ロードマップ〜その2〜
今回は前回に引き続き、プログラミング学習のロードマップについて解説していきたいと思います。
前回の記事がまだの方はそちらからお読みいただけますと幸いです。
前回は学習ロードマップでJavaScriptとサーバーサイド言語、SQLを使用して一つオリジナルアプリを作り、サーバーを借りて公開するというところまで解説しました。
これで最低限、技術的に就職活動で採用企業が少なからずあるという話までしましたが、いくらなんでも最低限過ぎるということで、もう少し深ぼった学習内容について今回は解説していきたいと思います。
ただ、この辺りからフロントエンドエンジニアを目指すのかサーバーサイドエンジニアを目指すのかによって、優先順位は変わってきます。
その点を考慮して読んでいただける幸いです。

1.サーバーサイドフレームワークを学習する
サーバーサイドフレームワークを学習しましょう。Rubyであれば、Ruby on Rails、PHPであればLaravelなど学習している言語の一番有名なフレームワークを学習しましょう。
有名なフレームワークであれば、就職後もそのまま学習した内容を活かしていくことが可能になるかと思います。
フレームワークはアプリケーションを作りやすくするための枠組みと機能を提供しているものになります。よりスピードを上げて開発することまた開発のためのコーディング方針を統一しやすくなります。
ここでパッケージやバージョンの管理などが必要になるため、挫折ポイントになります。
実際に僕は挫折しました。ここは調べまくる、人に聞くくらいしか解決方法はありません。根気よくやってみましょう。
基本的なこと抑えながら、フレームワークを使わないで作成した自作アプリをフレームワーク有りで置き換えてみましょう。
2.フロントエンドフレームワークを学習する
フロントエンドフレームワークを学習しましょう。
デザイン面を整えるBootstrapが有名でオススメです。
偏りのあるデザインのためBootstrap臭がするとか言われることもありますが、簡単に綺麗なUIを構築する上で、Bootstrapはまだまだ使用されているフレームワークになり、学習しておいた方がいいかと思います。
1番簡単に使用できて、フロントエンドフレームワークがどんなものなのかを理解する題材として1番適していると思います。
3.JavaScriptフレームワークを学習する
この辺りから少しずつ必ずしも必要と言うわけではないかなと思いますが、勉強しておいて損はないと思います。
というのも古めの技術を使用している会社であれば、未だにJQueryが使用されていたり、複雑なアプリケーションでなければ生のJavaScriptで書いているところも少なからずあります。
JavaScriptフレームワークとして挙げられるのがReactやVueになるかと思います。
フロント側で状態を保持したりページ遷移の際にサイバーへのレンダリングを減らしたり
する技術になりますが、いまいち意味が分からないということもあると思うので、CDNを使用してJavaScriptのみのアプリをフレームワークに置き換えてみるみたいな感じで充分ではないかというのが正直なところです。
ただ、WEB系で技術力の必要な会社を受けたいという方はシングルページアプリケーション(SPA)に挑戦してみてもいいかもしれません。
4.ライブラリを使用してみる
ライブラリはプログラミングをする上で便利な機能の集合と言えます。
フレームワークもライブラリを兼ね備えていますが、その他にもExcelをプログラムから操作するライブラリ、テストを自動化するライブラリ、QRコードを作成するライブラリなど様々なライブラリが存在します。それらを使用して何ができるようになるのかというのを実感してみましょう。
5.設計を考えてみる
ここまでできれば、プログラミング技術的には十分だと思います。
後はとにかく作り、改修をしてください。
その際に、コーディングやDB設計、画面設計などを意識して開発改修してみてください。
いきなり立派な設計ができる必要はありません。しかし設計が上手くいかないと、アプリケーション全体が上手く動きません。
アプリケーションとして不具合が起きないようにするには、パフォーマンスよく動作するには、保守性を高くするにはという面を意識して改善していくことが、後々設計の考え方の土台に繋がります。
6.その他
ここから先は余裕があれば学習するという程度でいいかなと思います。
一つ目はGit、二つ目はDocker、三つ目はAWSなどのクラウド技術になります。
Gitはソースコードのバージョン管理ツールになります。ほとんどの企業が開発で使用しているため、必須ではあると思いますが、チーム開発で使われるため個人では学習するのは効率が良くありません。習得しておいて損することはないかと思いますが、就職後教えて貰えば充分カバーできると思うので優先順位はそこまで高くないと思います。
二つ目Dockerですが、仮想化コンテナ技術といって、開発する際に環境の差をなくすための技術になります。これも基本的な使用方法は覚えておいだ方がよいですが、バージョン情報など訳の分からない状態だと先に進まないことがあります。結局現場ではインフラエンジニアやリーダーポジションの人が環境構築をしてくれるので、こちらも個人学習でカバーする優先順位は低いかなと考えています。
最後にクラウドについてです。
これは初学者にとってはまあまあ難易度は高いと思います。というのもネットワークやサーバーなどインフラの知識がないと、知識の吸収が難しいです。
また、クラウドと一口にいっても通常のサーバーをクラウド上に建てるのか、サーバレス環境を構築するのか、コンテナ環境でサーバーを構築するのか、クラウドサービスはどれを使うのかと、幅が広いです。
個人的にはAWSでEC2を立てて無料利用枠で公開する程度で充分かと思います。
今回の記事では、より深くWEB開発を学ぶためのロードマップを解説していきました。今回の記事では紹介した技術全てが優先順位が高いという訳ではありません。
ご自身の目標と照らし合わせて取捨選択していただけたらと思います。
今回はここまでになります。最後までご愛読いただきありがとうございました。
〜画像参照元〜