読者です 読者をやめる 読者になる 読者になる

2月振り返りと3月目標設定

前回のメモ

2月の目標

2月にやること

  • Dockerに関するノウハウを記事にする
  • モデリングAPI設計などを再学習し、記事にする
  • 作ってきたRailsアプリのリファクタリングを行う
  • 他のRailsアプリのコードリーディングなどをして王道を理解する
  • 「なにかwebサイト運営してますか?」という質問に答えられるようなアプリ開発の構想、準備。

振り返り

2月にやったこと

  • docker-composeを利用したRailsアプリ開発
  • 開発で使いやすいdocker-composeの作成
  • 自作アプリの構想
  • ransack, kaminari, omniouthなどのgemを利用した検索アプリ作成
  • Railsでの検索フォーム実装まとめ

良かった点・学んだ点

  • Dockerを日常的に使えるようになった

課題・改善点

  • オブジェクト指向Railsでどこになんのロジックを書くのかなどの理解がまだ弱い
  • コーディングに時間を多く費やせたが、一方で記事のアウトプットや読書のインプットが減った
  • テスト駆動の開発を心がけたい

目標設定

3月の目標

3月にやること

  • アプリ作成を引き続き行う
  • オブジェクト指向、Docker、その他設計のまとめを記事にする

1月振り返りと2月目標設定

1月振り返りと2月目標設定

前回のメモ

1月の目標

  • 1月にアウトプットさせたものを記事などに書いて理解の定着化をはかる
  • Web・アルゴリズムなどの基礎知識の復習
  • 開発環境の改善(itamaeやdockerなどの導入)を行なっていきたい

1月にやること

  • QiitaにRails関係の記事を投稿する
  • Dockerを使った開発環境の構築
  • Web・アルゴリズム関係の復習。技術面接で聞かれるような内容はちゃんと理解できるようにする

振り返り

1月にやったこと

  • Railsアプリ作成に関する記事をQiitaに投稿
  • docker-composeを利用したRails開発環境の構築
  • Slim, Hamlを使ったRailsのview作成
  • scaffoldを使わずにリレーションがあるモデルのCRUD操作するRailsアプリを作成
  • HerokuにRailsアプリをデプロイ
  • Rspecを使ったテストコードの作成
  • docker, docker-composeの理解
  • モデリングの設計方法の勉強

良かった点・学んだ点

  • Railsの開発に関係する部分を体系的に学習できた
  • dockerを使った開発環境の構築方法を理解した

課題・改善点

  • 正直時間をかければ大体のことはできるわけで、優先度とスピードを意識した勉強をしていかないといけないと思う。例えば、dockerの勉強もなんのためにdockerを使うのかを常に意識することで自分に必要な情報だけ収集すればもっと早く理解が進んだかもしれない。
  • 網羅的に学習できているが、まだそれが使える状態にはなってきていない。モデリングAPI設計などの基礎知識、複雑なRailsアプリを作るためのコーディングスキル、dockerなどのインフラの知識などをアプリ開発をどんどんしていくことで実務で使えるものにしていきたい。

目標設定

2月の目標

  • Dockerを実務で利用できるように理解を深める
  • Railsのコーディングスキルをあげる
  • アーキテクチャの理解深める

2月にやること

  • Dockerに関するノウハウを記事にする
  • モデリングAPI設計などを再学習し、記事にする
  • 作ってきたRailsアプリのリファクタリングを行う
  • 他のRailsアプリのコードリーディングなどをして王道を理解する
  • 「なにかwebサイト運営してますか?」という質問に答えられるようなアプリを開発する。

12月振り返りと1月目標設定

前回のメモ

12月の目標

  • 今まで学んだスキルについて、「知っている」から「使える」スキルにする
  • 開発環境の改善(itamaeやdockerなどの導入)を行なっていきたい

12月にやること

  • Rails開発環境をDockerやitamaeを利用して作成する
  • ハッカソンに出る
  • 外部APIを利用したRailsアプリを作っていく
  • React.js + Railsなアプリ作成

振り返り

12月にやったこと

  • Amazon APIを使った書籍検索アプリ
  • Google Map APIを利用したスポット登録と地図のプロット
  • minimum-omniauth-scaffoldを利用した認証画面
  • Herokuを利用したアプリデプロイ
  • twitter APIを利用したツイート検索
  • RailsAPIサーバーの構築
  • アルゴリズム・データ構造の復習
  • ハッカソンに出る

