アイキャッチ

「プログラミング学習はまずPHPから」のナゼ~現Microsoft MVP山崎大助氏の助言【連載:エンジニアはじめの一歩】

働き方

    エンジニアはじめの一歩

    専門職として敷居の高いイメージがあるエンジニア。活躍している現役エンジニアはどのようにして技術者になったのだろうか? 初心者だった時に立ちはだかった壁と、それをどのようにして乗り越えたのかを紐解くことで、初心者が陥る悩みや不安を解決していく。

    慢性的に続くエンジニア不足もあり、最近は求人でも「未経験者歓迎」のエンジニア職募集が増えている。ただ、実際に未経験者がどのようにスキルを習得していけばいいいのかに不安を覚える人も多いだろう。

    自身も全くの未経験、むしろ一般人よりもPCに疎かったという山崎大助氏。今ではデジタルハリウッドが運営をするエンジニア養成スクール『G’sACADEMY TOKYO』の主席講師、そして世界で活躍する『Microsoft MVP』の一人として活躍するようになった山崎氏の場合は、どのようにしてスキルを習得していったのか。

    20代後半からのプログラミング学習で「遅咲き」ながら、いまや専門学校の講師を務めるまでになった山崎氏いわく、カギは3つあったという。

    プロフィール画像

    G’s ACADEMY TOKYO主席講師/デジタルハリウッド大学院 准教授
    山崎大助氏

    専門はフロントエンド、Webアプリケーション。現在は、デジタルハリウッド大学院准教授、エンジニア養成スクール『G’s ACADEMY TOKYO』(ジーズアカデミートウキョウ)で主席講師を務めるほか、雑誌、Webメディアでの連載執筆など多方面で活躍中

    28歳、キーボードも打てない状態から目指したエンジニア職

    現在はプログラミングの講師を勤めるまでになった山崎大助氏の”はじめの一歩”とは

    現在はプログラミングの講師を勤めるまでになった山崎大助氏の”はじめの一歩”とは

    学校を卒業後、大手アパレル店の販売員として働いていた山崎氏。世の中の流行と共に、経営の浮き沈みが激しい小売業界での勤務は、疲弊することも多かったという。不景気で店舗の売上が下がった時には、毎晩のように本社に出向き経営会議に参加。自分の力だけではどうにもならない仕事に疲れ、ついには体調を崩してしまった。

    「このまま販売の仕事を続けていたら自分が潰れてしまう、という危機感を持ちました。会社の歯車となって、使えなくなったらおしまい、なんて生活は耐えられないと思ったんです」

    そこで、山崎氏が次のキャリアとして考えたのが、PCの技術が身に付く仕事だった。

    「その時はちょうど2000年頃。今の妻にふと、『これからの時代はパソコンなんじゃない? 』と言われたことがきっかけでした。当時の私は、ローマ字打ちって何だろう? というレベル。ですが、実際にPCに触れてみると、ゲーム感覚で楽しかったんですよ。そこからは自分で本を見て学びつつ、スキルを磨くための仕事をしようと思ったわけです」

    そうして数年間勤めた会社を退社し、本格的にPCに関わる仕事をしようと就職活動を始めた。しかし知識のない28歳に待っていた現実は、決して甘いものではなかったという。

    「販売の経験しかない私では、50~60社に応募してもなかなか採用してもらえなかったんです。当時は履歴書に貼る写真代を捻出するだけでも大変でしたよ(笑)。中途採用なので、『販売の経験を活かした営業職だったらすぐに内定を出すんだけどね』、『28歳で未経験では採用できないよ』と各所で言われました。しかしそれでは販売員時代と同じことになると思ったので、PCスキルが身に付く会社に内定がもらえるまで諦めませんでした」

    そしてやっと、カスタマーセンターのアウトソーシングを請け負う企業で、スタッフへのPC操作指導や、ネットワークの簡単な設定をする仕事を手に入れたという。

    「君、話すのは上手でしょ、ということで採用してもらえました。スタッフ指導がメイン業務だったので、販売員時代に培ったコミュニケーション能力を活かしながら、PC技術を徐々に覚えていくことができたんです」

    そしてExcelやWord、ネットワークの簡単な設定などの基本作業を覚えながら、簡単なホームページを作るプロジェクトなどにも参加。Flashを使ってページやアニメーションを作るなど、モノづくりに触れたことで、山崎氏はますますITの世界にのめりこんでいったという。

    PHPの習得で、Webの基礎を理解することから始めてみよう

    ITの世界に触れ、プログラミングにも興味を持ち始めた山崎氏。プログラマーとして学び始めた当初のことを振り返ってもらった。

    「まず私が始めた言語はPerlだったんですが、難しくて全然理解できなかったんです。その次に取り組んだのがJava。あるシステム開発のプロジェクトに参加させてもらえたのがきっかけでした」

    しかし、初めて参加したプロジェクト内で、Javaがうまく動作しないというエラーが発生。Javaでは対応できないため、代替の言語での開発が必要になったのだという。

    「その時のメンバーが、『PHPという言語が簡単らしいから、Javaの代わりに使ってみよう』と言ったんです。当時はまだ2000年代前半だったので、本屋さんにいったら日本語に訳されたPHPの専門書なんて一冊くらいしか置いていないような時代でした」

    しかし本を読みながら試行錯誤してみると、それまでPerlやJavaを難しいと感じていたのに「PHPだとこんなに簡単に動かせるんだ」と感動したという。

    「そのプロジェクトでPHPを使ったのが、自分がプログラミングの世界にのめり込んだきっかけと言っていいくらい、こんなに面白いものって世の中にあるんだと思いましたね」

    こうした自身の経験から、今でも初心者の生徒には必ずPHPから学び始めることを勧めているという。それには、以下のような理由が挙げられる。

    《山崎氏がプログラム初心者にPHPを勧める理由》

    ■ 構造がシンプルである
    PHPは、Web専門言語としてメジャーであり、サーバサイドに使用する関数が豊富にそろっている状態なので、必要な関数を並べて組んでいけば良いというシンプルな構造。

    ■ 短期間で完成形を見ることができる
    JavaではまずObject(概念)を理解しないといけないが、難しい定義を覚えるだけでは、全体像が見えてこないというデメリットがある。一方、PHPは1日触ってみるだけでWebアンケートフォームのような簡単な成果物を作ることもできる、短期間でWebのイロハを学ぶことができる。

    ■ ロジックを理解しながらコードが書けるようになる
    PHPでのコーディングは自分で手を動かす量自体が多いので、大変な一方プログラミングのロジック・処理を理解しながら書き進めることができる。各種フレームワークをはじめに覚えるよりも、基礎を理解しやすいのが特徴だ。この「基礎」は、後々他の言語を学ぶ時にも役立つという。

    ■ コードを即時反映できる
    PHPは書いたコードをサーバにアップロードするとすぐに動作を確認することができるため、トライ&エラーを繰り返しながら学習できる。

    ■ セキュリティ対策の基本を学べる
    既存のフレームワークを使えば、Webプログラミングでのセキュリティ対策を意識せずに作ることができる一方で、Webアプリケーションを作っていくに必要なセキュリティ知識が身に付かないというデメリットも。PHPで学ぶ場合には、自身でセキュリティを考慮してコードを書く必要があるため、他の言語で学ぶよりセキュリティに対する基本知識が身に付きやすい。

    山崎氏いわく、「PHPを学ぶことで全くの初心者でも2カ月ほどで簡単なCMSが作れるくらいまでに成長し、短期間で成功体験をつむことができる」とのこと。

    弊誌が以前取り上げた、ヘルスケアベンチャーFiNCの「未経験者向けエンジニア育成インターン」などでも、Ruby on Railsでのアプリ開発を習得する前段階で、PHPでのプログラミングを学習させているという。

    >> Railsを教える前にPHP研修をはさむ理由は?FiNCの「エンジニア育成インターン」が興味深い

    プログラミング言語の良しあしは「書く人」によって変わるものだが、Webの仕組み自体を理解してから他言語を学ぶというプロセスは効果的なようだ。その際にPHPが有用であるというのが、山崎氏の経験則である。

    「トライ&エラーができる」、「作りたいものがある」人は成長が早い

    では、プログラミング初心者が学ぶべき言語を決めた後は、そのスキルをどのように伸ばしていけばいいのだろうか。

    「スキルを習得できるかどうかは『いかに手を動かすかどうか』ということに尽きると思います。実際にプログラミングしてみましょうという時に、トライ&エラーを繰り返して何度もチャレンジしてみる人と、正解を一つだけ出して終わりの人がいますが、前者の方が学習スピードは圧倒的だと思います」

    スキルの習得において、効率よく早く、無駄なことをせず正解を出すという考えは実はNG。それが、多くの初心者プログラマーが躓く理由なのだという。

    「そういうタイプって、頭の良い人・エリートの人に多いんです。勉強だと、最短距離で100点を取るのがいいことですからね。だけど、プログラミングは違います。エラーを出した分だけ経験が積めます。エラーを知っていれば、その出し方を知れるので、後々エラーを出さなくなる。逆にエラーを出さずに早く覚えちゃうと、エラーを出したときに対処できなくなってしまいますから」

    また、プログラミングを始めるモチベーションによっても、習得スピードは変わってくるそうだ。「今これを作りたい」という目標がある人ほど、伸びる傾向にあると山崎氏は言う。

    山崎氏が初心者のころも、「作りたい」を成長の原動力にしていたという

    山崎氏が初心者の頃も、「作りたい」を成長の原動力にしていたという

    「私の場合もモノづくりの楽しさを知ってからは、自分が作りたいものを考えてやる気を出していましたから。また、ライバルがいる環境でモチベーションを高く保つことも有効だと思います。僕みたいにほぼ独学でプログラミングを学んで2~3年かかるところを、スクールなどに通ってライバルがいる環境に飛び込めば、半年間でもいろんな言語ができるようになります。特に始める年齢が遅い人であれば、時間の使い方としてスクールを考えてもいいかもしれませんね」

    最後に、山崎氏のように初心者でエンジニアの仕事に就いてスキルを身に付けたいと考える人へのメッセージをもらった。

    「就職・転職とスキル習得を同時に考えるなら、自分の成長レベルに合った仕事をさせてくれる会社に入るのが一番良いと思います。その際は、できれば受託開発ではなく、自社サービスを扱っている会社がオススメです。自分たちのサービスなら、社員の成長に合わせて仕事を割り振ってもらえると思うので。受託のようにお客さまとの契約を前提に進む開発だと、社員の成長に合わせる余地がなかなか作れませんから」

    とはいえ、自社サービスの会社にプログラミング初心者が入社するのは難しいもの。その矛盾はどう解消すればいいのだろうか。

    「その場合は、受託開発の会社で一定のレベルまで頑張ってみて、自社サービスを扱うスタートアップに転職するというのが一番現実的ではないでしょうか。そういう意味でいうと、僕もかけ出しのころは技術力を上げたくてSIerに転職しています。でも、『一定のレベル』までたどり着く前に折れてしまう人も少なからずいるので、注意が必要ですけどね」

    山崎氏が話すように、プログラミングの方法は十人十色。初心者は山崎氏の話を参考に、自分なりの習得方法を探してみてはいかがだろうか。

    取材・文・撮影/大室倫子 (編集部)

    Xをフォローしよう

    この記事をシェア

    RELATED関連記事

    RANKING人気記事ランキング

    JOB BOARD編集部オススメ求人特集





    サイトマップ