@tenplant1203

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Webエンジニアになるための学習法アドバイス

【背景】

  • 19歳大学生1年、情報系学部所属、フロントエンド志望
  • 講義でC言語やDSAを学習済み
  • 現在フロントエンドの知識を深めるためにバックエンドを学習中

【独学で学んだ内容】

  • HTML/CSS、JavaScript(Node.js)、React、Python (DSA用) の基礎

【現在学習中の内容】

  • DB設計、SQL、APIの基礎
  • 長期休暇中は毎日LeetCode (Medium, Easy) を3問、Pythonで解く

【今後の計画】

  • 講義に備えてJava(できればSpring Bootも使いたい)を学習
  • 制作物を作りながらインターンもしたい
  • デザインパターンの理解を深める

【先達の皆様への質問】
大学卒業までに、どのようなアプローチやプロジェクトに取り組むのが効果的でしょうか?また、学習計画をさらに改善するための具体的なアドバイスがあればご教示いただけますと幸いです。

0 likes

4Answer

Comments

  1. @tenplant1203

    Questioner

    わかりにくい表現をしてしまい申し訳ありません。
    データ構造とアルゴリズムについてです。

  2. 「Data Structures and Algorithms」の略だったんですね。初めて略語を見ましたがWebエンジニア界隈では使われるのかな?

    アクセシビリティについても勉強されると良いのかと思います。

  3. @tenplant1203

    Questioner

    ご回答、ありがとうございました。
    実は、これまでアクセシビリティについて詳しく学ぼうと思ったことがなく、
    理解が曖昧な状態でした。
    今回のご回答を通じて、その重要性を改めて実感しました。
    ぜひ参考にさせていただき、今後の学習に活かしていきたいと思います。
    また、「DSA」という表現があまり使われていないことにも気づかせていただきました。
    海外のYouTubeコンテンツで時折目にしていたため、一般的な表現だと誤解していました。
    貴重なご指摘とアドバイスをいただき、本当にありがとうございました。

ソフトウェアテストについて学習されてはいかがでしょうか?

テストができないと、自分が作ったものが十分な品質であることを示すことができません。
近年は品質の維持・向上のために、開発者も積極的にテストに関わるようになってきています。
そのような状況では、プロダクトを作る技術に加え、これらの知識や技術が必要になってきます。

  • 開発者自身でテストするためのソフトウェア品質やテストについての知識
  • テストを素早く実行するための自動化の知識
  • テストに関わる品質(テスタビリティ)を担保するための設計知識

平易な表現の技術書を2つ紹介します。

ソフトウェアテスト技法練習帳
初めての自動テスト

参考になれば幸いです。

1Like

Comments

  1. @tenplant1203

    Questioner

    ご回答、ありがとうございました。
    ソフトウェアテストの重要性や、学習のための書籍「ソフトウェアテスト技法練習帳」と「初めての自動テスト」についてのご意見、大変参考になりました。
    ぜひ、学習に役立てさせていただきたいと思います。

    また、ソフトウェアテストに関する記事もいくつか読ませていただきました。とてもわかりやすくまとまっており、そちらも学習に活用させていただきます。
    改めて、ご回答ありがとうございました。

  2. こんにちは、私はit関連の勉強をするときにinflearnというサービスをよく利用するんですが、勉強の助けになりそうな講義を2つほどおすすめします! 無料の講義もあれば有料の講義もあるのでレビューみて興味が沸いたらぜひ利用してみてください!
    https://u.inf.run/43yeCOr
    https://u.inf.run/41VTm42

学習の順番について

まずは、roadmap.shを見てみてください。これが一番欲しいものなのかなと思います。

https://roadmap.sh/frontend
https://roadmap.sh/full-stack

さて、僕は未経験からエンジニアになるためのロードマップを書こうとしているのですが、以下の順番で書こうとしています。

HTML
CSS
JavaScript
TypeScript
運用
保守
リファクタリング
Git
GitHub
Node.js
Express
React
SQL
DB
Linux
Docker
ネットワーク
クラウド
AWS
セキュリティ
上流工程
テスト
AIと共に開発するということ
ポートフォリオ

自前で考えたものですが、最初に挙げたroadmap.shのフルスタックのものと内容とかなり似通ってますね。言語はともかくとしても、エンジニアの基礎を抑えようとすると大体上のような順番になるのかなと思います。自分の流れで考えると、tenplant1203さんの場合、「リファクタリング(綺麗なコード)」「Git/GitHub」「SQL/DB」あたりを勉強し、次にインフラ、という流れになりそうですね。

学習計画について

目標について、4点アドバイスがあります。

