ゆるふわ技術日誌

エンジニア見習いの悪戦苦闘日記

今までやったバイトを振り返る

この記事はTUT 今年もTwitterしかしてません Advent Calendar 2017の24日目の記事です。

adventar.org

はじめまして。ううたろと申します。CS学部3年です。

私事ですが、ちょうど1週間前の日曜日に約一年やっていたバイトを退職しました。

そこでこれを機に今まで私が経験してきたアルバイトを紹介します。

郵便局 年賀状仕分け

初めてのアルバイトは郵便局の年賀状仕分けの短期アルバイトでした。

まだ当時高校生だったので、時給はほぼ最低賃金でしたが嬉しかったのを覚えています。

業務内容は

  • 年賀状を番地ごとの箱に仕分ける
  • 年賀状を番地読み取るでかい機械にひたすら入れる
  • 年賀状のスキャン画像を見ながら郵便番号をキーボードで入力する

こんな感じだったような気がします。

特に一番最後のスキャン画像見ながら郵便番号打ち込むのは、本当に目が疲れます。

しかも、ココに出てくるのはOCRで認識できなかった郵便物だけなので、とても読みづらいです。

でも人とは話さなくていいし、暖房効いた部屋で座ってればいいので楽ではあったかなと。

宅配ピザ

大学生になるタイミングで初めたのが宅配ピザ屋のバイトでした。

当時、自動車の運転免許を取った私は、なにか免許を使ったバイトがしたくて、宅配系の募集に何件か電話をかけた記憶があります。

最初にかけたガストの宅配は、免許取得から1年以上経過していないと採用できないということで断られ、結局宅配ピザ屋へ。(免許取得3日目にして即採用でした)

業務は

  • ピザの宅配
  • チラシのポスティング
  • 受注電話対応

みたいな感じ。冬の寒い日とかにチラシのポスティングとか割と地獄です。

時給は950円でしたが、朝のオープンから23時の閉店までの通しシフトとか入っていた事もあったので、すごく稼げました。

MAX月収は23万くらいだったと思います。控えめに言ってもヤバイ。

1年位続けたのですが、退職する直前には金庫と店舗の鍵を持たされ、デリバリー採用のはずなのにピザを作って、そのピザを自分で届けるみたいなフルスタックピザ職人状態になっていました。

あまり積極的にはおすすめできないです。特に、今日なんかはクリスマス・イブなので地獄を見ていることでしょう。

レンタカー屋

続いて、ピザ屋退職後にはじめたのが、レンタカー屋です。

これがつい先週退職したヤツです。

レンタカー屋って学生バイトとかあるんだ、というのが最初の感想でしたが、意外と学生でレンタカー屋のバイトやってる人はたくさんいます。

当然、要自動車免許ですが、時給は1000円とそこそこ。

業務もクルマが好きなら多分たのしい

  • 洗車 
  • 他店舗等への回送
  • 接客

こんな感じ。レンタカー屋にもよると思いますが、僕の働いていた店は、BMWとかポルシェとかロードスターとかが配備されていたので、そういう普通に暮らしている分には乗ることがないかもしれないクルマに乗れるのがたのしい。

もちろんそういうスゴイクルマだけではなく、普通のコンパクトカーやトラックとかハイエースとかもあります。

このバイトやっているとやたらと駐車がうまくなるので、モテモテになりたい人にオススメです(要出典)

なお、業務中に事故ると結構面倒な模様。初心者でも採用してるみたいですが、運転に自信が持てないようならやめておいたほうが無難な気がする。

プログラマー

そして、今やっているのがプログラマーのアルバイト。レンタカー屋と並行してやってきましたが、こっちに絞るためにレンタカー屋を退職しました。

こっちは、ちょっと具体的な話はできないのですが、コードを書いたりしています(そりゃそうだ)

結構楽しくて、最近はエンジニアだけでなくデザイナーの方もバイト先に入ったりして、とっても賑やかにやっております。

ただ、シビアに実力が問われるので、その面で精神的に辛くなるときは正直あります。あるけどなんとか耐えつつ鍛えつつやってきた感じです。

いまバイトさせてもらっている会社は、自分の成長を応援してくれているのでその環境に甘えつつ、ちゃんと自分のものにしていきたいなぁと日々感じています。

おわりに

何の面白みもない記事を書いてしまいましたね…

