見出し画像

自分のプログラミング学習遍歴 苦労話

 こんにちは。QtでRPGゲームプログラミング第1回目です(の予定でした)。でも、とてつもなく脱線してしまったので、思い切って編集しなおしました。
 さて、今まで人文の話ばかりしてきたのですが、自分の人文の話はなんか受けが悪い(「棘と毒持ち」)なのか、読んでる人は耐性がすごいなと思うんです。でも、人文ってマジでやればそんなものです。漫画の神様、手塚治さんの本を読むと、やっぱり辛辣に世の中を批判しているところはあるなと思うし。

 例えばミスターチルドレンの歌を聞いて、大好きという人もいれば、何か歌詞が暗い・・・という人もいる。うん。そういう歌詞もありますね。歌詞が哲学的だし。でも明るい歌もありますよ。

 「あさイチ」というNHKの番組で、哲学者の若手の学者が出ていたんですが、「哲学やっていると…人間ってそんないいものじゃないっていうか…」といって、具体的な中身をその場でいうことができない。とてもいいづらそうにしていました。その気持ち、よくわかります。

プログラミングの勉強法

 まずは飛び込め

 私がプログラミングを始めた当初、右も左もわからなかったです。
 とにかく、ネットサーフィンをしました。私の最低限あった知識、それは、プログラミングをするには、プログラミング言語の学習が必要だ。ただこれだけでした。あるサイトを見つけました。どこだったかはもう覚えていないけれども、「Pythonがいいと思います。」と書いてあった。

 Pythonは海外で大人気のプログラミング言語。最初のプログラミング言語を学習するのにうってつけだと・・・。

 そして、まず英語のPyQtの本を購入。これはPythonで使うQtフレームワークの本。買った理由は、自分は英語を読めるという驕りと、これもpythonじゃん。という軽いノリ。

読んでもさっぱりわからなかった。そのため、1年程度放置。ちなみに、今この本はとても古いので、買うかどうかは自己責任で。でも、いい本です。

わからなかった理由

 まずはpythonを勉強しなければならなかったから。しかもQtは4から5への移行期だった。バージョンというものがあるということすら知らなかった。そして、極めつけは、コードが別添で用意されていることを知らなかったこと。そんなこんなでようやく、Pythonを学習することを思い立つ。

 で、私が読んだPythonの本。当時はPythonの日本語の本がほとんどなかった。あっても、4~5冊くらい。(今はアマゾンで検索すると異常なほど多く、いい本と悪い本を見分けるのが難しい。)しかも、内容はPython2の時代だったようにも思う。ちょうど2~3への移行期だった。 

 Pythonの本は、どれも一長一短があり、どんな人にも受ける!という本はありません。

 まず私が読んだ本はこれです。

 これがいいスタートを切らせてくれました。とても分かりやすかったです。

 で、この本を読み終えました。もっと深く学びたいなと思い、

 もう絶版になりそうなくらい古くなってしまった・・・。2009年の発売だ。私がプログラミングを始めたのが2013~14年ころだったと思うから、すでに5~6年は経過している計算になる。今は買わないほうがいいかもしれない。だけど、大切なのは背景にある理論。コードは古いので信用できない点もあるかもしれないけど、私は図書館に行き、3回か4回くらいこの本をじっくり読んだことは事実だ。

 私がこの本を買ったのは、第3版の時だった。初めてのPythonである程度プログラミング自体の基礎脳が出来上がり、もっとPythonを深く学びたいと思った時、この本を買った。

 そして、自分なりにプログラムが思うように組めるようになって、もうちょっとPythonを深く学びたいと思って、最後に購入したPython本がこれだ。

 これは今までで読んだ本のどれよりも深かった。 

 忍耐力が大事

 (プログラミング的)忍耐力は次のものによって成り立ちます。
 
 基礎忍耐
 机の前でじっと座っていることに苦痛を覚えない人
 物事を考えることに対して抵抗がない人
 バグが起きても原因を解明するまであきらめないこと

 
 目標忍耐
 こういうものを作ってみたい!という目標があること
 
 最初はRPGゲームを作りたかったのでpygameと言うライブラリを用いてpythonを学習した。今見ると恥ずかしくなるようなコードではあるが、一応マップエディタの作成や、キャラクターの動き、宝箱、移動処理などなどはできるようになった。

 あると便利
 
英語が読める。他の言語もそれなりにわかる⇒情報収集の幅が広がる

 ドイツ語やフランス語、イタリア語でも本が出ていることがありますし、ネット記事があることがあります。まあ、翻訳機がある今の時代、実際に見て訳せるか、一度翻訳機にかける手間を我慢するかどうかの違いです。

楽しめること

 作る過程を楽しめなきゃ、絶対長続きしません。それには、目標が必要です。星の王子様で語ったように、渇きを癒すための井戸が必要なのです。

経験が大事

 プログラミングは、誰だって学べる。学歴とかは関係がない。経験がものをいう世界だ。何だってそうだけどね・・・。日進月歩という言葉の、本当の意味を理解させてくれたのもプログラミングならではだった。

子どものように学び 作っては破壊する

 また一から作り直さなきゃいけないのは無駄な過程だ・・・という言葉はよく耳にするが、私はまた一から作り直してみるというのは非常に大切なことだと思った。次はもっといいものができる。不思議と・・・。

やがて

 そうして、段々とQtと言うものに興味を覚え始めるようになった。なぜかというと、語学学習アプリを作ってみたいな…と思うようになったからである。また、最初に買っちゃった本の内容を理解したいと思ったから。日本では、Qtの普及度はそこまで高くない。人気がないわけじゃなく、どうも敷居が高いようなのだ。

 そして、Qtの力もそれなりにつきました。とにかく最初に飛び込み、じっくり勉強したこと。何度もトライアンドエラーを繰り返し、解決策をじっくり考えたこと。例え途中で変化したとしても、作りたいものがあったこと。作る過程を楽しめたこと。机でじっとしているのが苦ではないこと。

 こうしたところは、プログラミング向きだったと思います。というかガッチリはまっている気もする。

C++へ

 Cはちょっとかじった程度で、C++へ移行。理由はQtをC++で書きたいと思ったから。それにQtはとても便利なフレームワークだ。でも、何もわからないとやっぱり心細い。だから、

 これを買ってじっくり読んだ。

だけどこれだけですらすらとC++が書けるようになったかというと、やっぱりそうはならない。デバッグとエラー処理の経験。これが大事。

この記事が気に入ったらサポートをしてみませんか?