プログラムは技術だけでは動かない
~プログラミングで食べていくために知っておくべきこと

[表紙]プログラムは技術だけでは動かない ~プログラミングで食べていくために知っておくべきこと

紙版発売
電子版発売

四六判/240ページ

定価1,848円(本体1,680円+税10%)

ISBN 978-4-7741-6523-3

電子版

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

開発言語にくわしい。
さまざまなアルゴリズムを理解している。
開発環境を使いこなせる。
ミドルウェアなどの情報を知っている。
OSやネットワークなどの知識がある。

そんな「技術力がある人」なのに,なぜ仕事では通用しないのか?

数々の現場を経験し,いまも現役プログラマー社長として活躍する著者が,「技術を生かして食べていく」ためにはあたりまえのようでいて意外と見すごされている「技術以外」の話を教えます。

こんな方におすすめ

  • 新人~中堅プログラマ

著者の一言

「プログラマに必要な力」というと,技術的な面が思い浮かぶと思います。たとえば,次のような感じではないでしょうか。

「開発言語にくわしい」
「さまざまなアルゴリズムを理解している」
「開発環境を使いこなせる」
「ミドルウェアなどの情報を知っている」
「OSやネットワークなどの知識がある」

では,そのような「技術力がある人」が実際にプログラマとして活躍できているのでしょうか?

私が仕事としてプログラミングを頼んだ経験で振り返ってみると,

「頼んだものと違う動きのものが出来上がってきた」
「いつまでたっても出来上がらない」
「安定して動かない」
「性能が出ない」
「仕様変更などの応用が効かない」
「ソースコードをほかの人が理解できない」

など,「技術的な力はあっても,仕事として使い物になるものができてこない」ということはたくさんありました。

「仕様書を元にコーディングを行う」場合でも,「依頼者からの要求を実現する」場合でも,「そもそも,どんなものを作りたいのか?」が理解できないと始まりません。つまり「理解力」が重要です。

また,仕様や要求は,書類を読んだだけで理解できるものではありませんので,理解できるまで「やりとりする力」も必要です。プログラマの仕事以前に,普通のビジネスマンとしての能力もとても大事なのです。

さらに,仕事としてプログラミングを行う場合,「期間」「費用」の制限もありますし,「保守性」「拡張性」も大切です。もちろん「品質」も。趣味のプログラミングならいくらでも自分のこだわりを貫いたり,自分が好きなところだけ凝って作ることも許されますが,仕事では「仕上げる速さ」「シンプルさ」なども求められるのです。

そういった,「技術力」以外の「プログラマとしての仕事力」こそが,プログラマとして活躍できるとともに,自分自身もやりがいをもって楽しめる状態を実現するための原動力となります。

本書では「私が見たこと・経験したこと」「私が考えたこと・やっていること」をもとに,そうした力を身につけるためのヒントをまとめました。私以外の方の本や記事も目にしていますので,影響をまったく受けていないということはありませんが,それらをそのまま引用したりするのではなく,あくまでも私自身の考えとして書きました。私自身が,「こうすべき・こうあるべき」という一般論はあまり好きでなく,「実際にやった人の経験談が一番ためになる」と感じているからです。

本書が,プログラマとして活躍するための参考になれば幸いです。

この書籍に関連する記事があります!

一生,プログラマとしてメシを食うには
「プログラマは技術職」そんなイメージがあるかもしれません。

目次

第1章 なぜ,技術力はあるのにいつまでも仕上がらないのか

  • マシンスペックも若い人の技術力も確実に上がっている,けれど
  • 技術は理解できても,業務がわからないと売れない
  • プログラマの仕事は「要求の理解」から始まる
  • 「おそらくこういうことだろう」で仕事を進めるから問題になる
  • 「高すぎる理想」が進捗の邪魔をする
  • 現実は泥くさい例外の塊
  • 重要なのは「できるかどうか」ではなく「解決できているかどうか」
  • 「自分の完璧」と「他人の完璧」は違う
  • 時間が経つほど,相手の要求水準は高くなる
  • 自分が考えているほど,相手は気にしない
  • コラム ブログをどれぐらいの時間で書くか

第2章 意味のないルールやプロセスに縛られるとうまくいかない

  • なぜ,ドキュメントチェックの鬼から逃げられたのか
  • 敵に回すと怖い人とこそ,本音のお付き合いを
  • いかに「創造的に」手を抜くか
  • 目的を達成する,より良い方法があるならば,相談するのはあたりまえ
  • 「お客様は神様です」的に振る舞う元請けさんには注意
  • 「見積を考える段階」でプロトタイプを作る
  • 請負仕事であっても「指示どおりに進めればうまくいく」わけではない

第3章 「理想を詰めこんだ製品は喜ばれる」わけではない

  • 理想はすべて詰め込んだ,けれど完成しない……
  • 「どんな要求にも対応できるようにする」からうまくいかない
  • 自己満足の開発
  • 「安ければいい」ってものでもない
  • お客さんが喜ぶだけではダメ

