[転送] 上級プログラマーからの洞察 - プログラミングのベテランとマスターの間の誤解の解決策
[再投稿] 先輩プログラマーからの洞察 - プログラミングのベテランと達人の間の誤解
コンピューターの出現以来、プログラマーは簡単にうらやましい職業になりました
多くの欠点はあるものの、多くの場合、自分自身で成功できるグループに成長します。良いようです。
現在インターネット上に出回っている「本物の」プログラマーは次のようなものであると言われています:
(1) 本物のプログラマーはスケジュールを持ちません。 リーダーを喜ばせるお世辞を言う人だけがスケジュールを立てます。 >指導者たちは緊張している。
(2) 本物のプログラマーは取扱説明書を書きません。ユーザーはプログラムの機能を自分で推測する必要があります。
(3) 本物のプログラマーがコードにコメントを書くことはめったにありません。コメントが書きにくい場合は、確実に読みにくくなります。
(4) 本物のプログラマーはフローチャートを描きません。これを行うのは原始的な人々と文盲の人々だけです。
(5) 本物のプログラマーはリファレンスマニュアルを読まず、初心者と臆病者だけが読んでいます。
(6) 本物のプログラマーはドキュメントを書かず、ドキュメントを必要としません。プログラムを理解できないバカだけがドキュメントを使います。
(7) 本物のプログラマは、ユーザーが何を必要としているのかをユーザーよりもよく理解していると考えています。
(8) 本物のプログラマーは、リーダーでない限り、チーム開発の概念を受け入れません。
(9) 実際のプログラマーのプログラムは、最初は正しく実行されませんが、
30 時間のデバッグとエラー修正のために喜んでマシンを保護します。
(10) 本物のプログラマは、午前 9 時から午後 5 時まで仕事をしません。彼が午前 9 時に
で働いているのを見たら、それは彼が昨夜から今まで働いていることを意味します。
…
上記の特徴が多ければ多いほど、より有能で上級者が現れます。ですから、驚かないでください。プログラマーの欠点の多くは、長所として評価されることがあります。武侠小説のように、孤独で束縛がなく、ちょっと邪悪な達人が一番憧れます。私もかつてこれを信じて、そのような「本物の」プログラマーになりたいと願っていましたが、
良い結末は得られませんでした。
私は大学から博士課程の卒業までの 10 年間、勤勉に勉強して、何十万行もの C++/C コードを書きました。
これだけの激務と疲労を抱えているので、私はプログラミングのベテランと呼ばれるはずですよね?
私が開発するソフトウェアはすべて科学研究 (集積回路 CAD および 3D グラフィックスの分野) に関連しており、多くの場合、数万行のプログラムが含まれています。
テクノロジーは複雑で困難です。これらのソフトウェアは頻繁に賞を受賞しており、あるソフトウェアは第 1 回中国大学生コンピュータ競技会のソフトウェア展示で最優秀賞を受賞しました。 1995 年に開発されたグラフィック ソフトウェア ライブラリは、2000 年になっても購入されていました。こうした「実績」を列挙することで、私がプログラミングの専門家であることを証明できますよね。
残念ながら、この個人的な感情は真実ではありません。
博士課程の勉強中、私は 100,000 行近くの C++ コードを含む 3D グラフィックス ソフトウェア製品の開発に 1 年を費やしました。
とても誇りに思って、謙虚に本物のソフトウェアの専門家にアドバイスを求めました。彼は 3D グラフィックスの分野に足を踏み入れたことはありませんでしたが、
十分以内にソフトウェアの多くの重大な設計ミスを指摘しました。まるで紙でできたゴージャスなドレスのような感覚を感じさせます。 引っ張ると一部が落ちて
、突くと穴が開きます。私は、このソフトウェアには実用的な価値がなく、1 年間の労力
が無駄になり、自分のソフトウェア会社を潰してしまったことに気づき愕然としました。
人のひらめきは、通常、最も悲痛な瞬間に起こります。挫折して失恋した後、私はソフトウェア設計の基礎知識を復習するために、半年にわたって深く内省し、「壁と向き合いました」
。 「内面の力」を修復したら、また腰が硬くなったように感じました。 PhD
卒業の半年前、私は仕事を探すために Microsoft Research China に行き、Microsoft の上級ソフトウェア エンジニアとの面接に応じました。
彼は私に、関数 strcpy のコードを書くように頼んだ。
簡単すぎませんか?
違います!
このような小さな関数について、彼は次の 3 つの側面から検証しました:
(1) プログラミング スタイル、
(2) エラー処理、
(3) アルゴリズムの複雑さの分析 (パフォーマンスを向上させるために使用)。
大学で私のプログラムをこれほど厳密にテストした人は誰もいません。 30分かけて何度も修正しました
彼はまだ満足しておらず、家に帰って考えてほしいと言いました。元気いっぱい「診察室」に入り、汗だくになりながら「診察室」から出てきました。
この「マスター」は卑怯すぎる。もう一度よく観察してみました。
私は自分の反省についての記事を書き、オンラインに投稿しました。多くのソフトウェア開発者の共感を呼びました。
そのため、私はファーウェイ、上海ベル、ZTEなどの国内大手IT企業の同志と幅広い交流を持つことができて幸運です。
は誰もが、品質と生産性の向上がソフトウェア エンジニアリングで解決すべき中心的な課題であると信じています。高品質なプログラミングは非常に重要なリンクです
結局のところ、ソフトウェアはプログラミングを通じて実装されます。
私たちの頭の中にある退役軍人や専門家は、質の高いプログラムを書くことができるでしょうか?
必ずしもすべてではありません!
私の経験と経験から言えば、国内の大学におけるコンピュータ教育では、高品質なプログラミングという
の概念が全く浸透しておらず、教師や学生がソフトウェアの品質を意識的に気にすることはほとんどありません。勤勉で勤勉なプログラマーは、長期にわたって低品質に悩まされています
私は山積みのプログラムを乗り越えましたが、多くの苦しみを経てようやく経験と経験を積むことができました。私の進歩は非常に遅かったです。
現在、国内のIT企業には学士号、修士号、博士号を取得したソフトウェア開発者が溢れていますが、彼らは
大学教育を受けた時点で「本質的に欠陥があった」のに、どうして突然質的な飛躍を遂げることができるのでしょうか。会社に到着しましたか?正確性、堅牢性、信頼性、効率性、使いやすさ、可読性 (理解可能性)、スケーラビリティ、再利用性、互換性、ユーザビリティを気にするソフトウェア開発者
がどれだけいるか聞いてください。移植性などの品質特性は十分に理解されていますか?また、実際に自由に使用できるのでしょうか? 。 「高品質」
は丁寧に仕事をするだけでは実現できません!
私たちには疑う十分な理由があります:
(1) プログラミングのベテランは、長い間エラーを暗示するような方法でプログラムを行ってきた可能性があり (習慣が自然になってしまう)、欠点を発見した後でも信じようとしません
それは本当です!
(2) プログラマーは、特定の分野では非常に優れたコードを書くことができますが、ソフトウェアの品質のすべての側面を把握することはできない可能性があります
。
そうです。私が上海ベルで働き始めて以来、この 1 年間で、100 人近い「新旧」プログラマーのプログラミング スキルを連続して面接またはテストしてきましたが、品質の合格率は約 10% です。品質要件を完全に満たす if
ステートメントを作成できる人はほとんどいません。多くのプログラマはポインタとメモリ管理についてほとんど知りません。
指導者たちはこれが真実であるとは信じられません。私はフィールド実験を行ったことがあります。一度、14 名の修士課程の新入生がこの学科に入学し、歓迎会の前に「C++/C プログラミング スキル」のテストを受けました。聞きたいのですが、試験問題は難しいですか?
答えるのは難しくないと誰もが言いました。結果は誰も合格せず、半数が0点でした。競合会社の友人もそれを試みました
が、やはり惨めに失敗しました。
実際のところ、私が「残酷」だったり、要求が高すぎるというわけではなく、多くのソフトウェア開発者が自分自身に
高い要求を持っていないのです。
ファーウェイ、上海ベル、ZTEなどの企業の従業員の質は国内IT企業の中でも比較的高いことを知っておく必要があります。
彼らのプログラミングの質がこれほど低いのであれば、中小企業にどうして期待できるでしょうか。高品質を生み出すには ソフトウェアはどうですか?プログラム
さえコンパイルできないのであれば、国家ソフトウェア産業の活性化について語るのはナンセンスです。
私はプログラミングのベテランとプログラミングの達人を定義するつもりです。笑わないでください。
定義1: 長期間安定して高品質なプログラムを書けるプログラマーをプログラミングのベテランと呼びます。
定義2: 難しくて高品質なプログラムを長期間安定して書けるプログラマーをプログラミングマスターと呼びます。
上記の定義に基づいて、すぐに最初の推論が得られます。私はマスターでもベテランでもありません。
この本を書く前に、プログラミングに関する英語の本をたくさん読みましたが、読めば読むほど恥ずかしくなってきました。私は
プログラミングの基本的なスキルさえ完全にマスターしていないことがわかり、せいぜい二流レベルであり、ベテランやマスターについて話すのは勇気がありませんでした。
私と同じように中国で生まれ育ったプログラマーの友人が次のことを実行できることを願っています。
(1) 間違っているとわかっている場合は、間違いを修正します。
(2) 過去を頻繁に見直し、新しいことを学びます。
(3) 粘り強く勉強し、毎日進歩しましょう。
-----解決策--------------------------------
ある程度は理にかなっています 医師は知識のある人であるべきであり、鋭敏であることが彼の仕事であるべきではありません。
------解決策---------
結局のところ、一人の人間が書いたソフトウェアはそうではありませんチームワークの結晶として良い。 テクノロジーがどれほど優れていても、より良いアイデアで実装する必要があります。 私は自分の才能を恐れてはいませんが、長期的に進歩する精神を持っていないのではないかと心配しています。
「道は長い、長い、上も下も探してみる」
------解決策---------
それはソフトウェアです、ウェブ上では難しいはずですできるだけ完璧でなければ、自分が書いたものを読むたびに間違いがあるでしょう。しかし、ウェブでは、これらのジャンクコードは栄養価が最優先であると考えていませんか。 !書いて、アップロードして、修正するだけです。
------解決策----------------------
プログラミングが一種の混乱になるとき どれだけの人が気にするでしょうかこれらのツールについて? ?

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

