アラフォー完全未経験からプログラミング学習はじめて「未経験タグ」を外すまでのロードマップ

2019年10月15日

プログラミング学習年表

プロローグ

なぜプログラミングを始めたか。

自己紹介のページ

2018年1~5月 アフィリエイトサイトの運営を開始。

ブログ型物販アフィリエイトサイトを運営。

  • ワードプレス
  • SEO
  • ライティング
  • 共用レンタルサーバー

を学ぶ。

フォトショップ、イラストレーターは元々使っていた。

書いた記事は36記事、収益は160円。

理屈だけ覚えてサイトは放置w

それよりもワードプレス内部のプログラムに興味を持つ。

6~7月 「Webサービスを作れるようになる」という目標を立てる。

「Webサービスを作れるようになる」という目標を立てる。

(この時は何がなんだかわかっていなかったが結果的にLaravelVue.jsが使えてデプロイできるがゴールになる)

という目標でプログラミング学習スタートProgateにて、

  • Java
  • HTML,CSS
  • PHP
  • JavaScript

を学ぶ。

なぜか1番はじめにJavaを勉強して、Progate5周ほどしたが(これだけで1ヶ月)、これは結構良かったと思っていて、プログラムの基本、データ型などの概念を覚えられたのでPHPJavaScriptの学習がスムーズにいけた。

8~11月 ドットインストール開始。

ドットインストールでの学習開始。

動画教材を学ぶため、自身のパソコンに開発環境を作らなければならない。

Windowsでどうにも進まず(ググり力が未熟だったものの「Mac」の記事が多過ぎ)、MacBook Pro購入。

  • Mac
  • Vagrant
  • virtual box

を学ぶ。

ドットインストールで学習したジャンルはProgateと同じ。

ドットインストールの方がボリューミーなイメージ。

