今年で社畜生活 7 年。
30 歳を超え、会社では中堅組。
ふと「オレには何ができる?」と考えるときがあった。
。。。
。。。
じっくり考えて見た。。けど何も出てこない。。
こんなに自分に何も無いのか。。とだいぶ落ち込んだ。。
だけど、もう 30 超え。。そんな落ち込んでる時間がないのです!!すぐに対策をしなきゃです!
そんな自分を変えるために、ホリエモンの本をたくさん読みました。
そして、自分が好きなこと・やりたいことをとことんやる事にしました。(← 影響されすぎ。笑)
自分がやりたいこと = ウェブアプリ開発。
この歳になってプログラミング勉強始めるなんていまさら感はありましたが、そんなこと関係ない。
ダントツトップエンジニアにならなくても、自分で何かを作れてる未来なんて、ワクワクしかない!
そんな想いで、フルスタックエンジニアの知識をつけることを決意しました。
本記事は、同じように悩まれてるあなたに「こんなやつもいるんだ。」ぐらいに参考にして下さい。
PDCA 爆速で回し、効率化する
今さら説明の必要はいりませんね。
「明日やろうは、バカ野郎」と言われているように、「今」やるかやらないかですよね。
どんなに本を読んで知識をつけても、知っている と やった事ある は全く別物ですからね。
失敗してでも、やった経験はホント大事だと実感しています。
そして、それを効率的に行うのが PDCA ですね。
- Plan: まず何をするのか?なぜするのかを明確にします。
- Do: 四の五の言わずにまずはやれ!ですね。
- Check: そしてフィードバックを受け、改善策を考える
- Action: そしてその改善を実施する
プログラミングなんて、間違ってなんぼの世界なので、なるべく早くこのサイクルを回していきます。
ここで、1 年で充分なのか?そして、どう PDCA を回していくか?疑問が出てきました。
1 年という時間は充分なのか?
きっと、自身をもって友達に「ウェブアプリ作ろっか?」と言うには十分だと考えます。
例えば、
- ネットで悩みを集める (3 日)
- 悩みを解決するアプリ案を考える (3 日)
- 開発に必要な知識を付ける (7 日)
- 開発・公開する (7 日)
- フィードバックもらい、修正する
フルタイムで仕事していますので、まずはこのルーチンで 1 ヶ月 1 アプリ作成を 1 年 続ければ、嫌でも知識は付いてるはず。
もちろんやれば。。の話ですけど。。。
個人的には、1 年後にそうなってるのか!?!と思うと楽しみでしかないので、きっとやっているはずです!!
インプットとアウトプットをひたすら繰り返す
とはいっても、まず何から始めれば良いのか。。
人それぞれスタートラインが違いますよね。
この記事を書くにあたり調査をしたので、私はいま中級フェーズを突っ走ろうとしているところです。
超初心者フェーズ: 全体概要を把握する
何も分からない状態なので、大枠を把握する必要がありますね。
いわゆる、基本情報の収集。
- これから自分は何をしようとしているのか?
- どのくらい大変なのか?
- 面白いのか?
- 将来どう役に立つのか?
まず、プログラミング言語に何があって、何ができるのか?をネットで検索する段階です。
まずは、これからどういうものに立ち向かおうとしているか 確認ですね。
初心者フェーズ: スタート・ゴール地点を把握
概要が分かり、次にやることは、
- 自分のスペック (スタート地点) の確認
- ゴールの設定
ですね。
ここで間違いやすいのは 机上の空論 にしないことです。
自分の知識量 (スタート地点) とゴールの難易度 を把握するために、まずはその言語で書かれたアプリのコードを見てみるのが手っ取り早いです。
何となくでも理解できましたか?全く理解できなかったですか?
この回答が、スタート地点です。
それが分かれば、あとはスタートとゴールを繋ぐだけですね。
つまり、計画を立てることです。
私の場合は、python を身につけると決めました。
if 文や for 文の仕組みはわかる。クラスの作り方も概念的にはわかる。ただ、いつ使った方が良いかまではわからないというスペックでした。
そこで、1 ヶ月 1 アプリ作成を 1 年続けることでフルスタックを名乗れるというゴールに着くと計画しています。
中級者フェーズ: インプット3 & アウトプット 7
実際 のスタート・ゴール地点を把握し、道筋が立てば、あとはその道を歩くだけです。
ひたすら。我武者羅に。。
ここで重要なのは、インプットよりアウトプットを重視しながらも、両方行う事です。
勉強のあるあるで言うと「テキスト読むのとコード書くのはどっちが先?」という質問でしょうか?
答えは、両方同時 ですよね。
- テキスト読みながらサンプルコードを書く
- 理解できない書き方があれば、ネットで確認する
- ついでに調べた周辺の知識を確認する
- コードに戻って、ステップ 1 から繰り返す
まずはこれを続けます。
これを繰り返していると徐々に、「サンプルコードを写している」から「こうしたらどうなる?」と自然になっているはずです。
そして気づいたら、インプット 3 : アウトプット 7 になっているはずです。理想ですね。
これを続ければ、かなりの力がついていきますね。
余談ですが、小さい頃、よくバスケや水泳などで上手くいかない時に、本屋で立ち読みしていました。。自然とやっているもんですね。。笑
上級者フェーズ: インプット 5 & アウトプット 7
はい、合計 10 超えてますね。。笑
ある程度知識が付き、アプリを作成する前に「あの辺りでつまずきそうだな。」と 先読みができる 段階です。
中級者フェーズと同じレベルのアウトプットが必要なのですが、身につける知識は増える一方です。。
特にウェブ業界は新しいフレームワークがどんどん出てきますからね。。
ここのフェーズまで来ると、ゴールが見えている・もしかしたら超えているケースがあるので、次のゴールを設定していたりもしますね。
どんなエンジニアになりたいのか?
私がフルスタックエンジニアを目指そうと思ったのは、単純に興味があり、楽しそうだからです。
そして、その知識があればビジネスの可能性を肌で感じれます。
例えば、アイディアが出たとき、
- 技術的に可能か?
- 難易度は高いか?誰ができるか?
- 競合はいるのか?
- GUI はどうするか?
- ビジネスモデルはどうするか?
- 法的に問題ないか?
など、何が課題になりそうかが分かり、どう調べれば良いかが判断できます。
そして、それらの課題をネットで調べたり、友達や専門家に聞いて潰していく道筋が立てやすくなります。
友達から悩みを聞く → アプリで解決できないか? → ビジネスにする
こんな事ができると考えると ワクワク しますね!
また、フルスタックエンジニアになれば 3 つの自由が手に入ると思っています。
時間、お金、場所からの自由 です。
「時間」からの自由
今の生活であれば、朝 9 時に出社し、夜何時に終わるか分からない。というのが普通です。
ですが、技術があれば、会社 に所属する必要がありません。
そして「時間」で労働をせず、自分の裁量で仕事ができます。
「お金」からの自由
生活するのに必要な「お金」。
ミニマリストであれば、月数万円で生活できます。
親孝行をたくさんしたい人は、もう少しお金が必要になりますね。
ここでいう自由とは「お金がないからできない」という制限がないことを指しています。
もちろん人によって興味がバラバラなので、その金額感にもバラつきがあると思います。
私は、海外飛び回りたいので、その移動費と生活費を得たいと思っています。
「場所」からの自由
ネットが普及した今、開発環境 (PC & ネット) があればどこでも仕事ができます。
近くのカフェでも良いし、海外でも良い。
ハワイのビーチ脇で、さざ波を聞きながら仕事ができるなんて。。あー、幸せ。(→ ってか集中できるかな。。笑)
今の現代、「会社で仕事をしなければいけない」というのはもう古い考えですよね。
フルスタックで身につけるべき知識
では何を学ぶ必要があるのか。
私は、最低でもこれらをこの 1 年で身につけようと思っています。
フロントエンド
- HTML/CSS: 基本中の基本ですね。
- Bootstraps, Materialize: CSS フレームワークは絶対必要です。
- JavaScript, jQuery: こちらも必須項目ですね。
- AngularJS, React: どちらかは最低でもマスターしたいです。
- Progressive Web App: これからは PWA と思っています。確実に身に着けたいです。
バックエンド
- Linux: Windows ユーザーでしたので、理解には時間がかかりそうです。
- Python (Flask, Django): 用途が幅広い為、Python にしました。
- Apache, Nginx: アプリが配信できれば良いので、深くは学ばない予定です。
- sqlite3, MongoDB, PostgreSQL: データのハンドリングは大事ですね。
DevOps
- Git: GitHub にてアプリは公開する予定です。
- Heroku, Firebase: 最終的にはこれらサービスでアプリ展開したい
- CI/CD: 一先ず Circle CI が使えるようにする
- Docker, Kubertenes: スケーラブルなアプリ構築には必須ですね。
まとめ
目的を持って取り組む事で、より効率的に得られる知識や経験が得られます。
そして、その知識や経験でさらに次のステージに進めます。
それを想像するだけでもワクワクしてたまらないですね。
1 年後の自分に、感謝してもらえるよう一先ず、ガムシャラに前に進みます!
もし、共感して頂けたのなら、一緒にとことんハマりましょ!