サカナ未遂

プログラミング、筋トレ、お酒など

Ruby技術者認定試験Silverを取得しました。

みなさんこんにちは。

 

先週、Ruby技術者認定試験Sivlerに合格しましたので

その報告となります。

 

勉強期間

2月の頭からRubyを初めて触り、

試験を受けようと勉強を始めたのが2月の半ばなので、

試験勉強としては1ヶ月ちょっとってところです。

 

勉強方法

通勤中は試験対策本をひたすら読みました。 

[改訂2版]Ruby技術者認定試験合格教本(Silver/Gold対応) Ruby公式資格教科書
 
プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plusシリーズ)
実はRubyを初めるにあたり、最初に買った本がこれでした。
正直、この本を読まなければ試験に合格することもなかったと思われます。
この本の特徴は、「この機能は〜です」のような教科書タイプの本とは違い、
読者に手を動かさせ、間違わせ、考えさせるようになっています。
テスト駆動開発を実施しながら著者の伊藤淳一さんが何度も暖かく語りかけてきます。
「〜をやりましょう。・・・失敗しましたね・・・こうしてみよう」的な感じで進みます。ついついプログラムを動かさずにはいられなくなります。
気づけば、試験対策で無闇に暗記していたところの機能の使用用途などが
すんなり頭に入ってきました。
今まで避けてきた正規表現も、この本にて紹介してる著者Qiitaの記事で勉強できます。
この記事も非常に秀逸で、何度も挫折した正規表現が、不思議と読めるようになりました。魔法のようです。
 
チェリー本でRubyの使い方、楽しさを学び、試験対策本でかっちり勉強すれば
楽勝ではないかと思います。
私は、94点で合格することができました。

今後について

Ruby未経験者の私が今後Rubyを仕事にしようと思うと
資格は一つの目安になります。
(資格=仕事ができる、ではありませんが未経験者ならないよりはまし)
次はGoldを年内に取得できるように勉強します。
ただその前に、Railsチュートリアルを完了させ、
Railsの資格(ブロンズ)に挑戦しようと思います。
 
それでは
 

ベタープログラマになる為に

こんにちは、みなさん。

 

今日は「ベタープログラマ」を翻訳した柴田先生の講演を聞いてきました。
優れたプログラマーはどういうものか、どういったキャリアを築いていくかが主な議題でした。
特に印象に残っている要点を忘れないようにメモです。

 

・知識への投資は常に最高の利息がついてくる

 

・ソフトウェア開発は一生続けられるキャリアであり、素晴らしい旅であり得る。
しかし「Helloworld!」で始まった旅は中間管理職への昇進で終わる。

 

・正しく動作しないコードはガラクタである

 

・保守できないコードは負債である

 

・同じ開発を10年やっても成長しない。常に新しいことに挑戦しないといけない。

 

・優れたプログラマは人が理解できるコードを書く

 

・ソフトウェアは腐る、それはテストコードがないプログラムである。

 

・読んでわかるコードにコメントを書く必要はない。

 

・会社は自社で使う技術のサポートしかしてくれないし、最悪なにもサポートしてくれない。
自分の専門性が時代遅れにならないように維持することを会社に頼ることはできない。

 

・一冊の良い本を選べは他の人が何十年もかかって習得してきた見識を数日で得ることができる。

 

・勉強しなくても会社の開発はこなせるため学習習慣を失う。しかし学習しないとレベルが下がっていく。

 

などなど当たり前のようで、現在直面している問題に対しての話もたくさん聞けました。
今後も自分の技術を向上しつつ、キャリアを積んだエンジニアの講演会、技術勉強会に顔を出して行きたいと思います。

ブログに技術記事を書く理由

みなさんこんにちは

 

プログラミングなど、勉強しているととても助かるのが技術ブログ。

私くらいのレベルだと、何かしら不明なことがあった場合、Qiitaとかを検索すると、

だいたい解決してしまいます。

 

自分も勉強結果をアウトプットしたいと考えても、調べて出てくることを

書いても仕方がないと思って過ごしていました。

でも、別に技術サイトに投稿するわけでもないので、自分のブログにアウトプットしていくことにしました。

じゃあ日記にでもつけとけよとか言われるとまぁそうなんですけど、

"いつか誰かが何かのきっかけで見るかもしれない"という緊張感があるので、

適当なことは書けない、という気持ちになるのため、あえてブログに書くことにしました。

技術のこともさることながら、ブログを書くことも初めてなので、

ブログの書き方、技術的な記事の書き方を徐々に学んでいこうと思います。

できれば週一くらいで更新したいとは思いますが、あまりこだわらずコツコツ続けていこうと思います。

 

Rubyのinjectでハマったのでメモ

 

みなさまこんにちは。

アラフォーでRuby未経験ながら、Ruby技術者認定試験を取得することにしました。

 

まだ始めて一週間ほどですが、いきなりハマったとこがあるのでメモ。

a = [1,2,3]
puts a.inject{|ret,n| ret * n}

 と、ある模擬問題であったけど、injectにパラメータがない。

パラメータを省略した場合、何になるのだろうか?

勝手な予想だけど'0'だと思い、'0'に何を掛けても'0'だと思った。

しかしputsの結果が'6'となる。

これが理解できなかった。

injectの引数を指定しないと初期値は何なのか?

Rubyの参考書とかを見ても、injectはだいたい引数付きで、

indject(0)とかになっている。

結局公式リファレンスにたどり着いた。

module Enumerable (Ruby 2.1.0)

 >初期値 init を省略した場合は、 最初に先頭の要素と 2 番目の要素をブロックに渡します。

こう書いてあった。

だらか上記ソースは 1 * 2 * 3 となり6になるというわけですね。

昔からの癖で、本に書いてないとすぐハマるけど、公式リファレンスを最初に

確認するようにしないといけないなぁ。