全力で語るスレ

好きなもの嫌いなもの

毎日GitHubにCommitし続けて3ヶ月が経ちました

春は花粉、やうやうひどくなりゆく鼻と目。

はい。こんにちは。

 

2017年12月頭に「1年間毎日GitHubにCommitする」という2018年の目標を立てました。

ちょっとフライング気味に始めてしまい、3月上旬にようやく3ヶ月が経過したので、その途中経過と成果をお話しします。

 

 

前提

24歳独身♂

2017年4月   営業からエンジニアに転向

2017年4~12月 Java, C#, PHP で業務系の開発

2018年1月~ Rubyで業務系の開発

2017年12月~ Rubyで個人的にWebアプリ開発

 

こんな感じなのでまだまだ「ひよっこえんじにあ」です。そうだと思いたいです。

 

具体的なルール

基本的に怠けがちな人生で、単純にCommitするというだけではインデント修正して満足してしまいそうな日が訪れると予想したので、3つのルールを設けました。

 

①新しい知識を得る

兎にも角にも絶対に必要なルールだと思いますね。

これが前提にあるからこそ毎日Commitすることに意義が生まれます。

 

既存の知識で作ることも大事ですけど、それは普段の業務でいいかなって思います。

 

②1年間で5つのプロダクトを作る

「手段が目的化しないように」という自戒を込めて。

特にプログラミングを始めたばかり(まだまだ初心者気分)はプログラミングが目的になりがちなので、「何かしらプロダクトを作らなければ意味がないぞ」と自分に言い聞かせるため。

 

③ズルはしない

毎日CommitをしているかはGitHubで確認していますが、GitHubの芝はCommitの時間によって生えるので、Commitのファイルを修正すればいくらでも芝を量産することができます。

 

普通の人間であれば絶対にしないようなことですが、ポケモンでいうと特攻の個体値がV(見栄っ張り)なので、一応ルールに入れておきました。

 

途中経過

それではGitHubの芝を見てみましょう。

 

f:id:neer_chan:20180306105242p:plain

 

生えてますね~芝。

GitHubの芝生は青く見えるでしょう。

 

ルールに則ってできる限りの努力をしていましたが、仕事などの関係で内容の薄いCommitしかできない日もありました。

 

f:id:neer_chan:20180306105505p:plain

一日あたりのCommmi数が一番多い日で27commitですね。

Commit数は正直あまり気にしていないので細かく実装をしたのでしょう(適当)

 

成果

さて、約3ヶ月間Commitし続けただけで満足しているようではヤムチャのままです。

成長してこそ、この取り組みに意味が生まれます。 

 

「実際にどんなところが変わったのか」って考えると3つくらいですね。

 

①コーディングのスピードが上がった

これは「言わずもがな」ってやつですね。

少しだけ話逸れますが「言わずもがな」って言葉めっちゃ違和感あるので調べたんですが、「もがな」っていうのは終助詞なんですね。

 

とにかく毎日触ることって本当に大切だと感じました。

今ではコーディングしない日があると不安になるレベルです。助けてください。

 

もう少し具体的な成果として、以前までは「あれれ~○○の書き方ってどうな感じだっけ~」みたいな言語の基礎的なところが抜けてたりしていましたが、そういったものがなくなりました。

 

②Gitに詳しくなった

これも「言わずもがな」ってやつですね。

少し話逸れますが、「言わずもがな」の「もがな」は「~であってほしい」という意味だそうです。

 

毎日Commitしていると、そりゃあエラー出ますよね。

なぜかconfigファイルのuser.emailやuser.nameが変わっていたりしますよね。

無駄にbranch切っていてmergeするとき苦労しますよね。

 

設定ファイルもそこそこいじれるようになりましたし、hooksの中にスクリプトかけるくらいにはなりました。

 

③情報に敏感になった

これが一番成果として大きいかなーって思います。

「敏感」というよりは「飢え」に近いです。

 

とにかく情報に飢えます。

ルールに則って新しい知識を学ぶためにも情報が必要。

