プログラマyasuhoの隠れ家

某ソフトウェア企業に勤務するおじさんプログラマyasuhoです

これからプログラマを目指す人へ

真・プログラマになるには
〜明日のプログラマに贈る 58の法則〜

真・プログラマになるには


プログラマを目指そうとしている人が読んだら、いきなり萎縮してしまいそうですが、ここに書いてあることはyasuhoも概ねagreeです。一見厳しい口調ですけど、これからプログラマを目指そうとする人を心配しているのです。希望にあふれて会社に入った人が絶望してしまうことがあるかもしれない。もちろんそんな職場ばかりではないのですが、過酷な環境が少なくないことは知っておくべきでしょう。


とかくネガティブなイメージのつきまとうプログラマですが、まあこういう噂は極端な例ばかりが目立つものです。「理想の職場!」みたいな話は面白くないでしょ。そもそもそんなところばかりだったら、この業界の死亡率はもっと高くなっているはずです。yasuhoみたいに適当な人でもやっていけるんだから、大丈夫ですって。:)


このBlogでも何度か書いているのですけど、プログラマになる上で心掛けておきたいことを、ちょっとまとめておきたいと思います。過去の記事や引用先と重複するところもありますが、どうぞご容赦を。加えて、この業界は会社や環境によって事情は大きく異なります。「年寄りのタワゴト」程度に見てもらえると嬉しいです。


(なお、前提として、職業としてのプログラマを目指していることを想定しています)

プログラマになる上で心掛けておきたいこと

プログラミングを好きになろう


まあこれからプログラマになりたいと考える人がプログラミングを嫌いということは考えにくいのですが、そんなに好きなわけじゃない、という人はいるでしょう。


好きなプログラムを書く作業とはいえ、仕事ですからきついこともあります。自分の思った通りに進まないことの方が多いでしょう。プログラマで入ったのに、なかなかコードを書かせてもらえない、なんてこともあります。


そんな中でプログラマを続けていくには、やはりプログラムを作ることが好きじゃないと、つらいかもしれません。まあプログラマだけが人生ではないので、そんな悲観することはありませんが、ずっと続けていくには大切なことだと思います。

人との会話を好きになろう


プログラマだから、あまり人と話さなくてもいい」そう思う人もいらっしゃるかもしれません。でも実際には会話が最も重要なのです。もちろん技術力は必要ですけど、それは仕様や要求を正しく実装するためのもので、まずは正確なコミュニケーションから始まります。


ソフトウェアを作る作業における会話の比重は以外と多いです。SEが要求仕様を伝える。プログラマが疑問点をフィードバックする。ユーザからバグの報告を受ける。それに対する対処方法を伝える。現役プログラマであれば、日ごろ業務で体験していることでしょう。


コミュニケーションがうまくできない、自分の主張ばかり通そうとする。そんな人には仕事も頼みにくいですよね。そうなるとだんだん仕事が減ってきてしまいます。プログラマを長く続けたいと思うなら、いっぱい会話をしましょう。

何がベストか考える力をつけよう


プログラマソースコードを見ることでプログラムを深く理解することができます。しかし、その知識を自分の主張を通すための武器にしてはいけません。常に技術に対しては中立を保ち、何が利用者にとってベストなのか、を探るクセをつけるといいです。


プログラムに対する機能要求はそのまま鵜呑みにしてはいけません。たいてい本質はその裏に隠されています。それは本当に必要なことなのか?本当に実現したいことは何か?要求元や関係部署と話しあうのが理想です。そうしないと結局「思っていたことと違う」ということで、作り直しになったりします。


時にはそれによって自分が大変になってしまうかもしれません。そんな時はそれを実現するためのコストが実現するメリットに見合うものかどうかを見積る必要があります。ソフトウェアはバランス感覚が大事なので、そういった感覚を身につけるためにも、積極的に話しましょう。

自ら進んで困難な問題に取り組もう


プログラムは様々なコンポーネントが複雑に絡み合って作られているので、訳の分からない問題に遭遇することは珍しくありません。その原因を探り、コードを修正する能力はプログラマにとって必須能力です。そして、この能力は自分で原因を調べて見つけた時に大きく伸びていきます。


よく問題をあっという間に解決してしまう人がいます。そういう人はもちろん才能もあるのですが、難しい問題を自ら進んで請け負う人が多いようです。誰も解決できないような問題なのですから、調べるのは大変です。苦労もするでしょう。でも、それを解決できた時(最悪解決には至らなかったとしても)間違いなく自分の経験値は上がっているはず。

技術を好きになろう


ご存じのように、この世界は技術の発展と衰退が非常に早い業界です。今主流の技術は来年には廃れていることも珍しくありません。長くプログラマを続けていくには、常に新しい技術を学び、実践して、それを習得していくことが要求されます。


ある日見たこともないプログラミング言語のソースを大量に渡され「いつまでにこれが出来るように改造しておいて」なんて言われることはよくあります。そんなことがあっても対処できるように、基本技術と呼ばれるものは習得しておく必要があるでしょう。


例えばコンピュータやOSの仕組みはもちろん、ネットワークやTCP/IPの概要、データベースの基本ぐらいは抑えておいて損はありません。新しい技術や理論は基本の上に成り立っているので、基本技術はいろいろなシーンで役立つはずです。

英語を好きになろう


yasuhoがあれこれ言うまでもないでしょう。いいから、やっとけ(笑)

いろいろ書いてきたけど、結論は


もうコンピュータを好きになろうということに集約されますね。:)


いろいろ偉そうに書いてきましたが、私自身ほとんど達成できていません。お世辞にも仕事の出来るヤツとは言いがたい。それでもyasuhoがこの業界で生きてこられたのはプログラミングが大好きという姿を見て、まわりが助けてくれたからだと思います。


楽しいことばかりではない、むしろ大変なことの方が多いプログラマ。けど、せっかくソフトウェアを作るという力に恵まれたのですから、プログラマであること、そして自分のことを好きになってくれたらいいな、って思います。


ここまで読んでくれた方、年寄りの長話につきあってくれて、ありがとう。:)

おまけ: 年寄りの昔話(読まなくていいです)


会社に入ったばかりの頃、yasuhoは自分の技術力にわりと自信を持っていました。しかしソフトウェア技術の奥深さに、その自信はすぐにうち砕かれます。加えて、苦手なコミュニケーションを多く要求される。あまりに仕事が出来ないので、自分はプログラマには向いてないのかな、と思うこともありました。


そんな私が自信を持てるようになったのは、自社マシンにUNIXを移植する作業を担当された時でした。当時はUNIXに詳しい人も少なく、手探り状態の移植作業。案の定納期は遅れに遅れ、かなり苦労をしました。コンソールに初めて"$"のマークが現れた時は、かなり喜んだものです。


まわりに多くの迷惑をかけましたが、作業の達成感といつしか誰よりもUNIXカーネルに詳しくなっていたyasuhoは自分に自信を持てるようになりました。そしてプログラマであること、開発をすることに喜びを感じられるようになってきたのです。この時の経験は今も自分の基礎となっています。


私は今でもプログラマを続けています。この世界は本当に奥が深くて、長年やっているにも関わらず、毎日が学習と修練の日々。つらいことも多し。それでもぼくは一生プログラマをしていきたいと思っています。プログラミングが好きだから。何よりコンピュータが大好きだから。




過去の関連記事:
yasuhoの隠れ家 - プログラマ/プログラミング関連記事アーカイブ