とりあえずnull

プログラミングの勉強日記

「さっさとだまってコードを書けよ」の本当の意味

今回はつまづく回数を減らす方法について。

プログラミングをしていて、実装したいのにどうやればいいのかわからない、思った通りに動いてくれない、という状況になることがままあるかと思います。結構地味に時間を取られたりすることがありますよね。それってデスマーチってやつが生まれる原因にもなっているんじゃないかと思います。

 

僕もまだまだつまづく回数がめちゃくちゃ多いです。でも出来る限り「わからない -> ぐぐる -> 思い通りに動くようになった!」までの時間を減らしたいので気をつけていることを書いておこうとおもいます。

 

1:コピペだけしない

どう書いていいかわからない!ってなったときぐぐってとりあえず解決できそうなコードを拾ってきて試してみること多いと思います。それで実際に動いてくれたこともしばしばあるんじゃないかと。そこで止まってはいけないでー、ってことですね。「あっ、こんなメソッドあったんだ!」とか「こんな書き方をすれば動くってことはあれもこんなふうに動くかもなぁ」って少しだけでもいいので深堀したほうがいい。そのコードがどんな構造を取っているものなんかを理解した上でコピペするのはいいのかもしれないけど、なにもわからない・読めないのにそのまま使っているといつまでも自分のツールの一つにならないことに。

 

たぶん、JS使いに多そうですよね。実際にスライダーをゼロから設計することできないけど、コピペでうごくものは設置できる、みたいな方。ぼくです。

 

2:全体の構造を意識する

オブジェクト指向を理解すると「こーやってロジック作ればいいんだ」ってのがだんだんみえてきます。なのでまずはこのオブジェクト指向について理解する必要があるんじゃないかとぼくは思います。

メソッドもプロパティも最初は何がなんだかわからない。オブジェクト指向型言語を使っているのにその全体構造がわからない!初心者の中にはわりとそういう方、多い気がします。

最初はわからないけどとりあえず動くものを書いてみる。でも動かない、何を書いているのかわからないコードに出会う、というのが当たり前ですよね。だからこそ、毎日少しずつでもいいので全体の構造を意識してコードを書いてみる。「あっ、これはメソッドだな、あ、これは関数だな、あ、、これはローカル変数だからこうしなきゃだなー」みたいな感じで。そして出来ればセルフチェックをしていく。「ここ、別のところでも使うしここで繰り返し文で何回も使うより関数にしたほうがよくね?」みたいな感じで。だんだんと適切なロジックを作れるようになってくると思います。ペアプロとかやってみるといいかもですね。

 

英語を使用する時も同じことがいえるんじゃないかなぁと。誰だって最初はThis is a pen.というフレーズの暗記から始まり、少しずつ「この文はS V Cという文型なんだな、これに関係詞をつけると・・・」といったように骨組みを意識したり、その骨組みを応用させていったりするものだと。少しずつ使いながら話しながら書きながら理解していく、ってのが英語とプログラミングの似ている点なんだと思います。

 

3:別の手法を考える

1、2を繰り返してだんだんと理解が深まってきても、てんてダメなときがあります。そもそもこれ配列オブジェクトではなくRelationオブジェクトだったよ・・・どうすればええんだ・・・みたいな感じで。

そういうとき、ぐぐってみると思うのですが、それでもいまいち解決策が出てこないときは、いっそのこと果たしたいことを振り返ってみて再度別のロジックを作れないか検討しましょう。汚くても実際に仕様通りに動いてくれて納期も間に合う、という未来を取るのか、出来る限り奇麗にコードを書きたいからどうにか今のロジックで出来ないか残業してでも調べて実現するのか、そのどっちの未来に進みたいですか??

 

 

以上がぼくがつまづいたときに意識していること3つです。

一度経験したことは忘れない、っていうシンプルな話でもありますね。

もっともっと精進しなければ。「だまってコードを書けよハゲ」っていう言葉の意味がわかってきた次第でございます。かかないと何をしているのかわからない。書いていくうちにオブジェクト指向がどんなものなのか、どんなロジックを立てていけばいいのか、こーすればこー動く理由みたいなものが見えてくる。書かないとわからない。だから黙って書いてけ。そういうことなんですね。偉大な言葉です。

 

Shut the fuck up and write some code!