komagata: やめたほうがいい。

質問者: これこれこういういいところがあるのですが、いかがですか?

komagata: やめたほうがいい。

以下ループ。

ってことも多い。

komagata: やめたほうがいい。

質問者: これこれこういういいところがあるのですが、いかがですか?

komagata: やめたほうがいい。

以下ループ。

ってこと多い。

今年の弊社(合同会社フィヨルド)はアップダウンの激しい年でした。

今年前半は去年末にオフィスの引っ越し・リフォームでお金を使い過ぎてしまい、必死に仕事をしてました。

その後5月にプログラミングスクールのフィヨルドブートキャンプを有料化した後は順調に生徒数が増えて、会社のお金的には安定しました。

求人サイトを作りたい

2020年はプログラミングスクールの流れとしては「スキルはあるけど業務未経験の人」のためのエンジニア求人サイトを作ろうと思っています。

プログラミングをスクールなどで勉強してスキルは十分でも業務未経験というだけで足切りされてしまう場面が多いからです。

プログラミング未経験 + 業務未経験で採用してもらえないのは仕方ないです。勉強してくださいって話です。ただ、それとプログラミングを勉強してスキルを得た人が「業務未経験」という言葉で一括りにされるのは、求職者・企業の双方にとってもったいないとおもいます。

その求人サイトを見にきて、スキルも無いという人はぜひフィヨルドブートキャンプへという流れです😄

生活・働き方

フィヨルドに入ってからずっと自社サービスで食っていきたいと思ってやってきましたが、目標を達成しつつある今、自分はどういう働き方がしたいのか、どういう生き方がしたいのかを改めて考える必要があり、まさに今模索中です。

お仕事的には求人サイトを作った後も作りたいWebサービスは常にあるので作っていきたいです。生活の方ではどこか海外に長期滞在しながら働けないかなと考えています。

僕の趣味はプログラミングとゲームと最近は旅行です。夫婦で旅行が好きなので長期滞在含めて、海外多めでそこから仕事していく方法を模索しています。

まずは1月にマレーシアに行って様子を見る予定です。

Webプログラミング学習者にとってSessionという言葉は混乱を招きます。

特定の機能の名前であるSessionと英単語としてのSession(期間)がごっちゃになるからです。

経験者はコンテキストからどういう意味でSessionと言っているのかを判断しますが、学習者には区別がつきません。

人によって、初めてSessionという単語に出会う場面が違うため、Sessionの意味を聞いても自分が出会ったSessionとは違う意味を説明されたりします。一つ一つのわからない単語を調べていく真面目な人ほど混乱してます。

Sessionクラスというのがあったとして、誰でもそれだけでは何を意味してるのかわかりません。

英単語としてのSession

まずはSessionは英単語として 期間 という意味です。プログラミングの文脈では 一つの期間 ぐらいの意味で使います。この場合は特定の何かの機能を指しているわけじゃないので、別に仕様とかもありません。

HTTP Session

HTTPクライアントがRequestを送り、HTTPサーバーが処理を行った上でResponseを返す。この一連の処理をHTTP Sessionといいます。

これのことも単にSessionという場合があります。

WebアプリのSession機能

HTTPはステートレスなプロトコルなのでWebアプリは大抵何らかの状態を保持する機能を持っています。この機能のこともSessionといいます。

この機能はPHPの様に言語が持っている場合もありますが、基本的にはライブラリ・フレームワークがそれぞれ独自のものを持っています。(rubyだとrack)

このSession機能は内容の保存方法・場所を選べ、サーバーのファイルに保存したり、データベースに保存したり色々です。

特にこの保存場所がCookieであることがあるので、学習者の混乱は加速します😅

学習者としての覚え方

そのSessionが指しているのがHTTP SessionかWebアプリのSession機能なのかをまずコンテキストから判断しましょう。それ以外だったら大抵は英単語としてのSessionです。

Herokuミートアップ第0回〜第2回ぐらいにちょこちょこ登壇したり出席してるぐらいのHeroku好きな俺ですが、Herokuに月3万ぐらいかかってて、サービスには満足してるんですが、やっぱりTokyoリージョンじゃないと遅いのでAWSかGCPに移ろうかと検討してました。

最後にHeroku EnterpriseのPrivate Spacesを検討してみようとお問い合わせしてみました。

すると要するに最小プランでも月14万ぐらい + 現在のDyno料金アップ + 各種アドオン料金もアップということでした。(まずはお打ち合わせをなどのプレッシャーを回避しつつ聞いたところによると)

おそらくTokyoリージョンが使いたいためだけに使うものじゃないんでしょうね。

GCP行きます…

RubyMineのCode Styleとlintツールの設定がずれててイライラすることがあるのでこれは良い。

Image from Gyazo

5.2系では読み込まれてたんだけど、6.0.1にしたらデフォルトでは読み込まれなくなってるみたい。zeitwerkになったからかしら。

手動でrequireすればOK。

require "active_record/fixtures"

class NotificationMailerPreview < ActionMailer::Preview
  def came_comment
    id = ActiveRecord::FixtureSet.identify(:report_5)

    # ....
  end
end

フィヨルドブートキャンプ卒業生の@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ヶ月ぐらいがむしゃらにこれをいじりまくればわかるはずだ。」

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

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