良かった点・学んだ点

  • 外部APIを利用したアプリ作成の方法を学べた
  • ハッカソンに出るという目標を作ることでアウトプットも意識して行えた

課題・改善点

  • プライベートでの開発時間の捻出が難しかった
  • アウトプットした知識が断片的なので、まだ自分の中で理解しきれていない
  • Dockerを使った開発環境構築に着手できていない

目標設定

1月の目標

  • 12月にアウトプットさせたものを記事などに書いて理解の定着化をはかる
  • Web・アルゴリズムなどの基礎知識の復習
  • 開発環境の改善(itamaeやdockerなどの導入)を行なっていきたい

1月にやること

  • QiitaにRails関係の記事を投稿する
  • Dockerを使った開発環境の構築
  • Web・アルゴリズム関係の復習。技術面接で聞かれるような内容はちゃんと理解できるようにする

【初心者向け】ハッカソンにエンジニアとして初参加するために準備したこととその参加レポート

はじめに

先日、connpassで募集していた「はじめてのハッカソン」というイベントに参加しました。こちらがHPになります。
今回の記事はその時の参加レポートです。自分はRails(Ruby)エンジニアとして参加しました。今までハッカソンの経験はなく、参加するまでスキル面で色々と不安に思うことがありました。
ですので、今回はイベントの詳細をお伝えすると共に、ハッカソンに出るためにやっておいたほうがいいことなどを体験談をもとに話させていただきます。(今回はアイデアやタスクマネージメントなどの話ではなく、開発面の話を中心にしたいと思います。)

「はじめてのハッカソン」の概要について

このハッカソンでは事前のアンケートをもとに運営の方が5人前後のチームに分けてくれます。当日そのチームが発表され、1日でアイデア出しと実装を行います。
スケジュールについては、11時すぎくらいから昼過ぎくらいまでで作るアプリを考え、18時ごろまでに実装+プレゼン資料作成をするといった流れです。ですので、実装できる時間はだいたい5時間程度といったところです。
順位づけなどは特に行わず、誰でも気軽に参加できるハッカソンというのがこのハッカソンのコンセプトです。参加者の中にはプログラミング歴1ヶ月のような方もいました。
この「はじめてのハッカソン」はスキルに不安がある人でも気軽に参加できるのが特徴だと思います。

自チームの作品と作業担当について

今回はクリスマスプレゼントにおすすめな商品を紹介するというコンセプトのアプリケーションを作りました。商品の検索にはAmazonAPIを利用しました。 僕のチームは4人いたのですが以下のような感じで役割を分担しました。

  • フロント担当、プレゼン資料作成
  • フロント担当、画面遷移など
  • サーバーサイド担当、マージ作業
  • サーバーサイド担当、検索ロジックの作成 (自分)

言語はRuby(Rails)を利用しました。
RailsでAmazonAPIから商品を表示させるという雛形をサーバーサイド担当で実装し、その間にフロント担当は各画面のHTML, CSSを作成しました。
その後、フロント側で作成したHTMLをRailsでも利用できるようにERBに変換するマージ作業を人手で行い、完成という流れでした。

やっておいたほうがいいと思ったこと

ハッカソンでは時間がありません。ですので、調べながら開発をするという時間はなるべく減らせたほうがいいと思います。
ハッカソンで必要になるであろう機能についてあらかじめ自分で実装しておいて、それをカンペとして用意しておくとかなり早い段階でアプリの雛形を作ることができます。機能が十分になくても、雛形が完成するとしないでは精神的な面で全然違うと思います。
主にサーバーサイドの話になりますが、例えば以下のようなものはすぐに作れるようになると(覚えていると)開発が楽になると思います。

  • テーブルの作成(1:多の関係をすぐに作れるとなおよい)
  • テストデータをDBに入れる
  • 検索フォームの作成
  • 外部API(Twitter, Amazon, GoogleMapなど)のアクセスキー取得とAPIの利用方法
  • CRUD APIの作成
  • Herokuへのデプロイ
  • gitコマンド

実際、今回の作品は、自分が事前にAmazonAPIを利用して作成した商品検索のアプリを雛形にしたので、当日はかなり良いスタートを切ることができたと思います。

感想など

色々上から目線で語ってしまいましたが、正直自分の実力のなさを痛感した日でした。
もっとコーディングスキルをあげて、息を吸うように開発ができるようにしないといけないと思いました。
また、各メンバーが持っているスキルセットによってチームで採用する(できる)技術も変わってくるので、得意分野を極めつつも、自分の出来る分野を広げていこうと思いました。

