感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

継続するには、楽しむこと。

スポンサーリンク

今度はRubyの勉強。
色んな言語のつまみ食いみたいな勉強をしている。
本当は一つの勉強を4ヵ月くらい続けてやったほうがいいんだろう。
ドラッカーも、「1つの分野を集中的に身につけるべきだ」という。

たしかに、そうだ。同じ分野の勉強を集中的にやることで、絵の具を重ねて塗るように知識をムラ無くまんべんなく修得することができる。

しかし、である。
飽きてしまうのだ。ただでさえけっこう疲れて仕事から帰ってきて、勉強するときに、一番大事なのは「継続すること」「休まないこと」だ。

継続するための1番のコツは楽しむことである。
目的意識があれば、試験勉強のように無味乾燥だとしても飽きずに集中することができるだろう。

でも、社会人の勉強は「長期戦」である。
しかも、点数がつかない勉強がほとんどだ。やっても「評価」という名の「報酬」は見えない。

それこそ、誰にも気付かれず小石を積み上げて山を作るような忍耐が必要になるかもしれない。
繰り返すが、家の勉強は本業とは別にやっているのである。

そんな勉強を楽しむためにできること。
それは、ワクワクする勉強をところどころに入れることである。
新しいことも勉強したらいい。どうせ、完璧な暗記なんて必要ないんだから。読み流したっていいんだ。
辛くない、楽しい勉強をしよう。していきたいと思う。
その代わり、毎日続けることを自分に約束したい。

そして、僕にとってワクワクする勉強の1つが、Rubyの勉強なのである。

★★
引数から取得したデータは文字列になっている。
引数のデータを計算に使うには、数値に変換する必要がある。

・Rubyで引数の値を取得する

num0 = ARGV[0].to_i
num1 = ARGV[1].to_i

print num0, " + ", num1, " = ", num0 + num1, "\n"
print num0, " - ", num1, " = ", num0 - num1, "\n"
ruby arg2int.rb 3 1
3 + 1 = 4
3 - 1 = 2

・ファイルの中から特定のパターンの行のみを選んで出力する。

さっきの僕が書いた以下のブログの記事から、[mission]を含む行を出力してみる。

I think it is often easier to make progress on mega-ambitious dreams.
I know that sounds completely nuts. But, since no one else is crazy enough to do it,
you have little competition.
(平凡な夢を持つより、超野心的な夢を持つ方が簡単だ。だって、そんな夢を持つ人は他にいないから、ライバルはほとんどいなくなる)

次は超有名な「Googleの使命」
Our mission is to organize the world's information and make it universally accessible and useful.
(Googleのミッションは世界の情報をまとめ上げて、それに世界中の人達がアクセスできて使えるようにすること)

Overall, I know it seems like the world is crumbling out there, but it is actually a great time in your life to get a little crazy, follow your curiosity, and be ambitious about it.
Don't give up on your dreams. The world needs you all!
(全体的に見て、今まさに世界は崩れつつあるように思われますが、だからこそ、少し無謀になり、興味あることを追い求め、それに対して野心を抱くには今の時代が最高なのです。夢を諦めないでください。世界はみなさんすべてを必要としています!)

サンプル

#[mission]という文字をマッチングさせる
pattern = Regexp.new("mission")

#article.txtというファイルを読み込む。もちろん本当はベタ書き良くない
filename = "article.txt"

file = open(filename)
while text = file.gets
	if pattern =~ text
		print text
	end
end
file.close

結果

>ruby grepTest.rb
Our mission is to organize the world's information and make it universally acces
sible and useful.

■オブジェクトとクラスの対応
数値   Numeric
文字列  String
配列 Array
ハッシュ Hash
正規表現 Regexp
ファイル File

■変数名の付け方
「たのしいRuby」曰く、
Rubyでは、変数名やメソッド名には「sorted_list_by_name」のように[_]で区切るやり方を使い、
クラス名やモジュール名は「sortedListByName」という書き方をするのがほとんどだという。

ちなみに「_(アンダースコア)」で区切るやり方をスネークケース(アンダースコア区切り)表記という。

大文字で区切るやり方をキャメルケース表記という。


3時前なのでそろそろ寝ます。