1つ目が、大学卒業までの目標ということですが、小さくて構わないので1つのアプリ(ポートフォリオアプリのことです)を作ることをゴールにすることをおすすめします。
アプリを作るためには、要件の整理、設計、インフラ、バックエンド、フロントエンド、エンジニアとしての全ての技術が必要になります。それらを一通りこなすことでエンジニアとしての基礎が完成すると思います。「自分はここまでできます」と言いやすいですしね。自力で一通りのポートフォリオアプリを作ることは、エンジニアとして実力をつけるにあたり、適切な中間目標だと思います。
そして可能であれば、1つ目のアプリではなくても構わないので、月5,000円でいいので収益を立てることを目標としてみてください。すべてのアプリは自身の費用対効果を最大化することを目標とします。アプリのほとんど全てはユーザーから何らかの形でお金をもらうことが目標です。ここをシビアに考えられるエンジニアはなかなかいなく、是非挑戦してみてほしいです。

2つ目が、基本情報と応用情報を取ることをおすすめします。
これは社会人になると多分結構な回数「取ってないの?」と聞かれると思うのですが、社会人になると特に机に向かうような学習時間を確保するのはしんどいです。今のうちに取っておくと後で楽だと思います。ベストプラクティスをまとめているような出題もそこそこあるので周辺知識も充実しますしね。

3つ目が、授業をがんばりGPAを上げることをおすすめします。
年単位で計画を立てるのは難しいことです。自分で学習を計画して実行しようという気持ちは非常に素晴らしいですが、情報系ということなので、授業もまたとても良い学習になると思います。目の前の授業を100%以上理解し、90点以上の評価を取れるようにすると、結果的にかなり強いエンジニアになっているはずです。そしてこれは大学生のうちでしか学べないやり方でのため、今熱意を向ける先としてはかなりおすすめです。

4つ目が、AIを活用したプログラミングに深くキャッチアップすることをおすすめします。
tenplant1203さんが社会人になる3年後は、AIを活用したプログラミングの波は今よりかなり大きなものになっていると思います。AIとのプログラミングの学習曲線が、学習コストが低く済むものなのか高くかかるものになるのかはまだわかりません。しかし、2025年の今現在プログラミングを学ぶなら、この波の最前線を感じることは非常に面白い経験になると思います。早めにキャッチアップすることによるチャンスがあるかもしれませんしね。

これはついでに、アドバイスと言うより自分の好みですが、Paizaのスキルチェック問題集もLeetCodeの代わりとしておすすめです。レートがあるのと日本語なので自分のレベルにあった問題を選びやすいように感じます。あとは自分の好みその2として、学生のうちに本を読んでおくと力になると思います。たくさん本を読めるのは学生時代の強みですからね。


こんな感じでしょうか。エンジニア業界は腕前主義的な側面が強く、19歳という若さで明確な目標を持たれていことが羨ましいです。学習を続ければ将来的に大きなアドバンテージになると思います。是非意欲を持って学習を継続されてくださいね。

1Like

Comments

  1. @tenplant1203

    Questioner

    @nao_q さん、貴重なアドバイスをありがとうございます。
    とても具体的で実践的な内容で、今後の学習計画を立てる上で大変参考になります。
    また、roadmap.shと作成していただいたロードマップも非常にわかりやすく、学習の方向性を再確認するのに役立ちました。

     特に、ポートフォリオアプリを作るだけでなく、費用対効果もしっかり考えるという視点は、これまであまり意識できていなかったので、とても新鮮でした。また、基本情報・応用情報の取得についても、正直少し軽視していた部分があったので、これを機にしっかりと取り組みたいと思います。

     さらに、AIを活用したプログラミングに関するお話も、これからの時代に欠かせない視点だと感じました。今後は、最新の技術動向にも積極的にキャッチアップしていきたいと思います。

     いただいたアドバイスを参考に、学習計画を見直し、より実践的なスキルを身につけられるよう努力していきます!
    本当にありがとうございました!

フロントエンド志望ということですが、学習内容がバックエンドに偏っている気がします。

フロントエンドエンジニアを目指しているなら、UX/UIデザイナーを兼務することも良くあると思いますので、UX/UIデザインの勉強をするのが良いかなと思います。

バックエンドも勉強していずれはフルスタックエンジニアも視野に入れてるというのであれば、ネットワークも出来ると良いと思います。

1Like

Comments

  1. @tenplant1203

    Questioner

    ご丁寧なアドバイスをありがとうございます。
    UX/UIデザインの重要性や、フロントエンドだけでなくネットワークの知識も視野に入れるべきという点、とても参考になりました。
    今後の学習の指針として活かしていきたいと思います。

Your answer might help someone💌