本「理想的なプログラマ。 ソフトウェア開発の専門家になる方法»

画像 ソフトウェア開発の世界で成功するすべてのプログラマーには、共通の属性が1つあります。彼らは、作成するソフトウェアの品質を最も重視します。 これが彼らの基礎です。 彼らはプロだからです。 この本では、ベストセラーの本「Clean Code」の著者である伝説の専門家Robert Martin(コミュニティでは「Uncle Bob」として知られています)が、開発のための方法、ツール、アプローチについて説明します。 「完璧なソフトウェア。」 この本には、プロジェクトの評価やコードの記述からリファクタリングやテストまで、プログラミングのあらゆる側面に関する実践的なアドバイスが満載です。 この本は、メソッドの説明以上のものであり、開発プロセスへの専門的なアプローチに関するものです。



なぜこの本に興味がありますか? おそらくあなたはプログラマであり、プロフェッショナリズムの概念に興味があるからでしょう。 そして当然です! プロフェッショナリズムは、私たちの職業に非常に必死に欠けているものです。 私もプログラマーです。 私は42年間プログラミングを行ってきましたが、この間に多くのことを見てきました。 解雇されました。 私は天国に称賛されました。 私はグループのリーダーであり、上司であり、普通の従業員であり、事務局長でさえありました。 私は優秀なプログラマーと仕事をし、slugs2と仕事をしました。 私は、最先端の組み込みソフトウェア/ハードウェアシステムと企業の給与システムの両方を開発しています。 COBOL、FORTRAN、BAL、PDP-8、PDP-11、C、C ++、Java、Ruby、Smalltalk、および他の多くの言語でプログラミングしました。 私は平凡なフリーローダーで働き、高度な資格を持つ専門家と働きました。 これはこの本に捧げられた最後の分類です。



そのページでは、プロのプログラマーであることがどのようなものかを判断しようとします。 私の意見では、真のプロに固有の属性と兆候について説明します。 これらの属性および属性が何であるかを知るにはどうすればよいですか? 私自身の苦い経験からこれをすべて学んだからです。 プログラマーとして最初の仕事に就いたとき、プロと呼ばれることは誰にも起こりませんでした。



それは1969年でした。 当時私は17歳でした。 私の父は、ASCと呼ばれる地元の会社に私をパートタイムプログラマーとして雇うよう説得しました。 (はい、父はその方法を知っています。私の目の前で、彼は加速する車の道に立って、手を上げて「スタンド!」と命じました。車が止まりました。父が拒否するのは難しいです。) IBMコンピューターのマニュアル、および数年間の更新の説明の記述を強制されました。 そのとき、「ページは意図的に空白のままになっています」というフレーズを初めて目にしました。



マニュアルを数日更新した後、上司はEasycoderで簡単なプログラムを書くことを提案しました。 彼の要求は私の熱意を喚起しました。それまでは、実際のコンピューター用の単一のプログラムを作成したことがなかったからです。 しかし、私はいくつかのオートコーダーの本をざっと読んで、どこから始めればいいか大まかな考えを持っていました。 私のプログラムはテープを読み取り、それらのテープの識別子を変更することになっていた。 新しい識別子の値は1から始まり、後続のレコードごとに1ずつ増加します。 更新された識別子を持つレコードは、新しいテープに書き込まれているはずです。



上司は、赤と青のパンチカードがたくさん置かれた棚を見せてくれました。 50枚のデッキを購入したとします

トランプ-25枚の赤と25枚の青、そしてこれらのデッキを重ねます。 そのため、これらの山は次のように見えました。 彼らは赤と青のカードを交互にしました。 約200枚のカードで構成される各「デッキ」には、ルーチンライブラリのソースコードが含まれていました。 プログラマーは、パイルから上部の「デッキ」を取り外し(赤または青のカードのみを使用するようにします)、パンチカードの山の最後に置きました。



