データエンジニアとしての第一歩を終えて

f:id:monozukuri-bu:20191031163847j:plain

皆様お疲れ様です。
tsudaです。

新卒の研修を5月中旬に終え, そのまま現場に配属され早5か月が立ちました。
配属された現場も丁度今月で離任ということで, 研修と現場での業務について所感を述べます。

自己紹介

大学ではグラフ理論, 数理計画法, 統計学, 数値解析等を学んでいました。
プログラミング経験はCとPython, どちらも基礎文法レベルですが習得しました。

現場ではデータ分析ソフトウエアの環境構築, 運用に携わっていました。

研修で学んだこと

主にPythonを用いて"データ分析"の一連の流れをハンズオンで学びました。
手法の中身について詳しく掘り下げるというより, とにかく"データ分析"を流れでやってみるという部分に重点を置いており, 体系的に学ぶことでデータ分析業務に必要な能力が研修を学ぶ前よりも明確にすることができました。

その他にはLinuxコマンドの基礎を学び, 現場では構築作業の際に非常に役に立ちました。

携わった業務

PostgreSQLのユーザ権限設定

PostgreSQLを用いてユーザー, データベースの作成, 削除も行っていましたが,
「どのユーザーがどのデータベースのどのスキーマのテーブルを参照できればいいのか」
というアクセス権限の設計を主に行っておりました。
トライ&エラーで試すことができる環境もあり, パズルのようで楽しかったです。

運用ツールの作成

主に下記のツールの作成&単体試験を行いました。

bash:データベースのバックアップ, バキューム
VBAcsvファイルからグラフを自動生成
PowerShell:S3からテーブルデータ取得, インポート

現場で学べたこと

5か月と短い期間であったにもかかわらず, 上に述べたように様々な体験をすることができました。
これらの体験を通して重要さを痛感し勉強になったものが以下の2つでした。

わかりやすいコードを書く

現場に入るまでに書いたスクリプトは基本的にその日の内に完結するので, 最低限必要な動作を保証したうえで変数や関数の名前, コメントによる動作の説明等は便宜的に書いていました。
しかし現場ではそれが通用しませんでした。

後日仕様変更が起きていざ修正しようと思った時に, 謎の変数"s"や, なにかのユーザを取ってきているであろう"get_user"関数がなんの説明もなしに置かれているのです。
結局そのコードを理解するのに, 作成するのと同じくらいの時間をかけてしまいました。
それ以来, 引き継ぐ相手の為, 何より自分の為に後から見ても理解しやすいコードを書くことを意識するようになりました。

再現性のある手順書を書く

基本的に手順書というものは, 誰かに引き継ぐ, 共有するために存在しています。
「その手順書を読めば, 誰もが同じ結果を再現できる」こと,
つまりは再現性が必要ということが, 手順書の作成を通してわかりました。

次への意気込み

「知識とは球体である」と誰かは言いました。

知識を蓄えると球は膨らみ球の体積, つまり「知っていること」は増えるが,  
球の外側と触れる面である表面積, つまり「知らないこと」も増えていく。

研修, 現場を通して様々な「知らないこと」を知ることができました。
次の現場でも今の知識と技術を生かし, 増やし, 成長していきたいと思います。