はじめまして。
iput株式会社、エンジニアの村上です。
日々、上司と共に自社サービス(Web)を中心に開発事業を担当してます。
「未経験者からエンジニアになろう」
転職サイトでよく見るキャッチフレーズ。実際、他分野からエンジニアへの転職した話はよく聞きます。かくゆう私もその一人。
ですが、
「未経験者が本当に転職できるのか?」
「どうやったら転職できるのか?」
「興味はあるけど、実際にエンジニアが何をしているのかわからない」
という方も中にはいらっしゃるのではないでしょうか。
今回は、
未経験からエンジニアに転職した私の経験を通してこのような疑問に答えていきたいと思います。
未経験から1年半で身についたエンジニアとしてのスキル
入社から一年半で、私のエンジニアとして以下のスキルを身につけました。
入社時
・アプリ
photoshop.illustrator
入社1年半
・使用言語/アプリ
php(Laravel/Wordpress), Mysql, HTML/CSS, javaScript(jQuery), Linux(CentOS), AWS
photoshop、illustrator
・立ち上げ〜運営サイト
20サイト以上
ではここで、「プログラミング入門」
「プログラミング」とは「プログラム」を作る作業を指します。
では、「プログラム」とはなにか。
とても簡単に説明すると、「コンピュータにさせる処理を書き出したもの」です。
例えば、スマホの画面でLINEのアイコンを押すとLINEが開きますよね。
これは、”このボタンを押したら、LINEを開いてね”という「プログラム」を組んでいるから動きます。
ではその「プログラム」って何で書かれているのか、
「プログラミング言語」を使って書いているんですね。
英語や日本語など "ことばの言語"がたくさんあるように、「プログラミング言語」もたくさんあります。
例えば、
ここに文字を記入する ←には「プログラミング言語:HTML」を使いますが
ここの文字を太字に装飾する←には「プログラミング言語:CSS」を使います。
このように複数の言語を組み合わせて開発をします。
使用言語が多ければいいと言う話ではないのですが、多いと開発できる範囲は広がります。
この1年半で私の開発できる範囲は確実に広がりました。
入社からわずか3週間、突然のエンジニア転向
iput入社前、私は武蔵野美術大学の油絵科を卒業したあと、特に就職をするわけでもなく、映画館やギャラリーでアルバイトしながらアート雑誌ZINEを作ったり、アーティストや友達の展示を手伝ったりとフリーター生活を過ごしていました。
フリーター生活に金銭面、精神面ともに限界を感じ始めた頃、
ライターの仕事をもらったりと交流があった大学時代の友人、武田さんに誘われ、ライター兼、ディレクターとしてiput入社しました。
入社3週間は、記事作成を中心に、Webサイトの今後の方向性やライターとのやりとり、他にもECサイトの運営に携わりました。
また、photoshop 、illusutlatorの技術を活かしロゴやバナー作成に取り組みます。
短い期間でしたが、この「Webディレクター業務」と「クリエイティブ業務」で、
・サイトの運営を通し、どのように運営しているのかを実際に体験した
・どの業務でも"ユーザーファースト"を第一番に考えること
この2つは、今後のエンジニアとしての自分の強みになっていきます。
「こんな人のもとで働きたい!」尊敬できるエンジニアとの出会い
エンジニアに転職した理由はいくつかありましたが、1番は現在の上司、関さんの存在が大きいです。
エンジニアのスキルはもちろんのことですが、仕事に対して一切の妥協がない。
さっと会社に来て、姿勢も崩さず凄まじい集中力で業務を終え、さっと帰る。それが関さん。
これは関さんのもとで働くようになってさらに思い知るのことになるのですが、
関さんの口から「できません」や「できませんでした」なんて聞いたことありません。
どんなに危機的状況でも納期は必ず守る、仕事は終わらせる。この人はすごくできる人だ。そのプライドと技量に一方的に惚れ込みました。
そんなある日、ビックチャンスが舞い込みます。
業務拡大にともない、開発にも人を雇おうという流れが起き、
社長に「周りにエンジニアに興味がある人はいないか」と聞かれます。
関さんの下で働ける!こんなチャンスは2度とないと思い、社長に自らを立候補。
「本当にできるのか?」という質問に「はい!できます。」と答えました。「辛くなるよ?乗り越えられるの?」と言われても「乗り越えます!」と答えました。そして、それに社長も頷いてくれました。
そう言えたのは、「あの関さんのもとなら絶対に大丈夫だ」
という勝手な自信から。
私の唐突な立候補に社長が頷いてくれたのも、
あの関さんになら任せられる、という信頼関係があったからだと思います。
こうして、晴れて私のエンジニア人生がスタートしました。
関さん惚れ込みエピソードをもう1つ。
エンジニアを初めて数ヶ月経った頃、
関さんに技術力をUPさせるにはどうしたらいいかと尋ねると、
「実践あるのみ。スキルアップしたいならどっかから仕事もらってきてやってみ。わからないところは聞けばいい。手伝うから。」
と言われたことがあります。
教育するというのは本当に大変なものです。(私は教授させていただいている身ですが)
自分の時間を割いて、相手にレクチャーしなくてはいけません。
他から仕事なんてもってきたら、大変さが増えるだけじゃないですか。
せいぜい、参考本を教えておけば楽な話。
ですが、関さんは違いました。
私のスキルアップしたいの思いに、200%で返してくれました。
私はこの人のもとで働けて本当に幸せだ、心底思ったのと同時に、絶対に一人前のエンジニアになろうと決意しました。
武器は戦いながら拾え
今では知識が増えた分、調べる量は減りましたが、
当時はまずGoogleで調べる、これがファーストステップでした。
例えば、「参考データーをあげるので、新規サイトをLaravelを使って開発してください。」
と関さんから指示を受けます。
初めてやることは、関さんがやり方を順序を立てて教えてくれます。
ですが、私は、「”Laravel”とは何か?」というところからスタートしました。
Googleで「Laravel」と調べると
「MVCのWebアプリケーション開発用の無料・オープンソースのPHPで書かれたWebアプリケーションフレームワークである」
と教えてくれました。
もう何を言っているのかわかりませんでした。
分からない単語、一つひとつを書き出して調べました。
そして、LaravelとはWebアプリケーションフレームワークだと、つまりこれを使えばサイトが簡単に作れるようだ、と理解して初めて、
「Laravelを使ってサイトを作ってみた!」というタイトルの記事を参考にプログラムを組み始めます。
無事組み終わったら実行、つまり動作確認をします。
プログラムの書き方があっていればエラーがでずに無事希望通りの動作をしてくれます。
私は、大抵エラーがでました。
エラーには、原因があります。
例えば、スペルミスしてたり、使えないプログラムをかいていたり、入れた値が空だったり、、。
それを1つ1つ解決していくと、必ずエラーは消えます。
指示された内容をまず調べて、理解して、やり方を調べて、試して、エラーが出て、直す。
またエラーがでて、直してもうまくいかなければ、違うやり方を調べて、試して、エラー、直す、試す、エラー、直す、、、の繰り返し。
当初は、何をしても本当に時間がかかりました。
初心者向けプログラミングハウツー本によく
「考え込まず、とりあえずプログラムを組むこと。この経験を積み重ねていくことがプログラミングを理解する上で一番の近道である」
とあります。
経験上、本当にその通りだと思います。
プログラミングは頭だけで考えて考えて...頭でっかちになる前に、とにかく体を動かす、プログラムを書いてみなくては何も始まりません。
この動作をするには、Aと書くか、Bと書くかと悩む前に、Aをやってみる、Bもやってみる。それでエラーが出たら原因を追求する。
時間がかかりますが、これが近道でした。
そのうち、6時間かかるところが5時間、4時間と業務時間が短縮できるようになり、10行書いていたプログラムを5行にできるようになりました。
AとBどちらを書いたらいいかわからなかったところも、この場合はAを使おうと、
プログラミングの道筋が見えてきました。
この道筋が見えてくると、今度はエンジニアとしての道筋も見えてきます。
例えば、Aができるようになったのだから、今度はA+のことができる。Aの応用編A'だってできるかもしれない。というふうに。
インプットも大事、でもそれと同時にアウトプットもしないとだめ。
当時は毎月のようにサイトをリリースしていたこともあり、インプット&アウトプットを短期間で繰り返し行いました。
インプットした武器はどんどん使っていかないと忘れてしまいます。
この短期間で実践を繰り返せた経験は、確実にプログラムのスキルアップに影響しました。
また、サイトやサービスというものは常にアップデートされていきます。
1回の開発だけで、はい終了です。ということはありません。
新機能を追加したいです。新しいページを作りたい、サイトのデザインを変えましょう!日々依頼が舞い込みます。
ここで先ほどのA+やA'実践の出番です。
今までは、0ベースから調べる、でしたが
次は、1ベースからのスタート。自分の今あるスキルをどうやったら応用できるだろうか、もしくは、今まではできなかったCも、AとBを組みわせたらCができます!ということも。
サイトがアップデートされるように、自分のスキルもどんどんアップデートしていきました。
エンジニアに必要不可欠な「ユーザーファースト」の視点
ロゴやバナーを作ってきたこともあり、サイトのデザイン設計に携わる機会が増えてきました。
復縁マッチングサイト「https://yorimo.net/」(ヨリモー)もその1つです。
ーYORIMOー
このサイトは、復縁を希望する人が、相手に向けてメッセージを残します。
もし、相手も同じことを考えyorimoに登録していたら、晴れてマッチング、復縁!ができるというサービスです。
どのように説明、デザインしたら、このサービスを理解して利用してくれるのだろうか。
復縁したい人(=ユーザー)がこのサービスを使いたいと思うには、どういったデザインがいいのだろうか。
ディレクターと何度も打ち合わせを重ね、形にしていきました。
感覚でデザインをしがちですが、それだけだとまったくデザインとしての意味はありません。
大事なのは、いかに「ユーザーファースト」であるかどうか。
これは、開発をしていても同じです。
ユーザーにとって何が便利で、スムーズか。
例えば、住所を入力するページで郵便番号を入力すると自動的に住所が入力される、という経験はありませんか。
これは、"自動で入力するように "というプログラムを組んでいるためにできること。
しかし、別に自動で入力されなくたってエラーではありません。なくても問題はありません。+αの部分なので工数がかかります。つまり仕事が増える。
ですが、ユーザーにとっては?.
..絶対にあった方がいいですよね。
自分のスキルや感情から、出来る・出来ない、ではなく、ユーザーにとってその開発は必要か必要じゃないか。
また、開発したものを使うのはユーザーだけではありません。運営するディレクターも使います。
ディレクター視点で、この機能をつけた方が絶対に仕事が楽になる。よし、開発しようとなります。
最後に
正直、1年半で「職業はエンジニアです」と言える日がくるなんて思ってもいませんでした。
まして映画館でポップコーンを売っていた自分には想像もつきませんでした。
私は美術大学出身ということもあり、デザインをさせてもらう機会をいただきました。
そして、それが今デザインもできるエンジニアという自分の強みになりました。
美大出身者視点で、ユーザー視点で、ディレクター視点で、エンジニア視点で、サイトをデザインし、開発する。
これが私がiputで働くことで手に入れた、エンジニアとしての武器です。
まだまだ修行の身ではありますが、私はこの武器を手に
自分だからできるエンジニアを目指し、明日も戦っていこうと思います。
iputでは未経験でもエンジニアになれます。しかも1年半という短期間のうちに。
なぜなら、スキルを取得し実践的に試す環境が、未経験者にも与えられているから。
今までやってきたことがたとえエンジニアとは関係のない分野だとしても、あなたの強みを最大限に仕事に活かすことはできます。そしてそれがiputで働く意味、あなたが働く意味に繋がってくると思います。
エンジニアに興味があるけど迷っている未経験者の方、iputでエンジニアになってみませんか?
もちろん、経験者の方も大歓迎です。
この会社で一緒に成長していきましょう。
ご応募お待ちしております。