未経験からエンジニアになるまでの道のりを記録していきます。

毎週土曜日〆、月曜日更新。

ログ:2020/6/21~2020/6/27

日曜にあげると宣言しながら月曜日の報告となりました。

プログラミング学習

実績

51h/32h

やったこと

個人アプリ(コード譜共有サービス)
  • 検索画面のソート機能(苦戦中)
  • like機能の実装(練習してるボタン、信頼できるボタン)
  • コード譜回りのエラー対応(編集エディター、カーソル表示)
  • 未使用ファイル、DBの整理
  • HTML/CSSリファクタリング(flocss適用)
グループ課題

6/20(土)から始まり、丸1週間立ちました。
メルカリ的サービスを作ることになっています。

スクラムマスターと呼ばれる、調整役に就任しました。

僕の場合は実質的に、リーダーとして動いています。

  • 活動時間やルールの決定
  • slackやtrelloなどのツールの整備
  • Github整備
  • ローカル開発環境の整備
  • DB設計
  • フロントデザイン(ログイン・ユーザ登録画面)


所感

やったことの中からいくつかピックアップして述べます。

個人アプリ
  • like機能の実装
    練習している人数を集計する機能はとてもワクワクしながら実装しました。

    音楽を始めたてのとき、セッション用の曲を懸命に覚えて、イベントに行ったものの同じ初心者は全く別の曲を練習していて、せっかく会えたのに大してセッションできなかった。

    そんな思い出と、このサービスで同じ体験をする人をなくすために実装しました。

    誰がなんの曲を練習しているかも見れるようにするともっとセッションを通した交流、セッションの回数を稼ぐことによる演奏技術の向上につながると期待しています。

    そういえば、作成中のアプリについてテーマであるBluegrass音楽、のコミュニティに宣伝してみたところいくつか反応がありました。

    ポートフォリオとしても、実際に課題を解決するためのツールとしても、いち早く、そして役に立つものをリリースできるように、グループ課題と並行で進めようと思います

  • 未使用ファイル、DBの整理
    ウォーターフォール式で機能を洗い出して、一気に作成しまくったviewやDB。

    YAGNI(どうせ使わないよ)のまんまでした。
    無駄なことをしまくったのは本当に反省です。

    必要と思われる機能を淡々と、順番に実装していくスタイルのほうが今のところは良さそうです。

  • リファクタリング
    flocssの書き方を用いて共通パーツを使い回す感じ、めちゃめちゃ気に入ってます。

グループ課題
  • slack、trelloなどのツール整備
    工夫した点としては、googleカレンダーgoogle meetでデイリーの報告会などのMTG案内を自動で出してくれるようにした点。
    便利!
  • ローカル開発環境の整備
    メンバーでこの辺が覚束ない方がおられたのでフォローに入りました

    個人アプリを通して、インフラに関する知見が少しずつ身になってきたことが、ここへ来て役立っています。

    マイグレーションファイル回りでコンフリクト出たら嫌なので、そのあたりを全部実装したブランチを作成して共用することにしました。

    この辺も、個人アプリで苦戦しながら自力でマイグレートしたことが生きてる!
  • DB設計
    個人アプリで作成しているものよりかなり複雑で悩みました。

    ER図の作成にdraw.ioというダイアグラム作成アプリを使用しました。

    先週、個人アプリの発表会ではAWSのインフラ図の作成にも使用したもので、こいつはかなり便利です。

    微妙な配置調整とかを勝手にやってくれるので短時間で見やすい図を作成することができました。
    (ただしちょっとコツがいる)
  • フロントデザイン
    この辺はお手のもの。短時間で実装して、速攻LGTM。やったぜ。

グループ課題 1週間を終えて

プログラミングを難しく感じているメンバーに教えたり、エラー対応する中で、
明確に理解できていない点、言語化できるほど整理されていない点が浮き彫りになった1週間でした。

楽器に夢中になっているときにも、後輩ができて教えるときに同様の経験をしたのを思い出します。

なんとか伝えようとアウトプットをする中で、理解できていない点を知り、それを学び、整理することでほかへの転用が効くようになり、さらなる上達につながった。

今回も同じことを通して成長できるという確信があります。



一方で、正直なところ、各々が自走する意志がどれくらいあるか?時間をなんとしても作る、という意思がどれだけあるか?というところで、1から10まで教えることはあまり効率が良くないとも感じています。

この辺はバランス…どこまで教えるか?どこからは僕が自分でやってしまうか?明確に線引きして進める必要があります。

 

少し整理してみます

トレードオフの関係
  • 教えることによる成長
    80:20の法則で得られる成長の80%くらいまでは投資効果が高いので教える。
  • ぼくが代わりにやったり、簡単に答えをあげることによるメンバーの損失
    せっかくスクールにお金を払って「やらざるを得ない環境」を買っているのにそれを奪うことになる。
  • 教え続けることによる僕の損失
    教えることによる成長の80%より先は、投資効果が低い。

 

上記のトレードオフを踏まえて、

僕のスタンス
  • 聞かれたら、即座に答えをあげるor代わりにやる。
  • オプションで成長80%の範囲で徹底的に教える


何はともあれチームで協力しながら目標に向かっていくことの楽しさを思い出しつつあります。

バンド活動と一緒や、これ。


来週(もう今週)の目標

インプット
個人アプリ
  • 機能追加:ソート機能
  • 機能追加:コード譜の属性追加(キー=調の追加、これを表示画面にも適用するとジャムセッションのハードルを下げることにおいてメリットがある)
  • エラー修正
  • ファットコントローラ、ビューのリファクタリング
グループ課題

フォローやレビュー含めて。

  • フロントエンド実装:トップページ、商品出品ページ(どちらもレビュー)
  • バックエンド実装:商品出品機能の実装、ユーザ登録・ログイン機能(フォロー)


今後の方針

Twitterでものべた内容です。

就活までに個人アプリに実装する内容

エラー修正、機能追加(4機能)、レスポンシブ対応、リファクタリング(ビジネスロジックをコントローラ/ビューから排除)、Rspecテスト、AWS(ACM,route53)関係、運用開始、Docker対応、自動デプロイ 

グループ課題への参加スタンス

圧倒的なギバー。即レス。ボールを持たない。メンバーの自走のための情報共有。フォローはアウトプット機会。具体的なToDoを提案。リーダーシップ。


その他

読書→生き方(稲盛和夫)

ただただ自己啓発。テンション上がった。以上。

 

 

プログラミングに継続して努力を投下できています
今週以降も継続します。