始めに
現在、私は新卒2年目のエンジニアとして、IT系企業に勤めています。
先日、『情熱プログラマー』という有名な本を読んだのですが、技術の道で生きていこうという私にとって、
非常に参考になったのでまとめました。
(また、私と同じような新人エンジニアの方の役に少しでも立てれば、と思っています。)
自己紹介
・某独立系IT企業の新卒2年目ITコンサルタント
・文系出身で学生時代のプログラミング経験なし
・仕事で使っている言語はRubyがメイン
#『情熱プログラマー』の内容
2010年に改訂版が出版された『情熱プログラマー』はプログラマー1人1人のキャリアの歩み方の指針となり、
どんなプログラマー人生を送ると充実感や幸福感を得ることが出来るかについて述べられています。
そのため、この本を読んでもコーディングスキルをはじめとする技術的な知識は殆ど身に付きません。
副題の通り、「ソフトウェア開発者の幸せな生き方」を示してくれる本となっています。
また、1つ1つの見出しが2~3ページなので、非常に読みやすいです。
心に残った点
①一に練習、二に練習
これからも品質という基準で戦うつもりなら、実務で練習するという考え方は捨てなければならない。
自分の技術に対して時間を投資しなければ。
エンジニアの仕事は、特に新人の頃は、常に自分の未経験のことばかりだと思います。
実際、私もそうでした。
そのため、知識は仕事の中で学習していくものと思っていました。
しかし、本書では学習について上記のように述べられています。
初めて読んだ時の自分の技術への姿勢の甘さを痛感しました。
実務は常に本番であって、練習ではない。
仕事で「これは練習だから失敗して良い」なんてものは1つもない。
そんな当たり前の事を改めて認識させられました。
現在は業務の中で練習しようという発想を捨て、どのような練習が自分に必要なのかを見極め、
練習の時間を作るようにしています。
②できないことは「できない」とはっきり言う
「できません」の乱発はいけない。
必ずしも出来るという確信はなくても、試しにやってみたいという意欲がある時は、その希望をそのまま伝えよう。
「簡単にはいかないと思いますが、とにかくやってみようと思います」というのも素晴らしい返事の1つだ。
社内には様々な仕事があり、新人と言えども色々な仕事が舞い込んできます。
勿論、自分の本来の業務が非常に忙しい時は、しっかり「出来ません」と伝えるべきです。
しかし、自分が経験したことがないことだから「出来ません」やスキルがないから「出来ません」は非常に勿体無いです。
特に新人の頃は出来ない事ばかりなので、このような「出来ません」連呼になってしまいがちです。
しかし、自分が興味あることならば、思い切って本書で述べられている上記の回答をすることを私もオススメします。
そうすることで例え、失敗しても何らかの新しいスキルが身に付きます。
自分のスキルセットが増えることは将来の自分の仕事の幅に繋がります。
私自身の話では、普段はRubyエンジニアですが、先輩の縁から社内のシステムロゴ作成の仕事を何件か請け負う中で、
Inkscapeというデザインソフトの基本的な使い方を習得しました。
③今の職務を全力で
成功したいという日々の衝動を抑えるなんて、禁欲的で無理な目標だと思うかもしれない。
けれども、現実に焦点を合わせていれば、日々の仕事の小さな勝利・仕事がうまく出来たという実感・ビジネスの問題にエキスパートとして関与している実感を楽しむことが出来る。
逆説的だけど、成功への執着心を捨て去ることで成功する能力が強化されるんだ。
私は現場に慣れてくると、「この高難度の仕事を完了させれば、次のランクアップ評価への足しになる。」「この低難度の仕事は評価に繋がらない」といったことを考えるようになりました。
しかし、そんな雑念がある状態で仕事をしても良い仕事が出来るはずなく、成果物にムラが出来てしまいました。
そのため、本書にある「目の前の仕事に集中する」という当たり前のことを再認識し、実践するようになりました。
その結果、仕事を楽しんでいる実感がわき、また、「○○がランクアップしたらしい」といった周りの噂話に気を惑わされることなく仕事に集中することが出来るなど非常に良い方向に働きました。
評価を気にするなというのは(特に新人のうちは)社会人として難しい事かもしれません。
しかし、まず「目の前の仕事に全力を持って臨む」ということを心掛けてみることを新人の方々には伝えたいです。
最後に
本書の最後に書かれていることがエンジニア生活の全てを表しているのではないか、と2年目の若輩者ながら思っています。
(もし間違っている場合は、教えてください。)
ソフトフェア開発はやりがいがあって、しかも報われる仕事だ。
芸術活動のようにクリエイティブでありながら、芸術とは違って、具体的で数量化出来る価値を生み出せる。
ソフトウェア開発は楽しい!