第4章 人とのつながりが技術を生かす

  • 外に出るほうがこれだけお得
  • 専門外のイベントに足を運んでみる
  • コラム 一方的に講義を聞くだけの勉強会はつまらない
  • 時間をかけて交流を深めるからこそ得られるものがある
  • 「会いましょう」と言われたら,すぐに行く
  • 甘える,頼る
  • 技術力だけでなく精神的にも頼られるようにする
  • なぜ,コミュニケーションがうまくいかないのか
  • 指示の背景を明確に
  • 相手をいらつかせないことの難しさ
  • プライドの捨て方
  • 切れない・先走らないために
  • 切れない方法
  • 知ってもらわなければ損をするだけ
  • 広報活動がかつてなくやりやすくなった
  • コラム なんでもやってみる

第5章 付加価値の高い仕事を得るには

  • どうせやるなら,ほかではできないような難しい仕事を
  • ソースの修正が難しいので,一から作る
  • なぜ3時間でプロトタイプが作れたか
  • 「プロトタイプとして割り切る部分」と「最初からきちんと作る部分」を明確に
  • 周囲を巻き込むことでタイトなスケジュールを乗り切る
  • 本稼働でのトラブルの芽を摘んでおく
  • 信頼性と保守性を高める
  • せっかく作ったものをかんたんに終わりにしない
  • 最初は実績をアピールすることが大事
  • 改良を続ける
  • 機能拡張をするときに注意すべきこと
  • 製品は横展開もおいしい
  • 付加価値の高い仕事をするための8つのポイント

第6章 「2人プロジェクト」で新しいことを成功させる

  • 「自分たちの製品を作ろう」として失敗するパターン
  • 「売れる製品」を作るための秘訣
  • 「別の会社の2人」で始めるのが最適な理由
  • 人数を増やしすぎるとデメリットが
  • プログラミング的に難しいことは少ない
  • 「口で言う」のと「本当にやる」のではまったく次元が違う
  • 「自ら課題を解決していこう」という気持ちをどう維持するか
  • 問題をいっしょに乗り越える
  • お互いの会社のプレッシャーといかにつきあうか
  • 自分の専門以外の専門家とコラボレーションするには

第7章 受託開発から製品開発・販売へ

  • 受託開発は安定して稼げるが,金額や喜びは少ない
  • 製品開発・販売は,得意分野で勝負できて,売れれば楽しい
  • 稼げるまでの間,どうやって食いつなぐか
  • 「すでにある」から売れないわけではない
  • みんなが「いいね」という製品に独創性はあるのか?
  • 理解しにくいものには,新しい何かを生み出す可能性がある
  • 価格設定をどうするか
  • 安価な製品は「手離れよく,たくさん販売する」
  • 高価な製品では「信頼関係を築けるか」が大事
  • どうやって知ってもらうか
  • 軌道に乗った後の手間がバカにならない
  • 安価な製品と高価な製品,どちらが事業としてやりやすいか?
  • コラム 無知をさらけ出すのは「恥」?それとも「近道?」

第8章 自分で事業部を立ち上げ,運営する

  • 管理のされ方に不満を持って社長に直談判
  • ノルマが達成できない苦しさ
  • 受託開発は,事業部運営の初心者にはうってつけ
  • 「自分の給料の3倍は稼ぐこと」が会社運営の基本となる理由
  • 受託開発には出来高制が向く
  • これからは「出来高制が最良の選択」とはならない
  • 3年で種まきをして,失敗を積み重ねてはじめて見えてくる

第9章 日本の製品を世界で動かす

  • 日本人はなぜ舶来志向が強いのか
  • 「実績がすべて」だから担当者はリスク回避に走る
  • 競合を意識して,海外の会社を儲けさせていていいのか?
  • 海外に行ってみてはじめてわかることもある
  • タイでアメリカやヨーロッパのベンダーはあまり歓迎されていない
  • 国民の3分の1以上がLINEユーザー
  • スマホ普及率は日本より上,動画視聴率は世界2位
  • モバイル回線はパンク寸前
  • 100店以上が同じものを売っている中で,どこで「差別化」されるのか
  • 国が違えばニーズも変わる
  • 「良い製品づくり」だけでなく「良い人間関係づくり」が大事

第10章 一生,プログラマとしてメシを食っていくには

  • 心の中で「作ればいい」と思ってませんか?
  • 積極的にビジネスに関わっていく姿勢が求められる時代
  • 「自分が何を得意か」を知ってもらう
  • 不景気で武器になるのは,結局「得意分野」
  • プログラマの「得意分野」は「得意なプログラム言語」のことではない
  • だれも手を出さない仕事こそチャンス

著者プロフィール

小俣光之(こまたみつゆき)

日本シー・エー・ディー株式会社 代表取締役社長。
1989年新卒で入社後,プログラマとして仕事を続け,2005年11月から社長となるがプログラマも兼務している。以前はCADシステムやWEB,データベースなどのプログラミングもしていたが,最近はネットワーク関連の製品・特注品の開発を中心に仕事をしている。
UNIX系のネットワークプログラミングにこだわり,プログラミングの著書を7冊執筆。また,プログラマの仕事のすばらしさを啓蒙することに目覚め,『プログラミングでメシが食えるか!?』(秀和システム)を執筆。さらに,技術者を活かすリーダーの心得をまとめた記事をITmedia エンタープライズに連載し,著書としてまとめた『ドジっ娘リーダー奮闘記』(秀和システム)を執筆。『ルーター自作でわかるパケットの流れ』(技術評論社)に続き,本書は12冊目の著書となる。
ブログ:オルタナティブ・ブログ
Twitter:@mkomata