本当の勉強は時間に比例しない
人生初の会社員となって1ヶ月が経過した。まだ何も出来ないし、これから何を出来るようになるべきなのかもわからない。そもそも自分の会社がどうやって儲けてるかも理解できていない。本当にわからないことだらけである。
セルフ研修のスケジューリングを撤廃
うちには研修制度的なものが無いので、自分でネットや書籍の情報をまとめて勉強するべき内容を体系化しようと試みたのだが、結局のところ、RailsTutorialというサイトの課題をダラダラとこなしているだけになってしまっている。
未知の分野に対してスケジュールを設定するのは非常に難しいと感じた。しかもメンターというか、監査役すらいない状態では、自分の進捗がどの程度のものなのか判断することもできない。「今日はここまで終わらそう」と思っても、その計画が妥当なのかわからないし、どこに重点を置いて学ぶべきかもあいまいなままだ。
なので今後は、僕の独学計画に関しては「何時までに」といった無理やり固定化したスケジュールは撤廃しようかと思う。かといって何かしらのメリハリが無いと、段々と学習ペースや効率が落ちていきそうなので、時間単位ではなく、モノ、成果物単位でざっくりとした目標を立てることにする。
何か新しいテクニックや手法などを勉強できたと感じたら、どんな些細なものでもいいので、一旦立ち止まってサンプルプログラムを作ってみることにする。自分なりに改造したり実験を繰り返していく課程で、おそらく本当の意味でその知識が身につくはずだ。
これまでJSフレームワークに馴染みがなく、一番シンプルで理解しやすいとされているBackboneにすら四苦八苦していたのだが、実際にBackboneを使って簡単な2chブラウザを作ってみたことで、Modelの扱いやViewによるレンダリングの仕組みを少しだけ理解できた。
プログラミング学習サイトで動画を見続けていると「計画通り感」と「勉強した感」は得られる。一方、実際に手を動かして試行錯誤している間は、特に価値のあるものも生み出せないし、時間だけが経過しているだけで何も得られていないような気がする。しかし、それこそが本来勉強というもので、絶対に削減すべきでない貴重な時間なんだと、最近特に感じるようになった。
時間に追われていても、そういう自由なアウトプットを大切にしていきたい。
セルフ研修とエロサイトを使ったアウトプット事例
僕は今、自分の研修計画を自分で立てている。とりあえずネットの海から企業で実際に行われている研修の内容を集めている段階だ。
最近では研修工程を公開していたり、カンファレンスの内容がSlideShareに上がっていたりするので、参考になるような資料はたくさん見つかった。
そしてそれらを読み解いていく中で、社会人経験0の僕でも研修の「形」は何となくわかってきた。
基礎、チームワーク、自走
いくら現場で役立つスキルが求められていると言っても、ITエンジニア、特にWeb系においては、今使われている技術がこの先ずっと重宝されるかどうかは誰にもわからない。だからこそ常に思考の軸となるエンジニアとしての基礎が重要になってくる。
そして実際の開発においては、仲間と協調するためのコミュニケーション能力であったり、プレゼンテーション能力が必須だ。
また、DeNAの講演の中で「自走」というキーワードを見つけたのだが、これは、ある程度の教養と経験がついたらその後は自ら技術を習得して成長していく、という意味だそうだ。
企業によって研修で扱う言語だったりフレームワークは異なるが、「基礎」「チームワーク」「自走」という3つのキーワードが共通項だと認識した。
一人じゃアウトプットできない (しにくい)
最近はプログラミングの学習サイトや書籍は非常に充実しているのでインプットに関しては問題ないだろう。
主なプログラミング学習サイト
- codecademy (世界的に有名。英語)
- Code School (動画が良質らしい。英語。有料)
- ドットインストール (動画のみ。コンテンツ多し)
- CODEPREP (漢字ドリルみたい。システムが凄い)
- Progate (発展途上だがUIが素敵)
しかし問題はアウトプットだ。
企業の研修の場合、各自が勉強した内容について新人同士で教え合う輪講形式が取られることが多い。また新人だけでチームを組み、課題のプロジェクトを1ヶ月に渡って進めていくという実践形式の研修もあるようだ。
このように、企業ではアウトプットに非常に力を入れている。
しかし僕の場合、教え合う同期もいなければ、教えを請う先輩もほとんど会社にいない(海外出張とか)。なのでインプットだけでなくアウトプットさえも自作自演で整備していく必要がありそうだ。
エロサイトがアウトプットだった
これまで僕がやってきたPHPやデータベースの勉強は全て独学だった。当時は「アウトプット云々」については何も考えていなかったが、今思うと、エロサイトを作って2chに公開することが、僕のプログラミング学習において有効なアウトプット工程だったのかもしれない。
2chの板やスレッドを巡回するためにクローラーを作成し、それを定期的に動かすためにCronを覚えた。
取得したテキストから必要な情報 (xvideosのリンク) を抜き出すために正規表現を覚え、それらを保存しておくのにはSQLiteなどのデータベースを利用した。
さらに収集したリンクをSQL構文を使って集計し、レス数でsortして人気動画を割り出し、jQueryを使ってページ内に動的に動画を埋め込んだりもした。
まあこのように「不純な情熱」があったからこそ今の僕があるのは間違いないが、こういうアウトプットが出来てフィードバックも受けられる場所があるかどうかが、結構大事なのかもしれない。
フィードバックする側のメリット
オンラインで勉強の進捗を共有したりペアプログラミングできるようなコミュニティがあればいいような気がするが、フィードバックする側にもインセンティブが働くような仕組みがなければただ初心者が群がるだけになり、コミュニティとして機能しないだろう。
そのインセンティブはポイント(=お金)?Yahoo知恵袋のようなアバターとしての名声?それとももっと現実的に、転職先の斡旋とかか?
まあとにかく独学におけるアウトプット方法について模索してみるいい機会になりそうだ。あわよくば初学者の為のアウトプットの場所なんかの構想も練ってみたい。
研修が無いのだが大丈夫だろうか
エンジニアと名乗れる人間になって1週間が経った。しかし中身はまだまだニート上がりのアダルトチルドレンのままだ。
主な業務はネットサーフィン
前にも書いたが、僕の会社は正社員が3人しかおらず、またバリバリのエンジニアの先輩は1人しかいない。その先輩も日々の業務に追われていたり、海外に出張に行ったりかなり忙しいらしく、新人は僕一人だと言うのにあまり構ってもらえない。
普通の企業なら、少なくとも数週間はビジネスマナーからコーディング環境の整備まで、とりあえず一通り研修を行うと思うんだけど、うちの会社には「研修」という文化が無い。
かと言って、次から次に仕事を押し付けられて叩き上げ方式で育てられるような、そんな前時代的な雰囲気も無い。
じゃあ何をやっているかと言うと、今は自社で運営するSNSの機能拡張に向けて、テキストマイニングやクラスタリングについて調べたり、たまに実験プログラムを書いたりしている。簡単にまとめると、僕は毎日ググってるだけで一日12,000円ももらっている(月給を時給換算)。
とりあえず、こんな業務(?)を一週間体験してみて感じたことは、生きるも死ぬも自分次第だということだ。
自力で成長できないと死ぬ
最近では、何から何まで教えこむような研修は実施せず、入社時からより実務に近い場所で「活きた指導」を研修としている会社も多いと聞く。リアルな問題に直面した時の判断力やら状況分析力のようなものを身につけさせたいのだろう。
しかし僕の会社の場合、そのリアルな問題すら自分で見つけなければならない。更に言えば、自分の成長プランすら自分で作る責任がある。
会社としては、今後社員を増やしたいが教育の人員が全く足りない。そこで僕が成長のプロセスを自分で見出し、それをソリューションとして形にすることで、いずれ後輩を育成する際に役立てさせようという考えだろうか。
まあともかく、教えられて勝手に育つなんて甘い考えのままでは生きていけまい。
どうなりたいの?
社長曰く、「10年後には給料を貰う側から払う側になるつもりで頑張れ」と。これは別に、野心を剥きだして成金になれということではない(と思う)。これからの時代、いつ一人になっても生きていけるサバイバル能力が求められるってことだ(と思う)。
そういや入社4日目で、いきなり「将来どうなりたいの?」と聞かれて慌てふためいてしまった。また1ヶ月後に同じ質問をされるようなので今のうちから回答を考えておかなくては。下手にカッコつけても、僕の場合直ぐにボロが出るので正直にいこうと思う。
「作りたいものをいつでも作ることができる技術力、そして、何かを作りたいという衝動を常に持ち続けられる創造力」 これじゃ曖昧すぎて話にならないかもしれないが、まあひとまずこんな感じの方針にしよう。
Anitubeの動画をダウンロードできるChromeプラグイン
初めてのChromeアプリ
もっと高機能なプラグインやダウンローダは他にいくらでもあるのはよく知っている。あくまで「Javascriptで何かを作ってみるテスト」の一環。Bestの為のSimpleではなく、技術が無いから妥協してSimpleにならざるを得ないってだけ。そういう事はよくある気がする。
ttps://github.com/d-mato/anidl
アルゴリズムというか、プログラムの流れ自体は以前にPHPで作ったダウンローダの仕組みをそのまま転用した。Anitubeの仕様が変わらない限り使い続けられるはず。法律は知らんが「自己責任」とでも書いておけばいいのだろうか。
色んな技術を実験中
生まれて初めて社会人となって一週間が過ぎ、今は自分の無力さを嘆く暇も無くひたすら勉強に勤しんでいる。クラウドソーシングでちょっとしたWebサイトの製作を受注していた経験が少しでも役に立つと思っていた自分が恥ずかしい。まあ、その空虚な自信が無ければ今も確実にニートだったんだろうけど。
「そんなことも知らないのか…」と毎日先輩エンジニアに落胆されながら、JavascriptやらRubyやら機械学習の勉強をしている。先のことはよくわからないが、目の前に明確な課題を用意してもらえるのは本当にありがたいことだ。2年ぐらいニートをしていたからこそ、なおさらそう思うんだろう(まさか言語解析をやることになるとは思いもしなかったが)。
クソアプリを排泄して育つ
新しい言語やシステムに触れるときは、頭で理論建てて考えるよりも、まずはひたすら泥臭く手を動かしていくべきだと勝手に思っている(地頭が良い人は別かも)。
なのでこれからも技術レベルが上がる度にしょうもないアプリをリリースしていきたい。役に立つ云々はどうだっていい。それを考えるのは、それなりのスキルを身につけた時にとっておくことにする。
ニートだったのに大変な会社に入ってしまった
僕は一生ニートで27歳ぐらいで適当に死ぬと思ってたんだけど色々と予定が変わってしまったようだ。
正社員3名のベンチャー企業に入社
社員数10数人の小さい会社であることは知っていたんだけど、実は正社員のメンバーは僕が3人目で、他の人はみんな業務委託という形でフリーランスとして働いているようだ。彼らは就業時間や細かい規則には全く縛られず、自由に出社して好きなだけ働き、自分のタイミングで帰ったりするようだが、確実な成果を出せる実力があるからこその働き方なんだと思う。
そんな人たちからすれば僕なんて何の力も無いただのゴミなんだけど、いつかは彼らのように独立してやっていける人間になりたい。いや、「いつか」とか言ってる時点で実現させる自信は全然無いんだけど、とりあえず20代でいられるこの4年間の中で大きく舵を切っていきたいとは思う。
先輩はハイスペ帰国子女
当面の間、技術面の教育担当となる予定の2歳上の先輩は異常なスペックの持ち主だ。海外で開かれるエンジニア同士の勉強会に出席して英語で講演したり、ケビン・ミトニックという世界一有名なハッカーと面識があったり、色々と凄い。あと彼は社長を含めて全員とタメ口で話す。もちろんエンジニアとしてのスキルは、僕が今まで出会った誰よりも高い。
入社一日目にして彼からReact.jsというJavaScriptのフレームワークを使ったChromeアプリのソースについて3時間解説を受けた。そのフレームワーク自体完全に初見だし、Chromeアプリの動作だって全くわかっていないレベルだと言うのに、最後には「引き継ぎは大体終わった」とか言い出す始末だ。
学生の頃は熱血系フランス人の先輩からなかなか大変な課題を突き付けられていたが、そんなものとは比べ物にならない程のプレッシャーを今は感じている。
あと彼曰く、1年後ぐらいにエンジニアのカンファレンスで僕に英語で講演してもらいたいそうだ(??)。英会話なんてMy name is〜レベルだしTOEIC500点なんですがそれは。
薄っぺらな自分が情けなくて嫌になる
まあでも仕事が多いのは全然問題無い。わからないことは勉強したり質問すればいいだけだし、非力に対する後ろめたさや恥ずかしさなんてとうに吹っ切れた。
しかし人間力というか、人を人たらしめいている思想や信条みたいなものはどう頑張れば身に付くのかさっぱりわからない。
飲み会の後半で真面目でディープな話題になり、そこで僕の薄っぺらさが顕になっていたように思う。これと言って致命的なエピソードがあったわけでは無いが、手応えのある受け答えが出来ない僕は終始頷くばかりで、つまらないと思われるだけでなく、不快感すら与えてしまっていないか不安だ。
自発的に自分を主張できないのは社会人としては凡人以下だし、ましてやこういうベンチャー的な会社の社員とては失格に違いない。本当に、なんで採用してもらえたんだろう。
クビになる前提で働いてみる
僕が今ヒシヒシと感じている「周囲の人間が優秀過ぎる辛さ」はよくある話のようだが、これは考え方次第でどうにかなりそうだ。
まず自分が優秀でないことをしっかり認め、会社のお荷物であることも当然受け入れる。でもよく考えてみると自分にとっての損失は何も無いことに気付く。むしろ高スペの先輩社員に囲まれて成長しないはずがないわけで、何かの間違いで採用されたにしろ自分が恵まれていることには変わりない。だったらこのチャンスを活かさない手はないわけで、結局目の前のことを淡々とこなせばいいだけだ。
それで本当に使えない社員のままならクビになるだろうが、かといって今さらバイトを探すわけにもいかないので、悩むのはまたニートに戻ってからにしよう。
「いつまでこの面白い会社にいられるかゲーム」が始まったんだと思うことにする。