mitログ

学習ノート代わりに学んだことをまとめるためのブログです。

何が分からないのかが分からない

前提として、今までの経歴を少し書きます。

Webエンジニアへの転職前

プログラマ時代

SIerプログラマとして開発したもの、全てオンプレミスなシステムでした。

経験言語は、VB.NET, C#.NET, C++Builder(ちょっとだけ)等で、Windows Formで作るアプリケーションがほとんどでした。

また、0からプロジェクトを作成するといったことはなく、誰かが作成したプロジェクトへ機能追加やバグ修正をしていました。 業務外にプログラミングの勉強をすることもなく「ちょっとしたプログラミングができるだけ」の状態でした。

プロジェクトリーダー時代

ずっとプロジェクトリーダーをやりたいと主張していたため たまたま社内の事情によりWebサービスのチームリーダーの席が空くタイミングで、Web系のプロジェクトに参画しました。

「リーダーはソースコードを書かずにプロジェクトを管理するべきだ」というミッションのもと React.jsで書かれたソースコードを見てさっぱり分からなかったため、SPAやMVVMなどの仕組みを勉強しながら、 わからないことはプログラマ1に質問して理解を試みました。

リーダーとしてプロジェクトを管理する上で必要な技術的要素は 都度プログラマとコミュニケーションをとることで補っていたため 自身がプログラミングすることはありませんでした。

転職を意識した頃

とあるタイミングで、SIerではなく自社製品の開発に携わりたいと考えたため求人情報を見始めました。 すると、自社開発はWeb系エンジニアの求人しかないという状況に気づきました。

しかし、その時の私はReact.js(MVVM)のソースコードはずっと見てきたので、きっと自分はWeb系のプログラマになることもできるだろう!という根拠のないポジティブさがありました。2

そして今までずっと馴染みのある(と思っていた)C#.NETでWebサービスを作っている会社に内定を頂きました。

転職直後

ソースコードがさっぱり理解できない

分からなさすぎるせいで何がわからないのかもわからず、パニックに陥りました。 そのため、どこから質問していいかもわかりませんでした。

少し整理すると、こんな状態です。

技術要素 経験 経験
C# 3年 ちょっとしたプログラミングができる。
ASP.NET MVC なし 未知の世界。
RDB 6年 初めてのRDBだったが、他のRDBではDB設計、クエリ作成、簡単なクエリチューニングができる。
HTML/CSS なし 少し読めるけど、いざ書こうと思うとどうしていいか分からない。
JavaScript なし 上に同じ。
GitHub なし 業務はずっとSVN。Gitは勉強会で少し触ったことがある(CommitのほかにPullとかPushがあるらしい、程度の理解)。
Jenkins なし 素敵なおじさんらしい。何かを動かしてくれる人??何のためにいる人なんだろう。
AWS 1年 ログインしてIAMなどの機能を触ったことがある。S3とかDynamo DBとかの言葉をさらっと勉強したことがある。
監視ツール なし 未知の世界。
アジャイル なし 憧れを持っていたので独学で調べていた。チームに「ふりかえり」の文化を取り入れてみるなど我流でチャレンジしていた。

優秀なエンジニアしかいない

入社前は自分でも頑張れば何かしらの役に立つと思っていましたが、井の中の蛙だったと認識しました。

周りのエンジニアは技術力はもちろんのこと、自身の取り柄だと考えていた積極性やコミュニケーション力も兼ね備えた優秀なエンジニアばかりでした。

私みたいな半端ものはおらず、自分は何ができるのだろう→何もできないのではないか、と思い始めました。

最初の1カ月

毎日、辞めることを真剣に考えました。

元のSIerに居ていれば、それなりに評価の元にずっと幸せに暮らせていたかもしれない。 何故身の丈に合ったことをしなかったんだろう。新しい会社の人たちにも、前の会社の人たちにも迷惑をかけて、自分は本当に最低な人間だ。なんてことを考えていました。

新しい会社はとても良くて、こんなところで働いてみたい、と前職で憧れても手に入らなかった環境でした。

そこで、どうにかして辞めないで良い道筋がないものか。辞める結果になるのならできる限りのことにチャレンジするか、と腹をくくりました。

どうやって今もまだ自分を保ちながら働いているのか、については次回以降にまとめることにします。


  1. 無知なリーダーに対して理解できるように丁寧に教えてくださる方だったので非常に助かりました。この方がいなかったら私はプロジェクトを管理することもままならなかったでしょう。感謝しかありません。

  2. VB.NETを書いたことがあると言ったらVBAのプロジェクトに参画することになったり、C#.NETを書いたことがあると言ったらC++をすることになったり、前職でチャレンジ精神のある(?)環境にいたせいかもしれません。

ブログを始めます

何のためにブログを書くのかを、自分のためにまとめておこうと思います。

ブログを始めるきっかけ

転職

大学卒業以降SIerを2社経験し、昨年秋頃にSIerという枠からの離脱を考えました。

そして、ありがたいことに先々月より自社開発のWebサービスをやっている会社で働き始めました。

 

入社後の壁

入社前は、自分の技術力は高くないけれどなんとかなるだろう。と思っていたのですが

、いざ業務が始まると本当に世界が違うということを痛感しました。

何が辛かったかというと、

  • ソースコードがほとんど読めない
  • 同僚の言葉が難しくて会話が理解できない
  • 同僚の技術レベルが高い

今まで自宅にPCもない開発環境もない状態で過ごしてきたのですが、これまでと同じ生活をしていたら業務についていくことすらままならない、という現実に直面しました。

 

自己学習を始める

SIerに居たころには技術力の向上に目を向ける必要性がありませんでした。

プロジェクトリーダーをやらせていただいた際も、ソースコードを書かなくてよい。書かないでうまくプロジェクトを管理できる方法を模索したほうが良い。という考えの元に働いていました。

そのため、転職後初めて自分の技術力に向き合い、苦しみながらもどうするべきかを考えました。

そして、業務時間外の自己学習を始めました。

恥ずかしいことに30代にして初めて自宅で開発環境を構築しました。

 

ブログを書く目的

自己学習の備忘録

このブログは、主に自己学習内容の備忘録として作成しました。

「どんな学習をして何を学んだか」を主目的としつつ、

「何にチャレンジしてどう思ったか」「新しい会社働くうえでの悩み」も書こうと思います。

言語化スキルに向き合う

現在の会社の最終選考時、「貴方はしっかり考えているのに、言語化が上手ではない。言語化スキルを伸ばすことが貴方の課題だね。」と言われました。

その上で内定をいただいたのですが、その時から「言語化」というものに目を向けました。

ブログという他の人の目にみえる場所でアウトプットを日常的に行うことで、言語化スキルの向上も狙いたいと考えています。

[補足] ブログに書かないこと

自戒のために記載しておきます。

  • ネガティブなこと"だけ"をかかない
  • 会社の愚痴"だけ"をかかない

"だけ"という部分には、何らかの現象や感情に対して、それを分析した上で次につなげる行動を書いたり、自分が持つべき志をかくようなものであれば可としようと思っています。