技術者として生き残るためにやるべき10のこと

先日、母校の懇親会で2テーマ発表させていただいたのですが、時間が足りず3本目を説明することができませんでした。
一応プレゼン資料も生徒に渡してくれることになったらしいのですが、あの資料じゃあまりにも伝わらないだろうということで
このブログで要約することにしました。(高橋メソッド風な資料だったので)

昨今のIT業界を見て思うこと

エンジニアの労働価値が下がっているなと正直なところ思う。
GREEMixiなどのソーシャルメディアなどを運営する業者などを除いて、IT業界のほとんどは企業からシステム開発を請け負っているスタイルがほとんどである。
多くのシステム開発は既存ビジネスをより効率化するために行っている。しかしながら、今は新しいシステムを開発を行うためのお金があまりない。
そう、不況だから。システム屋といっても、システムを発注する企業様がいないとビジネスとして成り立たないのである。
仮にシステム開発を請け負ったにしても企業間の価格競争の上、開発資金は限られてくるだろう。
そうすると起こるのがエンジニアの価格叩きだ。今まで月60万でやりとりされるエンジニアが40万、50万でやりとりされることになる。
だがしかし、求められる技術スキルは変わらないのだ。当然エンジニアへのバックもすくなるなる。
価格を叩きに叩いて次に起こるのは海外への委託。つまりオフショアだ。誰でもできるような仕事はおおまか海外へ流れてしまう。
そうすると日本で働く並のエンジニアは日本で働くことが難しくなってくる。
クラウドの普及もそうである。IaaSPaaSによってハードウェアの導入、保守コストも下がる。
企業にとっては嬉しいが今までハードウェアを保守してきたエンジニアは保守仕事に頼っていくことができなくなる。
加えて最近はアジア諸国で活発な動きがみられる。
インドを例にあげると、今インドでは国としてIT技術者の育成に力を入れている。
ちなみに言っておくとインドのIT技術者のほとんどは日本でいうところの「東大卒」級のエリート達です。しかもその人達の給与は
日本で働く新卒以下の給与です。こんな人達が日本にぞろぞろときたら大変ですね(笑)

ただ、そんなに日本のIT業界に悲観的になることはありません。
価格を叩かれるのも仕事が減るのも「並のエンジニア」だけです。
実際のところ日本にはエンジニアが足りませんが、それは「優秀なエンジニア」であって、
「並のエンジニア」は腐るほどいるわけです。
エンジニアとしてこの先仕事をしていきたいなら、「並のエンジニア」より秀でていないとかなり難しいでしょう。

そんなこんなで少しでも「優秀なエンジニア」になるためにやるべきこと10を紹介していきます。

1.Twitterを始める

Twitterを始めましょう。Twitterは技術情報を得るのにとても有効なツールです。優秀なエンジニアを片っ端からフォローするとよいでしょう。
また、自分でも技術に関する内容や仕事に関する内容(業務に関する詳細はダメよ!)もツィートしましょう。
140字という限られた文字数ではあるけれど、伝えたいことを短く伝えるためのよい練習となります。

2.ブログを書く

ブログも書きましょう。ライティングに強くなります。なるべく個人的な日記は避け(書くなって言ってるんじゃないよ)、時事だったり、技術だったり、マネジメントだったり、考察しながら書くのがよいです。(ちゃんとしたことを沢山書いてると転職のときに役に立ちます。多分)。

3.本を読む

エンジニアに限らず社会人は本読んで勉強するのは当たり前という気もするのですが。。。どんなに忙しくても読書は習慣化しましょう。
電車の中、トイレ、お風呂、会社のお昼休みとか、割と読む時間は沢山あります。

4.とにかく実践(技術の)

やればやるだけ上達します。色んなものが見えてきます。正直、勤務時間じゃ足りないです。
不足していると思う点は、どんどん実践して身につけましょう。
プログラマに限って言えば、趣味で書いたコードもせっかく書いたんだからせめて人が見れるところに置いておこう。
誰かがアドバイスしてくれるかも。また、人様に見せるコードだからちゃんとしてなきゃという気持ちになる(はず)
(Google Code, GitHub, Souce Forgeなど)
(転職の際に趣味で書いたプログラムを公開してるかと聞く企業様もいたりする)

5.他人のプログラムを読む(プログラマ向け)

教科書を読むのと一緒で、プログラムも読んで考えればそれだけで上達します。
優秀なエンジニアのブログやOSSでソースダウンロードしたりと、「良いコード」を沢山読みましょう。

6.英語に苦手意識を持たない

僕も英語は苦手です。JavaとかVBで検索すると日本語のページは沢山Hitしますが、それらはもう枯れた(古い)技術だからです。
エンジニアとして人より秀でるなら当然新しい技術に目を向ける必要があります。日本語の解説を待っている暇はありません。
英語のサイトも辞書片手でもよいので読む習慣をつけましょう。

7.勉強会に参加する

技術系の勉強会はほとんどが雄志によるものです。初学者にも優しいので定期的に足を運ぶことをお勧めします。
https://www.google.com/calendar/embed?src=fvijvohm91uifvd9hratehf65k%40group.calendar.google.com

8.勉強会を主催する

勉強会などで発表が認められたり、主催者と意気投合するなどすると勉強会の運営に誘われることもあります。
(もちろん自分で新規に勉強会を立ち上げるのもありです)
学ぶより教える方が100倍勉強になります。社内勉強会などでも率先して主催しましょう。

9.チームマネジメント

技術者といえども、チームで作業するし、もちろん人の上に立つこともあります。
技術者だからと言ってないがしろにしないこと。

10.ビジネスを理解する

ビジネスのないところにITは必要ありません。エンジニア以前にビジネスマンであることを自覚する必要がある。

これが全部できるようになったら技術者としては喰うには困らないと思うし、
こういう日々の鍛練を行ってこそエンジニアだと思う。

エンジニアとメッサー(外科医・執刀医)は似ている。
メッサーは患者の命を預かっている。とある有名な外科医の平均睡眠時間は3時間だそうな。
患者の命を預かる上で自身の、世の中の医療技術の進歩を止めるわけにはいかない。
それと同じように、エンジニアもお客様のシステムを、お客様の大事な資産を、強いては未来を託されているではないか。
そんなエンジニアが日々の鍛練を欠いてシステム開発に携わって果たしてよいのであろうか。
疑問に思う。