SakuLife

just do it !

現役プログラマが教える初学者がプログラミングを上達する学び方

未経験でプログラマを目指している方へ

プロゲートでのRails学習、Railsチュートリアルを突破された方/学習中の方にプログラミングを学ぶコツを紹介していきます。

私は、10年以上プログラミングで仕事をしています。 その中で、WEBメディア制作でruby/Railsを1年ほど利用しました。 Railsは優れたフレームワークである事は間違いないのですが、便利すぎるが故、プログラミングの基本がおろそかになりがちです。 もっとプログラミングスキルを伸ばしたいと思う皆さんに向けてコツを紹介していきます。

想定読者

  • Railsチュートリアルを突破したが、プログラムを書けるようになっているか自信が無い方
  • プロゲートでRuby/Railsを学習中、あるいは、学習済の方
  • Ruby/Railsでのスキルが伸びているかわからないが、取り合えず他の言語に手を出して少し迷走しているかもしれないと思っている方。

プログラミング言語を学ぶコツ

プログラミング初学者に向けて強いメッセージになるのですが、初学者の頃に扱える言語を増やす事は直接的なスキルには結び付きません。 いろいろな言語に触れてみたくなる気持ちをぐっとこらえて、1つの言語でとにかく自分のスキルを磨きましょう。 プロゲートで、全言語を突破する事はスキルを高める近道ではありません、断言できます

なぜそう思うか?

プロゲートで全言語を突破した人はなおさらだと思いますが、 全言語共通して、if for while arrayと出会います、細かい書き方やルールは各言語で異なりますが、概ねできるコトや学ぶことは似ていてやり方が違うだけと気がつきます。 突き詰めるとコノ言語は並列処理が表現しやすい等はありますが、その辺りは上級者ゾーンとして現時点は無視で問題ありません。

ではどうすればよいか?

スキルを広く浅く伸ばすのではなく、まずは狭く深く伸ばしましょう。 そのためにはは下記を用いた学習法が効果的です。

どういうコードが価値があるのかを学びましょう。

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

コードを書くためのよりよいプラクティスが紹介されています。 命名のルールやコードの作法、サンプルも豊富です。 私も新卒エンジニアには読むことを勧めています。 「他人にはわからない、自分にだけわかる邪悪なコード」にならないためのエッセンスが詰め込まれています。

オブジェクト指向を学びましょう。

オブジェクト指向でなぜつくるのか―知っておきたいプログラミング、UML、設計の基礎知識―

オブジェクト指向でなぜつくるのか―知っておきたいプログラミング、UML、設計の基礎知識―

コードを書き始めたら、どんな設計をするのが良いのか気になりますよね? 私は、10年間エンジニアリングの仕事をする中でRuby/PHP/Java/Python/Golangを仕事で扱ってきましたがいずれもオブジェクト指向の概念はとても役に立っています。

初学者の時は、1つの言語でプログラミングを書き、その言語でオブジェクト指向とはどういうものなのかというのを学び、そして、次の言語を習得する際に、早い段階で応用できると思います。

テストの書き方を学びましょう。

テスト駆動開発

テスト駆動開発

書いたコードを再現性のある形で保証できることがテストコードの存在意義になります。 一方、何の為にあるのかわからないようなテストコードやテストとして役にたってるのか不明なテストコードの場合、邪魔になることも当然あります。 正しくテストの書き方を身につけましょう。