私のプログラムは、25行80列に分割された大きな長方形の用紙であるソフトウェア形式で作成されました。 各行は1枚のカードに対応していました。 プログラムはフォームに大文字で書かれていました。 各行の最後の6列は、その番号を記録しました。 後で新しいカードをスタックに挿入できるように、番号は通常10ずつ増加しました。 データ準備オペレーターにフォームが提供されました。 同社は、数十人の女性を雇い、大きな箱からフォームを取り、それらをキーボードパンチャーに「詰め込み」ました。 これらのマシンはタイプライターに非常に似ていましたが、入力文字を紙に印刷するのではなく、パンチカードに穴を開けてエンコードしました。 翌日、オペレーターは私のプログラムを内部メールで返しました。 パンチされたカードの小さなスタックがフォームに包まれ、弾性バンドで結ばれました。 タイピングエラーのパンチカードを見ました。 すべてがうまくいくようです。 ライブラリデッキをプログラムのスタックの最後に置き、オペレーターに持ち込みました。



コンピューターは、調節可能な微気候と上げ床(ケーブル敷設用)のある部屋の、閉じたドアの後ろのエンジンルームに設置されました。 私はドアをノックしました。船尾のオペレーターが私のデッキを取り出して別の引き出しに入れました。 私のプログラムはターンに達すると起動します。 翌日、デッキを受け取りました。 彼女はリストに包まれ、ゴムバンドで縛られました。 (はい、当時は多くの輪ゴムを使用していました!)。



リストを開くと、プログラムがコンパイルされていないことがわかりました。 リストのエラーメッセージは複雑すぎて理解できないため、上司に伝えました。 彼はリストを見て、自分自身に何かをつぶやき、メモを取り、デッキを取り、従うように命じました。 彼はカメラルームに行き、無料のパンチで座って、エラーですべてのカードを修正し、さらにカードを追加しました。 彼は何が起こっているかの本質を打ち立てましたが、すべてが瞬時に点滅しました。 彼は新しいデッキを機械室に持って行き、ドアをノックし、オペレーターに「魔法の言葉」を言ってから、コンピューター室に入りました。 オペレーターは私たちが見ている間に磁気テープをドライブに取り付け、デッキをロードしました。 リボンが回転し、プリンターがガタガタと音を立てました。 プログラムは獲得しています。 翌日、上司は私に助けてくれたことに感謝し、これに関する私の仕事は完了しました。 明らかに、ASCは17歳の新人をベビーシッターする時間がないと思っていました。



ただし、ASCとの接続はそこで終わりませんでした。 数ヶ月後、私はASCの夜勤で正社員になりました。

プリンターのメンテナンス。 これらのプリンターは、テープに保存された画像からあらゆる種類のゴミを印刷しました。 プリンターを適時に紙で満たし、画像付きのテープを入れ、詰まった紙を取り除き、一般的にマシンが正常に動作することを確認する必要がありました。 これはすべて1970年に起こりました。 私は大学に行く余裕はありませんでしたが、彼女は私を特に告白しませんでした。 ベトナムでの戦争はまだ終わっておらず、キャンパスは落ち着きがありませんでした。 COBOL、Fortran、PL / 1、PDP-8、およびIBM 360用のアセンブラーに関する書籍の研究を続けました。勉強することなく、できるだけ早く本物のプログラミングに入ることを目指しました。



1年後、私はこの目標を達成しました-私はASCのフルタイムプログラマーに昇進しました。 私はリチャードとティムの2人の友人と一緒にいます。

19歳で、貨物会社のリアルタイムアカウンティングシステムで他の3人のプログラマーと協力しました。 16ビットワードと2つのレジスタを備えていることを除いて、PDP-8とアーキテクチャが似ているシンプルなミニコンピューターであるVarian 620iに取り組みました。 プログラミングはアセンブラーで行われました。



このシステムのすべてのコード行を作成しました。 はい、誇張せずにそれぞれ。 オペレーティングシステム、ハンドラーを作成しました

割り込み、I / Oドライバー、ディスクのファイルシステム、オーバーレイロードシステム、さらには動的リンカー

