読者です 読者をやめる 読者になる 読者になる

謎言語使いの徒然

適当に気になった技術や言語を流すブログ。

プログラム脳の伸ばし方

日記

何か就職剃る前(学生時代)も就職してからも「特殊」「才能」とか言われるのがシャクなので、どうやって伸びたか考察してみた。

結論だけ言えば気の持ちようが全てだと思う。

具体的に

  • 下積みがあるのを理解する。
  • 他人と比べない、勉強の糧にする。
  • 読んだコードは必ず理解する。(出来たからいいやはしない)
  • 苦手意識を持たない。
  • 変なプライド持たない。
下積みがあるのを理解する。

非常に当たり前のお話。だけど、プログラムを勉強する理由が「ゲームを作ってみたいから」って人が学生時代多かったので釘をさして見る。
この目標には2点の問題が潜んでます。
1点目、ゲームはプログラムだけでは出来ません。絵や音楽、シナリオにバランス調整等、やることが死ぬほどあります。全ての技能を身につけるコトは、時間的にムリがあります(たまにそういう多才な人もいますが、修行に10年はかかるでしょう)。そうして挫折した人を沢山見ました。人を集めて…とするなら、プログラムではなく、マネジメントを勉強すべきです。
2点目、いきなりゲームなんてものが作れるわけがない。プログラミング初心者というのは、ハサミやカッター(基本言語仕様)の使い方を覚える段階だというのに、車(ゲームソフトとか)を作れるわけがありません。車を作るなら、数十以上の道具と、数千近い部品を理解する必要があります。そしてそれは時間をかけて覚える以外ありません。
プログラムだって学問ですから、大成するには数年位下積み期間は要るのです。

他人と比べない、勉強の糧にする。

ちょっと語弊がありますが、他人と比べて優劣を競ってはいけません。
そしてもっとダメなのは、「才能」という単語です。口に出した瞬間に自分のスキルは落ちます。というか終わります。
「私には才能がないから」「アイツには才能があるから」というのは、自分の才能(もしくは才能になるかも知れない土台)を破壊します。
逆に、「アイツにそういう能力があるなら教わってみよう」とか、吸収のネタに出来れば、分からない時に相談出来て、知らないことを教えてくれる教科書がわりになってくれます。
日本には「聞くは一刻の恥、知らぬは一生の恥」とありますが、知って出来ないコトは論理的にもありえない、そして、知らないコトは逆立ちしたって出来ないのがプログラムですから、「聞く」はそもそも恥ではないです。

読んだコードは必ず理解する。(出来たからいいやはしない)

特に学生時代は、これで超差が開きます。
同じ課題をやってて差が開く原因はおおよその場合ここにあります。
Google 先生や、SNSに頼って課題を終わらすなら、何故そうなるのか、頭の中で1行づつ追いかけならが実行しましょう。
オープンソースも使うだけではなく、読んでみると、設計論とか読み取れて勉強になりますよ。
最近の口癖は「そいつは道理が合いやせんぜぇ」で、頭の中の実行と、結果が食い違ってる時に言いますが、そういう時は、頭の中の実行が現実と離れているか、その他の凡ミスかどっちか。初めのうちは前者ですが、後者になってきたら言語は覚えたのサインです。

苦手意識を持たない。

「苦手だ」と口にだすのは諦めると同義で、心理的に諦めるコトです*1
苦手って言うなら誰もが苦手なんですよ、悩んでるのが自分だけとか、今の御時世ありえない(英語も含めれば余程のことが無い限り同じ悩みを持って解決した人が居ます)。
「一週間でできる」とか言ってる本が、1ヶ月かかっても気にしないでください。勉強の仕方が著者の想定と違うだけでしょう。

変なプライド持たない。

変にプライド持って、初心者向け入門書を避けるとか、後輩に聞けないとか、ハッキリ言ってアホの所業です。
知らんコトは知らんし出来ない、知れば必ずできるがプログラムですから、勉強したい内容が載ってるなら、入門書だろうが何だろうか買う。サッサと聞いて知る方がいいに決まってます。
知ったから、既に今技術があるからといって、その技術・知識も後何年使えるかなんぞ神のみぞ知ります。だから他人でもGoogleでもプログラムの初学者に対してでも聞かなきゃ、聞けなきゃ(業界の)癌になります*2

蛇足

ちょっと大きめなネタを一人で作ると、「やってみれば何とかなるもんだ」とか、「コレくらいのコトは出来る!」とか自信になって良いと思う。
僕の場合はボスとの一騎打ちシューティングゲー*3でした。

*1:心理学的に名前があったはずですが忘れました

*2:個人的には淘汰されて欲しいですが、日本だと政治力や老獪さがあれば生き残っちゃうんですよね。で、新しい技術や設計、考え方を受け入れず癌化する。

*3:作り方は結構決まりきってるので、言語仕様さえ分かってれば結構作れますよ