今回はBitDesignLaboの第1回目の更新ということで、私がエンジニアを目指した理由について書いていきたいと思います。
申し遅れましたが、私はブログ更新担当のユウスケと申します。
私は将来フリーランスのITエンジニアとして独立するべく、現在BitDesignLaboに所属してITエンジニアとしての実務経験を積んでいるところです。
…なんだか堅苦しい導入になってしましたが、↓からエンジニアを目指した理由を書いていきます。
1、プログラミングと出会う
私がプログラミングと出会ったのは、社会人になって2〜3年目の事でした。
地元の工業高校を卒業後、私は電化製品メーカーへ就職し、製品の修理現場で働いておりました。当時のは義務教育の授業にプログラミング学習は無く、工業高校でも情報科でなければプログラム言語に触れる機会もなく、まさか自分が今後エンジニアを目指そうなどとは全く考えておりませんでした。
きっかけは、何年目かの人事異動で、業務内容がデスクでの間接業務に変わった時でした。
部門内のデータや実績をまとめるために使われていた、Excelのマクロ機能(正式にはVBA)と出会ったのです。
それまで私の中でExcelは表をやグラフを作成したり、計算機の上位互換くらいにしか考えておりませんでした。(Microsoftに怒られそうなので自主規制いたしましたw)
その時触ったマクロ機能は、
①データベースからデータを抽出
②データからピボットテーブルを自動作成
③ピボットの内容が印刷用のシートに反映
④自動で印刷プレビューが表示される。
という非常にシンプルなシステムでした。同期が「システム化してるんですねー」などありきたりな感想をつぶやく中、私は1人ショックを受けていました。
当時私はパソコンの知識には若干自信があり、プログラミングこそできなかったものの、データをまとめる作業など朝飯前だと思っていました。
それが、Excelの標準機能で自動化できると知り、マクロの記録を使えばコーディングの知識すら必要ないと知ったとき、私はなんと小さな世界にいたのかと思い知らされました。(かなり大げさに聞こえますが、相当ショックでしたw)
2、部門内のエンジニア(?)になる
そこからはVBAのコードに興味を持ち、そのマクロ機能を作成していた上司へと教えを乞いました。
しかし、その上司はとても忙しく、私1人へ時間をさくほどの余裕がなく、「またあとでねー」などとあしらわれるのみで、教えてもらうどころではありませんでした。
それでも、どうしても自動化を身に着けたい私は、作成されたマクロのコードを1行ずつ意味を調べてはステップイン(1行実行)→調べてはステップインを繰り返し、力づくでコードの意味を解読していきました。
その甲斐あってか、ルールのある程度を知ってからは、既存のコードを切り貼りして、日々の業務に役立ちそうな機能を作って他のメンバーよりも、効率的に業務をこなしていきました。
そうなってくると、他のメンバーも「その機能使ってみたい!!」となってくるので、Excelを配布して機能の使用感を聞いてみました。
「こういう機能もあったら便利だな~」⇒ 作ってみる ⇒ 皆で使用感を確認してみる ⇒「こういう機能も…」
そうしているうちに、自分でオリジナルのマクロ機能を作成できるようになりました。
当然、評価に直結しませんでしたが、効率改善ができたことは先に登場した上司の耳に届くまで時間はかかりませんでした。
上司「一緒にデータベースとかアプリの開発やってみない?」
上司からかけられた言葉はホントに思い付きのような提案でした。上司は先述の通り毎日忙しそうにしておりました。上司の業務内容はメンバーのマネジメントは当然ですが、部門内で使用するExcelのマクロ機能、VB.NETによるアプリケーションの開発も一手に請け負っていた為、システムの保守や開発で毎日時間をとられていることを聞かされました。
私は「おもしろそうだ!」と思い、すぐにその話に飛びつきました。上司はその時使用していたVisual Studio(Basic)とSQL Serverのセットアップ方法、基本的な操作方法を教得てくれました。が、
上司「あとはコードのサンプル渡すから、自分で何か1つアプリ作ってみてよ!」
と言って上司は通常の業務に戻ってしまいました。
その時の私はこんな顔⇒( ゚д゚)になっていたと思います。ここまで来てもまだ直接は教えてくれないのかと。
教えてもらえないんじゃ仕方がないので、私はVBAを覚えた時と同じく、あたえられたサンプルコードを解読し、学習しながら知識をつけていきました。解読に関してはGoogleでの検索がメインだったので、文字通りGoogle先生の恩恵あっての技術習得となりました。
今にして考えれば、コーディングについて対面で教わることも重要ですが、「このコードはどんな風に書き換えたら可読性が高くなるだろうか」「こんな機能を追加したら操作性が上がるのではないか」と考える力を育むために一人で考えさせられていたのかなと思っています。(実際の腹の中は未だに不明ですが…)
その後も上司とはアプリについて大枠の説明を行うのみで直接コーディングについて打ち合わせや説明をすることなく、部門内エンジニア(正式な役割ではありませんでしたが)2人体制で開発を続けていきました。
ここまでが、私がプログラム言語に触れて、部門内でエンジニアのような役割を担うまでの経緯でした。
ここからいかにして、専業エンジニアを目指すようになったかは、文字数の関係で次の記事でお話していこうかと思います。