そのほかに、うまく作業を分担するにはどうすればいいのかという課題があったと思います。
今回はHTMLを作成してもらい、それをRailsでも利用できるように人手でERBに変換したのですが、少し非効率な気もしました。
この辺りを他のハッカソンのチームはどうやっているか知りたいです。

最後にですが、色々な課題やうまくいかない点が多かった今回のハッカソンですが、「ハッカソンに参加する」という予定を先に入れてしまうことでプログラミングの勉強も集中してできたかなと思いました。
これからも頑張っていこうと思います。

11月振り返りと12月目標設定

前回のメモ

11月の目標

  • サンプルアプリでいいので、繰り返し開発をして知識の定着化を図る
  • ReactやRailsから派生する知識についても適宜理解していく
  • 勉強会でLTできるようなネタ作り(ググれば出てきそうな内容じゃないもの。体験談とか自作アプリの紹介などを発表する。)

11月にやること

  • 外部APIを利用したウェブアプリを作成
  • サンプルコードをどんどん作る(主にRails)
  • React.js + Railsなアプリ作成

振り返り

11月にやったこと

  • react-railsを利用してReact.jsのチュートリアルをやる
  • DB論理設計に関する勉強(Qiitaにまとめ記事作成)
  • Electronを利用したデスクトップアプリのサンプル作成
  • React/Reduxの電卓アプリ作成 (LTとQiitaにまとめ記事作成)
  • RailsAPIサーバーを作成
  • API関係の本二冊読了。感想文はまだ

良かった点・学んだ点

  • React/Reduxについては概念をかなり理解できた
  • DB論理設計がはてブホットエントリーに入った

課題・改善点

  • LTやまとめ記事を作るのに時間がかかりすぎるので、読書やコーディングをしている時に並列でまとめ記事を書くためのメモを書いていくといいかもしれない
  • まだ「その技術知っている」というレベルであり、「その技術支える」というレベルにまで消化させることができていない。
  • Railsのアプリ作成が思ったほどすすまなかった

目標設定

12月の目標

  • 今まで学んだスキルについて、「知っている」から「使える」スキルにする
  • 開発環境の改善(itamaeやdockerなどの導入)を行なっていきたい

12月にやること

  • Rails開発環境をDockerやitamaeを利用して作成する
  • ハッカソンに出る
  • 外部APIを利用したRailsアプリを作っていく
  • React.js + Railsなアプリ作成

第3回もくもく会:クラウドワークスがカフェ代わりに!?、に参加しました

恵比寿ガーデンプレイスにあるクラウドワークスのもくもく会に参加しました。今回で2回目です。 前回もそうでしたが、ここのもくもく会は参加者全員かなり集中して開発や勉強をしており、いい意味で緊張感が保てる場となっております。

今回はLTをやってきました。Qiitaで少し話題になった記事をスライドにまとめて発表しました。 ただ、5分では到底終わる内容のものではなく、LT向けの内容ではなかったなと終わってから思いました。

speakerdeck.com

次回のLTでは「作ってみた」をテーマになにか発表したいと思います。

React+Reduxで電卓作ってみました

先日、Wantedly主催の「React速習会(デスクトップアプリ)」の勉強会に参加しました。

勉強会では、ReactとReduxの概要からはじまりReact+Reduxを利用したElectronについてサンプルコードをベースに教えていただきました。 特に、Reduxについては結構な時間を割いて説明をしてもらいました。

なんとなくReduxというものに理解したつもりではいるものの、実際に手を動かさないとわからないと思い、簡単な電卓アプリをReactとReduxを利用して作成しました。(create-react-appをベースにしています。)

github.com

もしReact.jsやReduxに興味がある人は是非参考にしてみてください。 また、こちらのソースコードReact初心者の自分が試行錯誤で作ったものなので不適切な箇所などもあるかと思います。ですので、是非ともフィードバックをいただければと思っております。

React+Reduxのサンプルアプリを作成して理解が深まったのですが、一方でReduxを本当に利用する必要があるのか、Reduxを実務レベルのアプリで利用することができるのかという点に関しては少し懐疑的でもあります。 勉強会のあとに行われた懇親会でも話にあがったのですが、最新技術を身につけていくことが目的になってはいけないと思いました。 技術を知っておくことは大事ですが、常に「なにをしたいか」ということを意識しながら勉強を進めていこうと思います。

2016年11月25日 追記

今回の内容を勉強会で発表してきました。

speakerdeck.com