ログイン画面に「組織から PIN の変更を求められています」というメッセージが表示されます。これは、個人のデバイスを制御できる組織ベースのアカウント設定を使用しているコンピューターで PIN の有効期限の制限に達した場合に発生します。ただし、個人アカウントを使用して Windows をセットアップした場合、エラー メッセージは表示されないのが理想的です。常にそうとは限りませんが。エラーが発生したほとんどのユーザーは、個人アカウントを使用して報告します。私の組織が Windows 11 で PIN を変更するように要求するのはなぜですか?アカウントが組織に関連付けられている可能性があるため、主なアプローチはこれを確認することです。ドメイン管理者に問い合わせると解決できます。さらに、ローカル ポリシー設定が間違っていたり、レジストリ キーが間違っていたりすると、エラーが発生する可能性があります。今すぐ

Windows 11 では、新鮮でエレガントなデザインが前面に押し出されており、最新のインターフェイスにより、ウィンドウの境界線などの細部をカスタマイズして変更することができます。このガイドでは、Windows オペレーティング システムで自分のスタイルを反映した環境を作成するのに役立つ手順について説明します。ウィンドウの境界線の設定を変更するにはどうすればよいですか? + を押して設定アプリを開きます。 Windows [個人用設定] に移動し、[色の設定] をクリックします。ウィンドウの境界線の色の変更設定ウィンドウ 11" width="643" height="500" > [タイトル バーとウィンドウの境界線にアクセント カラーを表示する] オプションを見つけて、その横にあるスイッチを切り替えます。 [スタート] メニューとタスク バーにアクセント カラーを表示するにはスタート メニューとタスク バーにテーマの色を表示するには、[スタート メニューとタスク バーにテーマを表示] をオンにします。

