- PM/PdM
- ソリューション営業
- カスタマーサクセス
- Other occupations (3)
- Development
- Business
- Other
DXYZの採用広報の平本がCTO安永さんなどエンジニアの視点を深堀りしてインタビューする企画を始動します。
私、平本ですが、関西大学総合情報学部に在籍している現役の大学生です。2022年度の関西大学ミスファイナリストに選出され、ZOZOに内定を貰いました。現在、インターンとして、バックエンドエンジニア配信基盤APIの開発、DXYZにてエンジニアの採用広報を担当しています。
安永さんは、コンピュータサイエンス系の知識が全くない文系大学出身でありながら、新卒でSE就職された経歴をもつ現役のエンジニアです。そして、DXYZではクラウド上で顔認証プラットフォームのアーキテクト設計をしている実力の持ち主でもあります。
今回は、エンジニアとしてキャリアアップする方法や未経験からエンジニアになるためのプログラミング学習の方法について語ってもらいます。
名付けて「The Engineer Vision#」第1回目を開始します。
プログラミング経験がない中、初めにしたことはなんですか?
初めて触れたプログラミング言語は、Javaをはじめとし、Perl、PHPだったんです。基礎はもちろん大事ですが、未経験の人は環境構築でつまずくと思う。環境構築とは、それぞれの言語をインストールしてパス通し、コードを書ける環境を整えることを言います。それをまず初めにしました。
環境構築ができた上で、実際にどのようにプログラミング言語を学ばれたのですか?
当時、私用PCを持っていなかったので、社用PCの方でプログラムを書く準備を整えました。その上で、コードを書かないと学べないんです。実際にやっていた学び方としては、帰宅後ノートにコードを書いて、次の日に会社でそれらを試してトライアンドエラーを繰り返していました。
コードを書く以外の学習時間はありましたか?
営業時間外に学習していました。入社して業務内容からもエンジニアリングに興味を持ったので、本を買って読み込み、3年間は寝ずに学習していました。本を読み込むインプットだけでは限界があるので、WebページやWeb DAV、Androidアプリや社員の在籍確認アプリを開発することでアウトプットにも注力していました。
相当な学習時間ですね。ここまで努力できたのはなぜですか?
文系で技術領域をキャッチアップしようとしても、理系と比べて考え方が違うので難しいんですよ。文系の強みである文章作成能力を活かしながら、仕事を好きになったことだと思います。また,業務に携わりプログラミングに触れる中でエンジニアリングを好きになったことが原動力になったと思います。
プログラミング言語の本質について触れられていました。昨今、オブジェクト指向の問題点の一つとして継承の問題が触れられていますが、どうお考えですか?
適材適所だと思います。基底クラスと派生クラスの役割の分担が非常に難しいといった本質がわかると論文を読みながらデザインパターンが生まれます。このパターンでは、こうするとうまくいくといったパターンを覚えて、アウトプットし続けるんです。つまり、本質を見抜いてパターンを作った結果、動作がうまくいったケースを業務にどう落とし込むかが重要になります。
安永さんって良い意味でエンジニアっぽくないですよね。
効率化すると本質が蔑ろになったりすることもあり、効率化しないで良いものに自動化の意味はないと思います。普段15分しか利用しないものに一日かけて自動化しても意味がないということです。また、SE、SIerになる上で、テクニカル知識がないノンテックの方に話すスキルは文系の力とも言え、エンジニアとの両側面を持ち合わせているかも知れません。
エンジニアリングする上で、目指していた先輩とかっていたんですか?
お師匠と呼んでいる人がいて、汚いコードは自己満足と言われ続けていたんです。何時間もかけて書いたコードをお師匠に見せると、その場で全部消されてしまったことがありました。
その時点でコードを読み解く力は身についていたんですが、親クラスのメソッドを子クラスで再定義するオーバーライドの仕方や条件の分け方、仕様変更にも柔軟に対応できる“きれいな”コードを書くことを意識するようになりました。
これまでの学習方法を振り返って未経験の方々に言えることはありますか?
コードを書くアウトプット量がとても大事です。はじめは、質より量なんです。
恋愛と一緒で。笑
得たものをアウトプットしていくので、ペアプロよりは一人でコードを書いてしまうことが多いですね。学習する上で大事なのは、エラーケース等の経験則を踏んだ上で、質より量をこなすことです。その後から、質が求められます。
今回は、DXYZのCTO安永さんにプログラミング未経験から現在に至るまで、どのように技術をキャッチアップし続けたかについて聞きました。プログラミング未経験の方に最も伝えたいことは、プログラミング言語の本質を理解しながらアプトプットし続けることだと語っていただきました。やりたいことを明確化し、写経でも良いのでコードを書くことが未経験から飛躍する方法なのではないでしょうか。また、その中でコードの処理内容を理解しながら学習していくことが重要であると学びました。