give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

自分の強みと弱みの棚卸し

はじめに

会社から自分の強みと弱み(長所と短所)を自己分析して、今期の自己啓発目標を立てるという課題を出されました。
参考までにこっちにも載せておきます。

強み(長所)

まず一覧で挙げます。

  • 高いプログラミングスキルとアーキテクチャ設計力
  • システム開発、プログラミング全般に関する知識
  • 勉強熱心さと現状に満足しない高い向上心
  • IT関連の最新トレンドをキャッチアップしようとする姿勢
  • 発想力と実現力
  • 語学力(英語と中国語)
  • 経理関連の基礎知識

で、以下が詳細です。

高いプログラミングスキルとアーキテクチャ設計力
  • ただし、あくまで「今の社内で評価すれば」という前提条件付きです。
  • 十数名いる開発メンバーの中では、きっとベスト3には入るはず。
  • 得意分野はオブジェクト指向設計オブジェクト指向プログラミング、SQL、.NET関連、テスト駆動開発など。
  • 社内でほとんど必要ないスキル、たとえば大規模Webサイト構築とか、並列分散処理だとか、そういった分野は未経験なので全くもって素人(?)です。
システム開発、プログラミング全般に関する知識
  • こちらも「今の社内で評価すれば」という前提条件付きで。
  • ソフトウェア工学や見積り技法、コードメトリクスの分析、等々を浅く広く勉強しています。
  • 新しい技術は本を読んで勉強することが多いです。どんな本を読んでるのかは、ブクログを参照。
勉強熱心さと現状に満足しない高い向上心
  • 仕事半分、趣味半分で、プライベートの空いた時間は何かしら勉強したり、本を読んだりしてることが多いです。
  • 色々な技術を追いかけるのは単純に楽しいですし、自分のスキルが向上すれば仕事も効率よく進められ、なおかつ周りから評価もされるので、収入アップにもつながりやすいです。なので、自分のため( + 家族のため)に勉強しています。
IT関連の最新トレンドをキャッチアップしようとする姿勢
  • 前述の勉強熱心さと向上心の延長線上にある姿勢です。
  • たとえば関数型プログラミングやクラウドは社内で今すぐ使うことはないですが、いざというときにそれを選択肢に加えられるよう、情報を仕入れておくことが大事だと思います。
発想力と実現力
  • 昔から絵を描いたり*1、音楽を作ったり、クリエイティブな作業をするのが好きでした。
  • なので、頭の中で「こんなことしたら面白そう」とか「これを一回やってみたい」というようななアイデアは結構頻繁に出てきます。
  • それをアイデアだけで終わらせるのではなく、「じゃあやってみよう」とすぐに実行に移し、実現してしまうのも速い方だと思います。
  • このブログに載せた話だと、社内プログラミングコンテストとかコードレビューコンテストなんかです。
  • あとは社内の非効率な業務を効率化するための自動化ツールみたいなのも、さらっと自作したりしています。
語学力(英語と中国語)
  • ただし、平均的な日本人プログラマと比較した場合、という前提条件付きで。ネイティブレベルにはほど遠いです。
  • 英語は昔から好きでした。TOEICは860点持ってます(4〜5年前の話ですけど)。仕事も外資系なので英語はちょくちょく使ってます。
  • 最近は技術系の洋書も読んでます。最初はハードルが高いんじゃないかと思っていましたが、意外とそうでもないです。
  • 中国語は目下勉強中。まだまだ日常会話もままならないレベルですが、いつか使う時が来るかもと思いながら先行投資しています。
経理関連の基礎知識
  • これは簿記2級の資格を持ってるから挙げてみただけです。経理に配転されても大丈夫とか、そんなレベルではありません。
  • でも、ウチの会社は製造業なので、固定費と変動費とか、製造原価といった用語が出てきたときにちょっと役に立ってます。
  • ちなみに2級に合格した時の勉強方法はこちらです。

弱み(短所)

こちらもまず一覧で挙げます。

  • インフラ周り
  • Unix/Linux(特にCUI)
  • Webデザイン
  • 社外にアピールできるような、より高度なスキルと大きな実績
  • 周りを巻き込んでチーム、グループ、組織を改善していくスキル

で、以下が詳細です。

インフラ周り
  • 具体的にはネットワークやサーバー関連の知識です。
  • もちろん大体のことは一通り勉強済みなのですが、自分一人でネットワークやサーバーを構築したりするのは自信がないです。
