
執筆者
S.G.
エンジニアになる前の学習

未経験からエンジニアになった私が「どのように学習を進めてきたのか」「何を身につけてきたのか」を振り返りながら、これからエンジニアを目指す方や、学習方法に悩んでいる方の参考になればと思いまとめてみました。
プロゲートでプログラミングの楽しさを知る
私のプログラミング学習の最初のステップは、Progateでした。
HTMLやCSS、JavaScriptの基礎をゲーム感覚で学べるこのサービスは、初心者にとって本当に取り組みやすいものでした。
コードを書いて、すぐに画面に反映される。できることが少しずつ増えていく。
このプロセスがゲームのように楽しく、「もっと学びたい」というモチベーションにつながりました。
プログラミングに触れたことがない方には、まずProgateで基礎を学ぶことを強くおすすめします。
完璧に理解しようとせず、まずは「楽しむ」ことが大切だと思います。
職業訓練校での3ヶ月
プログラミングの面白さを実感した後、より体系的に学ぶために職業訓練校に通いました。
3ヶ月間、プログラミングの基礎知識をみっちり勉強しました。
独学では見落としがちな基礎的な概念や、変数、条件分岐、ループといったプログラミングの根幹部分を、講師の方から直接学べたことは大きかったです。
また、同じ目標を持つ仲間と一緒に学べる環境も、モチベーション維持に役立ちました。
課題に取り組む中で、「エラーが出た時にどう調べるか」「ドキュメントの読み方」といった、実務でも重要なスキルの基礎も身につけることができました。
Python 3 エンジニア認定基礎試験に合格
職業訓練と並行して、Python 3 エンジニア認定基礎試験の学習も進めていました。
正直なところ、就職活動にあたって何か能力を証明できるものがほしいという思いがあり、受験を決意しました。
Pythonの基本的な文法、データ型、制御構造、関数、クラスなどを学び、無事に合格することができました。
現在の業務ではPHPを使っているため、Pythonを直接使う機会はありません。
しかし、プログラミング言語の基礎的な考え方は共通している部分が多いと感じています。変数、条件分岐、ループ、関数、クラスといった概念は、言語が変わっても本質は同じです。書き方が少し違うだけで、学習した経験は確実に生きています。
また、複数の言語に触れることで、「プログラミング言語はツールの一つ」という視点を持てるようになりました。
特定の言語に固執するのではなく、目的に応じて適切な言語を選択できる柔軟性が重要だと感じています。
基本情報技術者試験の勉強
職業訓練と並行して、基本情報技術者試験の勉強も進めていました。
実際には受験していないのですが、この勉強がエンジニアとしての基礎知識を固めるのに非常に役立ちました。
メインの学習教材として利用したのは、UdemyのコースとYouTubeです。
とくにYouTubeの「【基本情報技術者試験YouTuber】すーさん」のチャンネルは、わかりやすい解説で本当に助けられました。
難解な用語や概念を、初心者にも理解できるように説明してくれるので、挫折せずに学習を続けられました。
基本情報技術者試験の範囲は広く、ハードウェア、ソフトウェア、ネットワーク、データベース、アルゴリズムなど、IT全般の基礎知識をカバーしています。
これらの知識は、実務でも頻繁に役立っています。
資格取得を目指すかどうかは別として、基本情報技術者試験のシラバスに沿って学習することは、エンジニアとしての土台を作る上で効果的だと感じました。
入社後に身につけたスキル