上記と著者の個人的な理解 3 次元ガウシアンプラッティング (3DGS) は、近年、明示的な放射線フィールドとコンピューター グラフィックスの分野で出現した革新的なテクノロジーです。この革新的な方法は、数百万の 3D ガウスを使用することを特徴とし、主に暗黙的な座標ベースのモデルを使用して空間座標をピクセル値にマッピングする神経放射線場 (NeRF) 方法とは大きく異なります。明示的なシーン表現と微分可能なレンダリング アルゴリズムにより、3DGS はリアルタイム レンダリング機能を保証するだけでなく、前例のないレベルの制御とシーン編集も導入します。これにより、3DGS は、次世代の 3D 再構築と表現にとって大きな変革をもたらす可能性のあるものとして位置付けられます。この目的を達成するために、私たちは 3DGS 分野における最新の開発と懸念について初めて体系的な概要を提供します。

画面の明るさは、最新のコンピューティング デバイスを使用する上で不可欠な部分であり、特に長時間画面を見る場合には重要です。目の疲れを軽減し、可読性を向上させ、コンテンツを簡単かつ効率的に表示するのに役立ちます。ただし、設定によっては、特に新しい UI が変更された Windows 11 では、明るさの管理が難しい場合があります。明るさの調整に問題がある場合は、Windows 11 で明るさを管理するすべての方法を次に示します。 Windows 11で明るさを変更する方法【10の方法を解説】 シングルモニターユーザーは、次の方法でWindows 11の明るさを調整できます。これには、ラップトップだけでなく、単一のモニターを使用するデスクトップ システムも含まれます。はじめましょう。方法 1: アクション センターを使用する アクション センターにアクセスできる