Unix/Linux(特にCUI)
  • 単純に業務経験的な話だと思うのですが、あまりUnix/Linuxを使う開発業務に携わることがありませんでした。
  • なので、Unixコマンドやシェルスクリプトを華麗に使いこなすような芸当はできません。いかにもハッカー的ですごく憧れますけど。。。
  • ただ、最近はVimを勉強したり、Unix/Linuxを使った開発にもちょっとずつ慣れようとしています。
Webデザイン
  • 実用上問題ないレベルのWebアプリは作れても、なおかつ見た目もキレイでオシャレに仕上げるのは苦手です。
  • デザイン系の本をちょこちょこ買って読んだりはしていますが、自分で満足のいくようなキレイなUIを作ったことはないです。
  • 幸い仕事上でキレイなUIを作れと言われたことはありませんが、Apple製品が好きなくせに自分ではキレイなUIが作れないというのは、ちょっと悔しいです。
社外にアピールできるような、より高度なスキルと大きな実績
  • 今の会社で仕事をする上ではまあまあうまくやっていけてますが、twitterやWeb記事なんかで頻繁に名前を目にするような社外の優秀な技術者と比べたらどうだと言われたら、まだまだだと思います。
  • 日本の平均的なプログラマよりかは上じゃないかと思っていますが、それでもギークとかハッカーとか言われるような人達ははるか雲の上です。
  • 基本的にプライベートでは業務と無関係な自作プログラムを書いたりすることはないので、社外の人にこれが私の書いたプログラムです、と見せられるようなものはほとんどありません。
  • もし仮に今の会社がなくなっても、今と同じ年収を維持できるくらいのスキルは常に持っていたいのですが、まだちょっと自信がないです。
周りを巻き込んでチーム、グループ、組織を改善していくスキル
  • これは弱みというより悩みです。
  • 自分一人のスキルを上げたって、自分一人では解決できないことがたくさんあります。
  • たとえば、アジャイル開発の導入、最新のPCや開発ツールの導入、C#Perl以外の言語の使用、互いに刺激し合えるような技術力の高いメンバーとの共同作業、といったことは自分一人の努力じゃ無理で、周りのメンバーや組織を巻き込んで改善しなければなりません。
  • なので、技術力だけでなく、交渉力とか説得力といったスキルもきっと必要なんだと思います。でもあんまりうまくないんですよねえ。

で、自分としてはどうしたいか?(自己啓発目標は何か?)

プログラマとしての強みを継続して伸ばす
  • 弱みとして挙げたインフラ周りの知識とかUnix/Linuxとか、Webデザインなんかは、たぶん必要になったら必死に勉強してなんとか身に付くんじゃないかと思っています。勉強しても間に合わない時は自分より詳しい人に助けを求めます。
  • 今までそんな感じやって来れたので、テクニカル面の弱みは積極的に克服しようとしなくても大丈夫かなと思っています。
  • それよりも強み(というか自分の好きなことや得意なこと)を伸ばす方が楽しいですし、伸びしろも大きいと思います。
  • しかし、やりたいことや興味を持った技術は頻繁に変わるので、自己啓発目標として何か一つ選べと言われると、困ってしまいます。
社内の評価に満足せず、評価の基準を社外に持ち続ける。業務外の時間でもプログラマとして活動する
  • これは弱みで挙げた「社外にアピールできるような、より高度なスキルと大きな実績」に対応する自分の目標です。
  • 具体的には自分でWebサービスを構築したり、IT系のイベントで登壇したり(まずはLTぐらいから?)、そういうことですね。
  • 今まではそうした活動はほとんどやってきませんでしたが、ちょっとずつやっていかなきゃな〜と思っています。。。(ちょっとトーンダウン)
自分が、みんなが、楽しく働ける環境を作る
  • これは弱みで挙げた「周りを巻き込んでチーム、グループ、組織を改善していくスキル」に対応する目標です。
  • が!これが一番大変なんですよね〜。周囲を変えていくのがいかに大変なことか・・・。
  • 正直、気合いを入れて今の現場を変えていく覚悟はまだないです。覚悟を決める時は自分が働く現場を変えることも選択肢に入ってくると思います。

おわりに

普段から自分の強みや弱みはなんとなく頭の中でわかっていたつもりでしたが、改めて文章として書き出してみると、自分の中のスキルが整理されていくようで面白かったです。
自分の強みと弱みの棚卸し、是非やってみてください!

*1:正確に言うと描いてたのはマンガだったり。。。