本を読んだりGitHubを見たりQiitaを見たりブログを見たりTwitterを見たりして自分の知らないことを探さなければなりません。

 

「飢え」という表現だと少しネガティブに感じますが、実際はメチャクチャ良い成果だと思います。

 

作ったもの

人に見せられないようなしょうもないアプリケーションが多いですが少しだけ紹介します。

言語はRubyで、フレームワークRuby on Railsです。

Rubyを勉強したいかつ年初からRubyで業務を行うため、全てRubyRailsで作りました。

Ruby自体の経験は2017年12月頭の時点で数か月くらいです。

 

①kininaru

f:id:neer_chan:20180306105824p:plain

 

Amazon楽天APIを叩いてみたくて作りました。

価格ドットコムみたいに「商品の値段を比較して表示」的なことができます。

実際は価格ドットコムのようなものとはかけ離れていますが。

 

私の作ったものは検索毎にAmazon楽天にリクエストを投げて商品を取得し、商品コード(ASINとか)を利用して比較表示しています。

一方で価格ドットコムは当たり前の話ですがデータベースでしっかり管理されているのでAmazon楽天などの商品コードがなくてもメーカー独自の商品コードで比較できます。

 

Amazon楽天にはメーカー独自の商品コードが載っていない物もたくさんあるので、拾いきれません。

載っていない場合は正規表現などでも拾いえないのでそこは断念。

また、Amazonの場合は一度のリクエストで10件しか取得できないようです。

 

本気で作るのであれば地道にリクエストを投げ続けてデータを集める必要がありそうですね。

 

 

②Qrep

f:id:neer_chan:20180306110028p:plain

 

qiitaを真似してみようということで作ってみました。

特にサーバーサイドで新しいことはしてません。

本当にCSSとJSの知識がなかったのでそこらへんを勉強しようかなと。

 

これ作っている途中でReact触りたくなってきたので、4月からReactを使う予定もあり止まってます。

 

記事作成の際にマークアップを記入してそれをいい感じに表示する実装したので、これは0からブログを作るときにめちゃめちゃ役立ちそうな知識を得たなって感じました。

 

③TwiTen

 

f:id:neer_chan:20180306114141p:plain

TwiTen

 

今も作成しているサービスです。

2月の頭くらいから作り始めてようやく形になってきました。

 

今まではherokuにぶち込んでいたのですが、せっかくなのでAWS使ってみました。

EC2, RDB, ELB, DNSなど地獄のような思いをしましたが、ハマればハマった分だけ知識は得るようで、そこそこ詳しくなりました。

2週間くらいAWSで地獄を見ていたのでそこがなければもう少し進んでいたかなーと。

 

とりあえずあと少しはこのサービスを作りつつ、そのあとはこのアプリを使ってSEO的な部分やりたいなーと思ってます。

 その前にデザイン。。

 

失ったもの(おまけ)

 何かを得るためには何かを失わなければならないのが世の常です。

 

①時間

とにかく時間がない。

仕事終わって帰ると19時半。ごはん食べてお風呂入ってるともう8時半。

そこからコーディングするとすぐに1日が終わります。

 

②人付き合い

これは自分次第でどうにかなります。

というのも夜に予定あれば朝早く起きてコーディングすればいい話です。

 

③目力

仕事でパソコン見て帰宅後もパソコン見て移動中もスマホ見てっていう生活。

ブルーライトカットのメガネがないとすぐに眼精疲労になります。なりました。

 

今後の課題

とにかくフロントのスキルが無さすぎるので一から学びます。

ファーストインプレッションはとても大切だと思うのでめちゃめちゃオシャで卍なサービスを作りたいです。

 

おわりに

知識や技術に貪欲な人は毎日Commit生活始めることオススメします。

人間的な部分を少し失いますが、それでも毎日新しい知識を付けて成長する感じは溜まりません。

もうちょっと早く個人的なWeb開発始めていればよかったなーとめちゃめちゃ後悔しています。

2017年の冬くらいまではお猿さんでした。

 

みなさんも早速始めましょう。

 

おわり