また、成果物を友達に見せびらかすため、VPSサーバーを借りてガチャガチャいじりだす。

  • コマンドライン(ターミナル)
  • OS(Linux他)
  • 各種サーバー知識(Apache
  • データベース(MySQL
  • 通信(http)

など学ぶ。

ここが1番シンドかったかもしれない。

著書「コンピュータはなぜ動くのか?」「プログラムはなぜ動くのか?」や「基本情報技術者」「データベース設計」などの本を読み、コンピュータ自体の勉強に丸々3ヶ月使ったようなイメージ。

「アルゴリズム」という概念を覚える。

他にも独学で勉強してるもの以外のジャンルのセミナーに行きだす。

  • AWS
  • docker
  • Git
  • JavaScript
  • ブロックチェーン

「ガチ勉強は本かサイト、それ以外はセミナー」というスタイル。

当時はPHPは自力勉強、それ以外はセミナー。

とにかく作って友達に見せびらかす!

同じセミナーに2回行ったこともありますが、セミナー自体は予習してから行った方が理解は深いので、このやり方はオススメできません。

しかし、後から点と点がつながった時の嬉しさはありますねw

12月 Laravelの学習開始

Laravelの学習開始

さっぱりちんぷんかんぷんだったが、色々作ってくウチに慣れていく。

認証付き掲示板は何回作ったか覚えてない。

  • Laravel

年越し。

2019年1~3月 営業開始

Laravelの勉強を進めつつ、「なんでもできる」と勘違いした自分は、知り合いのIT関係者に営業開始。エージェントも登録。

  • Laravel
  • DOM
  • jQuery
  • Ajax

足りない部分を巻きで学習。

仕事にありつけそうな雰囲気の時点で「バーテンダー」を辞めて、バーは嫁に任せた。(フライングキッズ)

しかしプログラミング学習をはじめてからコンピュータの話ばかりしたがる俺にウンザリするお客さんもいたはずなので良い退き際だったかもしれないw

(エージェントからはシステム管理が2件来たが「開発」がやりたかったのでとりあえず断る)

4~5月 業務開始。

業務開始、シンプルなECサイトを一人で構築。

業務が始まってみて、学習した全てが中途半端であることに気がつき、今までの総復習。

5割理解」をなんとか2週間で「8割理解」まで持っていく。

  • Vagrant
  • Git
  • HTML,CSS
  • PHP
  • Laravel
  • bootstrap
  • データベース(MySQL

インプットに2週間かけ、その後冷や汗をかきつつ3週間かけてなんとか仕上げる。

最初のチェック時、クライアントから、

「遅い!」
「管理画面が雑!」

などとお叱りを受ける。

(管理画面というものを見たことがなかったw

また、ローカル開発でのスマホ対応確認のやり方がわからず無視して、

「レスポンシブも知らねーのか!」

と怒られる。(後からやればいいという約束だったが

特に、

「ECサイトのデータベース設計は、購買データは最終的にひとつのテーブルにまとめた方が良い」

という自分の愚かな勘違いで、ひとつのテーブルに文字列で複数商品を連結して、

「データベースの正規化もわからないの?」

という言葉に深く傷つく(笑)

通常なら3日ほど寝込むところだが、寝込む暇なく1週間ほどでやりなおす。

自分が「管理画面」にピンとこず、データベースをそのようにしたのは、

自分なら管理画面など作らずデータベースを直接イジるから

という大誤解だw
アプリを使う人はデータベースなど触らないし、その画面内でシンプルに完結できなくてはダメなのだ。

しかし、ここで痛烈に業務においての厳しさ、また、「クライアントは画面しか見ていない」ということを心に刻む。

「画面など後からどうにでもなる」という当時の自分の感覚とは真逆。

6~7月 ツイッターで3件ほどお仕事をいただく

ツイッターで3件ほどお仕事をいただくが、業務に伴うアプリの使い方に四苦八苦する。

  • スラック
  • チャットワーク
  • Trello

業務内容は、

「中〜大規模アプリの一部分だけを作り込む」ような感じ。

知らないフレームワークも使ったが調べればなんとかなるレベル。

ここから、起業を計画していた仲間が経営する「広告代理店」のツテから案件をまわしてもらう。

モダン技術への関心からVue.jsの学習開始。

  • JavaScript復習
  • 仮想DOM
  • Vue.js
  • docker

Laravel学習時よりも脳ミソを激しく焦がしてくれるVue.jsに魂まで焦がす。(BGM “魂こがして” by ARB)

チュートリアルに何度かつまづきながら、

自分がやったチュートリアル

(つまづきポイント)

  • Node.jsおよびnpm
  • Laravel mixおよびwebpack
  • PHPからJavaScriptへのデータ推移
  • Vue Router
  • Vuex

なんとか完走。

そしてまた「なんでもできる」と勘違いw

8〜9月 これまたツイッター経由でVueの案件が入る。

これまたツイッター経由でVueの案件が入る。
こちらのレベル感は伝えてあったものの最初の4週間は、

「ひたすらに先輩エンジニアの業務外のヘルプを頼り迷惑をかけまくった」

毎日「冷汗タイム」

でも少しずつコードが「読める」ようになってきた。

どこに何をするとどうなるのかが、わかってくると急激に楽しくなってきたw

何より、プログラミングが楽し過ぎるのですw

今後の課題と振り返り

今後の課題。

  • AWS
  • TypeScript
  • 規模の大きな開発
  • テスト駆動開発
  • その他山ほど(ブロックチェーン・設計)
駆け足で書きましたが、自分にとって1番重要なことがあります。

「SNSやオフ会で知り合った達人クラスの人たちの助けがいつだってあった」

ということです。

SNSをやっていて知り合った方々やセミナーで仲良くなった方々からの助言なくして、この年表は成立しません。

  • 教材通りにやっているのにエラーの嵐の時
  • データベース設計に迷った時
  • ロジックがわからない時
  • 環境構築時の頑固なエラーの時
いつも自分には、「聞ける人」がいました。

それはもう幸運でしかないのですが、それを作る努力は、どんな学習よりも大事なことかもしれません。

最終奥義は「teratail」です。

自分は10回以上怒られていますw

ここで「質問の仕方」を学びました。

「何をしたくてどんな環境(状態)で何に困っているか」を明確にすれば優しい人が答えてくれます。

エラーがどこに吐かれるかをチェックしましょう。

以上で年表終わります。

ご静聴ありがとうございました。

訓志。