未経験でもシステムエンジニアになれる!プログラミングを習得するための4ステップ
峰島新(みねしまあらた)さんは、システムエンジニアとして働く傍ら、映像制作やWeb制作やホームページ制作、さらには画像編集やライティングといった複数の仕事をしています。今回はその中のエンジニア業務への取り組みに関してお話しを伺いました。
初めての開発業務で得た教訓
現在、私は2つの仕事を柱としています。1つ目は、正社員でシステムエンジニアとしての仕事です。現在は損害保険業界で、自動車・火災・傷害保険の新種保険申込みサイトの製作や内部設計、開発、単体テストを担当しています。契約はSES(準委任契約)で、一定の契約期間終了後に次の現場へ移行します。
今回はその中での正社員業務であるシステムエンジニアとしてのお仕事の一部をお伝えします。
私はSES(準委任契約)として現場先に出向し、そこでエンジニアの業務を遂行しております。主に製造(開発)や単体・結合テストがメインとなりますが、それ以外にも設計書の作成や修正、さらには保守・運用など、SEとしての幅広い領域に携わっております。使用言語は、主にJava、SQL、HTML、CSS、JavaScriptなどがメインとなります。
元々、新卒での就職活動の際にさまざまな職種の会社を受けました。営業職のように人と関わる仕事に就くか、システムエンジニアのように技術を磨いていくような仕事に就くか漠然と悩んでいました。
当時はまだ自分の適性が分からず、職業訓練センターなどに通いながら自分に合ったお仕事がどのようなものか模索していたのですが、そこで偶然にも後に新卒で働く会社の役員の方とお話しする機会がありまして、その方から映像編集や開発の仕事について話を聞き、高校生の時から趣味で映像制作をしていた私は、仕事にしてみたいという思いが芽生えました。
しかし、実際に入社して最初に配属されたのはシステム開発の部署で、希望していた映像制作の仕事に携わることができませんでした。そこで最初に取り組んだのは、プログラミング言語のコードを書くのではなく、UiPathという開発未経験者がノンプログラムコードで開発をする事ができるソフトでフローチャートを作成しておりました。
最初にUiPathを学んでから、わずか3週間後に初めてそれを使用した業務に携わりました。1000件以上ある各種顧客リストのURLを1つずつ点検し、NGや不要と思われる文言やバナーをWebスクレイピングで抽出しExcelの各セルに自動抽出を行い、それを短時間でかつ容量が重くならないようなツールを2週間以内に作ってほしいという内容でした。
当時はまだそこまでプログラミングに関する知見もなければ、上記のWeb情報を引用する手段も分からないまま手を進めるしかなかったのですが、結局完成には至らずにそのまま当時同じチームであった先輩に委ねる事となりました。
完成に至らなかったのはもちろんのこと、開発部門に所属しているにも関わらず、このような成果を出すことが出来なかったのは悔しい、他にももっとアプローチが出来たはずなのでは、と模索する日々が続きました。
それ以降は日頃の作業で効率化が可能であるもの(たとえば勤務表や休暇申請書の入力や集計作業の自動化など)を片っ端から着手していき、気付いた頃にはUiPathから離れ、VBA、Pythonといった完全なプログラムコードを記載しながら業務を遂行する日々が始まり、入社してから1年後には自身の力でプログラムをつくる事ができるようになりました。
未経験だからこそ踏んでいって欲しい道のり
私も開発を始めて行った当初は大学で元々プログラミングを学んでいたわけではなく、ましてや、誰かに教わった訳ではなく、自分の力だけで業務としても知識としても習得してきました。
プログラミングは、処理の中身が複雑になっていけばいくほど、記載する内容も細かくなっていくため、未経験者がいきなりプログラムコードを理解していくというのは、進め方としては少し無謀かなと思っております。
そのため、まずプログラミングを自分で習得していくためには、
- Excel関数を使い、簡単な計算や他シート引用ができるようになる
- RPAなどのノンプログラムコードで実際の処理をフローチャートなどでイメージできるようにする
- VBAなどのプログラムコードでかつコードでの処理の流れをイメージできるようにする
- Javaなどの実際のシステム開発に必要なプログラムコードを使用し、本格的に開発を行う
以上の4ステップを踏んでから、実際の開発工程を進んでいければ、少なくとも開発の現場、もしくは自社内開発のチームで業務遂行時に困ることはないのかなと思っております。
エンジニアというお仕事はコードを書くだけではなく、書いた後に実装を行い、それが正しく正常動作しているか、あるいは、異常動作をしているかを随時確認していかなければならない仕事のため、『Try & Error』を繰り返しいく必要があります。
だからこそ、それに必要な知識を上記の4ステップで正しく踏み、それを基に自分で書いたコードを基に処理を実装させて、その結果と向きあっていってほしいと思っております。