30歳でプログラミングを始めて2年半くらい経った #nanaな人々
こんにちは、nana musicでソフトウェアエンジニアとして働いているKakutani(@xKxAxKx)です。
タイトルのとおり、僕は30歳でプログラミング未経験の状態から学習を開始し、曲がりなりにもソフトウェアエンジニアとして給料をもらって生活をすることができている。
「プログラマー35年定年説」というのは今となっては過去の遺物となっていて、30代からプログラミングを学習し、ソフトウェアエンジニアに転身しようとする人も増えているらしいので、具体的にどういう感じでやってきたかを自分自身の振り返りとともに書きたいと思う。
前提
もともとの僕のスペックとしては、コーディング等は全くしないユーザー系SIerで働いており、Linuxの基礎知識やDBの知識があったり、SQLを多少書けたり、という感じ。
とにかくアウトプットする
ある意味、これが全てだと言ってもいいかもしれない。
日々、コードを書いたりしていると、何かしらの気づきや発見がある。
また、コードレビューを通じて、新たな知見を得たり、他人が書いたコードを読むことによって「こういう書き方があるのか」「このフレームワークにはこういう仕組みがあるのか」というのを知ることができると思う。
もちろん、技術書を読んだり、ウェブでチュートリアルをやってみたりとか。
そのように何かしらの形でインプットが発生していると思うんだけれど、僕の場合はそういったインプットと同時にアウトプットも必ずやるようにしている。
ただ、アウトプットと言っても別にブログに書いたり、Qiitaで書いたり、みたいな外部への公開を前提としたアウトプットはそんなに頻繁にはしていなくてEvernoteにひたすら書いている。
まあ、いまさらEvernoteかよ感はあるけれど、ずっと使い続けていたので惰性でそこにアウトプットしているだけ。
最近ならScrapboxでざざっと書いていけばいいんじゃないかなと思うし、そっちに移行しようかなーとも思っている。
アウトプットをすることの利点は今更特に説明する必要がないと思うけど、知識の定着を促進したり、インプットを自分の言葉で翻訳することで理解を進めやすい、というのが個人的に最も大きな効果なんじゃないかなー、と思ってる。
もちろん「あれ、これどういうふうに書くんだっけ」という時にアウトプット先を探せば良いという点もある。
最初の半年はカネと時間をかける
今では無料のプログラミング学習サイトがあったりするし、数千円払えば初心者向きの技術書を購入し、学習することができるけれど、やっぱりある程度カネをかけてスクールに通ったほうがいいと思います。
とはいえ、スクールのほうが学習カリキュラムが優れているとか、別にそういうことではなく、単純にカネをかけたほうが「やらないと」感が出て、自分のケツをひっぱたくことができるから。
あとは、そういうスクールだと誰かしらメンターがついてくれることが多いため、躓いた時に助かる。オンラインのスクールとかもあったりするけれど、個人的には対面でコミュニケーションが取れるところのほうがいいんじゃないかなー、と思う。
それからコードを書く時間をがんばって増やす。
別に趣味でプログラミングをやるだけ、というのならば別にいいのだけれど、ソフトウェアエンジニアとして食っていく、というのならば、スタートが遅いんだから、時間をかけないと話にならない。
僕の場合、ちょうどプログラミングを始めた時期が、親会社に出向していてちょうど時間が取りやすかったため、始めて半年くらいは週に30時間程度はスクールのカリキュラムをやったり、写経したり、自分でツイッターのクローンアプリを作るなどをして、コードを書くことに費やしていた。
とりあえず現場に飛び込む
実際に得た知識を現場で使うことが、自身の技量を高める最も効率の良い方法だと僕は思ったので、多少、不安があったものの転職をしてなんとかコードを書く仕事を得ることができた。(現職じゃないよ)
当然ながら未熟なので迷惑をかけることもあるし、実際迷惑をかけたと思うが(というか今も迷惑をかけていると思う)、そこらへんは多少開き直るというか、なんというか。
そういったことをごちゃごちゃと気にするよりも実際の生きているコードを読んだり、書くことのほうが自分にとって大きなプラスになるんじゃないかなー、と思う。
卑屈にならない
これは多少精神論よりっぽいけれど、重要なんじゃないかなー、と思う。
30歳でプログラミングを始める、っていうと大抵は同僚よりずいぶんとプログラミング歴に差がある。
自分の年下よりも当然ながら歴が浅かったりする。だけど、そこで他人と比較して卑屈になったりしてもあんまり意味はなくて、とにかく自分で書ける限りよいコードを書くことのみにフォーカスをするって感じかなあ。
謙虚である
これも非常に重要で、わからないことがあったら素直に周りの人に聞く。
もちろん、"教えて君"になるのではなくある程度、自分で調べて、それでもわからなかったら聞くって感じかな。
あとは、コードレビューしてるときとか、他人のコードを読んでいる時に、なんでこういう書き方しているんすか、こういう書き方だと何が良いんすか、とかを聞くとかね。
ただ、そのためには周りの人に聞ける環境に身を置く、ということがすげー重要だと思うし、その環境を探すのにも大変だったりはするんだけど。
こんな感じです
やっていきます。
ーーー
◎nana musicではエンジニアを積極採用中です!
◎フォローもお待ちしています!
「nana box」では、nana musicのビジョンやミッション、働く社員の姿、社内外の出来事を発信しています。「nana musicってどんな会社?」と思った方はぜひ覗いてみてください!