見出し画像

元ラーメン屋店長の僕がプログラマーになるためにやったこと

はじめまして。note初投稿になります。
iOSアプリ開発をしているObjective-ひろC(@hirothings)です

プログラマーになってそろそろ3年が経過するので、初心者だったころの記憶が鮮明なうちに、元ラーメン屋店長だった自分がプログラマーとして実践で通用するまでにやって良かったことを実体験とともにまとめます。

これからプログラマーになりたい人、どうしたらなれるのか不安な人の助けになれば幸いです。

目次
・まず1個アプリを作る
・作りたいものが実現できる言語を選択する
・薄い本を避ける
・アルゴリズムのススメ
・良いメンターを見つける
・勉強はそこそこに現場でコードを書く
・アウトプットは超重要
・良いコミュニティを見つける・作る

・時間があったら..否、時間は作るもの
・まとめ

まず1個アプリを作る

最初はprogateやドットインストールなど、便利なオンラインサービスで勉強するのが良いと思います。「それでif文for文があるのかー。ふむふむ」となるのですが、いざ真っ白なテキストエディタに向かうと何も書けません😇

ここで、途方のなさに心が折れそうになるのでまず簡単なもので良いので、動くツール・アプリを作ってみることをオススメします。
動くものができるとそれが成功体験になり、だんだん大きなものが作れるようになります。

僕は最初、JSで文字数カウンタなど簡単なツールを作って、勉強しました。
業務でプログラマーになったあとは、アプリの仕事がやりたくて、スライドパズルのアプリを作ったりしました。

作りたいものが実現できる言語を選択する

プログラミング初心者の時に悩みがちなのは、何の言語を習得するか?です。
これは明確な自論があって、勉強のためのプログラミングは続かないです。まず作りたいものがあって、それを叶える手段がプログラミングなので、その順番で選択すると良いと思います。

カフェの検索サイトを作りたい
・Rails, Go, Javaなどサーバーサイド言語
・SQL
..などのスキルが必要なんだな

と言った具合です。

薄い本を避ける

薄い本というと語弊がありますが、要は「やさしくおぼえる〇〇」のような参考書は一冊読んだら、卒業しましょう。

参考書は読んだとおりに書けば、きちんと動きます。 ただ、そういう本は初心者にも分かりやすく説明しているので、言語仕様などを省きがちです。言語仕様を網羅している分厚い本を一冊持っておくと "なぜ動くのか?, なぜこの書き方なのか?" という根本的なところが理解できてスキルの底上げになります。

僕は、
・プログラミングやりたての時は上司からもらった明解Java入門編
・Swiftを勉強していた時は詳解Swift , Swift実践入門
・JavaScriptの時はJavaScript本格入門
が大変参考になりました。

アルゴリズムのススメ

動くツール・アプリを作るのと併用して、アルゴリズムの勉強をオススメします。なぜならプログラミングをするうえで、何の言語を選択しても役に立つスキルだからです。

僕は、上司の勧めで2ヶ月かけてpaizaのコーディングスキルチェックのD~B問を全問解きました。

ちょっと難易度高めですが、AtCoderもオススメです。ビギナー向けのコンテストもあります

良いメンターを見つける

先ほど書いたpaizaのコーディングスキルチェックですが、何と当時の上司も同じ問題を解いて毎週コードレビューいただいていました。
独学だと詰まって1日が終わることもあるので、身近に質問できる相談できる相手がいることはめちゃ重要です。

勉強はそこそこに現場でコードを書く

その場所を作るためにも、ガッとポートフォリオを作ってサッと転職して、実務でコードを書くことがスキルアップの最も早い近道です。お給料も貰えるし一石三鳥です。

アウトプットは超重要

さあプログラマーに転職だ! と言っても、未経験の場合、就職先の選択肢が狭くなるのは事実です。
そこで重要なのは、やる気だけではなく実際にどこまでやっているか?です

自分が面接する立場になって分かるのですが、"やる気がある"と言われてもアウトプットが何も無ければ、評価のしようがありません。

僕は以前いたweb制作会社から転職する際、担当していたアプリがクライアントの都合でなかなかリリースされず、何も見せられるものが無かったのでQiitaのクライアントアプリをリリースし、それをポートフォリオにし希望の職場に就くことができました。

最初は大したものは作れないし、技術的な記事を書くにしてもありきたりになるしアウトプットに尻込みしますが、がんばって良いアウトプットができると、下記のメリットがあります

・必然的に調べるのでインプットが両方得られて良い
・間違いを指摘されて勉強になる
・いろんな人に知ってもらえる
・コミュニティで認知される
・プログラマー仲間が増える
・ポートフォリオになる

プログラミング経験が浅いときにアウトプットする内容ですが、下記がコツかと思います。

・自分の言葉で語る体験は貴重なコンテンツになり得る
 ・ex.自作アプリの制作秘話
・1つ1つの知識は浅くても、編集してまとめてみる
 ・ex. 〇〇の基礎知識100
・前例のあまりないことをやってみる
 ・ex. Server-Side-SwiftでAPI作ってみた

"プログラミング初心者"というのは一つのブランドでもあると思って、それも武器にしてアウトプットすることをオススメします。

僕もSwift歴が浅いうちはそれを逆手に取って登壇をしてました

良いコミュニティを見つける・作る

習得中の言語やバグについてググっていると、あれ?この記事書いたひと前も見たな..ということがよくあります。だいたいそういう方は、そのスキル界隈で積極的に発信されている方なので、習得中の言語や最近のトレンドを押さえておきたいなら、フォローしましょう。

勉強会で発表されている方なども、オススメです。まずは参加してみて慣れてきたら登壇などにもチャレンジしてみましょう。
そうしているうちに、だんだんと仲間が増え、良いインプットができ、スキルの習得にも繋がります。

僕もプログラマー1年目から、アウトプットを意識し、記事を書いたり登壇などをするうちに、Swift界隈にだんだんと知り合いも増え、楽しくやっています。

時間があったら..否、時間は作るもの

僕がラーメン屋店長🍜を経てプログラマーを志すまで、実はwebディレクターとして働いていた期間がありました。

ディレクター業務の中でシステムに触れるうち、プログラマーになろうという気持ちがふつふつと沸いて来たのですが、そこからが遅かった..
業務のあとにWordpressなどやっていましたが、独学&片手間なのでなかなかスキルも伸びないし、途方のなさを感じていました。
結局、社長に直談判してプログラマーに転向し、何もできない窓際族的な状態から少しずつ業務をこなせるようになったのですが、そこからはスキルがグッと伸びていきました。

よく「時間があったら..」という言葉を聴くのですが、誰しも時間はないので、時間があったらと言ってるうちはやらないと思います。時間を賭けてでもやりたいと思ったら、何かを捨ててそこにベットするのが吉かなと思います。

まとめ

まず勉強してから..プログラマーに👨‍💻ではなく、勉強はそこそこにできるだけ早く実務でプログラミングできる環境に飛び込みましょう。
そして楽しくプログラミングしながら、どんどんアウトプットしてスキルを磨いていくのが、プログラマーとして実践で活躍できる近道かと思います。

身の回りの優秀なプログラマーの方も、楽しくプログラミングしながらスキルを高めてアウトプットして良いお給料をもらって..と良い好循環が生まれていて、そこは変わらないんだと思います。

いかがでしたでしょうか、少しでもプログラマーになりたい人、プログラミング初心者の人の参考になれば幸いです。


記事が気に入って良ければサポートお願いします!アプリ開発の資金に補填します。