kentsu.dat

何かその時の興味でいろいろする人。最近はScala使ってる。アルゴリズムと自然言語処理、深層学習が大好き。

自分なりの、プログラミングを楽しむためのベストプラクティス

はじめに

大学や専門学校、高校中学や老若男女問わず、これからプログラミングを始める初心者の人がどうすればプログラミングを楽しめるか。
案外むずかしいこの話題に関して、自分の経験を踏まえた自分なりのベストプラクティスをまとめてみた。


自分は高校入学と共にプログラミングを始め、独学でJavaScala,C,Pythonなどを学びプログラムを組んできた。
本来、この手のものは誰かに教えてもらう方がいいのだが、ほぼ独学でスキルを磨いてきた経験が多少なりとも役立てばいいと思う。


この記事はあくまでも個人的な意見であり、プログラミングを楽しむにはどうしたらいいかということをまとめただけなので、プロのマサカリはご遠慮願いたい。
もしそれでもマサカリを投げたくなったらこのブログではなく、私のgithubにはいくつか進行系のプロジェクトがあるのでそちらにお願いしたい。

github.com



この記事は楽しむことに重きをおいている
楽しまなければ、いくら魅力的でもそれを実感せずに終わってしまうからだ。


それでは、はじめよう。

プログラミング言語を選ぶ

プログラミングを楽しむ上でこれがまず最初の難関になるだろう。
そして、ここで選択を誤ってしまうと途端にプログラミングがとてもつまらないものになってしまう。
しかもたちが悪いことに、プログラミングを実際にその言語で行うまで自分が誤った選択をしたと気付けない。


楽しさには個人差があるのでここではざっくりと「こういう言語がいいのでは」ということをまとめる。


プログラミングを楽しみたい人には2つのタイプがあるように感じる。

  • 真っ黒な画面に文字が出ること自体を面白いと感じる人
  • 具体的な何かソフトウェアを作り上げ面白いと感じる人


このどちらに当てはまるかで言語選択は大きく変わる。

真っ黒な画面に文字が出る。これを面白いと感じる人


このタイプに当てはまる人は迷わず「C言語」や「C++」といった言語を選ぼう。


このタイプに当てはまる人は非常に少ないがそういった言語を選ぶことで情報工学のあれこれに触れることができる。
それ自体を面白いと感じ、自分で勉強をする事が苦ではなくなるだろう。


初めに紹介した言語でなくても、このタイプの人は「この言語やってみたい」というものを選んでもきっと楽しめるだろう。

なのでここではこれ以上取り上げない。

具体的なソフトウェアを作り上げ面白いと感じる人


このタイプの人は間違っても「C言語」や「C++」といった言語を選択してはならない。
よくネットでは「プログラミングするならCから始めろ」や「いいやアセンブリから始めろ」という過激派な意見を多々見るがこれに惑わされてはいけない。
そういった意見はあなたがプログラミングを始め、楽しむことを阻む。


実際、あれらの言語は環境にもよるが目でみてわかるものを作りにくい傾向にある。
なので、画面に文字を表示するだけのどこが面白いのかとすぐに飽きてしまうだろう。


ただ、このタイプに当てはまる人は大勢いるので、そういった人のためにおすすめの言語をいくつかまとめる。

  • Java
    • GUI(メモ帳などウィンドウとしてでるプログラム)が非常に作りやすい
    • Androidアプリケーションも作れるので目で見てわかる成果を作りやすい
  • Python
    • 最近注目の言語。文法が短く手軽に書ける。簡単。
    • GUIもWebもいける言語
    • 画像を扱ったりもできるので目で見てわかるものを作りやすい
  • Ruby
    • 日本発祥の言語。Pythonと似たような部分が多い。
    • 日本語の情報が多く困ったことがあればググれば大抵解決できる
  • JavaScript
    • webブラウザで動作する言語。
    • html/cssなど簡単なのと一番目で見てわかる成果を作りやすい。


ここで取り上げた言語にはオブジェクト指向と言われるものが備わっている。
これはたいていの言語にあり、どれを選んでもきっとその後の助けにもなるだろう。

プログラミングを実際にしてみる

