フィヨルドブートキャンプ卒業生の@shita1112さんと、10年近くの縁の@rono23と、僕、machidaさんで代々木上原のゆうに感謝のお礼ディナーに行ってきました。

@shita1112さんは愛知から代々木上原に引っ越して来られたのでその引越し祝いでもあるんですが、先日@shita1112さんが投稿したいくつかのブログ記事がバズって、それを見てフィヨルドブートキャンプに来たという人が沢山いたのでお礼と、

@rono23は今年僕がサンクトペテルブルクRubyConfに行っていた時にかわりにオフィスに来てメンターをやってくれたのでそのお礼です。

Image from Gyazo

豚肉の何か。

Image from Gyazo

牛肉の土鍋。

Image from Gyazo

主に@shita1112さんは今年からフリーランスということで歴は長いが、働いている期間は短い@rono23を交えてフリーランスプログラマーとしてのサバイバル方法を話してました。

始める時ってそういう話助かりますよね。

「開発環境のユーザーのパスワードって何?」

みたいな情報の共有って面倒ですよね。any_login入れちゃうのがいいかも。

any_loginを入れると画面の左下にアイコンが出てきて、そこをクリックするとユーザーが一覧できるプルダウンメニューが出てきます。それを選択するだけでそのユーザーでログインできるというもの。

似た仕組みを用意してる人が多いとは思いますが、無いなら導入おすすめです。

igorkasyanchuk/any_login: Easy way to login as any user in system

認証ライブラリはDevise, Authlogic, Clearance, Sorceryなど色々対応してます。

Image from Gyazo

フィヨルドブートキャンプのアプリに入れてみました。

fjordllc/bootcamp: プログラマー向けEラーニングシステム

プログラミングスクール(フィヨルドブートキャンプ)で勉強している方へよくお話している内容なのでここに書いておきます。

わからない、ツラい

プログラミング(に限らず新しいこと)を勉強してるときに、

「何がわからないのかもわからない。ツラい。」

ってときがあると思います。

わからなくて1日何も進まなかったらとてもツラいと思います。1週間何も進まなかったらもっとツラいと思います。

この「何がわからないのかもわからない」というやつ。これはすごくツラいですが、プログラマーにとっては非常によくある状態です。

全然気に病むことはないです。

「ドンマイ、ドンマイ、締まっていこうー!」

ぐらいの感じです。

日々新しい技術を覚える必要があるプログラマーには頻繁におきます。 プログラマーとして働いている人はこの状態のプロです。

むしろ「これが飯の種になる」と考えている節があります。

この状態からの抜け出し方を知っていることが新しいことを自己学習し続けていけるコツなのかもしれません。

何がわからないのかがわからなくなったら

まず、昼間だったら温かい飲み物を淹れ、ゆっくり飲みましょう。夜だったらゆっくりお風呂に入って寝てしまいましょう。

そしてハチマキを締め直すイメージで問題に正面から立ち向かう覚悟を決めましょう。

何がわからないのかもわからないという場合、何かを見落としてるとか、大事なピースが一つ抜けてるとかそういう、あとちょっとの段階ではないということです。

自分には概要も見えないし、ピースも128ピースぐらい足りないということです。

僕はこういうとき、わかりたい対象をキーワードとしてたくさんググります。そのキーワードがちょっとでも入ってる本をたくさん買って読みます。片っ端から見てやるぞというイメージです。

とにかくそのキーワードが含まれている情報を浴びることを意識します。

そのキーワードについて様々な角度から書かれているものを見ているうちに共通点と差異からおぼろげながら輪郭が見えてくるはずです。

そうしたらもう糸口が見えているので、今まで収集した情報の中から学ぶべきものを学び、聞くべき人に聞いていけばわかってきます。自分が何をわからなかったのか、もうわかっています。

また、「理屈じゃない、触りまくって体で覚えなきゃわからない」というタイプの対象もあります。その時はひたすら触る時間を増やせば良いです。毎日習慣になるほど触っているといつの間にかわかっています。(ただそれを他の人に説明しろと言われてもできない)

一方、komagataプロは・・・

僕もプログラマーになってもう21年経ちますが、毎年一回はこれになってますね。

今年はBlender、去年はUnity、一昨年はkubernates・・・。

僕ぐらいのプロになると「はいはい、わからないわからない、ワロスワロス」ってなもんです😭

覚えるまでの苦労は何ら変わらないですが、

「今は全くわからないけど、あと1ヶ月ぐらいがむしゃらにこれをいじりまくればわかるはずだ。」

と思っているので、気持ち的にはだいぶ楽です。

というかホントはこんな状態になりたくないしサッとわかりたいですよ😭

奥さんの@y_komacoがオリジナルキートップの販売をBOOTHで始めました。

poop keytop - kmgt keytop - BOOTH

Image from Gyazo

Image from Gyazo

Image from Gyazo

間違いなくこれはクソですね。

奥さんは元ジュエリーデザイナーで彫金とかの学校も出てるので立体造形は得意ではあります。

ただ、他にも動物とか試作品がいっぱいあるのに何故第一弾がクソなのか、何故無駄にカラバリが多いのか、全てが謎に包まれていますが、凄い勢いで作っているので静かに見守りたいと思います。

人事リセットとは

イベントなどで経営者や現場の人間と意気投合し、是非にと言われて面接に行ったら人事の人には何も話が通ってなくて、

「履歴書・職務経歴書について説明してください。前職ではどのような役割を・・・」

みたいなこと言われて、

「え、知ってて誘ったんじゃなかったの?あれだけ盛り上がったのに無かったことになってる・・・?」

