はじめに
こんにちは。グロービスでナノ単科・nano-MBAの開発をしている野口です。
今回は私がエンジニアとして1年働いてみて大変だったことや感じたことを書こうと思います。
前回の記事はGraphQLについて書かせて頂きました。もしよろしければご覧下さい。
エンジニアを目指したきっかけ
WEBスクレイピングのプログラムを作ったのをきっかけに
そもそも何故私がエンジニアになりたいと思ったのかをお話しすると、前職でアウトソーシングサービスをしていた頃に遡ります。クライアントから様々な依頼がある中に、インターネット機器のキッティングという作業がありました。
キッティングとは簡単に言うとPCやアクセスポイント、ルーターなどの精密機器を動く様に設定し、すぐに使用できる状態にしてクライアントへ発送することです。その精密機器の設定はPCに繋いでブラウザで行うのですが、最初は全て手動で設定していました。
ID/PASSを入力して次にここの項目にはこの値を入れて再起動して設定値が合っているか確認して・・・ という作業を月に何百台、多い時は千台くらいやっていました。
そんなある時、「当たり前の様に手動でやってるけど大変だし自動化したいな」 と思い、自動化のプログラムを書こうと決意しました。PythonでSeleniumを使った簡単なWEBスクレイピングのプログラムです。これをキッカケにエンジニアってどの様な仕事なんだろう 、チーム開発でサービスを作るって面白そう と思う様になりました。
いざエンジニアになってみて
環境構築に2~3日かかる
未経験・ベテランに関わらず新しいプロジェクトに参画したら最初に環境構築をすると思います。
私もPCを貸与されて 「まずbackendとclientの環境構築終わらせて。わからない所があったら言って」と言われ環境構築を進めることに。しかし当時の私は 「環境構築ってなんだ?何をすれば良いんだ?」 といった具合でそこから調べることに。
プログラミングの環境構築とは、プログラミングを始めるために必要不可欠な開発環境を準備することです。
https://japan-design.jp/programming/4059/
なるほど、ツールとかインストールして自分のPCで開発できる様に準備することか。そしてその手順はgithubのREADMEに書いてあるのか。早速始めよう!
コマンドの意味を理解せずコピペで進める
このコマンドは何をしているのかを理解せずに、しかもそのコマンドの実行結果をしっかり読まずにコピペして進めていました(絶対ダメ)。エラーが起きた場合、ログを読めばそこに解決のヒントが書いてあったりしますが、当時の私は読まずに1人で悪戦苦闘していました(そこにヒントが書いてあることすら知らなかった)。
分からないことが分からない
チームの皆さんに聞こうにも自分が何をしていてどこで躓いているのか、何を達成したいのか、試したことは何かを上手く言語化できず質問の仕方さえもわからない状態でした。やっていることを理解していないままコピペしているだけだからそりゃ当然でしょと思われると思いますが、今の私もそう思います。
なので私が取った行動は、オフィスにいる先輩の所までPC片手に行って 「ここが分からないので教えて下さい」 という物凄いアバウトな聞き方をしていました。
今思うと、何て雑なお願いをしているんだと恥ずかしくなりますが、当時の自分はこれしかやりようがなく必死でした。そんな雑なお願いにチームの皆さんも嫌な顔せず丁寧に教えて頂いたので本当に感謝しかないです。
環境構築の他にも、エンジニアになって最初の1ヶ月は
- Sequel Proで本番とstgのDBに接続する
- DBの各テーブルのカラムの内容とデータ型を調べる
- 開発で使用している技術・ツールについてインプットする
などの課題を進めていました。この時は、 「自分はエンジニアとしてやっていけるだろうか。チームのエンジニアの方みたいにバリバリ開発できる様になるのだろうか。凄い大変な世界に来てしまったな。」 と不安でいっぱいでした。
1年経過して感じたこと
チームの皆さんのおかげで何とか1年続けることが出来ました。1年前は右も左も分からず、分からないことが分からない状態だったので当時と比べればかなり成長したと思います。そんな中感じたことは、
チームの皆さんへの感謝
未経験の私に皆さん丁寧に教えて下さいました。本当に感謝しています。(まだまだ聞きまくっていますが)
早く私も誰かの問題や困っている課題に対して解決に導ける様な存在になりたいと思います。
問題解決力が足りない
自分が対応している問題や課題に対して、原因となる箇所の特定やその解決策を考える力が足りないと感じました。解決策を複数パターン考えらえる様に柔軟性や創造性を身につけていきたいと思います。
コミュニケーション能力の重要性
リモートワークをしている方が多く、基本slackでコミュニケーションを取るのですが自分が何を伝えたいのかをはっきりさせないと相手に伝わらないしダラダラと長い文章になってしまいます。伝えたい要点をまとめる能力とリモートワークの難しさを感じました。
今後の抱負
早くエンジニアとして1人前になることが目標です。何を持って1人前と言うかですが、私が考える1人前のエンジニアは
- 自分が参画しているプロジェクトで使用している言語のスキルをもっと磨く(狭く深く)
- チームで問題や課題が起きた時に、原因を突き止めて解決策を提案できる様になること
- チームの誰かが困っていたら助けられる様になること
- 開発中に躓いて、質問する時は何を達成したいのか、何に困っているのか、何を試したのか、どんなエラーなのかを分かりやすく明確にする
- 流行り廃りが激しいこの業界の変化に対応できる様に、仕事で使用している言語・プラットフォーム以外のものを勉強してスキルのレパートリーを増やしていく
もちろん上記以外にやらないといけない事はたくさんあると思います。そんな時は是非コメント下さい。
最後までお読みいただきありがとうございました。