狠狠撸

狠狠撸Share a Scribd company logo
Rubyで始める
アマチュアプログラミング
   HiromiKai-Green
私の略歴(学生)

● H20年 某九州の高専を卒業
 ○ テストの点取りと情報系資格取得に明け暮れる
 ○ 技術士補、ソフ開、工担DD1種などを取る
   ■ 当時はちやほやされて気分が良かった
   ■ 実際あんまり役立った記憶なし
 ○ 卒検は出席管理?成績管理のiアプリ開発と配布用サー
   バの構築
   ■ #新規性とは
    ●   そんなものは ない
   ■ 誰もやる人いないからサーバ構築をやることで運命
     の歯車が狂ってゆく
私の略歴(社会人)

● 某元請SIerに入社
 ○ サーバ構築のキーワードを出したせいでインフラエンジ
   ニア部門に配属される
 ○ Ciscoのスイッチ買ったり自宅でサーバ組んでみたりする
   もなんか違うものを感じる
   ■ やっぱプログラミングがしたい
● やりたいこととできることのミスマッチに苦しむ
 ○ 心を病んだり転職したり引きこもったりフリーターしたり
 ○ 再度就活するも経歴がボロボロ+それに代わる新たな実
   績がないことで大苦戦
 ○ 今の仕事も微妙にプログラマじゃないけど都会のほうが
   足がかり作りやすいからよしとする
社会人以降に開発を阻む障害

● 無職?無趣味
 ○ プログラムが必要に駆られる機会がない
● ぼっち
 ○ 必要としてくれる人がいない
 ○ 成果を見せびらかせる人がいない
● 意識の低さ
 ○ 自分を追い込めない
 ○ 娯楽のコアはゲームだったりカラオケだったり
● トラウマ
 ○ 読んでもわからないつらさで一時期技術書売り場に行く
   だけで気分が悪くなる

           →アマチュア版荒ぶる四天王
どのように克服したか
● 無職
 ○ 職に就く→こんな作業手でやってられるか!
● ぼっち
 ○ 職場の人なりオンラインなり喋る人を増やす
● トラウマ
 ○ クソなりにプログラムを書いて自信を取り戻す
● 意識の低さ
 ○ マスター?センセイ曰く、~我々アマチュアプログラマは
   人間は怠惰な生き物であるという前提に立つ。つまり意
   識の低さを固定するのだ~
          _人人人人人人_
          > 変わってない <
            ̄Y^Y^Y^Y^Y^Y ̄
何を触ってるの?
● Ruby
  ○ プログラム再開時に「学習コストを極力抑える」の
    を目標にした
    ■ 意外と色々ハマったけど…
  ○ 昔Railsで挫折したのでSinatra使ってるけど、今
    なら使えそうな気もする
● hamlとかcoffeescriptとかscssとか
  ○ 定形的なのは楽に書いてドヤリングしたい
何を書いてるの?
● 自分がやるゲームのツール
 ○ ポケモンの確1計算
 ○ ガンダムEXVSのダメージ計算
● 競技プログラミングに交じる
 ○ やること思いつかなくても手を動かせるのがいい
● 仕事の手作業短縮
● 仕事で作るWebアプリケーション
 ○ 後述
いでよ!やっつけWebアプリ
● あるデータを集計してグラフ表示するツールが
  必要に(Excelからの置き換え)
● 部の方針としてはソフトウェア開発部門に開発を投
  げるつもりだったが調整が難航
● 「ちょっとグラフ表示のライブラリ調べといてよ」と言
  われたので自分のPCに環境構築してやっつけでデ
  モアプリを作って見せる
  ○ →期間がなく開発人員もいなかったのでなし崩
    し的に採用
西区勉强会用スライド
构成図

          ビュー
 haml/ccchart/Coffeescript




        コントローラ
         Sinatra




         モデル                 本開発時には
    MongoDB/mongoid          「実績ないDBはちょっと…」と言われ
                             PostgreSQLに置き換え
Sinara
require "sinatra"
require "haml"

get "/" do
haml :index #index.haml表示
end
get "/get_param" do
     name=param[:name] #getパラメータ取る
     #好きにRubyの処理をやれる
     "Hello #{name}!" #戻り値に文字列を与えるとHTTPレスポンスになる
end


実行はRubyでファイルを実行するだけ!
ccchart
● オープンソースのJavascriptグラフライブラリ
  ○ 最新版はMITライセンス。旧バージョンはパブリッ
     クドメインという大盤振る舞い
  ○ 現在の業務では一応商用が視野にあるのでゆる
     いライセンスでないと困る
● google chartに比べて結構見た目がカッコイイ
● canvas使う上にクロスブラウザガン無視なので注意
  ○ (少なくとも0.9系では)IE9用にコード修正が必
     要
  ○ IE8以前ではuupaa-excanvas.jsが必要な上に、
     EventListener周りのクロスブラウザ対応が必要
こんなん(本家より引用)
● 影つけたり背景グラデーションさせたり
● 積み上げグラフや、折れ線との複合など結構種類豊富
● データはJSONで渡せばいいので加工が楽
  ○ Rubyなら配列やハッシュにto_jsonがある
まとめ

● 素人はプロ以上に時間とリソースが限られた中
  で何ができるかを考える必要がある
 ○ 約束事が少ないRubyは個人的に気に入っている
