確実にプログラミングを習得するためのオンライン・マンツーマンレッスンCodeCampでは、どんな現役エンジニアが講師としてプログラミング初心者を指導しているのか?
この特集では『CodeCamp人気講師インタビュー』としてレッスンの評価が高い講師を「人気講師」としてご紹介していきます。今回はPHP、Java、Android、Swiftなど、幅広いコースで指導を担当しているフリーランスエンジニアの堀内先生に、現在の働き方からプログラミングの学習方法などについてお話を伺いました。
【堀内先生 受講生からの声】
「これぞプロという感じで、私の質問に対して的確に答えて頂き、正直驚きました。
お金を払って受講した価値があると思える授業で、非常に満足しています。」
「堀内先生はいつも真摯になって初心者の何もわからない目線に
一緒に立ってくれるのでいつも非常に楽しく学ばせていただいてます。」
※CodeCampでは毎日、受講生のみなさんから
レッスンの満足度や感想をフィードバックしていただいています。
フリーランスのエンジニアとして働く
ーー本日はお忙しい中ありがとうございます。まずは簡単に、エンジニアとして働くまでの経緯やご経歴について教えてください。
もともとパソコンやプログラミングは中学生の頃から好きで、よく触っていました。当時は卓球部に所属していたのですが、パソコンに憧れがあったのでパソコン部に転部してHTMLをいじったり。学生の間はVBやC言語などを触っていました。
新卒ではシステム開発会社に入社して、トラックの配車システムなど業務系のシステム開発からエンジニアとしてのキャリアをスタートしました。
その後は、広告代理店に転職してDTP(広告紙面のデザイン)を経験したり、会社内で使うシステムの開発から保守・運用まで対応するという経験を一通り積んで、働き方を変えるためにフリーランスとして独立しました。
また、会社員として働きながら個人でスマートフォンアプリを開発していて、これまでに10本くらいリリースしています。ちょっと話題になったアプリもあったりして、これは今でも趣味として続けていますね。
一つの言語を"深く"理解すれば、他言語の習得が楽に
ーーかなり幅広く開発をご経験をされているので、コードキャンプでも様々なプログラミング言語のレッスンを担当していただいています。これまでどのような言語での開発を経験されてきたのでしょうか?
今まで経験してきた主な言語を上げると、AccessのVBAから始まって、Java、PHP、Android、Swift(Objective-C)など業務系のシステム開発からWebサーバーサイド、アプリ開発まで一通り経験してきました。
あとは、IllustratorとPhotoshopを触った経験があるというのも変わったところだと思います。たとえば、スマートフォンのアプリを開発していると「ちょっとした画像・アイコン」が欲しくなる瞬間がよくあるんです。
そんな時は自分でさっとアイコンをつくったりできるので、プログラミングだけではなくデザインもかじっておいてよかったと思うことがあります。
独学の挫折と、教育を通じた成長を経験
ーー今はフリーランスのエンジニアとしてご活躍されていますが、プログラミングを習得するまでにはどのような苦労がありましたか?
苦労した記憶で一番印象に残っているのは、C言語でゲームをつくろうとした時ですね。コンパイラ(プログラミングされたコードを機械語に翻訳するためのプログラム)の設定すらうまくいかず、本に書いてある通りにやっているつもりなのに全く動かなくて大きな挫折感を味わいました。
逆に良かった学習経験としては一番最初に入社した会社で、入社後すぐにJavaをみっちり教えてもらったことです。一つの言語を深く学ぶと基礎をしっかり固めることができるので他の言語を勉強するときにも抵抗なく学習することができるようになりました。
これは、プログラミング学習をはじめたばかりの方によく伝えているのですが、最初からいろんな言語を触るよりも、まずは一つの言語をしっかり理解するほうが結果として幅広いスキルを身につけることができるようになると思います。
エンジニアは「周りの人を助ける」ことができる仕事
ーー堀内先生が考える、エンジニアという職業のやりがいや面白さについてお教えください。
やっぱり、自分がつくったものを他の人に使ってもらうこと。それによって便利になったり楽になったりすることが、大きなやりがいだと思います。
自分の周りにいる人が「普段苦労していること」を解決できるとすごく面白いですね。これまでも、社内の仕事を楽にするためのシステムや草野球をしている友人の成績管理アプリをつくってきたのですが、実際に使ってもらって喜んでもらえる姿をみることができると、とてもやりがいを感じます。
そういう面白さが感じられると、新しい技術について勉強を続けることもどんどん楽しくなっていきます。
最近だと機械学習の勉強をしているのですが、実際に自分で学習することで「なぜ今、流行っているのか?」「この先にどんな世界があるのか?」を想像することができるようになるので、好奇心旺盛な人にとってはやりがいもあって、知識欲求も満たされてと非常にいい仕事になると思います。
受講生の目標達成を支える
ーーCodeCampでプログラミング初心者の方を教える時に心がけていることがあれば教えてください。
なによりもまず、「プログラミングは楽しい」と感じてもらえるようになることを心がけています。受講生はプログラミング未経験の方がほとんどなので、できるだけ専門用語を使わないようにしたり、複雑な考え方を絵や図にして説明するようにしています。
誰もが自分が理解できていないことを「わかりません」と素直に言える方ばかりではないので、相手の反応を見ながらこちらの説明が伝わっているかどうか気にかけながらレッスンを進めるようにしていますね。
あとは、受講生の方の目的が達成できるように指導することを心がけています。アプリをリリースしたいとか、スキルをいつまでに習得したいなど、目標を示すことで挫折してしまわないように学習を支援しています。
現役のエンジニアから、しっかり技術を学んでほしい
ーープログラミングの初心者がつまずきがちなポイントとその対策について教えてください。
初心者の方が一番つまずきやすい所は、「文法は理解したけれど、どう活用すればいいかわからない」というところでしょうか。プログラミングの根底にはコンピューターの観念が隠れているのでどういう経緯があって今の文法になっているのか、どう使えばいいのかを教えるようにしています。
やはり、CodeCampで学習することの良さは、仕事でプログラムを書いているエンジニアが現場での使い方や技術のトレンドについて伝えられることだと思います。
本やカリキュラムだけでそういったことを学習することはできないので、独学だと身につけることができない知識やスキルが習得できるのではないでしょうか。
あと、教えていて感じるのはプログラミングの習得は個人差が大きいということです。教室など集団で学習する形だと、ついていけている人とそうでない人の差がどうしても生まれてしまいます。
その点、CodeCampではマンツーマンで理解できるまでトコトン指導することができるので、どんなレベルの人でも自分のペースで学習を進めることができていると思います。
プログラミングを習得すると、世の中を見る視点が変わる
ーーこれからプログラミングを学習する方への応援メッセージをお願いします。
プログラミングができるようになると、自分がやりたいと思ったアイデアをコンピューターで自由に表現することができるようになります。それで人を助けることもできますし、自分の仕事の効率をあげることもできるでしょう。
あとは、実際に自分でアプリやWebサービスをつくってみることで「視野が広がる」ことも経験できると思います。
自分がよく使うアプリで活用されている技術を見てみると、この機能を実現するために「開発者はこう考えていたんだろうな」とか、「この技術はこういう風に活用できるのか」など普段とは違う視点で世の中を見ることができるのではないでしょうか。
「プログラミングに興味がある」というだけで、十分プログラミングを習得する素養があると思います。ぜひ一歩踏み出して、プログラミングの学習を初めてみてください。