【新人エンジニアになって気付いた】勉強しておいた方が良かったこと3選

※本サイトはアフィリエイトリンクを掲載しています。
新人エンジニア

本記事の内容

・この記事の信頼性

・エンジニアになるまでに最低限必要な勉強内容

・新人エンジニアになる前に勉強した内容

・【新人エンジニアになって気付いた】勉強しておいた方が良かったこと3選

 

この記事の信頼性

こんにちは。Web系エンジニアのカズです。数年前に未経験からプログラミング学習を始めて転職し、現在は単価80万円~90万円の案件を受注して活動しているエンジニアです。

エンジニア歴は約7年になります。使用言語やフレームワークは以下です。

・HTML 7年

・CSS 7年

・Javascript/jQuery 7年

・PHP 7年

・Typescript.js 3年

・laravel 5年

・Vue.js 4年

・React.js 3年

本記事では「新人エンジニア」へ向けて、お役に立つ情報を発信したいと思います。

正確には現場に、新人のプログラマーとして参画する方に向けた内容です。

というのも「自己学習」と実際の現場に入ったときの「実務」では大きくギャップを感じる部分があると思います。

実際に私が経験したことで、おそらく多くの方にあてはまるであろう内容だと思います。

また、その対応策も記載した記事になります。

 

エンジニアになるまでに最低限必要だと思う勉強内容

私が思うエンジニアになるまでに最低限必要だと思う勉強内容です。

①基礎学習(Progate,ドットインストール)

②実践的な学習(簡単な機能を沢山つくる)

③練習用ポートフォリオをつくる

④本番用ポートフォリオをつくる

ここで大切なことは「②実践的な学習」と「③練習用ポートフォリオをつくる」の工程です。

この②と③の工程を疎かにしてる学習をしてきた方もいるのではないでしょうか。

基礎を学んだらそれを使えるレベルまで身に付けないといけません。

プログラミングに限らずですが、基礎ができたら沢山練習したり実践して鍛えますよね。

自分で考えてプログラミングをする訓練を②と③で沢山やる必要があります。

もし②と③の工程が足りないなと感じる方は、ぜひやってください。

本記事では、これに加えて「新人エンジニアまたは転職前の学習中の方」にやってほしいことをお話します。

 

【経験談】私が新人エンジニアになる前に勉強した内容

・言語:HTML,CSS,Javascript,jQuery,PHP

・ツール:BackLog,vscode

私がエンジニア転職した2016年当時は、上記のような学習内容で転職しました。
Javascript,PHPのロジックを考えて何か簡単なアプリを作成することは結構やっていました。

 

【新人エンジニアになって気付いた】勉強しておいた方が良かったこと3選

私が実際にそうだったという話です。おそらく、あてはまる方も多いのではないでしょうか。
私が現場に初めて入って、ギャップがあり勉強不足だったと感じた点は下記です。

 

勉強しておいた方が良かったこと3選

①チーム開発の経験をすること

他人が書いた、大量のソースコードを読みとけるように勉強すること

③仕様について会話をする練習をすること

これまでの学習では個人開発で、「基礎学習~ポートフォリオ作成」の流れで学習してきた方が多いのではないでしょうか。
それが間違いだと言いたい訳ではありません。それは正しいことだと思います。
上記は「基礎学習~ポートフォリオ作成」に加えて、勉強しておいた方がいいことです。
「基礎学習~ポートフォリオ作成」だけでも初心者から始めると、かなり時間がかかってしまうので上記の内容は優先度が低くなるのは仕方がないことです。

 

①チーム開発

チーム開発と個人開発で「何が違うの?」と思う方もいるのではないでしょうか。
個人開発では今まで気にしなくて良かったことでも、チーム開発だと必要なことがあります。

チーム開発で必要なこと

  • 他人のソースコードを読む
  • バージョン管理が必須になる(Git)
  • 自分のソースコードが他人から見て読みやすいのかを考える
これらについて現場に入る前に、時間があれば訓練しておいた方がよいでしょう。

 

他人のソースを読む

今まで個人開発の勉強がメインで、他人のソースを読み慣れていないということがあるのではないでしょうか。
ソースコードの書き方は人によって異なります。
ソースコードが書けるだけではなく、読めるようにもする必要があります。

 

バージョン管理が必須(Git)