まぁ一つ言えるのは、あまりバイトやりすぎない方がいいということです。

一ヶ月で23万稼いだときは、本当にどうかしてたと思います。ちなみにその頃のGPAは1.7とかなので、成績にも現れているという。

プログラマーのバイトはとってもオススメなのでCSの人は是非探してみるといいと思います。

Wantedlyとか覗いてみると案外近場にあったりするもんですよ。

www.wantedly.com

JavaでBasicインタプリタを作る #222

講義でね。作っています。

リポジトリはこれ。

github.com

ちなみに全く完成していないし、何回も作り直したりローカルで作業しているので↑のリポジトリは全く意味をなしていないです。

最初はソースコードから字句を切り出すというのを作って今は字句から文法理解の方へ進もうとしています。

最初が割とすんなり作れただけに、今回ドハマリしているのがとっても辛いです。

ちなみに今日は天皇誕生日なことを忘れていて、誤ってバイトに行くために朝から八王子に言ってしまいました。

そのまま帰るのも癪だったのでココで作業していました。

www.facebook.com

天井が高くてすご〜くいい感じのコワーキングスペースでした。

相鉄沿線にもこういうところあるんだなぁ。海老名なら200円かからずに行けるので進捗がヤバイときにはいいかもしれません。

雑談

間もなく2017年も終わりですね。

12月30日には約1年ぶりのでんぱ組.incのライブも迫っているので、スッキリとした気分でライブに行って年越しできるように何としてもこの課題は終わらせたいですね。

Rubocop先生のお話。

この記事は田胡研アドベントカレンダー22日目の記事です。

adventar.org

ReactNativeの話題をお届けする予定でしたが、時間がなくなってしまったので以前、田胡研ではRailsが何故か大流行しているのでRubocop先生の話をしようと思います。

Rubocopとは。

github.com

RubyのLintツールです。

Lintってのは、プログラム上の冗長なコードや不適切なコード(コンパイルは通るけど)みたいなのを教えてくれたり訂正してくれたりするツールです。

他の言語向けのLintツールももちろん存在するのですが、Rubocopはとても厳しいことで有名らしいです。

使い方

単純に使いたいだけなら、gem install rubocopをしてあげて、プロジェクトルートに移動してrubocopとコマンドを実行することで、自動的にカレントディレクトリ以下の.rbのファイルを検査してくれます。

ちなみに、某所で触らせてもらっているRailsのコードで走らせたら3000個以上のエラーが出ました。わろた。

すごいところ

Lintツールなので以下のような指摘をしてくれます

  • if not hogeは使わずにunless hoge使おう。
  • "'を統一しましょう
  • 無駄な空行やスペースいらなくね?
  • 書かなくてもreturnできるよ
  • 変数名、キャメルケース使おうね

などなど。また、これくらいのロジックに影響を及ぼさないエラーに関しては-aオプションを付けて実行することで自動的に修正もしてくれます。

つらいところ

Rubocop先生は大変厳しいので割と細かい指摘もしてくれます。例えば…

  • GemfileのGemの並び順がぐちゃぐちゃ
  • ヒアドキュメントの識別子にEOS使うな(もっと意味のある単語を使えということらしい)
  • get_hogeみたいなメソッド名
  • クラスが長い
  • 行が長い(80文字より多いとエラー吐く)
  • ループが多い

この辺のエラーになると、-aで自動修正してくれないエラーも多くあります。

現実的な使い方

前章で説明したとおり、ルールが厳しいのでそのまま使うのはあまり現実的ではありません。

Rubocopは設定を書くことで、ルールを無効化したり、エラーとなる閾値を変更することができます。

設定項目が多く、自分で全部見直すと日が暮れるので私は以下の手順でLint導入をしました。

  • onkcopといういい感じにカスタマイズした設定ファイルをGemにしたものが配信されているので、導入する。
    • 作者が日本人なので、すべての設定項目に日本語で説明が書いてあるのがとても良い。
  • 導入が済んだら-aオプションを付けて実行する。
  • GitのDiffと設定を照らし合わせながら、自分の書き方に合わないルールを修正
  • 自動修正できなかったエラーを見ながら修正orルール変更

これを10時間位ひたすらやって3000個のエラーを消し去ることに成功しました…!

Rubocopにメリットはあるのか

