「頭の中のイメージが画面で動いた!」中学時代の興奮を求めて、再始動。

西城勇志さん、即戦力コース修了。研究者を目指した時期もあったが、「頭の中のイメージが画面で動く」という興奮が忘れられず、フリーランスとして活躍する中DIVE INTO CODEへ入校。

https://gyazo.com/01969dd25986534f5d07b8f3e1c42062

インフラ系からアプリ開発のプログラマへと転身を遂げた

簡単にご自身の経歴や経験を教えてください。

初めてプログラミングのようなものを習得したのは中学生のときです。家のPCでHTMLを使いサイトのようなものを作っていました。他のサイトのソースやタグ集をみながら、マークアップして、頭の中のイメージが画面に出たときの達成感は今でも覚えています。それがプログラミングに目覚めた原体験だと思いますね。

高校では部活に没頭して、大学に入る時点では研究者になりたいと思い応用物理学を学んだのですが、アルバイトでソフトウェア販売をしたり大学の先輩が勤めている会社でアプリ開発を手伝ったりするうちに、“プログラミング熱”が再燃しました。

そこでプログラミングスキルが身につくと思い、大学院を卒業後にSIerに就職し初めはアプリ開発に携わっていましたが、2年目にネットワークインフラの部署へ配属されました。
アプリ希望でしたが、SEとして必要な知識と思い1年ほどネットワークインフラ業務に従事しました。しかしながら、アプリへの熱意があったのと、事業部をまたぐ異動は長期間を要し、その間にこれまで培ってきた知識が忘れ去られていく焦りも感じていました。
そこで退職して独立し、フリーランスのプログラマになりました。今は金融系のシステム保守改修などを主に行なっています。

知識ゼロの友人が、DIVE INTO CODEに通いフリーランスに!

元々プログラミングに携わってきたとのことですが、なぜDIVE INTO CODEに入ろうと思われたのでしょうか?

元々JavaやPHPはやっていたんです。ただ、アプリ開発をするためのスキルは大学生以来ブランクがあってだいぶ忘れていたんですね。独立することはすでに決めていたのですが、このままだと将来が厳しいということは目に見えていました。そんな頃に、たまたまDICを卒業した友人がいて、話を聞く機会があったんです。その友人から、「プログラミングが全くの未経験で、ゼロの状態からDICに通いフリーランスにまでなれた」という話を聞いて、DICに興味を持ちました。スクールでは実務経験が積めたという話も聞き、それも興味を持った理由としては大きかったです。

それでDICの説明会へ行き、 Rubyを習得できるということもあり、これからの世界を広げていけそうなイメージを持てました。当時自分が保守的になっていて、外の世界へ踏み出すのが怖くなっているという悩みも抱えていたので飛び出すきっかけが欲しかったという動機もありました。

独学は考えませんでしたね。今までやってきたJavaやPHPであればどうにかできたかもしれません。でもRubyやRailsなどは全くの無知でしたから一から身につけるにはとても時間がかかると思いました。だから自己投資のつもりで入校しました。

https://gyazo.com/39e2f66d2042a5d06c751a4931d4cc3b

ご入校されてから、もっとも大変だった出来事を教えてください。また、それをどのように乗り越えたのかも教えてください。

最も困難を感じたことは主に2つあります。

1つ目の困難は、「モチベーションの維持」です。
仕事をしながら課題をこなす必要がありましたので、どうしても課題提出の期限と、仕事の納期が重なるときがあります。そういうときにはなかなかカリキュラムに手をつけられず、課題を出し続けるモチベーションを維持するのがとても難しかったです。

乗り越えた方法は周りの仲間がいてくれたおかげですね。隔週でDICの教室で講義を受けるんですけど、他のメンバーも自分と同じように仕事をしながら時間を割いて来ていました。エンジニア未経験の方が、経験者である自分よりもカリキュラムが進んでいるのをみて、焦ったり刺激を受けたりしながら、また受講生が主体的に行う勉強会もあり、そこに参加したりしてモチベーションを上げていました。仲間とは常に情報交換をしていましたし、時には飲み会を開いて交流を深めるなど、いい環境の中でカリキュラムを進めることができたと思います。

もう1つの困難は、「技術面の壁」です。
確かに今まではJavaやPHPの経験はありましたし、エラーが出てもバグを直して実行を繰り返したり、ネット検索で調べればだいたい答えは見つかっていました。でもDICに入ってからは違いました。まずそもそも自分で開発環境をローカルに作るという経験がありませんでした。またカリキュラムを進めるにあたり、エラーの原因が開発環境やインフラ寄りの部分であることが多く、検索しても解決策が出てこないことの方が多かったのです。