バージョン管理ツールのGitは当たり前に使えるようになっていなければいけません。
Gitプルしてブランチを切り、コーディングした内容をコミットしてプッシュすることは最低限できるようにしておきましょう。

 

自分のソースコードが他人から見て読みやすいのかを考える

読みやすいソースコードとは何なのかという点では、人気な本があるので参考にしてください。
変数などの命名の仕方、コメントアウトの書き方、ネストを浅くする、関数を分割するなど読みやすいソースコードの具体的な勉強ができる本です。

 

②大量のソースコードを読む力

その企業のプロジェクト規模にもよりますが、何年も運用しているサービスとかだとソースコード量が膨大であり、そのファイル数も大量にあります。
ソースコードの量が多いと、「このコードはどのファイルに書くべきか」のような考慮も必要になってきますし、それを読み解く力も必要になってきます。
それについて簡単な対応策を解説しますので参考にしてください。
・開発者ツールを使う(CSS,Javascript)
・ルーティングやURLからコードを探す
・ショートカットキー(Vscode)

 

開発者ツールを使う(CSS,Javascript)

まず開発者ツールを開きます。
Windowsの場合は「F12」を押す。Macの場合は「option + command + i」を押します。(下記は私が適当に作った画面です。)
右側に表示されているのが開発者ツールですね。ディベロッパーツールという言い方もあります。
では下記の左上にある矢印ボタンを押してみましょう。
矢印ボタンを押した後に画面の「ボタンを押して占う」ボタンを押しました。
そうすると開発者ツールの表示が変わりました。
「ボタンを押して占う」ボタンで設定されているJavascriptとCSSのコードを確認することができます。JavascriptにはdivinationBtn関数が設定されていることが分かります。
JavascriptのソースコードのdivinationBtn関数を探せばクリックしたときのソースコードが見れます。
またCSSであれば、対象のclass名を見てclass名からどのファイルに記述があるのかの確認も可能です。

 

ルーティングやURLからコードを探す

PHPの場合はURLからどのファイルのソースコードが反映されているのかを確認できます。

URL例:https://ドメイン名/index.php

この場合はindex.phpのソースコードが画面に反映されているということです。

また、フレームワークのLaravelではルーティングファイルを確認するのが良いでしょう。

Laravelではデフォルトでweb.phpのルーティングファイルが設定されています。

例えばURLが「/user/login」の画面を見ていて、どうロジックが組まれているか確認したいとしましょう。

その場合、web.phpで「/login」と検索します。Vscodeなら「Ctl+F」コマンドですね。

上記だとLoginControllerのlogin関数の中の処理が動いていることが特定できます。

Vscodeなら「Ctl+P」のファイル検索でLoginControllerを開いてすぐ確認ができますね。

 

ショートカットキー(Vscode)

大量のソースコードを読み解くのに便利で良く使う、ショートカットキー(Vscode)を紹介します。

・Ctl + F (ファイル内検索)

・Ctl + Shift + F (全体の一括検索)

・Ctl + P (ファイル名検索)

 

③仕様について会話する

エンジニアはプログラムを書くことだけが仕事ではありません。ポジションがプログラマーであっても同様です。

プログラムを書くといっても「仕様を明確にする」という工程が必要なので、仕様についての会話力は必要になってきます。

現場に入る前の勉強では、プログラムの読み書きやツールの使い方などは学習していても、会話する訓練というのはあまりしていないのではないでしょうか。

仕様について説明するのは、意外に伝え方が難しかったりします。時には専門用語を使わないと、上手く伝わらないこともあります。

逆に聞く立場の時に、ずっと専門用語でわかりにくい説明をしてくる人も中にはいます。その時に理解ができないと仕様の認識がかみ合わず、「求められているものと違うものを作ってしまった」なんてこともあり得ます。

仕様の会話中でも「それって、こういうことですよね?」という確認が臆せずできるかが重要です。

自分の仕様の認識と相手の仕様の認識が一致していないと、作業内容がズレてしまい効率が悪くなってしまいます。

 

まとめ

勉強は個人開発だけでなく、チーム開発をすることを取り入れましょう。

チーム開発で勉強できる内容は下記です。

 

チーム開発で勉強できること

・他人のソースコードを読める。大量のソースコードを読む力が付く。

・バージョン管理ツールを使用して、実践的なチーム開発ができる。

・チームで仕様の認識を合わせる訓練ができる。

 

コメント