エンジニアとしての中期目標

IT業界未経験の僕が、約1年間現在の会社で働く中で、エンジニアとして進みたい方向がおおよそではあるものの、見えてきた感覚があります。

今回の記事では、現時点の僕がなりたいと思い描く将来的なエンジニア像と、それを実現するための中期的な目標をアウトプットしてみたいと思います。

エンジニアとしての目標を考える

業務を通じて見えてきた興味

現在、大規模分散システムを実現するためのプロダクトの検証作業を行うチームにアサインされています。

その一環で、コンテナオーケストレーションツールであるKubernetesを中心とした、CNCF(Cloud Native Computing Foundation)プロジェクトに出会ました。

CNCFプロジェクトでは、コンテナオーケストレーター(Kubernetes)、コンテナ監視ツール(Prometheus)、ロギングツール(fluentd)など数々のプロジェクトがホストされており、現在も勢いを増しています。

これらのプロダクトに触れているうちに、CNCFの思想に共感したことや、コンポーネントを組み合わせてシステムを構築するパズル的な要素が面白く感じるようになりました(実際は、パズルなど悠長なことは全く言える状況ではなく、未熟で分からないことばかりなのですが。。。)。

また、市場でもこれらの技術は、これから一層の盛り上がりが期待されています。

このように、自身の興味と今後の発展性が相まって、Cloud Native開発の分野でシステム設計ができるようなエンジニアになりたいと強く感じるようになりました。

所有スキル

自分の進みたい方向性が見えてきたところで、自分の現在のスキルから、学ぶべきスキルを分析したいと思います。

入社前

冒頭でも述べたとおり、僕はプログラミングを始めとして情報関係の技術はほとんど持たずに入社しました。

唯一経験があるとすれば、大学の講義・演習で少しかじったFORTLANくらいのものです。ターミナルの利用方法が掴めず、コンパイルに苦労したのが記憶に残っています。

入社後

研修・業務を通じて以下のようなスキルが身につきました。
  • シェルを通じたLinuxの基本的な操作
  • TCP/IPプロトコルの理解
  • gitの概念と操作方法
  • Kubernetesクラスタの構築に加え、各種リソースの理解
インフラの部署に配属されたため、サーバーの操作や、ネットワーキングなどのスキルが中心です。

反対に、 プログラミング言語は研修でJavaを少し学んだ程度の敬遠しかありません。この点に関しては、危機感を抱いている点でもあります。

今後必要だと考えるスキル

中期的な目標として以下のようなスキルを習得していきたいです。

  • キーコンポーネントとなるコンテナオーケストレーターKubernetesおよびCNCFコンポーネントについての知見
  • 実際にアプリケーションを作成し、Kubernetes上で運用する経験
  • Go言語の習得(CNCFコンポーネントで多く採用されており、マイクロサービスとの親和性が高いとされているため)

今後1年間の具体的な目標

上記のスキルを身につけるため、来年度に達成したい目標を定義します。
  • 実務的なKubernetesの資格であるCertified Kubernetes Administrator(CKA)、Certified Kubernetes Application Developer(CKDA)を取得する
  • 小規模なもので構わないので、Go言語を使ってマイクロサービス化したWebアプリケーションを作成し、Kubernetes上で動作させる。
  • 得られた学びや成果物をアウトプットする
去年までは、資格の取得がスキルアップに繋がると考えていましたが、より実践的な学習を行う方向にシフトしていきたいです。

CKA、CKAD等は資格なのですが、Kubernetesの実務経験が問われるものであると認識しているため、自分のスキルを可視化するために取得することを目標としています。

また、これらの目標は業務で不足していると感じる点を補うために設定したため、基本的には業務外でアプローチしていくことになるかと思います。

勢いで書いたものの、簡単に達成できるとは到底思えませんが、努力していきます。

1年後にこの記事を読み返した際に、達成できたと振り返れるよう、後悔のないように過ごしていきたいです。

ブログ始動

ご挨拶

自己紹介

はじめまして、roshiyaです。この度ブログを始めました。

2018年度入社のエンジニア1年目で、業務ではKubernetesをはじめとしたCNCF(Cloud Native Computing Fundation)コンポーネントの技術調査を行っています。

Kubernetes、Prometheus等を始めとしたCNCFコンポーネント、Docker、Golangに興味を持っており、業務外での自己学習を進めています。

学生時代は物理学を専攻しており、現在の業務とは全く異なる、材料系の研究を行っていました。

研究ではプログラミング等のIT関連技術は全く利用していませんでしたが、IT業界の流動性に惹かれ、この業界に身を置くことを選びました。

ブログ開設のきっかけ

業務を通じて、Kubernetesにより実現される分散システムに強く興味を持つようになり、この領域の技術を身に着けたい。また、エンジニアとして成長したい、と感じるようになりました。

キャリアを考える上で、変化が早いこの時代では、社内だけでなく、外部の情報を取り入れることが不可欠なのは明白です。

エンジニアとしてのスキルを向上させるきっかけになればと思い、Twitterなど各所より情報収集を行うようになりました。

その中で、さくらインターネットのまつもとりーさんが、アウトプットの重要性を語られている記事を読みました。

私自身インプットに偏重し、アウトプットの機会が不足しているという思いに駆られました。

だったら自分もアウトプットをしてみよう、と思い立ったのが本ブログを開設したきっかけです。

このブログについて

ブログ開設の目的

先述したように、本ブログは自己研鑽のためのアウトプットを目的としております。

学んだ技術、動かしてみたプロダクト、諸々に対する雑多な所感などを発信していく予定です。週に1回を目処に、アウトプットを継続していきます。

ブログの内容

本ブログでは、Kubernetes、CNCF、Golang、マイクロサービスなどを主なキーワードとしています。

これらの周辺技術ややってみたこと等を主に投稿する予定です。

それでは、よろしくお願いします。