それをどのように解決されましたか?

原理を理解するために勉強をすることが重要だと思いました。プログラムの中には正常に動いているものも当然あります。それを異常な部分と比較して差分を見つけて解決する、試行錯誤して違いを見つけていく。

もちろんメンターの方に質問し助けられたケースもありますし、実際に私が2、3日解決できずに悩んでいた部分をメンターの方が30分で解決してくれて、「もっと早く質問してくださいよ〜」と言われたこともありました(笑)。ただ自分の場合は自ら原理に直面し試行錯誤しながら身に付けたい、という考えが根底にありました。一度人に聞いてしまうとそのまま考えなくなってしまうので、自分なりの理解をすることが大事だと思っています。

プログラミングを習得するコツは、コピーして、いじって、原理を理解すること

エンジニアスキルを身につけるうえで、”大切にしていること”があれば教えてください。

中学でプログラミングを始めて現在に至るまでの間に貫いているやり方があります。
それは3段階あるのですが、

1、まず既存のコードを見てみる
コピーでいいので既存のコードを使ってみます。こうやれば動く、ということを体感的に理解します。

2、一つだけ変えてみる
実行したときに何が変わるのかを見てみます。すると当然エラーになったり、現象が画面に表われたり、出力結果が変わったりします。すると「ここを変えたらこう変わる」と変更した部分の意味がわかるようになっていき、それを繰り返すうちに次第に理解できるようになります。

3、全体の原理を学ぶ
システムには何かしらのトリガーがあってそこを起点にして初めて動きます。その原理を理解していれば、挙動のおかしなところやエラーログでどこが間違っているのかを突き止められるんです。

プログラマの真価が問われるのは問題が発生したときの対処法だと思っていますので、どこが問題の箇所なのか突き止められることが大事です。全体の原理が理解できていれば問題は解決できます。そのような全体の概念の勉強法は「本から学ぶ」ことが一番いいと思います。それから、2に戻って確かめるということを繰り返し実際にいじって確かめることが大事ですね。

いろんな人に会っていろんな経験を積みフルスタックエンジニアに

https://gyazo.com/19c277c111adbe3ec78af74358b0cdba

今後、目指す姿、未来像について教えてください。

現在はまだまだ勉強中ですが、将来としてはフルスタックエンジニアを目指しています。どこでも通用する人材になりたいです。今はフリーランスとしていろいろな人や案件に関わっているので、様々なケースでの働き方の違いやサービスの仕組みを学びたいと思っています。その過程の中で、一緒にチームを組める仲間を見つけて、いずれは自主サービスを作れるようになることが自分の目標の一つです。

また、おぼろげですが教育に携われたらいいなと思っています。プログラミングの義務教育での必修化が控えていますし、エンジニアに求められるITリテラシーはますます高くなっていき、どの業界にいてもITの知識は必要になっていくと思います。今のうちにプログラミングの考え方を模索して、周りの人に自分が研究したメソッドをシェアできたらいいなと考えています。

ただ、エンジニア経験としてはフリーランスになってからまだ3ヶ月で本当に自分に向いているのかどうかもまだわかりませんので、模索中です。目の前のことを一生懸命やれることを今は考えています。

これからエンジニアを目指す方、受講を検討している方へメッセージをお願いします。

DICの一番いい部分は実務経験を積める環境を用意してくれていることです。他のプログラミングスクールで学んだ友人など、周りの人の話を聞いた限りでは実務経験を積めるプログラミングスクールはあまりないようです。実際、転職をしようにもフリーランスになるにも、プログラマの経験年数でどれくらいのスキルを有しているのかを見られますから、実務経験の有無はとても重要なポイントです。

教育メンターやSECONDTEAM、代表の野呂さんのつながりなどで、仕事を発注したい人との交流会があったり、実務経験を積む機会を得られたりします。そういう環境はなかなか他にありません。DICではゼロから出口まで一貫してちゃんとサポートをしてくれます。

また集まっている仲間のつながりから仕事を得ることもあります。私の場合はDICで繋がった方からお仕事をいただいたことがありますし、ここで出会った仲間が今後サービスを立ち上げるのでそこに参加させてもらう予定もあります。そういったつながりができるのはメリットとして大きいですし独学では難しいことですから、環境を生かすことができればいいのではと思います。

生徒やメンターの方々などDICに集まっている人々がいい意味で意識が高く、行動力のある人が集まっているため、自分のモチベーションを高く維持できる環境にあります。自主的に勉強会を開く方もいて、とてもいい刺激を受けられる場だと思います。

ダイビックのことをもっと知ってみませんか?