30代、未経験者、独学中心でWEBエンジニアとして就職するまで 技術編

ブログをはじめて1年半がたち、一番読まれた記事が「30代、未経験者、独学中心でWEBエンジニアとして就職するまで」でした。(2016年8月25日現在)
といっても、この記事は技術的なことをどう身につけたかがあまり書いていないので、今回の記事ではそのことを中心に書いていこうとかなと思います。
厳密にはプログラミング以外の仕事もしておりましたが、プログラミングだけに絞って書きます。
私自身の経験でもそうですし、講師として人を指導した時も30超えてプログラミングを覚えるのは大変だなあと実感しております。
繰り返しますが、プログラミングを覚えるのに年齢はあまり関係がないと思います。
さすがに20代と60代だと差は出るかと思いますが、20代と30代で目に見えるような差はないと思います。個人差のほうが100倍大きいです。
大変というのはプログラミングそのものよりは就職その他の「プログラミングに触れる機会の獲得」ですね・・・
私のやってきたことは一般化はできないと思いますが、ある程度年齢を言ってからプログラミングを目指そうとしている方のアドバイスになればうれしいです。
独学時代
実家のWebサイトを作成する必要があったので30越えにしてWebの勉強を始めます。HTMLのほんのちょっとのさわりは知っていたので、本屋でわかりやすそうな本をかってサイトを作りながら勉強してました。
1,2か月ぐらい勉強しまして、HTML+CSSで静的なサイトはなんとか作ることができました。
あ、ちなみにデザイン的なことも少し勉強したのでPhotoshop+Illustratorもちょこっとだけ触れます。
ところがサイトが完成するに近づき、お問い合わせフォームやショッピングカートなんかを作ろうとしたときにHTML+CSSだけでは作れないということを知ります。
どうやら違う技術を使っているということを知り、学生時代にCでトラウマのあったプログラミングの勉強が必要と気づきます。
私はお問い合わせフォームやショッピングカートが作れさえすればいいと思い、Web系で一番簡単だといわれるPHPを勉強し始めました。
PHPを勉強し始めは「全然簡単じゃねーじゃん!」っていうのが正直なところでした。
今では確かにそう思うのですが、学生時代のCは一ミリもわからず撃沈、ExcelVBAをいじったといってもやったのは基礎の基礎の基礎ぐらいのレベルで配列さえ知りません。
このレベルだったのでPHPを学習し始めは非常にてこずりました。特に当時は配列の処理に非常に手間取り、イライラしてましたね。
いろいろ自力で勉強していましたが、オブジェクト指向あたりで完全にギブアップ。
私が読んだ本ではオブジェクト指向を動物の例とかプリンの例とかを使い、一生懸命説明してましたが、さっぱりわかりませんでした・・・
(今から思っても多くの入門書でオブジェクト指向をこのように説明していることは間違っていないと思います。私もオブジェクト指向を説明しろといわれれば同じように説明します。ただオブジェクト指向のような難しい概念は自分でコードを書かないとわからないんですよね・・・)
それ以外にもいろいろわからないことの嵐でお問い合わせフォームすら自力で完全にはつくれません。そもそもエラーが出まくって進みません。
自力でいろいろと勉強してましたが、こりゃー独学では無理だとさとり、スクールを探そうとしますが、値段を見てびっくり。
数か月かけて学ぶようなところは大体30~50万かかります。 さすがにこれは払えんと思い、完全に選択肢からは外しました。
いろいろ探していると、8日間で身につけられる短期のセミナーみたいなものがあり、授業料が6万ちょいとやすかったたため、ここに申し込みました。
結果的にこのセミナーに参加したことでPHPの基本はなんとかわかるようになりました。そこそこ理解度がよかったことや年齢が違いこともあり、スクールの先生や経営者とも知り合いになります。
そうはいってもすぐにPHPエンジニアとして仕事ができるほどのスキルがないことは自分でもわかりました。
というか、当時はそもそもまだエンジニアとして仕事をしようとははっきり思ってなかったんですけどね・・・
PHPの基本がなんとかわかりだしていたんでセミナー参加後、3か月ぐらい独学でみっちり勉強。今考えると成長速度が一番早かったのはこのころかもしれません。
セミナーで出された問題をといたり、お問い合わせフォームやショッピングカートのシステムを自力で作りましたが、アプリを作りながら聞いた知識が少しずつ「使える」ようになってくるのが実感できました。
あとは見様見真似でCakePHPで掲示板を作ったりしていましたね。
このブログでもたびたび書いていますが、プログラミングを身につけるには実際のアプリを作るしかないと思います。
知識を「知っている、聞いたことがある」から「使える、わかるようになる」までには基本的にはその知識を使うケースに遭遇して、実際にコードを書くしかありません。
外注時代
独学でHTML~PHPを勉強し(期間は計半年ぐらいでしょうか。)、なんとか基本的なアプリを作れるようになったころ、実家の仕事が減ったこともあり、徐々にこの仕事で食っていこうかなーと思い始めます。
とはいってもさすがに年齢が年齢だし、実務経験もないなので正直厳しいだろうなぁとは思っていました。
いろいろ求人サイトをいろいろとみてますと実務未経験でなおかつ、年齢にもそんなにこだわってなさそうな求人(外注)がありましたので早速応募。
面接に行くと履歴書はほとんどみられず、5分ぐらい適当(と私には思われるような)質問があり、あとはすぐに仕事を始めることになりました。
ここが初めてお金をもらってプログラミングをした経験になります。仕事自体ほとんどが小規模なものでしたが、やり始めはそこそこ大変でした。
最初に大変だったことといえば以下のようなことですね。
- 仕様を理解すること
- 他人のソースコードを読むこと
- Linux(CentOS)コマンドに不慣れ
私が最初に触ったWebアプリは音楽配信アプリの売上集計システムの改修だったのですが、データベースをみて、どのデータとどのデータが結びついて、アプリがどう連携しているのかを理解するのが大変でした。
それまで掲示板システムぐらいしか作ったことがなかったですしER図の存在自体しらなかったので・・・
そして他人のソースを修正するのもこれが初体験です。実際の仕事だとゼロからWebサイトやシステムを作ることってあまりなくて、他人が作ったソースを修正することがほとんどなんですよね。
自分でアプリを作っていますとすべて自分が書きますので、動きを一応は理解しています。
データベースにアクセスするんでも自分がいままで書いてきた方法と違い、ライブラリを使っていることが多いので、ライブラリの使い方を覚えなければいけません。
勝手がわからず最初はすごく苦しみましたね。
そもそも、人のコードを読むこと自体が初めてなので読んだりするのにも時間かかってましたし。
またLinux(CentOS)になれていないこともネックでした。
それまでずっとWindowsで自分のPCで動かしてましたんで、ファイルの移動とか単純作業にやたら時間かかってました・・・
ここらへんは単純になれが解決しますけども、これみて独学でプログラミング勉強している方がいたら仮想環境作るなり、VPSサーバー借りるなり、Linuxには慣れておいたほうが良いです。当然Macという選択肢もありますが・・
当時思い入れがある仕事はデータベースから商品情報をとってきて、別のデータベースにコンバートして入力をするというバッチです。
おそらく今だったら2、3日だと思いますが、当初は確か2~3週間ぐらいかかってましたね。
その時のプログラムは今見たら、恥ずかしいく人様にお見せできるようなものではないです・・・汗
よく我慢して使ってもらってたなーという気がします。
アダルトサイト制作
外注自体は半年ぐらいで契約がおわり、そのころ知り合ったエンジニアの方と一緒にWebサービスを作り始めました。
その時の体験は↓です。
初心者でもできる!作れる!WEBサービスの開発 その1 準備編
初心者でもできる!作れる!WEBサービスの開発 その2 制作体験記編
初心者でもできる!作れる!WEBサービスの開発 その3 運営体験記編
初心者でもできる!作れる!WEBサービスの開発 その4 総まとめ編
作っていた期間は正味3,4か月でしたがいい経験になりましたね。
リンクにも書きましたが、アダルトサイトのアフィリエイトをやり、プログラミングの勉強だけでなくちょっとしたお金を稼ぐことができました。
このころからようやく人に見せれるようなコードを書けるようになってきました。
コーディングの本などは読んでなかったんですが、とにかくコードを書きながら、読みやすく、修正しやすいコードを書こうとすると必然的にコードのレベルが上がっていきました。
- ネストを深くしない
- メソッドは短くまとめる
- 同じような機能があればメソッドやクラスの利用を考える
- 処理ごとに大別してクラスを分ける
- 具体値を入れない
といったようなコーディングの最低限の基礎はこのころできるようになってきたと思います。
PHP講師体験
アフィリエイトと並行して以前私が受講したセミナーの方から連絡があり、今度は私が「PHPを教える講師」として仕事をすることになりました。
正直、扱っている教材自体は理解しており、プログラミングのスキルアップにはなりませんでしたが、もともと教えることが好きだったこともあり、この仕事は大変面白かったですね。
私がたどってきたような道を大体どの生徒さんもたどるんだなーということがよくわかりました。プログラミングがいかに難しいかも改めて思い知りました。
Web上では「プログラミングは簡単!1か月で誰でもできる!」みたいな声をよく聞きますが、信用しないようにしましょう。
おそらく完全なゼロからプログラミングをはじめて完全な独学でお問い合わせフォームが作れる方は5%未満だと思います。
「完全な独学」でプログラミングを習得できる人はゼロではないと思いますが、天才的な頭脳と適性をもっている自信がなければ完全な独学はやめたほうが良いです。
私は独学「中心」でやってきましたが、それでもかなり珍しいケースだと思います。
一般的なエンジニアとして
通っていたスクールで講師をやっていたんですが、同時に請負の開発業務もやっていたため、開発として仕事をすることになりました。
初めてPHPを習ってから1年半ぐらいたってからのことです。
前の外注時代は今考えると我慢して使ってもらっていたような状態だったので、まともに戦力になっていたのはこのころからかなーという気がします。といってもまだまだ見習いレベルですが(汗)
PHP&JavaScript
最初にやっていたのはECCUBEを使ったECサイトの開発です。
ECということで仕様はそれほど難しくありませんでしたが、フレームワークの全体の動きを理解するのが最初は大変でした。
今まではもっと単純なプログラムしか書いたことがなかったので、いわゆるフレームワーク的なつくりになっている複雑なプログラムと格闘したことがいい経験になりました。
ここでフレームワークが全体的にどう動いているか、どうソースをかくのかというのがなんとなくわかり、それ以降の基礎となります。
後半からはメンバーもちょっと変わりJavaScriptをメインにした開発をすることに。
それまではJavaScriptというとjQueryを使ってHTMLやCSSを動的に変化させる処理をあまりわからず半ばコピペでかいてました。そのせいで基礎が全然できていないことに気づきます(汗)
私がやっていた開発はWebサービスのAPIをもとにして、帳票管理システムを作るというものでJavaScriptでサーバーサイドで書くようなロジックをゴリゴリ書いていたんですね。
そのせいで結構鍛えられJavaScriptの基本が大分身につきまして、今でも何気に結構好きです。
またこのプロジェクトでは単純なプログラミング以外でもチームでの仕事の進め方があまり身についておらずいろいろとトラブりました。
今まで私がかかわった仕事は少人数&周りも全員開発者ということで、ドキュメントをしっかり残したり、ホウレンソウがややいい加減だったことが多かったのですが、そのつけをこの仕事で味わうことになり、かなり反省しました。
Java&Perl
スクール会社での開発の仕事は1年ほどやっておりましたが、開発が少なくなったことや、その他のトラブルもあり、1年半ほど前から千葉の市川で仕事をしております。
現在作っているのはクラウドで使える在庫管理システムの開発です。複数バージョンがありましてJavaとPerlでそれぞれ開発を行っています。
JavaもPerl独学でちょこっとやりましたが仕事ではやったことがありませんでした。Javaが特に大変ですね・・・。
Java自体の難しさというよりは扱っているフレームワーク(JavaEE)自体の情報があまりないことや、アプリケーションサーバーであるglassfishがやたら重い(汗)
いろいろと日々悪戦苦闘しております。
最近、自分に必要だと感じているのは理論的な部分の学習です。
でも書いたのですが、毎日コードを書く、アプリを作るという経験は大切で絶対必要ですが、それだけだと偏った知識が身につく可能性があります。ある程度、技術を俯瞰してみたり、体系化する必要があるなと感じております。
あとはユーザーからみた画面設計やUIの構築ですね。マーケティングでもよく言われますが、作り手と使い手の溝は思った以上に深いです。
ただ作るだけではなく、どうやって設計したら使いやすいか、そのためにはどういう視点を持てばよいか・・・・
こういったことは一般的には「センス」という言葉で片づけられてしまいそうですが、背景には理論的なものがあると思っております。そういったことを身につけるためにも現在も日々格闘しております。
まとめ
PHPを覚えて大体4年ちょっとですがざーっと自分の経歴を書いてみました。
おそらく一般化はできないと思いますが、これからプログラミングをやろうという方の参考になれば幸いです。
関連記事
-
-
プログラミングスクールを100倍活用する方法
今回はプログラミングスクールネタです。 ちなみに最近このブログのアクセスをよく見ますが、スクー
-
-
サービスを売るのに必要な能力
ゴールデンウイークで更新をサボっておりました(汗)今回はちょっとマーケティングのお話について。
-
-
現役講師が教えるプログラミングスクールの選び方
私は新卒でこの業界に入ったわけではないのでプログラムを覚えるのに一時期プログラミングスクールに通って
-
-
無料プログラミングスクールのメリット・デメリット
一般的にプログラミングのスクールというのは高額です。 30万以上するような講座が普通なので、ぽ
-
-
プログラミングや就職以前に大切な情報リテラシーについて
プログラミングの学習や就職活動をしていると本当に様々な情報が出てきます。 例えば以下のようなこ
-
-
IT業界はなぜうつになる人が多いのか?
こんばんは。こんな時間(深夜2時半)になってもねれない松本です。別になにかあったわけではないのですが
-
-
客先常駐のメリット・デメリット
転職相談でも少し触れましたが、IT業界では客先常駐と言いまして、ある会社の社員でいながら、派遣のよう
-
-
セミナーのご参加ありがとうございました。
ブログで告知させていただいた通り、6/16に主にIT業界への就職希望者向けの方にセミナーをさせていた
-
-
「初心者が勉強するのに良いプログラミング言語は何ですか?」を真面目に考えてみる
プログラミングをそもそもやったことがない方であれば、タイトルのように「どのプログラミング言語をやった
-
-
就職するときに見落としがちな考え方
今は自社で就職の斡旋などはしていないのですが、人材紹介会社で働いていたときは生徒の就職に立ち会ってき