KEIS BLOGは株式会社ケイズ・ソフトウェアが運営しています。

KEIS BLOG

開発を学ぶにあたって、思うこと。


PAK86_smonitatocode20140517500

こんにちは。もっかテスト自動化を試みている林です。

ruby + turnip + poltergaist 必要ならjenkinsあたり使って自動化の仕組み作りやってます。この部分のお話はまた今度書きます。

swift-hero

個人的に気になっているのはApple先生からswiftきましたね。Objective-Cは若干敬遠してたのですが、これからswiftでアプリとか作ってみようと思います。まずは開発ガイドを読み込みたいところ。
あとXcode6のbeta版を入れないといけないんだけどちょっと色々なところに影響しそうで怖い。Macは仕事で使っているので何かあったら本気で困りますね。誰か入れても問題ない方法知っている人がいたら教えてください・・・。

さて今回は開発を学ぶにあたって、という部分にスコープにあてたいと思います。

ruby触るの自体1年ぶりなんですが、久々に開発未経験でプロジェクトに入った頃の記憶が呼び覚まされます。作る事自体初めてだったので無我夢中、そして作る事の難しさと楽しさを学べた時ですね。

私が一番始めに触った言語はrubyなのです。
これがよかったのか悪かったのかと言えば世間一般的に考えたらコンパイル言語から入るべきなんでしょうが、今で思えば良かったと思ってます。いや、当時はコンパイル言語から入りたかった・・・って思ってましたけど。

question

勉強の仕方

当時コンパイル言語から入りたかった、って部分ですが当時の勉強の仕方も悪かったのだと思います。とりあえずrubyのメソッドが書かれている本をひたすら写経してやった気になる。的な。
んで結局現場で調べて作成みたいな感じで、なんとなくできてしまったのが悪かった点。

当然苦労もしましたけど。単体テストコード書くのにrspecを使っていたのですが、思い通りの動きをしない、イライラする。

こんなことも分からないのかと思い、自責し始め苦しむ。みたいな。結局ちゃんとrspecの本とか資料を読み込んだら、作りも理解できて書く事ができたのですけどね。
最終的にrspec周りはだいぶ理解しながら実装できました。
どんな些細なことことでもわかった気にならずにとことん聞く、とことん調べることが大切なんだと思えるようになりました。

作る難しさ

作る難しさは本当に痛感しました。
開発を始める前は運用をずっとやっていて開発は契約会社に任せていたので、作る大変さは全く想像できていませんでした。
基本設計、詳細設計、実装、単体テスト、結合テストなどなど。やること盛り沢山だし、うまいこと自分の思っている実装ができなくてスケジュール通りに終わらない。
一つの機能を実装するのに全く頭の中でイメージが作れておらず、非常にもやもやと自分の力の無さを痛感しました。不明点とかも洗い出しきれていない不甲斐なさを感じましたし。
また最初に入ったプロジェクトでは自分一人で作り上げられたものが何一つなかったですね。全部サポートあってのこと。本当に周りの人に感謝しっぱなしでした。

学ぶ動機

自分の場合はWebアプリを一回作ってみてどうにもこうにも当たり前の事で分からない事が多すぎて初歩から教えてもらいたい、という動機が生まれました。
そして分からないから教えてくださいと。HTMLの基礎から、CSS, javascript, MVCやクラス設計、コンテキストがどうとか、
コンピューターが動く仕組みとか、プログラムが動く仕組みなどなど。本当に知的好奇心が旺盛になりました。

最初のプロジェクトはrailsでつくったのですが、当時のアーキテクチャを思い出すと色々と知らないところで開発のしやすい体制を作ってもらえたな、と思い出します。
今は当時のことを思い出してアーキテクチャ周りを勉強したりもしています。

作ることの楽しさ

以前お世話になっていたSierの会社に入る前は結構我流で勉強してました。というより目的のもの作る為に一部分のみ勉強。
だから根本的なことはまるで分かってない。ただ作る楽しさだけは理解できる。興味を持てるんですね。作れるようになったらもっと幅広く色々できるんじゃないか、とか。もっとあんなことしてみたい、とか。
最初のきっかけはなんだっていいんだと思います。作って何か改善された時にもっといろんなことできるようにしたいとか。
初めてのプロジェクトは本当に死ぬって思うくらい辛かったですが、出来上がって納品したものが本番稼働したときは本当に嬉しかったですね。あの時の気持ちは多分一生忘れないと思います。

本格的に学び始めて難しさと辛さも知ってそれでもやっぱり楽しいと思えれば、仕組みづくり楽しいとか、実装楽しいとか、じゃ今度はインフラ周りをやってみようとか。
自分で動きだせるようになってくれれば素敵なんじゃないかと思います。

環境ってとても大事。

そんなこんなの経験からrubyを開発初心者が学ぶっていうのは有りっちゃ有りだと思います。
コンパイル言語だろうとscript言語だろうと結局自分で学べる、自分から動けるようになるという根本を育てられるかどうかだと思ってます。
サポート体制と環境、大枠で言ってしまえば文化が整っている事が大事なんだと思います。

IMAG0023

研修などの最終目標は作る楽しさを覚えてもらう事と、作る難しさを覚えてもらう事が結構重要だなぁと思っています。
どうせ一緒にやるなら楽しく作っていきたいですし、そういう環境を作っていきたいと考えています。

さて・・・書いてるネタが考えとか読書感想文ばっかなのでそろそろ技術ネタ投稿しますね。
python + pyramid + SQLAlchemyかselenium周りなどを書いていきたいと思います。

 

 

【関連記事】
Pythonプロフェッショナルプログラミング