プログラミング経験3年目までに成長するためのおすすめ勉強法5選

# どんな人向けか
- プログラミング初心者の人
- ある程度プログラミングに慣れてきたけど中々成長できないと感じている人

## 初心者の定義
プログラミング言語でhello worldをしたことがある〜簡単な画面や機能を作ったことがある

# 何について話すか

自分自身、そこまでプログラミングができるわけではないですが、
以下のことをやることで成長したなと大きく実感したこととその理由を書いてみます。
仕事でプログラミングをしている人はぜひ実践してほしい行動を紹介していきます。

以下にいろいろまとめますが一言でいうと

<b>視野を広げる</b>

が重要なことだと思っております。

# ①ソースレビューを率先して行う
ソースレビューとはプログラミングによる成果物の適切さを他の人が確認する工程です。
初心者プログラマーはソースレビューを積極的にすべきです。
その理由を2つ紹介します。
## 1. テクニックを学べる
初心者プログラマーからすれば、先輩のコードはほとんどが参考になる(おそらく)でしょう。
「こんな書き方・関数があるんだ」と新しく学ぶことができます。

## 2. よくないコードに気付くことができる
誰かのソースを見て「このソース、なんか見づらいな」とか思えば、
それだけで大きな気づきと経験です。
普段プログラミングする上で、わかって書いているからか、
読みにくいなどに気付くことが中々できません。
それを第三者の目線で見ることで「こういう書き方は見づらいんだ」と学ぶことができます。

## ソースレビューをするほどの技術も知識もない人
上記の理由からソースレビューをおすすめしますが、以下のように思うと思います。
<b>「そもそもソースレビューをできる程の知識と実力がないんだけど・・・」</b>

そう思ってレビューしないのはもったいないです。
ロジカルなテクニックをつけることは時間がかかります。
ただ実力はなくても、知識は「リーダブルコード」を読むことですぐにつけることはできます。
![ダウンロード (2).jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153118/5ed2ece2-cb29-896f-29e5-c3d3f6fa70b0.jpeg)
http://ur2.link/0H9o

リーダブルコードとはプログラミングを行う上で、
読みやすいコードにするためにはどうすればいいかを集約した一冊です。
この本を読んでいることで
<b>「インデント深くない？」</b>
とか
<b>「早期リターンはしなくていいの？」</b>
とか考えるようになります。
リーダブルコードはエンジニア界隈でもバイブルと言われるものですが、
リーダブルコードを読んでいないプログラマは意外と多いです。

上記の観点でレビューをすることで、可読性のあるコードに関しては
的外れなことを言わずにレビューすることができるようになります。

まず

- 「リーダブルコード」を読む
- 積極的にソースレビューに参加する

を実施していくと良いです。
チーム内のソースレビューは自分に確認をお願いされていなくても、
こっそり裏側で見て確認するなどして自分の成長につなげましょう。

# ②教える人になる
こちらは新卒ないし、プログラマ2年目の人は教える人になることをおすすめします。
教えられる人ではなく教える人？と思うかもしれません。
プログラミング2年目程度で、自分が教えられる段階にまだ行っていないと思う人いるかもしれません。
それでも教える立場になることで成長するきっかけを作ることができます。
その理由を2つ紹介します。

## 1. 教えることが最大のインプットになる
「ラーニングピラミッド」というものをご存知でしょうか？
人はどのようにすると学習したことが定着するのかということが
ピラミッド式で記されており、最も定着率が高いものは「人に教える」ことです。
![blog_img.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153118/10f7086e-dcfe-6ae6-2385-6dc3a214ed99.png)

人に教えることによって、曖昧に覚えていたプログラミングの仕組みも
それを説明するために自主的に調べて理解して、後輩にアウトプットする必要があります。
それを行うことによって、教えることが自分の成長を促進するカンフル剤になるのです。

## 2. できる人というフィルターが現実のものになる
「ピグマリオン効果」というものをご存知でしょうか？
![family_kitai.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153118/91e82a74-cc22-b6b2-fd52-cb8d3a914cad.png)

<b>他者からの期待を受けることで学習や作業などの成果を出すことができる効果</b>
のことです。後輩がつくことで少なからず上司・部下から頼られる存在、というフィルターがかかります。
不思議なことにこの期待が大きいほど、成果が出るようになるらしいです。

もちろん、先輩のことを舐め腐る後輩や、自分に期待をしてくれない上司はいるかもしれません。
が、人に教える立場になることは比較的頼りにされる機会が増えるということは、ピグマリオン効果が大きく発揮される機会になります。

もしある程度の経験をした上で、教育の場に身を置ける機会があるならば積極的に身を置くようにしましょう。

ちなみに自分は新卒2年目〜3年目は新卒メンターに立候補し、
4年目は後輩を3人持ち5年目は新卒メンターをまとめるリーダーを行いました。
このように後輩に教える機会を積極的に取っていたことが、成長できた大きな要因かと思います。

# ③適切な資格勉強を行う
同じプログラミング言語を1~2年やっていると
「もうこれくらいやっているので、資格試験取得レベルの実力は持っているから取る必要ないかな」
みたいに言う人がいるのですが、業務上でのプログラミングは技術が偏りがちです。

資格試験はひとつの分野に対して幅広く勉強をするので、
必ず自分が知らなかった知識に触れることがでてくるはずです。

<b>業務では深く狭い知識を、資格勉強では浅く広い知識</b>

を身につけることができます。それにより柔軟性のある技術力になるかと思います。

基本は

- プログラミング言語の該当資格
- 基本情報・応用情報などの幅広い知識が身につく資格

を意識して自分に合う資格を勉強することをおすすめします。

# ④コードはマルコピペせずに写経する
写経は多くのプログラマーが紹介する勉強方法です。
プログラミングを行う上で、「配列の中の3の倍数を取得する処理」みたいなものを実装したいときに、調べると案外そのままのロジックが出てきます。
ここを丸コピペして貼り付けるか、写経するかでコードへの理解度はかなり変わると思います。

ただ、脳死で写経をするのではなく、理由を考えながら写経することを心がけましょう。

以下で詳しく書かれているので参照URLを書かせていただきます。

[写経でプログラミングが上達するか](https://qiita.com/yuya_takeyama/items/b8a8c548a4a1c6a05531)

# ⑤paizaなどのロジック検定などを積極的に行う
paizaなどでロジックを考えて納品すると、そのプログラムが正しいか、
性能はよいかなど判定してくれるサイトが存在します。

paizaではそれぞれの問題にランクがあり、ロジック難易度の高い問題を解くとあなたの年収という項目がどんどんあがるのでモチベーションになります。

<img width="786" alt="paizaプログラミングスキルチェック___ITエンジニア専門の転職サイト【paiza転職】.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153118/9b12c3a4-dbef-6be8-2fc9-333b01a14a87.png">
[paiza参照](https://paiza.jp/challenges/info)

このようなネットに転がっている問題集を使うことで、
自身のプログラミング技術を深めていくことができるようになると思います。

転職でも一つの指標になるかもしれないので、積極的に実施していくといいでしょう。

# おわりに

いかがでしたでしょうか。自分が新卒から3年目くらいまでに
役に立ったと思う取り組みでした。ご参考にしていただけますと幸いです。