2016年05月21日

新人らしく

今回はハイパー長い上に自分語りっぽくなっているので、本当に暇で暇でどうしようもない時にポテチ片手に読んでくださいmm

始めに、僕は尊敬している人がお二人いらっしゃいます。

まず一人目

僕が「プログラム勉強して転職するぞ!」ってなった時、よく堤さんのブログやインタビューを読んでいました。
理由は僕と同じく未経験でITの世界に飛び込んだ偉大なる先駆者だったからです。
(「こんな年齢でこんな大胆なことする人がいるのか!」って衝撃を受け、やる気をもらいました。)

なので、堤さんのカヤックに入るまでの転職戦略を読んで、実際に僕なりにアレンジして使わせていただき、そして本当に転職することができました。
ブログを始めてアウトプットしつつ、スマホアプリを一から作って会社に持ち込むというのは、まさに堤さんから学んで実践したことでした。
本当に尊敬していますし、いろいろなことを(勝手に)学ばせていただいております。
僕のエンジニア人生が始まるきっかけとなったと言っても過言ではないお方。

そして二人目

そして転職してRuby on Railsをやるようになり、毎日ひーひー言いながら勉強して、しょっちゅう伊藤さんが書かれたQiitaの記事に助けられました。(特にRspec)
Rails始めた最初の頃は毎日ひたすらspecを書きまくっていたので、本当に毎日のように伊藤さんのQiitaの記事を見ていました。
(その時は必死すぎて誰が書いたかすら視界に入っていなかった。 万死)

そしてしばらくしてspec以外の部分も担当するようになった頃、やっぱりわからなくて検索すると伊藤さんの記事が出てくるのです。
この人なぜか見覚えあるなーとか失礼極まりないことを思いながら伊藤さんのユーザーページを訪問して
「specの人だっ!!!」と、これまた衝撃を受けたのを覚えていますw
(伊藤さんの凄さと、自分のアホさに)

スキルを向上させるためには

長くなりましたが、今回のエントリで書きたかったのは伊藤さんのブログのこの記事についてです

転職してからというものRailsがわからず、というよりプログラムの基本的なことすらもわからず、本当にどうしたらいいんだっていう絶望状態でした。
前職は発電所のエンジニアだったので知らなくて当然なのですが、あまりの現実に軽く落ち込みました。
spec知らない、validation知らない、I18n知らない、MVC?何それ?、一体何がわかるの?ってレベルでした。

現在、Rails始めて半年、ほんの少しだけわかってきましたが、まだまだ一人で仕事は進められませんし、はっきり言って全然ダメです。

でもダメだダメだなんて言ってても何も始まりませんし、自分が望んだことでしたから、やってやらぁ!って感じで
朝起きて会社へ行くまでの時間、土曜、日曜の妻が外出している時間ほぼ全て、この半年できる限り勉強しました。
(半分以上趣味だったので、少しずつできることが増えてめっちゃ楽しかったです!)

ですが最近正直、これだけ毎週可能な限り勉強しているのに、半年も経ってこの程度しかできないなんてヤバくね・・・?
と思うようになっていました。
そんな時に先ほどの伊藤さんの記事を見つけたのです。

正直いろんなエンジニアの方のブログや記事を読むのですが、自身のブログで紹介しようと思うことはほとんどありません。
ですが、伊藤さんの記事は僕の知りたかったことや、精神的に楽になることが書いてあり、これは感じたことをメモしておこうと思いました。

誰でも最初は初心者

僕も入社してから先輩に色々と質問をしてきましたが、誰に聞いても「最初は何もわからなかった」と言われます。
伊藤さんのブログにも「自信持てるまで3年かかったと」書かれています。

半年でRailsを意のままに操ろうなどというのがどれだけ身の程知らずだったか思い知らされました。
(当然初心者ながらRailsの奥深さは感じていましたので、半年で操れるとは思ってませんでしたが...)

伊藤さんほどの人ですら自信持つまでに3年もかかっているのですから、半年じゃまだまだ見習いレベルなんだと思えるようになりました。
しかし、本当に3年で自信を持てるのかはその人の努力次第なので、3年を少しでも短くできるように頑張らねばなりませんね。
優しい言葉に安心してはいけない。上を見続けよう。

プログラマとしてスキルを上げるための前提条件

これは大丈夫そうです。
僕は初めてRailsに触れた時、「どこまで奥があるんだ...絶望...」とは全く思わず
「Railsやってるだけで色んな技術に触れて学べるなんて、なんてお得なんだっ!」って思ってました。

なのでRailsに限らず、Railsアプリ開発に必要なGitもDBもSQLもインフラも何もかも全部が面白い!
土日ずっと触って遊んでいたいくらいです。

しかし、僕は家庭の平和を何よりも重視しているので、土日は可能な限り家族サービスすることにしています。
そして、家内が出かける時は朝から晩までガッツリRails(とその周辺技術)で遊ぶようにしています。楽しい。
家族無視してRailsやっても幸せになれるとは思いません。

初心者で本当にまだまだヒヨッコもいいところですが、自分は仕事と家庭の両立を完璧にこなせる男と信じています。

成長するための方法あれこれ

僕がやっていることは

  • 独学でコードを書きまくる
    • 手を動かすので最初はかなり効果ありそうです。
    • でも自分が知っている範囲のことしかやらないので、少し把握できてきたら本当組み合わせて色々やるのをお勧めしたい。
  • 技術書を読む
    • 自分のレベルにあった本とめぐり合うのがそもそも難しい。
    • 身近にいるわかる人に聞くと良さそう。
  • 現場に潜り込む
    • 思い切って潜り込みました。(当然、会社に貢献するため)
    • やはり現場は生きたコードを書くので得られるものが非常に多い。
    • 幸いなことにとてもいい会社に入れたので楽しくやれていますが、ちょっとアレな会社だと嫌いになりそう...
  • ブログやQiitaに技術記事を書く
    • 今はブログだけだけど、そのうちQiitaに書くか。
    • きっと自信がないから書かないんだろうけど、書いてボコられるのが上達への近道なのは間違いなさそう
    • レビューとか指摘コメントって本当にためになります。 なにしろ自分のためだけに書いてくださったコメントですから。

こんなところでしょうか。
勉強会へ参加できていないのは反省ポイントですね。

オールマイティを目指すとしんどい

これは正直本当にそう思います。
この範囲一人でできたら国宝級の人材価値になりそう。。。

まぁ初めから無理だと諦めることほどつまらないものはないので、可能な限り手を出して行きたいところですが!
それにしてもこれは酷すぎるw

5年後、どうなっていたいか(どうなりたくないか)を考える

僕はこれを3年スパンで考えるようにしています。
3年後どうなっていたいかってことですね。
これはブログで定期的に振り返りをやるか、slackの非公開チャンネルでブツブツ書くことにしています。

ちなみに僕が転職したのは、初めて就職して約3年の時でした。
伊藤さんが言う通り、就職してすぐは色々覚えるのに必死で、想像したり考える余裕はありませんでした。
だいたい2年過ぎたあたりからその世界に慣れて、将来のことをぼんやり考えていた気がします。
そしてその後プログラムに出会ってそれが転機となりました。

さいごに

なんだかんだ初心者の僕にできることは

  • 毎日コード書く
  • 明確な目標を持って勉強(努力)する
  • アウトプットする

このくらいなんですよね。
瀕死の重傷を負って復活したらRailsがわかるようになるとか、そんなサイヤ人設定はありません。
地道にコツコツ仲良くなるしかないのです。

いつか「俺ぁー昔とんでもねぇ初心者だったぜ!」って言って語って教えられるエンジニアになりたい。