hirothings

ひろしが想うwebのモノコト

プログラミング初心者がプログラミングを学ぶ上で、やってはいけないアンチパターン3選

f:id:hiroshings:20151020230224p:plain

いきなり私ごとで恐縮ですが、最近webディレクターからプログラマーに転向しました。 かと言って、転向してすぐに戦力になる訳がないので、3ヶ月前くらいからディレクターの仕事をやりながら、ほぼ毎日 プログラミングの勉強をしてきました。 その中で、やってはいけないこと。ムダだったなぁと思うこと3選を列挙します。

1. 色んな言語を習得しようとすること

プログラミングし始めて、ドットインストールや、はてブなどの技術サイトを見る中で、 色んな言語や技術に触れます。 node.js , Ajax , PHP , MySQL... どれも魅力的なものばかりで、ついつい目移りしますが、 最初にコレ!とひとつ言語を決めたら、それだけをやりましょう。

なぜなら自分の思った以上に、できることは限られるからです。 ひとつの言語をマスターするだけでも、何ヶ月もかかると思います。 僕は、PHPだ!と決めて、3ヶ月になりますが基礎がなってないので、すぐトンチンカンなことをします。 逆に基礎の重要性を知ると、他の言語に闇雲に手を出す気がなくなります。

漠然と、フロントだったらJSかなぁ.. くらいで、言語を決めたら変えずに続けてみましょう。

まずは言語を横断しても通用する基礎スキルが重要

と先輩プログラマーに教えていただきました。

2. 薄い本を買うこと

薄い本と言うと多大に誤解を生みそうですが、 要は、「やさしくおぼえる〇〇」とか「超初心者向け〇〇」みたいな一見分かりやすそうな 簡単そうな本は避けたほうがいい。ということです。

ページ数がなく、中身が薄い本は 読んだとおりに書けば、きちんと動きます。 でも、そういう本は往々にして 処理の流れを省きがちです 指示どおり書けば動きますが、なぜ動くのか の説明が足りません。

先輩から進められたのは、 柴田望洋さんの著書

明解Java 入門編

明解Java 入門編

です。 僕はPHPを勉強していますが、基本的なことは同じなので 大変参考になります。 何より、if文などの基礎的なロジックがどういう処理の流れで動いているのか いちいち図解入りで説明してくれます。

薄い本で学べることは、大体webにある ので、本を買うならお金を出して情報を買うに値する厚かましいくらい分厚い本が個人的にはいいのかなと思います。

3. アルゴリズムをないがしろにすること

webや動画を見て学ぶとき、「if文の書き方」、「forの使い方」など学ぶかと思います。 言われたとおりにコードを書きますが、腑に落ちないことはないでしょうか?僕はありました。 それは、処理の一部分を学んだだけで、処理の流れの中でコードを書いていないからです。

wikipediaでは、

「問題」はその「解」を持っているが、アルゴリズムは正しくその解を得るための具体的手順および根拠を与える

とあります。

具体的な手順で、解を出す。それをいかに正確に早く行えるか。 それが実践ではとにかく重要ではないかと思います。

では、どうやってスキルを上げるのか? とにかく"論よりrun"。演習問題を解くしかないです。

僕は、paiza.jpでアルゴリズムを勉強しています。

paiza.jp

転職活動向けのサイトではありますが、 豊富な演習問題はプログラミングに共通して必要な アルゴリズムを学ぶことができます。

最初は問題の意味すら分からず、0点でしたが今はB問題まで進みました。 演習を通じて、だんだん処理の流れを意識できるようになるので、 オススメです。

まとめ

"論よりrun"という言葉があるそうですが、 ほんとどんどん書いてどんどんエラーを出して、失敗しながらスキルアップするしかないなぁと思う今日このごろです。 少しでもプログラミングを学びたいと思っているひとの役に立てば幸いです。

Twitterやってます。 同じようにプログラミング初心者の方など、気軽にフォロー・リプいただけると嬉しいです。

hiroshings (@hiroshings) | Twitter

次回

やってよかったこととか、モチベがあがること などポジティブなことを書こうと思います。