私がプログラミング(PHP)を独学で学んだ方法といきさつ
IT業界でエンジニアとして働いて、2024年現在でちょうど10年目になります。
たまに「どうやってプログラミングを勉強したのですか?」と初学者の方から聞かれることがあるので、私がどうやってプログラミング(PHP)を学んだのか、経緯も含めて記事にしようと思います。
プログラミングとは無縁だった学生時代
現役エンジニアのインタビュー記事を読むと「中学生や高校生の頃からプログラミングしていました」という方も少なからず見かけますが、私はプログラミングとは無縁の学生生活を送っていました。
中学一年生(1999年)のときに父が家族共用のデスクトップパソコン(一昔前のテレビのような見た目)を買ってくれましたが、プリインストールされていたゲーム(ソリティアやマインスイーパーなど)や当時のめりこんでいたプレイステーションのゲームの同好掲示板サイトに書き込むくらいで、プログラミングの存在すら知らなかったです。
HTMLタグを触ったのも、文系学部に入学した大学一年生(2005年)の頃に当時流行っていた「魔法のiらんど」や「前略プロフィール」が初めてでした。
勢いだけで起業する
転機は大学卒業後の24歳(2010年)のときでした。
新卒入社した零細SES会社(業務はテスターのみ)を半年で退職し、「自分で何かビジネスを始めたい」という意識高い系だった私はアルバイトでのHTMLコーダーを経て、当時流行っていたmixiで色々な方に会って話を聞いたり情報交換したりしていました。
その中で知り合った経営コンサルタントの人に「化粧品メーカーを経営している知り合いがいて、品質は間違いないのだがマーケティングが弱い。これを君がYahooや楽天で売ってみないか?」という話をもらいました。
私は乗り気でしたが最初に仕入れ費用が必要になるため、その経営コンサルタントと事業計画書を作り、新宿区の創業プラザの中小企業診断士に融資の相談をしに行きました。
そこで言われたのは「個人に対して融資はできない。もし法人化するなら相談に乗る」とのことでした。
少しでも早く自分で事業を始めたかった私は勢いだけで2010年9月に法人設立し、結果的に公務員の父が保証人になってくれたおかげで某信用金庫から200万円の融資を得ることができました。
ただ資金調達をしていく中で経営コンサルタントの助言が見当違いだと感じることが多く、自分が見つけた融資元の信用金庫と話が始まる前に連絡が途絶えることになりました。
結果的にその人には一円も払っていません。
追い込まれてプログラミング(PHP)を学ぶ
某経営者の自伝本にあった「立派なオフィスに入居すれば、後から会社としての実態はついてくる」という一文を馬鹿正直に受け止め、ほとんど売り上げがない状態で知り合いを通じて青山にあるオフィスに入居しました。
月の家賃が30万円なので、みるみるうちに200万円の融資は溶けていきます。
当初事業計画を練っていた化粧品の通販事業はなくなってしまったため、新しい事業を始めなければならず、そこで目をつけたのが「システム開発事業」でした。
当時ホームページ制作やmixiを通じた集客も行っていましたが、ほとんど売り上げにはなっていません。
藁にもすがる気持ちでPHPの入門書をいくつか購入し、意味も分からないままサンプルコードを写経し続けました。
なぜPHPを選んだのかというと当時流行っていたEC-CUBE、XOOPS、OpenPNEといったCMSサービスがPHP製で興味を持っていたこと、新卒入社した会社の研修がJavaで全然内容が理解ができず「Javaは敷居が高い」という印象を持っていたからです。
特に「PHPの教科書」という初心者用の本を何周も写経し、サンプルコードを少しずつ修正して自分なりのWEBサイトを構築することができるようになり、一番最初に「会議室の予約システム」を開発しました。
なぜ会議室の予約システムなのかというと、青山オフィスの会議室を商談やイベントで使えるように知人たちに開放しており、使いたい時間が被ってしまうことが何度かあったからです。
開発当初は「配列」や「一括で取得したデータをループ(foreach)で一件ずつ参照する」という概念が全く理解できず苦労したことを覚えています。
学生時代に買ったOSがWindows VistaのノートPC(しかもバッテリーが破損し電源ケーブルを常時接続する必要がある)でEclipseを使い、FFFTPでさくらのレンタルサーバーにアップロードして開発兼本番環境で動作確認するという、今考えればありえない開発環境でコードを書いていました。
ログイン機能はあったのですがパスワードは平文保存、MySQLのリレーションの概念を知らないので一つのテーブルに何でも保存、URLパラメータをいじれば他のユーザーのログイン情報が閲覧できるというセキュリティ的にもガバガバな実用性ゼロのシステムでした。
しかし「自分で開発したシステムを他人が使っている」という経験は自分にとって非常に大きなものでした。
営業会社でもシステムを構築する
焼け石に水程度のPHPコードが書けるようになったとはいえ結局売り上げがほとんど立たず、25歳(2011年)のときには設立から一年経った自分の会社を継続させることが困難になり、知り合いに譲渡することになりました。
知人を通じて知り合った社長の会社で働くことになったのですが、業務内容はシステム開発に全く関連性がない「中古車の買い取りを行う飛び込み営業」であり、学生時代の就活で面接に落ち続けた私にとっては明らかに不向きな職種でした。
最初はラッキーパンチである程度の成績は上げられたものの、顧客と長い関係性を築くことはできず、半年経つ頃には周りが成果を出す中で自分だけが売り上げを出せず置いてけぼり状態になり、当時の上司には毎日怒鳴られ続けられました。
そんな上司が何度か私を褒めてくれたことがあり、そのうちの一回が「飛び込み営業した店、営業マン、話した内容を保存するシステム」を開発して公開したときでした。
会議室予約システムを少し改修した程度のものだったのですが、営業一筋でITに疎い上司にとっては相当画期的だったらしく、その日は焼肉までご馳走してもらえるほど喜んでもらえました。
ほぼ未経験状態でIT業界にキャリアチェンジする
上司に喜んでもらえた経験から「もう一度IT業界でエンジニアとして勝負したい」と思うようになったのですが、その時には既に28歳(2014年)になっており、若手とは言えない年齢に差し掛かっていました。
売り上げを上げることができず自分が設立した会社を泣く泣く譲渡し、当時の社長には「拾ってもらった」という気持ちを持っていたため、転職したい気持ちを伝えることは相当難しいものがあり中々言い出せませんでした。
しかし二人きりで車に乗っていた際に恐る恐る「もう一度IT業界で勝負したいと思っています」という気持ちを伝えたところ、「今までずっと頑張ってくれたからいいよ」と言ってもらえ、まさかの返答に泣きそうになったことを覚えています。
28歳かつ実務経験がないほぼ未経験ということもあり、「困難なことばかりだったけど何とか乗り越えてきました」という技術力とは全く異なるレイヤーで面接に臨み続けました。
面接官に呆れ顔で「エンジニア面接なのに何の話をしているんですか?」と言われたこともありますが、ごもっともだと思います。
しかし今の自分にはこれしかアピールポイントがないと腹を括っていました。
その甲斐もあってか「根性がありそう」という印象を持ってもらえ、何とか転職サイトとエージェント経由でそれぞれ一件ずつ、計二社から内定を頂けました。
待遇面を優先して社員120名ほどの中堅SES会社の内定を承諾しましたが、そのときには2014年11月末になっており、2015年1月から入社することになりました。
IT業界にキャリアチェンジしてから丸9年が経ち、10年目に突入しています。
まとめ
「夏休みの宿題は後からまとめてやるタイプ」の私にとって、追い込まれた状況にならなければプログラミング(PHP)は会得できなかったと思います。
それと個人的な感想ですがサンプルコードをやみくもに写経するのは効果が低く、公開して他の人に実際に使ってもらうことを意識した方が成長が早いように感じます。
私の場合はIT業界でエンジニアとして働くことになるまでに相当の回り道と余計な苦労ばかりしてきましたが、何かの参考になれば幸いです。