プログラミングを勉強していると、躓くことも多いと思います。
僕は大学時代からプログラミングを勉強していたので、プログラミング歴で言うと14年くらいになります。仕事で後輩にプログラミングを教えてきたこともありました。
そんな僕が、これまでの経験をもとに、プログラミングを上達させるためのコツを、5つのステップで解説していこうと思います。
目次
プログラミング上達のコツ(5ステップ)
まず結論から書くと、プログラミングを上達させるためには、とにかく経験を積むことです。プログラムを書いて、書いて、モノを作ること。
ただ、やみくもに経験を積めばいいというものでもありません。今の時代は便利なもので、インターネットで検索すればプログラムのコードはそこら中から拾ってこれますし、コピペだけでそれなりに動くものはできます。
コピペだけでもそれなりにエンジニアとして食べていくことはできると思います。でも、もう1段階成長して1流のエンジニアになっていくためには、自分自身でコードを生み出すスキルが必須になってきます。
自分でコードを書けるようになるためにはどのような経験を積んでいけば良いのか、以下に解説します。
ステップ1:問題を細分化する
プログラミングの最初の関門は、「何がわからないのかわからない」という状態です。
その状態を抜け出すために、問題を細分化します。
例えば、全くの初心者が「チャットができるシステムを作ってくれ」と言われても何をどうしていいのかわかりませんよね。
そのようなときは、目的を実現するにはどうすれば良いのか、自分の理解できる範囲まで問題を細分化していくんです。
この例だと、チャットを作るには、
- 自分が入力した文章をサーバーに送信する
- 相手が入力した文章をサーバーから取得する
という処理が必要そうですね。
次に、これらをそれぞれ実現するためには何が必要か、さらに細分化していきます。
- 自分が入力した文章をサーバーに送信するには?
- 入力画面を作る
- 入力内容をサーバーで受け取る
- 受け取った内容を保存する
- 相手が入力した文章をサーバーから取得するには?
- サーバー側で保存されている文章を取得する
- 取得した文章を出力する
- 出力した文章を画面に描画する
ちょっと例が微妙かもしれませんが、こんなイメージです。
あとは問題を一つずつ潰していくだけです。「チャットシステムを作る」よりも「入力画面を作る」方が簡単そうですよね。
ステップ2:問題を解決する
問題を細分化したら、その問題を一つ一つ解決していきます。
今の自分のスキルで解決できるものはいいですが、そうでないものは解決方法を探す必要があります。
そういった場合、解決方法は大きく分けて2つあります。
- 自分で調べる
- 知っている人に聞く
解決が速いのは②でしょう。もし今作っているものの納期が迫っているなら、迷わず人に聞くことをオススメします。
ただ、より成長できるのは①の方です。自分で調べて解決するのと、人に教えてもらって解決するのとでは、その後の理解度がまるで違います。自分で試行錯誤した方が、より記憶に残りやすいです。
さらに良いのは、自分で調べた上で人に聞くことですね。例えば、調べてみたけどどうしてもわからない、とか、調べた結果解決方法が2つあり、どちらがより良いのかアドバイスを貰いたい、などです。
自分で調べた方法が間違っている場合もありますからね。経験豊富な人に聞くことで、より正しい知識を身に付けられます。
もし聞ける相手がいない人は、オンラインスクールなども検討してみてください。
始めのうちはどうしても自分一人では解決できない問題も出てくると思いますので、身近に相談できる相手はいた方がいいと思います。
ステップ3:作って動かす
解決方法がわかったら、とにかくまずは作って動かしてみます。
ここでのポイントは、できるだけ小さい単位で動かしてみるということです。
どういうことかというと、ステップ1で問題を細分化したと思いますが、細分化した一つが出来上がったら、他が出来ていなくても、その時点でまずは動かしてみるということです。
たまに、とにかく先に作ることを優先して全部ができてから動かしてみようとする人がいます。そうすると、
- バグを見つけにくくなる
- 最初の方に作った部分を忘れてしまう
という問題が起こりやすくなります。
できるだけ、少し作ったらまず動かす→少し機能を足したらまた動かす、ということを繰り返して開発するようにしましょう。
ステップ4:理解する
次に、実際に作って動かしたものを、きちんと理解することが重要です。
インターネットで調べて、または誰かに聞いて、問題が解決した。ここまで出来て80点です。解決した問題の本質まで理解できて、100点満点。
さらに言うと、自分なりの応用を加えて、求められているよりも品質が高いものができたら、120点ですね。
ただ初心者がいきなりすべてを理解するのは難しいでしょう。
とりあえずの理解は自分のできる範囲でいいと思います。例えば、コードを読んで半分は分かったけど、もう半分は分からない。とか、こう書くとこう動くということが分かったけど、理屈は分からない。とかですね。
今はわからなくても、経験を積んでいくうちに、ある時ふと理解できたりします。
理解を深めるコツとしては、これもとにかく動かしてみることです。
- デバッグして変数の中身を見てみる
- コードの一部を変えて動作の変化を見てみる
などです。
重要なのは理解するための努力をすることです。
ステップ5:楽しむ
最後に、一番重要なのはプログラミングを楽しむということです。
これはプログラミングに限らず何事においてもそうですが、楽しめさえすれば、どんどん行動に繋がりますし、上達も早いと思います。
プログラミングにおいては、
- 自分で作ったものが思い通りに動いたとき
- 難しい問題を試行錯誤して解決したとき
がよく楽しみを感じる時だと思います。
あと、マニアックな楽しみ方としては、めちゃくちゃきれいなコードを書けた時なんかは、自分が書いたコードを小一時間眺めて悦に浸ったりしますねw
プログラミングを楽しむコツ
楽しむことが一番重要と書きましたが、ではどうすればよりプログラミングを楽しむことができるのか、というコツも少しお話ししようと思います。
とにかく作る
一つ目は、繰り返しになってしまいますが、とにかく動くものを作ってみるということです。
やはり自分で作ってみて、実際に正しく動いたときに、一番喜びを感じると思います。
ただ作るものは最初は簡単なものから始めて、徐々に難易度を上げていくのが良いですね。
最初から難しいものを作ろうとしても、楽しさを感じる前に挫折してしまうと思います。
仲間を作る
もう一つは、プログラミングのことを話せる仲間を作るということです。
僕は情報系の大学だったので、卒業してからエンジニアになった友達が何人もいます。そういった人たちとプログラミングの話をするのは単純に楽しいですし、もっと頑張ろうという刺激にもなります。
また、自分が扱ったことのない言語の話を聞くと、より知識が広がったりもしますね。
身近にそういった人がいない場合は、SNSやプログラミングスクール、オンラインサロンなんかで探してみるのも良いと思います。
まとめ
最後にもう一度まとめます。
- 問題を細分化する
- 問題を解決する
- 作って動かす
- 理解する
- 楽しむ
以上が、僕の経験をもとにしたプログラミング上達のコツになります。