山本ゆうごブログ

山本ゆうごの仕事メモ

プログラミングをゼロから始める人のためのRubyプログラミング

目的

プログラミングの基礎を学ぶ

なぜRuby

Ruby意外のしんどさを書いてく。

言語 しんどさ
Java IDEなしに素のプログラミングをやらせるの辛い。IDE経由だと何しているかわかりにくい
PHP Apache経由の動きだけになりがち。一番最初はレイヤーが浅い方がいい
Perl もう情報が少ない(リファレンス/デリファレンス/UTF8フラグが無駄にしんどい)
Python 次点としてありだが、Python3が完全普及するまで待っていいのでは?
C 自分はここから入ったのでいいけど、業務では使ってないので遠回りがすぎる。core dumpは初心者には遠回りがすぎる。

ということで、ターミナル上で、標準入出力を使ったプログラミングの基礎を学ぶには、Rubyが「ちょうどいい」。

標準入出力にとことんこだわる

  • 業務でも十分使える
  • いきなりMVCフレームワークを使うと階層がわからず迷子になる
  • Webフレームワークの環境構築で悩まなくていい
  • 多言語言語でも通用する考えなので、OS/IOとプログラミング言語の階層構造が理解しやすい。

標準入出力をベースにしたプログラミングの試験はスタンダード

PaisaやAtCorderやCodeIQなどのサイトは標準入出力で答え合わせをしている。それくらい「スタンダード」

学習の順番

  • Hello World
  • 引数をもらって「こんにちは◯◯さん」と出力
  • 標準入力をもらって「こんにちは◯◯さん」と出力
  • 標準入力で入ってきた小文字アルファベットを大文字にして出力
  • 標準入力で入ってきた数字を倍にして出力
  • 標準入出力をつかって対話型じゃんけん

次に覚えるのはSQL

AcitveRecordをいきなり触らない。裏で流れているSQLを知らないで開発できるかっていうと、直接SQLつかう機会は多い。ゲームのディレクターはエンジニアでなくてもちょっとしたSQLは書ける。もはやエクセルみたいなもん。

次に覚えるのはHTML

  • フォームヘルパーは使わない。まずはformタグを全部かく。
  • GETとPOSTの違いをしる。
  • input、select 、radio、checkbox、texture、hiddenを一通り手で作ってみる
  • Webアプリケーションフレームワークとしてはシナトラでお勉強する。Railsは何してるか分からないので。

次に覚えるのはcurlコマンド

  • フォームでPOSTしている内容を、curlコマンドで再現してみる。
  • ここで、ブラウザのデベロッパーツールの使い方を覚える(copy as curl
  • curlのパラメーターを変えて、何をリクエストすると何が帰ってきているかを知る。

・・・・続く。そのうち書く。あとは、そもそものLinuxの使い方として、grepとかlessとかvimとかsshとかscpとかその辺は徐々に覚える。