カレンダー

2019/11
     
1516
17181920212223
24252627282930
       

広告

Twitter

記事検索

ランダムボタン

レゴのようなもの

by 唐草 [2019/10/27]



 プログラムの勉強は、学習者の心を挫くことで知られている。コンピュータをもっと使いこなしたいとかスマホアプリを作ってみたいとかの漠然とした動機でプログラミング教本を買うも、本を読み切ることなく終える人も多いだろう。下手をしたらソフト導入で力尽きることさえある。
 プログラムを学ぶ際に必要なものは、数学的発想力でもコンピュータの仕組みへの理解でもない。作りたいものがあるという情熱だけである。
 ぼくの情熱は、大学生の時に仲間内で使う掲示板が欲しいという単純な想いだった。SNSのない時代ならではである。最初の掲示板は本を丸写ししたような簡単なものだった。ログが壊れたり、荒らされもした。でも、他には無い最強の掲示板を作りたいという情熱でアップデートを重ね続けた。データをXMLにしたり、MySQLと連動したり、動画の埋め込みに対応したり、投稿をメールで通知するようにしたりと進化していった。その過程で、プログラミングのコツやテクニックを習得した。それだけにとどまらずWebサーバ構築からパフォーマンスチューン、Linuxの導入まで学ぶことができた。そして、今のぼくがある。
 この経験を通してぼくが学んだのは、プログラミングの勉強は他の勉強とは大きく異なるということだ。
 コンピュータは何度でもやり直せるし、何度失敗しても文句ひとつなく付き合ってくれる。だから望む結果が出るまで小規模なトライ&エラーを繰り返し続けることが、もっとも効果的に学習を進められる。初めから100点満点の回答を求めるのではなく、5点ずつでもいいので得点を重ねる方法を1つずつ理解していけばいい。
 規模の大きいプログラムを作るようになった今でも、ぼくの姿勢はトライ&エラーの繰り返しである。100点の答案を暗記しているのではなく、目の前の5点を確実に積み上げていくだけ。それを実現するには、プログラミング言語ができる最小のことをいくつか知っておけば十分だ。
 ぼくはこの感覚がレゴに似ていると感じている。何万ピースものレゴブロックで作られた大作を目にすると「これがレゴなのか?」と面食らってしまう。でも、よく見てみれば大半がおなじみのパーツ。パーツの種類と組み合わせ(薄いパーツは3枚で1ブロックの高さになるとかそういう知識)を1つずつ理解すれば、大作の仕掛けもだいぶ理解できる。
 プログラミング言語の最小単位とその機能を理解することができれば、後は自分が納得できるまで繰り返すのみだ。レゴと違ってプログラムならタダみたいなものだ、何回でも試せる。不格好でも動くことが正義だ。まずは失敗を恐れず100万回でも試してみよう。スタートはそこからだ。