Ruby on Rails ファーストタッチ
友人とその先輩と自分の3人で、今月19日にRuby on Railsを使ったハッカソン的なものをすることになったので、Ruby on Railsの勉強を始めた。
先輩の方はWeb系の会社に就職決まっいて経験も豊富だそうだが、自分と友人はRailsを触ったことがない。
Railsはもちろん、Rubyも経験ゼロからのスタートで、短期決戦型の勉強になる。
webアプリケーションの開発経験もないので、本当にわからないことばかりなので、かなり苦戦が予想される。
とりあえず、「Ruby on Rails アプリケーションプログラム」という書籍の第二章まで、今日一通りやってみた。
Railsについて事前に調べたり、この本を立ち読みした時は、どういうものか本当に何もイメージできない状態だったが、
2章までやったところ、少しだけ全体像が見えてきた。やはり手を動かすことによる効果は大きい。
現在考えてる学習計画は次の通り。
1.「~アプリケーションプログラミング」を3章まで一通りやる。(残り3時間程度)
2.ドットインストールのRailsのレッスンを一通りやる。(2時間程度)
3.Webアプリ的なものを一つ作ってみる。(?)
4.友人との勉強会(12時間程度を一回)
また、Ruby自体の勉強も適宜入れていく予定(Rubyも未経験のため)
ちょうど来週に勉強会をする予定なので、そこまでにアプリが一つ作ることを目標にしたい。
また、学習過程でのルールも次のように決めた。
・学習したことは記録しておく。(キーワード、疑問点、ハマった事、学習時間など)
・わからないことがあっても、あまり突っ込みすぎて悩まないこと。(なんとなくわかったらとりあえず進む)
自分一人でのもくもくと学習を進める分、成果が目に見えない。
せめてもの目に見える結果として、学習の記録を残しておくことでモチベーションを保ちたい。
また2点目については、新しことを学ぶ上で最近重要だと感じることなので今回も実践したい。
気持ち悪く感じる表記なども、繰り返し書き続けると違和感がなくなる。
それによって本当に考えなくてはいけない部分に頭を使えるようになり、理解できることは多い。
新しいものに素早く適応する能力の重要性を、近頃感じることが多い。
今回はそれを磨く良いチャンスだと思うので頑張りたい。
STM32が行けたからこれも行けるハズ。
Ruby on Rails 4アプリケーションプログラミング
- 作者: 山田祥寛
- 出版社/メーカー: 技術評論社
- 発売日: 2014/04/28
- メディア: Kindle版
- この商品を含むブログ (1件) を見る
ゲーム開発(2本目)の反省
Unityによる2本目のゲームを先週リリースした。
前回は友人との2人体制での開発だったが、今回は自分が主導で主に3人で開発を行った。
この3人に前回の友人は含まれていないが、シーン遷移部分などを手伝ってもらった。
リリースは10月中の予定だったが、実際はかなりギリギリになってしまった。
今回の開発過程でいくつか反省する点があったので記録しておく。
反省点は大きく分けて3点。
それぞれについて説明する。
1.取り掛かりのスピード
2.仕事の振り方
3.報告の重要性
1.取り掛かりのスピード
開発に取り掛かり始めるのが遅かった。計画遅れのこれがすべての原因だと思われる。
なんとなくやる気が起きなくてモックアップを作り始めるのが、企画が決まってからだいぶ遅くなった。
ただ、実際にやり始めると、実装方法を楽しく、また意外とすぐに終わった。
モチベーションも上がるし、もっと早くやってしまえばよかった。
2.仕事の振り方
他の二人のメンバーに対して、仕事をうまく振れなかった。
週に1度のミーティングがあったが、ろくに仕事を振れずに終わることが2度ほど続いた。
友人には「お前の仕事の振り方は下手だ。」と言われたが、それよりも大きな原因があると自分は考えている。
モックアップを早く作らなかったことだ。
自分には必要なタスクが見えていなかった。振るべき仕事が自分の中では存在していなかったのだ。
モックアップを作り、さらに具体的な完成が見えなければ、いつまでに何が必要かを把握できない。
そのためには、できるだけ早く作り始めてみる、イメージ図を書いてみる、などをする必要があった。
3.報告の重要性
進捗をこまめに報告するのは、チーム全体の進度を確認するために不可欠なことは改めて確認できた。
しかし、今回学んだもっと大きなことは、「できないとき、やりたくないときは断る。」ということ。
安請け合いしてはいけない。誰かの負担が少し増えるよりも、頼んでおいたことが進んでないことのほうがもっと深刻だ。
また、自分で可能だと判断し、やりたいと思える仕事のほうが、責任感とやる気で効率は上がるしツラくない。
今回のプロジェクトは自分の不手際で、最後の方かなり苦しかったが、いい経験になった。
次に生かしていきたい。
ICPC2016アジア予選
ICPC2016アジア予選に出場した。
大会から1週間たってしまったが、完全に忘れてしまう前に、参加して感じたことを記録しておく。
会場にはたくさんの有名人が来ていた。
PFNの西川さん、秋葉さん、AtCoderのちょくだいさん、
そして同じ学生だけど既に競プロ界隈で有名な人などなど。
それだけですごく楽しかったし、大会に来た価値があったな、と思った。
しかし、すぐに自分が完全に芸能人に憧れる一般人のようになってしまっていることに気が付いた。
確かに憧れの感情はあって当然なんだけど、広い意味で同じ業界に進む人間として、
気持ちだけでももっと対等に構えておくことが必要なんじゃないかとも考えた。
1日目の懇親会では、偶然お話した方が、実はフォロワーだったりした。
こいうサプライズは、まだ規模の小さい競プロ界ならではの楽しさだと思う。
2日目の最後のイベントでは、懇親会のように食事を食べるだけだと思っていたが、
スポンサーのブースがたくさんあり、それぞれでイベントやプレゼントなど祭りの様で面白かった。
また、知らなかった企業の説明なども聞けたのは良かった。
英語力不足を改めて実感した。特に読むスピードと聞き取りに問題がある。問題を読むのに苦労したのはもちろん、
ステージ上の人が言った(であろう)ジョークに、自分だけ理解できなくて笑えない経験はつらかった。
コンテストそのものについての感想は「いつも通り」という感じ。
自分の競技中の仕事は、Aを通したこと、Bのデバッグの手伝い、Cのアルゴリズムを聞いて実装。
チームとしては最終的に4完(A,B,C,D)だった。
順位としては36位(45チーム中)で、順位表凍結までは2完で最下位だった。
この凍結システムがなかなか面白く、結果発表の時はかなり盛り上がり、
ぎりぎりで2問通したうちのチームもその恩恵を受けた。
ICPCは素直に楽しいイベントだったし。良い刺激にもなった。
競技時間5時間も、予行練習の時は果てしなく長く感じたけど、本番ではあっという間だった。
ただ、自分の実力が大会に見合っていないのは常に感じていた。
来年も参加したい気持ちはあるが、一番の問題は実力。
メンバーは人数だけならなんとかなるだろうが、そのメンバーに実力は期待できないだろう。
来年も予選を突破するためには、先輩が抜けることを考えると、自分が引っ張っていける実力を付ける必要がある。
また、大学の先生の協力についても不安はあるが、これは何とかなりそうだ。
今回協力していただいた研究室以外はどこも無理だと思っていたが、現在講義でお世話になっている教授が、
昔ICPCの運営にかかわっていたこともあるそうで、理解してもらえた。
自分の大学ではICPCに協力的な雰囲気は感じられなかったので、これは非常にうれしかった。
早めに今後の成長のための計画を立てていきたい。
競プロの記録 (2016_10_02)
入力数Nをstringとして受け取る。
まず、先頭の数字を指定し、その数字より大きいものが無いかを
、後ろのほうから見ていく。
この時、できるだけ大きなものと入れ替えたい。
このような動作を、指定する数字を先頭から順に試していき、
一度でも入れ替わりが起これば終了とする。
以上のように、実際は貪欲に調べればいいだけだったのだが、
自分の提出は、文字列を数値に直す関数をわざわざ作り、また全通り試していた。
今回は組み合わせの数が少ないので、これでもACだが、あまり賢くない。
先頭(D次の係数)から順に、A[i-2]=A[i], A[i]=0 としていくだけ。
この計算順を、逆にかいていたことで時間ロスしてしまったのが反省点。
また3次で割っていることから、あまりは高々2次になることをすぐに気が付きべきだった。
解いてから気が付いたが、要はただのフィボナッチ数列。
フィボナッチ数列が最もシンプルなDPだと考えられるということだろうか。
B予選まであと8日。
競プロの記録 (2016_10_01)と、英会話
今日も星2を1問解いただけで終わってしまった。
非常にまずい。
考えてダメだったら、すぐに解答をチラ見する方針で、
また解き始めるのを恐れないようにする必要がありそう。
要はすぐに手を動かせというハナシ。
入力Nの、素因数の次数が3以上ならば、
そのうち2個の積(素数でない)でNを割り切ることが可能。
『合成数Xは、p<=√X を満たす素因数pを持つ』つまり、
Xが合成数なら、素因数は・・・・・??
書きながら、考えがおかしいことに気が付いた。
ACだけど嘘解法かもしれない。
今日は遅いので、また明日やる。
B予選まであと9日。
(その他)
今日はレアジョブ(オンライン英会話)の体験レッスンを受講した。
講師の方がかなりゆっくり話していてくれているのはわかったが、それでも聞き取るのが難しかった。
焦るし、緊張するしで大変だったが、このような感覚は久しぶりで、
頭をフル活用している感じがした(競プロとは違う方向で)。
英語学習の意味だけでなく、脳に負担をかける意味でも効果的なようだ。
「度胸」のようなものをつけることの必要性を、ずっと感じ続けているが、そのためにも頑張りたい。
具体的な目標としては、来年8月の対留学で、スムーズに会話できるようになること。
競プロの記録 (2016_09_30)
今日は星2を1問のみ。
数は少なすぎるけど、やっと星2を解いた。
途中で止まる地点が、2点以上というのが肝。
その2点間に何を経由するかは関係なしで、単純に2点間の距離を求める。
こういう時はワーシャルフロイド法を使うのが一般的なようだ。
今回初めて実装した。ダイクストラよりはずっと簡単な実装だ。
あとは、2点間の距離と、それぞれの点からの0、N-1への距離の和が最も小さくなるように選ぶだけ。
このように終わってから文章で書くと、非常に単純で簡単な問題に思えてくる。
この感覚を忘れないようにしたい。
B予選まであと10日。
競プロの記録 (2016_09_28, 29)と、初リリース
今日は、星1を14問解いた。
生活習慣が完全に破たんしてしまい、やるべきことが全然進んでいない。
4時ごろ寝て12時ごろに置きる癖がついてしまった。
睡眠時間の長さ自体は悪くないが、0時から4時までは全く有効に使えておらず、
昼過ぎに起きるとあきらめのような感情が心に沸き立ち、やる気が出ないことが非常にまずい。
B予選まであと11日。
(その他)
友人とUnityで作っていたゲームアプリの申請が通り、今日リリースされた。
これは自分にとっては大きな一歩だと思う。
口だけでくすぶり続けて長かったが、やっと一歩踏み出せた気がする。
ただ、UI部分や申請の手続きは友人に頼ってしまったし、
もっと大きな責任を持つような役割をできるようにならないとダメだ。
開発チームに後輩が2,3人入ることも決まったので、
自分が技術面で引っ張れるように力をつけたい。
自分にとっては、他人を責任感こそが、自分を成長させる原動力だと最近感じてるので、
この機会を十分に活用したい。
とりあえず、Android向けのリリースは自分でやり遂げたい。
ちなみに作ったのはこのアプリ。