● 情報源としてtwitterが非常に役立っている
 ○ 本職がどういう情報見てるのか、何を考えてるかがいつ
   も流れてくる
 ○ 人のアンテナに乗っかることができる
● 「自分でもできる」チャンスを逃さない
 ○ 窮鼠猫を噛む


      やってやる!やってやるぞ!
ご静聴ありがとうございました

More Related Content

西区勉强会用スライド

  • 2. 私の略歴(学生) ● H20年 某九州の高専を卒業 ○ テストの点取りと情報系資格取得に明け暮れる ○ 技術士補、ソフ開、工担DD1種などを取る ■ 当時はちやほやされて気分が良かった ■ 実際あんまり役立った記憶なし ○ 卒検は出席管理?成績管理のiアプリ開発と配布用サー バの構築 ■ #新規性とは ● そんなものは ない ■ 誰もやる人いないからサーバ構築をやることで運命 の歯車が狂ってゆく
  • 3. 私の略歴(社会人) ● 某元請SIerに入社 ○ サーバ構築のキーワードを出したせいでインフラエンジ ニア部門に配属される ○ Ciscoのスイッチ買ったり自宅でサーバ組んでみたりする もなんか違うものを感じる ■ やっぱプログラミングがしたい ● やりたいこととできることのミスマッチに苦しむ ○ 心を病んだり転職したり引きこもったりフリーターしたり ○ 再度就活するも経歴がボロボロ+それに代わる新たな実 績がないことで大苦戦 ○ 今の仕事も微妙にプログラマじゃないけど都会のほうが 足がかり作りやすいからよしとする
  • 4. 社会人以降に開発を阻む障害 ● 無職?無趣味 ○ プログラムが必要に駆られる機会がない ● ぼっち ○ 必要としてくれる人がいない ○ 成果を見せびらかせる人がいない ● 意識の低さ ○ 自分を追い込めない ○ 娯楽のコアはゲームだったりカラオケだったり ● トラウマ ○ 読んでもわからないつらさで一時期技術書売り場に行く だけで気分が悪くなる →アマチュア版荒ぶる四天王
  • 5. どのように克服したか ● 無職 ○ 職に就く→こんな作業手でやってられるか! ● ぼっち ○ 職場の人なりオンラインなり喋る人を増やす ● トラウマ ○ クソなりにプログラムを書いて自信を取り戻す ● 意識の低さ ○ マスター?センセイ曰く、~我々アマチュアプログラマは 人間は怠惰な生き物であるという前提に立つ。つまり意 識の低さを固定するのだ~ _人人人人人人_ > 変わってない <  ̄Y^Y^Y^Y^Y^Y ̄
  • 6. 何を触ってるの? ● Ruby ○ プログラム再開時に「学習コストを極力抑える」の を目標にした ■ 意外と色々ハマったけど… ○ 昔Railsで挫折したのでSinatra使ってるけど、今 なら使えそうな気もする ● hamlとかcoffeescriptとかscssとか ○ 定形的なのは楽に書いてドヤリングしたい
  • 7. 何を書いてるの? ● 自分がやるゲームのツール ○ ポケモンの確1計算 ○ ガンダムEXVSのダメージ計算 ● 競技プログラミングに交じる ○ やること思いつかなくても手を動かせるのがいい ● 仕事の手作業短縮 ● 仕事で作るWebアプリケーション ○ 後述
  • 8. いでよ!やっつけWebアプリ ● あるデータを集計してグラフ表示するツールが 必要に(Excelからの置き換え) ● 部の方針としてはソフトウェア開発部門に開発を投 げるつもりだったが調整が難航 ● 「ちょっとグラフ表示のライブラリ調べといてよ」と言 われたので自分のPCに環境構築してやっつけでデ モアプリを作って見せる ○ →期間がなく開発人員もいなかったのでなし崩 し的に採用
  • 10. 构成図 ビュー haml/ccchart/Coffeescript コントローラ Sinatra モデル 本開発時には MongoDB/mongoid 「実績ないDBはちょっと…」と言われ PostgreSQLに置き換え
  • 11. Sinara require "sinatra" require "haml" get "/" do haml :index #index.haml表示 end get "/get_param" do name=param[:name] #getパラメータ取る #好きにRubyの処理をやれる "Hello #{name}!" #戻り値に文字列を与えるとHTTPレスポンスになる end 実行はRubyでファイルを実行するだけ!
  • 12. ccchart ● オープンソースのJavascriptグラフライブラリ ○ 最新版はMITライセンス。旧バージョンはパブリッ クドメインという大盤振る舞い ○ 現在の業務では一応商用が視野にあるのでゆる いライセンスでないと困る ● google chartに比べて結構見た目がカッコイイ ● canvas使う上にクロスブラウザガン無視なので注意 ○ (少なくとも0.9系では)IE9用にコード修正が必 要 ○ IE8以前ではuupaa-excanvas.jsが必要な上に、 EventListener周りのクロスブラウザ対応が必要
  • 14. まとめ ● 素人はプロ以上に時間とリソースが限られた中 で何ができるかを考える必要がある ○ 約束事が少ないRubyは個人的に気に入っている ● 情報源としてtwitterが非常に役立っている ○ 本職がどういう情報見てるのか、何を考えてるかがいつ も流れてくる ○ 人のアンテナに乗っかることができる ● 「自分でもできる」チャンスを逃さない ○ 窮鼠猫を噛む やってやる!やってやるぞ!