Laravelでの開発スキル
現在の職場ではLaravelを使った開発を行っています。
最初はフレームワークという概念自体に戸惑いましたが、公式ドキュメントを読みながら、実際にコードを書いていく中で徐々に理解が深まっていきました。
Gitの使い方
バージョン管理システムであるGitは、チーム開発に欠かせないツールです。
最初はコマンドの意味も分からず、先輩の指示通りに操作していましたが、今では基本的な操作は理解できるようになりました。
ブランチを切って作業する、コミットメッセージを適切に書く、忘れずにプルをするなど、こうした一連の流れは最初は複雑に感じましたが、慣れてくるとその便利さに気づきます。
とくに過去のコードの変更履歴を追えることや、問題が起きた時に以前の状態に戻せることは、開発の安心感につながっています。
データベースの基礎知識
データベース操作も実務を通じて学びました。
SQLの基本的な構文(SELECT、INSERT、UPDATE、DELETE)から始まり、JOINを使った複数テーブルの結合、インデックスの重要性など、徐々に理解が深まっていきました。
複雑なクエリや最適化が必要な場面や、効率よく実装・修正・テストを行うには、直接SQLを書く必要があります。
基本情報技術者試験で学んだデータベースの知識が、ここでも活きてきました。
デバッグとエラー解決のスキル
エンジニアの仕事の多くは、実はデバッグだと言っても過言ではありません。
エラーメッセージを読み解き、原因を特定し、解決する。この一連のプロセスを繰り返すなかで、問題解決能力が鍛えられました。
最初は見慣れないエラーメッセージに戸惑っていましたが、今では落ち着いてエラーログを読み、検索し、公式ドキュメントを確認して対処できるようになってきました。
「エラーは敵ではなく、何が問題かを教えてくれるメッセージ」という考え方を持てるようになったことも、大きな成長だと感じています。
コードを読む力
先輩エンジニアが書いたコードを読み、理解する力も重要です。
既存のコードベースに機能を追加する際、まず既存のコードがどのような構造になっているかを理解する必要があります。
最初は他人のコードを読むのが苦痛でしたが、コードレビューを受けたり、自分でコードを書いたりする中で、徐々に読解力が向上してきました。
「なぜこのように書かれているのか」を考えながら読むことで、良い書き方を学ぶこともできます。
現在進行形で学んでいること

自助努力・自己研鑽の継続
現在、JSTQB(Japan Software Testing Qualifications Board)の資格取得に向けて勉強しています。
実務では主に手動テストを行っていますが、より効率的で確実なテストを実現するために、自動テストの知識を身につけたいと考えています。
JSTQBの学習を通じて、テスト設計の技法や、体系的なテストの考え方を学んでいます。
同値分割、境界値分析、デシジョンテーブルといったテスト技法は、手動テストでも自動テストでも活用できる普遍的な知識です。
私になりにではありますが、Engineerになる為、資格取得をするために身に着けた学習を続けるコツ(意識や行動)があります。
完璧を目指しすぎない
私は完璧主義な性格で、一つのことを完全に理解してから次に進みたいと思いがちです。
しかし、プログラミングの世界は広大で、すべてを完璧に理解することは不可能です。
「70%理解したら次に進む」くらいの気持ちで学習を続けることが、結果的に成長につながると感じています。
実務で必要になった時に、改めて深く学べば良いのです。
アウトプットを意識する
学んだことは、実際に手を動かしてコードを書いてみることが重要です。チュートリアルを見ているだけでは身につきません。
小さなプロジェクトを作ってみる、学んだ技術をブログにまとめてみる、といったアウトプットを意識することで、理解が深まります。
わからないことを素直に聞く
職場で一番大切だと感じているのは、わからないことを素直に聞くことです。
「こんなことも知らないのか」と思われるのが怖くて質問をためらうこともありますが、間違った理解のまま進めてしまう方がずっと問題だと考えています。
継続すること
学習で最も重要なのは、継続することです。
毎日30分でも良いので、コードに触れる時間を作る。技術ブログを読む。こうした小さな積み重ねが、1年後には大きな差になります。
私自身、毎日完璧に学習時間を確保できているわけではありませんが、できる範囲で続けることを心がけています。
未経験からエンジニアになって1年、振り返ると本当に多くのことを学びました。
Progateでの最初の一歩、職業訓練校での基礎固め、基本情報技術者試験の勉強、そして実務での経験。すべてが今の自分を作っています。
エンジニアの学習に終わりはありません。
技術は日々進化し、学ぶべきことは常に出てきます。
それを負担と感じるのではなく、成長のチャンスと捉えられるかどうかが、エンジニアとして続けていく上で重要だと感じています。