となって意気消沈し、一次面接を通過したのに、

「会社の雰囲気が思ってたものとちょっと違った」

という理由で応募者が二次面接を辞退してしまう現象を言います。

面接を受ける人も紹介する人も経営者も人事も全員不幸になってる気がする。これどうにかなんないの・・・?

人事リセットはネガティブなことか

そもそも面接というのはいかに良くない人を落とすかが目的で、その為には入社するべき良い人が多少落とされてしまっても仕方ないという考えもあります。

しかし、市場環境的に現在はプログラマー不足が深刻で完全な売り手市場です。経営者も現場(プログラマー・広報)も一丸となって経営課題としてプログラマーの求人をしているところに、一昔前の会社側が上からの「入社させてやる」目線の姿勢で対峙される場合があり、会社として凄い損失だと思うことがあります。

少なくとも求職者の事前情報を共有しておくことになんの問題もないはずです。

強い人事

一方で最近は人事が非常に強力だなと感じる会社も見られます。

プログラマーの業界で言うと、現場にも採用にコミットする人がいて、人事・広報の人とチームを組み、一丸となって現場のイベントにも参加し、求職中のプログラマーと人事の方が直接の知り合いとなり、面接から入社後のメンタル面のフォローまでしてくれる会社。そういう会社も増えてきています。

弱い人事

前述のように人事リセットが発生するような弱い人事だと強いプログラマーを逃し続け(しかも経営者がその状態を知らなかったり、知ってても口出しできないことも多い)、会社の力が弱まり続けていきます。

世の中のプログラマーのいる会社の人事の方にはAIによる履歴書のスクリーニングだなんだと言う前にすぐにでもできるこの点を改善してほしい。

フィヨルド宛にwillnetさんからRuby on Rails 6 エンジニア 養成読本をいただきましたー。

Image from Gyazo

rails6になって新しく押さえておかなきゃいけないところをチェックしたかった自分にはちょうど良い本でした。

特にこれらはRailsGuideでもまだWIP状態なので本にまとまってるのはわかりやすかった。

  • Action Text
  • Action MailBox
  • Multiple Database

さらにWebpacker、StimulusについてはREADME・公式サイト以外の情報はあまりないので少しでも記述されている本は集めたい気がします。

testunit(minitest)信者として一番良かったのは、rspecじゃなくてminitestでのテストを一通り説明してあるところ。

これの本は人によって自分が詳しく知ってるところ、弱いところが違うのでありがたい箇所も人それぞれだと思います。(僕はEarly Hints知らなかったので助かった)

ちょっとだけRailsから離れてて復帰した人、Rails6の新機能を押さえたい人にとっては最適な本だと思います。

フィヨルドブートキャンプでレビュー時に何度も指摘するのでまとめておきます。

rubyではメソッド呼び出しにカッコ()が必須ではありません。 カッコを使わずにメソッドを呼び出すと単に変数を参照しているように見えます。

article = Article.new
article.title # メンバ変数が呼べているように見える

rubyはこれを利用してアクセサを実現している。(c#やswiftでは専用の構文を用意している)

attr_accessor :title
def title
  @title
end

def title=(title)
  @title = title
end

↑この2つは同じ。

これは自分のプログラムにも活用できる。

メソッド名が名詞であって、そういうメンバ変数のアクセサとして動いているように”見えれば”問題ないメソッドになる。

def age
  today - birthday
end
user = User.new
user.age # そういうメンバ変数にみえる

実際にはそんなメンバ変数はなく、メソッドがメンバ変数のフリをしているだけだ。クラスを使う人からみれば同じように振る舞うのであれば問題ない。

複雑な処理を整理したいとき、これを使ってなるべくそのクラスのメンバ変数に見える名詞メソッドの形にしてみよう。

たくさんのメンバ変数(に見える名詞メソッド)を扱う少数のメソッドという形になると全体が把握しやすくなる。

何故ならメンバ変数よりメソッドの方が入力・出力・副作用を考えなければ行けないので複雑だから。

まずこれをやっておく。

ターミナルからVisual Studio Codeを起動する方法【公式の方法】 - Qiita

$ git config --global core.editor 'code --wait'

コミット時にVSCodeが開いてアラ便利。

フィヨルドブートキャンプというプログラミングスクールをやっていますが、最初の印象で

「この人は良いプログラマーになれそうだな」

とか

「こういう感じの人は続かなそうだな…」

とかそういう先入観は僕らにももちろんあります。

しかし、今までの経験上、そういう先入観ってあんまり当てにならないなと感じます。

良さそうだな〜と思ってた人が全然続かなかったり、逆にすぐに辞めちゃいそうかも?と思ってた人が気づいたら長く続いていて、スキルもしっかり付いていたり。

僕の先入観なんてそのぐらい当てにならないので、今は「ごちゃごちゃ言わずとにかく暖かく見守ろう」というのが新しく入ってきた人へ思うことです。

僕がどう思ってようが1ヶ月ぐらい経ったら答えが出てます。1ヶ月以上続いてる人はみんなすごいと思う。

僕が「英語1ヶ月みっちりやれ」と言われてもできる気がしないし。

Corne Cherry、Mint60に続いてLily58 Proを作りました。

Image from Gyazo

最近毎週末キーボード作ってる気がする。

ひとまず、自分の求める理想のキーボード環境になったように思います。

3個目だから楽勝かと思いきや、表裏逆につけてしまってハンダをとるのに苦戦したり、やっぱりギリギリでした。

ネットではクリア軸がずっと売り切れてたんですが、実店舗ではあったので買いに行ってよかったです。