プログラミング言語を選んだら実際にプログラムを作って欲しい。
ただここで「Hello World!」を表示させ、画面にでる。これを面白いと思ったからといって容易に言語を変えないで欲しい。
それは、一時の感情に過ぎない。


実際はそれより多くの時間を使うことになるのだから。


プログラミングをする際は、できれば書籍で特に入門書を一冊持っておくのがいいだろう。
ネット上にも情報はたくさん転がっているが書籍を一冊もつことを強くすすめる。


実際にプログラムを組むといっても、初めは基礎的な文法を学ぶことになるだろう。
それをつまらないと思ったなら、いきなりGUIなどのアプリケーションを作成しながら学んでいくのもいい。
ネットで調べて、拾ったコードを見様見真似で書いてもいい。
コピペしてもいい。


とにかくなにかプログラムを作ってみよう。


ここで重要なのは諦めないこと。
諦めてしまっては何も面白いとも思えない、諦めずに苦戦しながらも何か一つでいい、簡単なものでいいのでつくり上げる
完成した頃にはとてつもなくプログラミングを面白く感じるだろう。

作るまでに、コピペしようが写経しようがどれほど汚いコードを書こうが関係ない。
大切なのは楽しむことなのだから。

勉強してみる

何か最初に作って、おもしろいと感じたならもう少し自分が使ってる言語や、情報系の関連技術について勉強してみよう。
今までに身につけた知識とつながりが感じられさらにおもしろく感じるだろう。


ここでは、どうやって勉強したらいいか取り上げる。


実際にプログラミングや情報系の関連技術の勉強をしていくなかで本やネットの情報を参考にすることだろう。
そういったとき、陥りやすいのが無知や周囲の出来る人と自分を比較し「自分には知らない事がたくさんある。ぜんぜん出来ない。」といったネガティブな感情である。


自分の無力さ、無能さを実感することがあるだろうがそれを気にしてはいけない。
これは誰もが通る道であり、あなたがすごいと思う人たちも皆通ってきた道であるから。


知らないことわからないことがいくらあろうが今は気にせず自分のペースで勉強しよう。

本やネットの情報を元に勉強する時

こういった場面で気をつけたいことがある。


初めたばかりの人は特にいくらテキストを読んでも「なんじゃこりゃ」となりやめてしまうことがある。


せっかくここまで来たのにそこでやめてしまってはもったいない。


そこでおすすめの勉強法がある。


わからない、読んでも理解できない。
こういったものが出てきたとき、実際にコードにして実行してみよう。


必ずしも読んで頭で理解する必要はない。
実際に動かし、自分のもつ疑問を実際の動作から感じとり解消しよう。


これは理解が止まったとき、無理に理解しようとするよりよっぽど有効な手段である。

一般的である必要はない

ここまで紹介したことはあまり一般的ではない。


学校などでは通常
CやってJavaやって…。
みたいにやり、学校が決めたとおりの手順で勉強する。


これは大抵の場合、あなたが楽しめるようなものではない。


そういったとき別なプログラミング言語に取り組んだり、自分でガンガン先に進んだりして欲しい。
自分のペースで勉強したとしても実際そんなに影響はない。


むしろ、無理して学校が決めたり他人が決めた手順でやったほうがその後に影響しやすい。


面白いと感じたなら、プログラミングを楽しみたいと感じたならぜひとも積極的に知識やスキルを身につけて欲しい。


最後に


ここまでくればプログラミングが楽しくなったり、情報系関連技術を実際に使うことが楽しく感じられるだろう。


最後に
あなたが実際にプログラミングをはじめたときや楽しみたいと思ったとき、こんなに上手くはいかないだろう。それが普通である。


それはこの記事を書いた自分も同じであった。
今まで嫌になるほどエラーとバグと格闘してきた。
幾度と無く、失敗と挫折を繰り返してきた。


ただそんな自分でも、楽しむことでなんとかある程度のプログラムを作れるスキルを身につけることができた。


失敗や周囲の評価を恐れず、型にはまらずあなたなりにとにかく楽しんで欲しい。
自分が楽しいと思うことをひたすらにやってほしい。


そうしてプログラミングを楽しんでくれる人が増える事を切に願う。