iOS 17 では、Apple はモバイル オペレーティング システムにいくつかの新しいプライバシーおよびセキュリティ機能を導入しました。その 1 つは、Safari のプライベート ブラウジング タブに対して 2 段階認証を要求する機能です。その仕組みとオフにする方法は次のとおりです。 iOS 17 または iPadOS 17 を実行している iPhone または iPad では、Safari でプライベート ブラウズ タブを開いていて、再度アクセスするためにセッションまたはアプリを終了する場合、Apple のブラウザでは Face ID/Touch ID 認証またはパスコードが必要になります。言い換えれば、ロックが解除されている iPhone または iPad を誰かが手に入れても、パスコードを知らなければプライバシーを閲覧することはできません。

上記および筆者の個人的な理解: 現在、自動運転システム全体において、認識モジュールが重要な役割を果たしている。道路を走行する自動運転車は、認識モジュールを通じてのみ正確な認識結果を得ることができる。下流の規制および制御モジュール自動運転システムでは、タイムリーかつ正確な判断と行動決定が行われます。現在、自動運転機能を備えた自動車には通常、サラウンドビューカメラセンサー、ライダーセンサー、ミリ波レーダーセンサーなどのさまざまなデータ情報センサーが搭載されており、さまざまなモダリティで情報を収集して正確な認識タスクを実現しています。純粋な視覚に基づく BEV 認識アルゴリズムは、ハードウェア コストが低く導入が容易であるため、業界で好まれており、その出力結果はさまざまな下流タスクに簡単に適用できます。

有名なアクティベーション スクリプト MAS2.2 バージョンでは、デジタル アクティベーションが再びサポートされています。このメソッドは @asdcorp とそのチームが考案したもので、MAS 作成者はそれを HWID2 と呼んでいます。 https://github.com/massgravel/Microsoft-Activation-Scripts から Gatherosstate.exe (オリジナルではなく、変更されたもの) をダウンロードし、パラメータを指定して実行し、AuthenticTicket.xml を生成します。まず元のメソッド: Gatherosstate.exePfn=xxxxxxx;DownlevelOriginalState=1 を確認し、次に最新のメソッド: Gatheros と比較します。

0.前面に書かれています&& 自動運転システムは、さまざまなセンサー (カメラ、ライダー、レーダーなど) を使用して周囲の環境を認識し、アルゴリズムとモデルを使用することにより、高度な知覚、意思決定、および制御テクノロジーに依存しているという個人的な理解リアルタイムの分析と意思決定に。これにより、車両は道路標識の認識、他の車両の検出と追跡、歩行者の行動の予測などを行うことで、安全な運行と複雑な交通環境への適応が可能となり、現在広く注目を集めており、将来の交通分野における重要な開発分野と考えられています。 。 1つ。しかし、自動運転を難しくしているのは、周囲で何が起こっているかを車に理解させる方法を見つけることです。これには、自動運転システムの 3 次元物体検出アルゴリズムが、周囲環境にある物体 (位置を含む) を正確に認識し、記述することができる必要があります。