僕は声を大にして言いたい。ある

  • よく言う言葉だけどコード品質の担保
  • 誰が見ても見やすいコード(になる場合が多い)
  • 既存コードの把握
    • 途中からプロジェクトに突っ込まれたときに、これをやると既存の仕組みがわかるようになる
  • 何より勉強になる
    • Ruby的に美しいコードとは何かが学べる
    • 便利なメソッドをたくさん知ることができる

などなど。僕は10時間かけてもやるメリットがあった仕事だったなぁと思っています。

先程紹介したOnkcopの作者のかたのサイトが参考になるのでぜひ見てみてください。

rubocop のしつけ方 - onk.ninja

雑談

短くなっちゃいましたがRubocop先生の魅力が少しでも伝われば幸いです。

明日はnamazu510さんによる1年の振り返りです。ご期待ください。

クリパから考察する私の生き方 #220

今日はRailsを書いたりしていました。講義で不毛な作業をさせられるのが苦痛すぎる。

あと、クリスマスパーティーが研究室で行われました。

f:id:uutarou:20171221231232j:plain

ボスにケーキをごちそうになるなど、とても良い会でした。

クリスマス会の間にLT会が行われて、私はjQueryとReactを対比して、なぜReactを使うと嬉しいのかという話をしようとして、同じサンプルをReactとjQueryを用いて実装したりしたのですが、肝心のどうしてReactを使うのか、これが何も分からなかった。

夏のインターンに行って以来、私の中でライブラリや言語を選ぶときに「なぜ」が言えないような選び方をするエンジニアにだけはなってはいけないと考えていました。(なんか流行っているから使ってみる、は技術に触れるキッカケとしてはいいと思うが、その技術を選択する理由として使ってはいけないと考えている)

それにもかかわらず、この理由が言えなかったのは本当に悔しい。

LTは投票を行って上位者には景品がプレゼントされるという形式だったのだが、もちろん入賞は果たせず。準備に使った時間から考えると、これは至極当然の結果であって、なにも言うことはないのですが、こう見えて負けず嫌いであのような中途半端なLTをしてしまったことに本当に後悔しています。

こういう、何をやっても中途半端で許してしまう、こういった性格に起因する行動の積み重ねが今の何も成し遂げることのできない私の姿なのかと。

ちょっと、このへんで生き方考えないと、あっという間に人生終わってしまいそう。決めたことをやり遂げる、探究心を持つ、そういうことをやっていきたいと思います。

そんなことを考えていました。

バイトしてたら一日終わってしまった #219

今日やったこと

バイトしてたら一日終わっていまいました。

今日はコードを書いている時間よりスプレッドシートに触れている時間のほうが長かったような。

今日知った関数

  • AVERAGEIFS
  • SUMIFS
    • 複数条件に当てはまる行の平均・合計を出せる。COUNTIFSの平均と合計版。
  • COUNTUNIQUE
    • COUNTのユニークな値を数え上げるバージョン。すごい。

なんかExcel関数って思いつく限りのこと大体実装されててすごいなぁと思います。

普通にどうやって実装されてるのか気になるなぁってバイトしながら思っていました。

雑談

今日はあまりにもあらゆることの進捗がやばいので研究室に宿泊中です。

明日朝早く起きなくていいのはいいですね。

今日はこのへんで…。

進捗を出そう、話はそれからだ #218

欲しい進捗、でない進捗。

今日進捗しなかった作業

講義で、Javaを使ってBasic風言語のインタプリタを作っています。

(弊研の人はみんな受ける。多分学部生の講義の中ではかなり難しい部類に入るんじゃないかと勝手に思っている。)

構文解析部分を作ってるのですが進捗がなく、つらい。

全体の構造が見えてないのに、局所的にコードを書いているせいで合ってるという確信を持ちながらコードをかけないのが原因のような。

とりあえず帰ったら続きやるかなぁ…。

全然関係ない話

さっきTwitter見てたら良さげなCSSフレームワークを見つけた。

qrac.github.io

キャワイイ。日本語特化のCSSフレームワークで最低限のコンポーネントとかだけが用意されてる感じ。

これ今度なんか作るときは使いたいな

雑談

オレはこれができるぞ。という技術を持ちたい。


いろいろと最近物事の優先順位が崩壊してる気がしている。

息抜きも大事とはいうけれど、息抜きすぎてはならん。