ビジネススキル 2020.09.17
【中級編】就活に役立つプログラミング!さらに上を目指したい人におすすめのプログラミング勉強方法
就活生のみなさん。今この記事を読んでいるということは、プログラミングの能力をさらに上げたい!と考えている就活生の方だと思います。
前回のこちらの記事「未経験でも大丈夫!おすすめのプログラミング勉強方法【初心者編】」では「プログラミングってどうやって学ぶんですか?」といった、プログラミング未経験者向けの勉強方法について、詳しくまとめていきました。
※まだこちらの記事を読んでいない人は、ぜひチェックしてみてください!
⇒[未経験でも大丈夫!おすすめのプログラミング勉強方法【初心者編】](https://cheercareer.jp/ip_blogs/article/475)
ただ実は、それ以上に多いのが「Progateなど、一連の基礎文法を学んだ後はどういったことをすればいいんですか?」といった質問。
**プログラミングはあくまでも言語であり、「何か作りたいもの」があって初めて活用できる技術**でもあります。
そのため「プログラムをちょっと書けるようになった!」で止まってしまうまだまだ初心者のために、中級者に進化するにはどんな勉強方法があるのでしょか。
これから、**プログラミングで初心者から中級者になるための効率的な勉強方法について**詳しく解説していきます!
## プログラミング中級者ってどれくらいのレベル?
そもそも「プログラミング中級者」ってどれくらいのレベルなんでしょう?
こちらは人によってさまざまな定義があると思いますが、私は以下のように考えています。
| Lv | 詳細 |
|--|--|
| 初心者 | 基本構文が分かる、チュートリアルを書き写せる |
| 中級者 | 組み込み関数や自作関数を扱えて、自分で考えながら1つのプログラムを組み上げることができる |
| 上級者 | 高度な機能を実装できる、全体設計が行えて、チューニングをしたりコミュニティに貢献できる |
そのため目指すべくは、
**「プログラムをただ書き写すのではなく、基礎構文をもとに自分で考えながら機能を実装できるようになる」** くらいの実力を付けることです。
ぜひこれらを踏まえた上で、勉強方法をおさらいしていきましょう!
## プログラミング学習を始める前に行う3つの準備
実はこれは、[未経験でも大丈夫!おすすめのプログラミング勉強方法【初心者編】](https://cheercareer.jp/ip_blogs/article/475)と変わりありません。
必要なのは、以下の3手順。
1. 勉強のゴール(目標)を設定する
2. 現在の知識などを確認する
3. 学びたい、使用したい言語を確認する
さらにここに追加で重要なのが**プログラミングをしていく中でどう自分を伸ばしていくか。**
自分が学生だった時代、どのように学習をしてきたでしょうか?
A:教科書などを利用して知識(文法や公式)を学び、体系的に学習した
B:問題集を利用して応用問題を何度も解き、実践的に学習した
もちろんAとB、どちらも行ってきた方がほとんどかと思いますが、
「どちらに比重を置いたか」
「どういう順番でやったか」
などの習慣は、プログラミング言語などの学習にも生きてきます。
Aはインプット中心、Bはアウトプット中心の学習方法にあたります。
**最終的に インプット と アウトプット どちらもバランス良くこなしていくことが鍵になります。**
これらを踏まえた上で、AとBどちらから行おうかを考えつつ、後に続くアウトプット編/インプット編を参考に勉強していきましょう!
## おすすめのプログラミングの勉強方法:アウトプット編
### プログラミング勉強法①システムを作る
こちらは「問題を解いてみる」という行為になります。
自分でシステムを立ち上げることで、システム作りの全体像を理解でき、自分の苦手分野を明確にすることができます。
そのため、自分自身のインプットがどこまで出来ているか、その状況確認が可能です。
さらに、実際にサーバーも用意して、管理・保守の領域についても知識をつけていきましょう。
システムの外側だけではなく、内側といえるインフラの知識も必要なため、やっていくうちにしんどくなっていくことも合うかもしれませんが、全てを作り終えたときにはかなりの実力を身に付けられるでしょう。
**何事も実践によって身につくことも多いです。**
基本的にはどんなシステムでもいいので、まずは作ってみることが大事になります。
それでも作るものに悩む!といった方は、言語は何でもいいので以下のような機能を作ってみると効果的かもしれません。
- データ管理(CMS)
- TODOリスト
- チャット
- カレンダー
- ユーザーログイン
- webスクレイピング
上記のようなものを作れるようになると、「今度こういうサービスの真似をしようかな」と思った際に、大体の機能が作れるようになっていることでしょう。
### プログラミング勉強法②記事にまとめる
こちらは「ノートにまとめる」のに近いかもしれません。
最初に学んでいる時、自分でシステムを作る時、「これ何度も調べたな」なんて気持ちになったことはありませんか?
その場合、まだ知識が根付いていない可能性があります。
もちろんプログラミング勉強の場合、完全に覚えることより「調べれば分かる」くらいの感覚の方が大事。
しかし、同じことを何度も調べることがあるのであれば、引き続き調べることも多いかと思うので、自分の言葉でブログなどの記事にまとめてみましょう!
技術系の知識をまとめる上でよく使われている、おすすめのブログサービスは以下の通り。
- [Qiita](https://qiita.com/)
- [Crieit](https://crieit.net/)
- [はてなブログ](https://hatenablog.com/)
上記のサービスのどれでも、もちろんこれ以外でもOK!
もしブログがハードル高く感じるのであれば、まずはTwitterで140字でアウトプットしていく形でもOK。
SNSも苦手…という方はパソコンのWordに打ち込むのでもかまいません!
大事なのは**自分の言葉でまとめて、他人にアウトプットできる場所を持つこと**です。
学んだ知識は一度書き出して見てみましょう。
### プログラミング勉強法③人に話す
こちらは「自分の言葉で、他人に説明できるか」といった部分を確かめることができます。
**特に大事なのは、「何も知らない人に対して説明が行えるか」。**
まずはエンジニア同士で話せること。
最終的には非エンジニアに対しても説明できるよう、本質的に理解できているかを確かめて行けると、容易にステップアップができるようになります!
こちらはプログラミング友達を作るもよし、全然知らない友人をつかまえて説明するもよしです(笑)
2の「記事にまとめる」で、Twitterに少しずつまとめていく手法を取る方は、
- [#プログラミング初心者](https://twitter.com/hashtag/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%88%9D%E5%BF%83%E8%80%85?src=hashtag_click)
- [#駆け出しエンジニアと繋がりたい](https://twitter.com/hashtag/%E9%A7%86%E3%81%91%E5%87%BA%E3%81%97%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%81%A8%E7%B9%8B%E3%81%8C%E3%82%8A%E3%81%9F%E3%81%84?src=hashtag_click)
などのハッシュタグを使ってみると、効率的に友人を増やすことができるかもしれません!
## おすすめのプログラミング勉強方法:インプット編
### プログラミング勉強法①書籍を活用する
自分の教科書を持ってみましょう。
書籍の選び方に関しては、
初心者編と同じく**「本屋で手に取り(もしくは試し読みで)これなら学べそう!といった本を1冊、真剣に取り組んでみる」**といったことをおすすめしているんですが、
それじゃ何がいいか分からない!という方には
Amazonの[ソフトウェア開発・言語 の 売れ筋ランキング](https://www.amazon.co.jp/gp/bestsellers/books/3229704051/ref=zg_bs_nav_b_3_492352)をおすすめしています。
基本的に「ベストセラー」はベストセラーとなる由縁があるので、ハズレを引きたくない!という方はまずそちらを参考にすると良いでしょう。
また、どんな言語を扱うにしてもぜひおすすめしたいのが
「[リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック](https://www.amazon.co.jp/%E3%83%AA%E3%83%BC%E3%83%80%E3%83%96%E3%83%AB%E3%82%B3%E3%83%BC%E3%83%89-%E2%80%95%E3%82%88%E3%82%8A%E8%89%AF%E3%81%84%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E6%9B%B8%E3%81%8F%E3%81%9F%E3%82%81%E3%81%AE%E3%82%B7%E3%83%B3%E3%83%97%E3%83%AB%E3%81%A7%E5%AE%9F%E8%B7%B5%E7%9A%84%E3%81%AA%E3%83%86%E3%82%AF%E3%83%8B%E3%83%83%E3%82%AF-Theory-practice-Boswell/dp/4873115655/ref=zg_bs_3229704051_3?_encoding=UTF8&psc=1&refRID=M2KG4ATDBNV7PSKATMVB)」です。
- 変数・関数名の付け方、コメントの書き方など表面上の改善
- コードを動かすための制御フロー、論理式、変数などループとロジック
などなど、プログラミング言語を扱うにあたって、避けては通れない考え方を学ぶことが出来ます!
個人でやっている分には「自分が分かれば良い」のですが、仕事として扱う場合「誰が見ても分かるものを書く」のが大事になってきます。
こちらも合わせて勉強していくと、より良いコードが書けるエンジニアになれます!
### プログラミング勉強法②セミナーや勉強会に参加する
授業といったほどではないですが、一人だけではどうしても進まない...!という方は、ぜひセミナーや勉強会にも参加してみて刺激を受けてみるのもひとつの手です。
知識はもちろん、モチベーションアップにも繋がります。
勉強・作業時間が確保できない場合は「もくもく会(各々黙って作業をする会)」に参加をしてみるのも効果的です。
セミナーや勉強会を探す際は、
以下の2サイトがおすすめです。
- [connpass](https://connpass.com/)
- [TECH PLAY](https://techplay.jp/)
一方にしか出ていないもの、どちらにも出ているものなどあるので、自分が興味のある分野があるかなどを確認してみるのが良いでしょう。
### プログラミング勉強法③人に聞く
誰にでも、どうすればいいかわからないと悩むことがあると思います。
勉強で行き詰まった際に、先生や友人などにわからない所を聞いていたのではないでしょうか。
プログラミング学習でもこの点は同じ。
ひとりで分からないことを抱えるより、人に聞いてみて教えてもらうのが早かったりすることも多々あります。
たとえばTwitterで繋がった人、セミナーや勉強会で出会った人。
必要であれば「[MENTA](https://menta.work/)」などのサービスを利用し、自分自身のメンターを探しても良いかもしれません。
しかし、分からないことをすぐ聞いてしまうとあまり効果がありません。
**まずは自分で1時間は調べてみる、それでも分からなければ人に聞く** というのを心がけてみてください!
## 中級者を目指したい人におすすめのプログラミング勉強方法 まとめ
いかがだったでしょうか?
中級編は初心者編と比べると抽象的なことも多く、具体的なイメージに結びつかないことも多いかもしれません。
ただプログラミングを学んでステップアップするには、この抽象度を乗り越えていく必要があります。
誰かに導かれるものを作れるだけではなく、自分で考えて作れるようになるためにも、まずは1つずつ、書かれたことをこなすことを目標にしてみましょう!
基本的なサイクルは初心者編と変わらず、以下の4つ。
1. 目標を決める
2. 現時点での自分のプログラミング能力を知る
3. 目標に近づくために必要な要素を知る
4. プログラミングに必要な要素を、ひとつずつ身に着けていく
また、どうしても「プログラミングの勉強をする時間が取れない」「なあなあになってしまう」という方もいると思います。
そんなときは目標に合わせて**ゴールを達成するまでの期限を決める**といいでしょう。
おすすめは大体1ヶ月〜3ヶ月程度の期間。
この間はプログラミングの勉強に全力で打ち込む!と決めると、逆算しながら取り組むことになるため、より効果的に臨めるようになるかと思います。
また、**今自分が持っているスキルやプログラミング能力を下のURLからプロフィールに登録すると、あなたに興味を持った企業から直接オファーがきます!!**
CheerCareer(チアキャリア) のプロフィール登録はこちらから!
⇒[https://cheercareer.jp/mypage?key=f435ecf0aa23069a3fb789817d10511e](https://cheercareer.jp/mypage?key=f435ecf0aa23069a3fb789817d10511e)
初級からでもプログラミングのスキルを持っている方は、ぜひ登録してみてください。
そして脱・初心者を目指し、中級者・上級者になれるのを応援しています!