着信転送-アプリケーションコードは言うまでもありません このすべてを8か月で作成し、信じられないほど厳しい締め切りに対応するために週に70〜80時間働きました。 それから私は年間7200ドルを受け取りました。



システムは時間通りに完了しました。 そして終了します。



すべてが突然起こり、解散は友好的ではありませんでした。 事実、すべての作業とシステムの正常な完成の後、会社はわずか2%の増加にとどまりました。 cheされたと感じました。 私たちの何人かは他の場所で仕事を見つけて、単純に適用しました。 残念ながら、最善の方法とは程遠い別の方法を選択しました。 友人と私は監督のオフィスに侵入し、かなりのスキャンダルとともに辞職しました。 それは私たちに感情的な満足感を与えました-約1日間。



翌日、仕事がないことに気付きました。 私は19歳で、卒業証書なしで失業しました。 私はプログラミングの分野のいくつかの空席についてインタビューに合格しましたが、失敗しました。 次の4か月間、私は半兄弟が所有する芝刈り機の修理店で働いていました。 残念なことに、修理工は私を働かせることができず、結局私は去らなければなりませんでした。 落ち込んだ。



私は午前3時まで起きて、ピザを食べ、両親の白黒テレビで古いホラー映画を見ました。 徐々に、悪夢がスクリーンから私の人生に浸透し始めました。 退屈な一日を見たくなかったので、私は午後1時までベッドに横たわりました。 私は地域の大学で数学的分析コースに登録し、試験に失敗しました。 私の人生は下り坂でした。 母は私に話しかけ、そのように生きることは不可能であり、新しい仕事を見つけることなく、そしてスキャンダルや友人とのカップルでさえ辞めたとき、私は馬鹿だと説明しました。 彼女は、新しい仕事なしに辞めることは不可能であり、これは冷静に、落ち着いて、一人で行うべきだと言った。 彼女は私が古いボスに電話して古い場所を尋ねるべきだと言った-彼女の言葉で、「in辱を飲み込む」。 19歳の人は間違いを認めようとはせず、私も例外ではありませんでした。 それにもかかわらず、状況はプライドよりも勝っていました。 上司に電話をしました。 そしてうまくいきました! 彼は喜んで年間6,800ドルで私を受け入れ、私は喜んで彼の申し出を受け入れました。



翌年半の間、私は古い場所で働き、あらゆる小さなことに注意を払い、可能な限り最も価値のある労働者になろうとしました。 私の報酬は増加と増加でした。 私がこの会社を辞めたとき、私たちは良好な関係を維持し、すでに最高の仕事を提供されていました。



おそらく、私はレッスンを学び、プロになったと思いましたか? 種類はありません。 これは、私がまだ学ばなければならなかった多くのレッスンの最初のものに過ぎませんでした。 将来、不注意でスケジュールが破られたスケジュールである仕事から解雇され、機密情報を誤って開示したために別の仕事から解雇されそうになりました。 私は危険なプロジェクトを引き受け、助けを求めずにそれらをつぶしました。 顧客のニーズに反する場合でも、技術的なソリューションを熱心に擁護しました。 私は完全に未熟な人を雇いましたが、それは雇用主にとって大きな負担になりました。 そして何より最悪なのは、私の組織的ミスのために、他の2人が解雇されたことです。



ですから、この本を私の誤catalogのカタログ、私の罪の告白、そして私の間違いを避けるのに役立つヒントのコレクションとして扱ってください。



出版社のウェブサイトで本について詳しく知ることができます

目次

抜粋



Habrozhitelamiの25%割引クーポン- 理想的なプログラマー



紙の本の支払い時に、電子書籍の購入時に電子版の書籍を電子メールで送信します。利用可能なすべてのバージョンがユーザーに送信されます。



+読者は、セルゲイタラソフによる無料の電子書籍(pdfおよびepub)を受け取ります。 ソフトウェア工学内部



All Articles