web-dev-qa-db-ja.com

すべてのプログラマーがプログラミングについて知っておくべきことは何ですか?

技術的な問題に留まる、行動、文化、キャリア、政治の問題は避けてください。

52
Maniero
  1. バグはyourコードにあり、コンパイラやランタイムライブラリにはありません。

  2. 発生する可能性のないバグが見つかった場合は、プログラムが正しくビルドおよびデプロイされていることを確認してください。 (特に、複雑なIDEまたは乱雑な詳細をユーザーから隠そうとするビルドフレームワークを使用している場合...または、ビルドに多くの手動ステップが含まれる場合。)

  3. 並行/マルチスレッドプログラムは作成が難しく、適切にテストすることが困難です。並行処理ライブラリとフレームワークにできるだけ多くの権限を委任することをお勧めします。

  4. ドキュメントを書くことは、プログラマーとしてのあなたの仕事の一部です。 「他の誰か」に任せないでください。

[〜#〜]編集[〜#〜]

はい、私のポイント1は誇張されています。最高の設計のアプリケーションプラットフォームでさえ、バグのシェアがあり、あまりよく設計されていないものの一部がそれらに満ちています。それでも、常にコードを疑って最初に、コンパイラ/ライブラリのバグを非難するのはがあるときだけにしてくださいclearコードに問題がないことの証拠。

私がC/C++開発を行った当時、オプティマイザの「バグ」が原因であることが判明したのは、私/他のプログラマが言語仕様に規定されていない結果をもたらしたためです。これは、Javaのようにおそらく安全な言語にも当てはまります。例えばJavaメモリモデル(JLS 17章))をよく見てください。

92
Stephen C
  • 他の人のコードを読む方法。
  • バージョン管理システムでチェックされていない場合、コードは存在しません。
84
pramodc84

浮動小数点の計算はnot正確です。

76
Chinmay Kanchi

学習を止めないでください。

63
systempuntoout

コードの品質と保守性を向上させるためにできる一番のことは、重複を減らすことです。

44
Chris Holmes

トラブルシューティングとデバッグのスキル

私が受講したどのプログラミングコースでも、このトピックに時間を費やすことはほとんどなく、私の経験では、プログラマーの生産性を決定する最大の要因の1つです。好むと好まざるとにかかわらず、アプリのメンテナンスフェーズでは、新しい開発フェーズよりも多くの時間を費やします。

私は問題を見つけるための戦略なしで、物事をランダムに変更してデバッグする非常に多くのプログラマーと協力してきました。私は何十回もこの会話をしました。

その他のプログラマ:修正されるかどうかを確認する必要があると思います。
Me:さて、それで修正されると仮定します。それは問題の原因がどこにあるかについて何を教えてくれますか?
その他のプログラマ:わかりませんが、何かを試さなければなりません。

39
JohnFx
  1. 利口にならないでください。明確にする。
  2. 再利用する前に使用してください。
  3. 名前は重要です。
  4. 関数は1つのことを行い、うまく実行します。
  5. 小さいよりも大きい方がいい。
37
KevBurnsJr

基礎。現在、プログラマーは概念ではなく技術を学びます。それは間違っています。

34
clrod

すべてのプログラマーは、コードに仮定を常に入れていることを知っている必要があります。 「この数は正で有限です」、「このコードは瞬く間にいつでもサーバーに接続できます」。

そして彼は、それらの仮定が破られたときに備えるべきだと知っているべきです。

26

すべてのプログラマーはテストについて知っておくべきです。

19
Tom Duckering

学ぶ概念。構文をグーグルできます。

17
pramodc84

重要かつ論理的な思考。それなしでは何もできません。

16
Mladen Prajdic
14
Carlos

ユニットテスト。これは、コードの使用方法に関する想定を体系化する優れた方法です。

14
btlog
13
Maniero

領域知識。仕様が100%になることはありません。開発に使用している実際のドメインを知ることは、常に製品の品質を向上させます。

13
Steven Evers

それはあなたが考えるよりも難しいことです。

通常の使用時に機能するものを組み合わせるのは簡単ですが、誤った入力に対処すると、すべてのEdgeとコーナーのケース、考えられる障害モードなどに時間がかかり、おそらくジョブの最も難しい部分になります。

次に、アプリケーションも見栄えよくする必要があります。

13
ChrisF

明らかに、ポインタ。 :)

11

コードよりもデータの方が重要です。

データがスマートな場合、コードは馬鹿げている可能性があります。

ダムコードは理解しやすいです。スマートデータも同様です。

私がこれまでに経験したほとんどすべてのアルゴリズムの悲しみは、データが間違った場所にあるか、その真の意味を悪用されていたことが原因です。データに意味がある場合その意味を型システムに入れます

11
Gonzales

コード完了2 -カバートゥカバー

11
Kyle B.

仕事に最適な言語と環境。そして、それはいつもあなたのお気に入りではありません。

10
Dan Diplo

分割統治。これは通常、スケジューリングからデバッグまで、あらゆるタイプの実用的な問題を解決する最良の方法です。

10
Rick Minerich

真のスキルは、複雑な設計を機能させる能力ではなく、単純な設計をうまく実行する能力に反映されています。

このスキルは、秘術を習得するのではなく、ファンダメンタルズを習得することで得られます。高水準のプログラマーは、他の人がコーディングできないもの(より高いレベルの関数、高度な関数型プログラミング、何を持っているかを使用して)をコーディングする能力ではなく、完全に平凡なコーディングを洗練する能力によって定義されます。クラス間の機能の適切な分解を選択する;堅牢性の構築;防御的プログラミング手法を使用する。そして、より多くの自己文書化につながるパターンと名前を使用して、これらは高品質のプログラミングの基本となるものです。

あなたまたは他の誰かが1週間、1か月、1年で戻って、そのコードを使用、変更、拡張、または拡張する方法を理解できる優れたコードを書くことは非常に重要です。それはあなたの時間と精神的な努力を節約します。これは、以前につまずいたはずの障害を取り除くことで生産性のホイールに油を差します(おそらく、思考の流れを中断したり、他の作業から数時間または数日を費やしたりすることになります)。難しい問題に集中しやすくなります。 、そして時にはそれは困難な問題を解消します。

つまり、エレガンス。すべてのクラス、すべてのメソッド、すべての条件、すべてのブロック、すべての変数名:優雅さを追求します。

8
Wedge

よりクリーンなユーザーエクスペリエンスまたはより優れたドキュメントで修正できることをユーザーのせいにしないでください。多くの場合、プログラマーは、問題が全体的なエクスペリエンスの低下またはコミュニケーションの欠如である場合、ユーザーが正しく何もできない馬鹿であると自動的に想定します。プログラムは使用することを意図しており、ユーザーを軽蔑して扱うことは、そもそもプログラミングのポイントを逃すことです。

8
user8

すべてのプログラマーは、デバッガーの使用方法と、その使用方法を知っている必要がありますwell

6
Brian R. Bondy

Googleの使い方

5
bruno077

データ構造

5
Maniero

ショートサーキット評価ですが、ブール演算子について最初に教えます。

ユーザーのミスはありません。それらはユーザビリティの間違いです:

  • 危険な機能は警告するだけでなく、取り消し可能にする必要があります。これはrmを示しています。これはstillがごみ箱では機能しません。
  • ユーザーが中断した場合は最も害の少ないものを実行します(ESC、Ctrl-C)。理想的には、システムはコマンドを実行する前と同じ状態である必要があります。 rm、もう一度。
  • 有害なオプションは、無害なオプションから遠く離れている必要があります。 GNOMEのゴミ箱にあるファイルを右クリックすると、「完全に削除」が「復元」のすぐ隣に表示されます:(

GNUツールまたはGNOMEを具体的に選択するわけではありませんが、これらは思いつくのに最も簡単な例でした。

4
l0b0

機能の実装にかかる時間を正確に見積もる方法。さらに重要なのは、その見積もりを提出するときに、どのように伝えるかはだまされていないということです。

4
wheaties

コーディングスタイルが重要:

  • 一貫したインデントの問題、
  • ホワイトスペースの一貫した使用(たとえば、演算子の周囲)が重要です。
  • {}の一貫した配置が重要であり、
  • 適切に選択された識別子は重要です。
  • 等.

...そして良いデザインが重要です。

理想的には、プログラマーは最初のコードレビューの前(または最中)にこれらのことを学びます。最悪の場合、上司が急いでいくつかの恐ろしいコードに自明ではない変更を加えるように指示すると、プログラマーはそれらを学びます。

4
Stephen C

ここで商用ソフトウェア開発者といえば...明らかに、DODセキュリティシステムやヘッジファンドクアンタムには適用されない可能性があります。

  • 巧妙なものではなく、機能するものに焦点を当ててください、KISS。
  • 80/20のルールを念頭に置き、少数派を喜ばせたり売ったりするために時間を費やしてはいけません。
  • データ構造/アルゴリズムのコースを受講してください。
  • テスト、テスト、テスト。
  • 本番環境にあり、現在機能しているコードをいじくり回さないでください。過剰なキャッシュフローと新しいアイデアがない限り。その後、それは結構です。
  • あなたの時間の大部分は、残骸を整理することに費やされ、興味深いプログラミング問題を解決するのに費やされません。あなたがインタビューしているのでなければ、人々はあなたが興味深いプログラミング問題をどのように解決するかを見たいだけです。
3
red-dirt

あること-

1)OO(オブジェクト指向)を超えた他のプログラミングパラダイム)2)Visual Studioを超えた他のより優れたIDE(これは特に、WindowsとMSテクノロジのみで作業したプログラマー向けです)

3
Manoj Waikar

コンピュータ本当にのしくみ、言語の基礎、アルゴリズム/データ構造、アルゴリズム分析、および複雑性理論のいくつかの測定。

3
Paul Nathan

これが言及されていないなんて信じられない

すべてのプログラマの価値は、saltが 世界対応ソフトウェア を生成できる必要があることです。

これは、すべての文字列を外部化するなどの基本的な国際化の原則に従うことを意味します。

製品が翻訳されたときに、ハードコードされた英語の文字列や、文字列が切り捨てられたダイアログなどを何度も目にしたことがありません。

2
Jimmy Collins

単体テストは特効薬ではありません。あなたはまだバグを導入したり、間違ったテストを書いたりすることができます、そしてそれはあなたがする唯一のテストの形式ではありません。

2
aqwert

コンピュータは意味論を理解していません。これがあるとします:

var ferrari = new Ferrari();
ferrari.DriveTo(Places.Seattle);

コンピューターには、別のタイプ名を使用して、次のように使用することもできます。

var mxEEcceqs = new safHBBdueWE();
mxEEcceqs.HYBbQAW(n3dNm.pDojeW);

名前を付けることは非常に重要ですが、タイプを「Ferrari」またはメソッドを「DriveTo」と命名したからといって、コンピューターが「意味」を知っていると誤解しないでください。

2
xofz

実行の順序。

驚いたことに、プログラマーと、コードを見たことのない人やコードに触れたことのない人や、ふりをするプログラマー*に話しかけると、実行順序がわかりません。制御構造を理解できない人に出会った場合は、最初にこのアイデアを頭に入れてください。その後、彼らはより速く学習することがわかります。

*はい、プログラマーとして仕事を得ることができる人たちですが、最も簡単な技術的な質問をすると、彼らは頭がおかしくなります。

2
Philip

すべてのプログラマーは、コンピューターサイエンスの「科学」(デザインパターン、アルゴリズム、オブジェクトなど)を知っている必要があります。それを習得できれば、任意の言語を使用してプログラミングできます。これは、構文に慣れるだけのことです。

2
JD Frias

字句解析と構文解析とは何か、漠然とした概要で十分です。さらに良いことに、少なくとも1つのパーサージェネレーターフレームワークに精通しています。

私が見た中で最も恐ろしいWTFのほとんどは、人々のカスタム解析ルーチンです。最初にコードを書くのはひどい、維持するのはもっと悪い。

2
angusgr

評価。

プログラマは、自分が書いたステートメントがどのように評価されるかを知っている必要があります。 a(line.of(code) is aSequenceOf(evaluations))そして、その評価の各ステップの後でその行がどのように見えるかを理解していない場合、言語機能を利用する能力はプログラマーとして非常に制限されます。

基本的なことだけではありません

if (bool == false):
    return true
else:
    return false

もちろん、これは単にreturn !boolで置き換えることができます。

私はまた、あなたがこのようなものを思い付くことができるようになるまであなたの言語を理解する能力について言及しています:

string[] thingsToOutput;
for(int i = 0; i <= thingsToOutput.Length; print(thingsToOutput[i++]));    

そのような発言を初めて見たとき、それは私の心を少し吹き飛ばしました。このような方法でforループを活用することはできませんでした。その声明を書いた人は彼らに利用できる可能性をより完全に理解しました-彼らは私よりも多くの開かれた扉を見たので、彼らはコードを設計する彼らの能力により多くの自由と力を与えました。

さて、それがgoodコードであるかどうかは問題です-これらのドアのいずれかshouldが開かれるかどうかは、議論の余地があります。 大きな力には大きな責任が伴いますのままです。

2
doppelgreener

この質問に対する答えを知っていても、プログラマーになるわけではありません

2
hplbsh

ソフトウェアライセンスの基本

  • クローズドソース対応のApacheと非ウイルス性のMS-PL/MS-RLと比較した場合の「ウイルス性」のコピーレフトライセンス(GPL)の違い。

  • LGPLを使用する必要がある場合と使用しない場合。

  • ライセンスの互換性。たとえば、最新のApacheライセンスのライブラリをGPLv3コードにリンクできますが、GPL 1または2にはリンクできません。

  • ソースコード全体を所有している場合は、必要な数の(または少ない)ライセンスで公開できます。

S.O。への注意コミュニティ:
必要に応じて、この回答を自由に編集してください...主に以下のコメントセクションに適さない情報について。

2

暗号化。独自の暗号化アルゴリズムを作成できる必要はありませんが、暗号化、メッセージ認証、およびPKIのしくみについて基本的な知識が必要です。私はこの分野で盲目的な試行錯誤に長きにわたって苦労してきました。最近、「Cryptography Engineering」(ファーガソン、シュナイアー、河野)の本を手に入れました。それは本当の目を開かせました。

2
Tobias

コーディングを開始する前に、OS /プラットフォームを把握してください。

Windows/Linux/Android/iOSなどをコーディングする場合は、OSを学ぶことから始めます。あなたがウェブのような何か他のものをターゲットにするならば、同じことがそこに行きます。

1
Amir Rezaei

人のためのコードを書いてください!

もうマジックナンバーはありません!

すべてのコードを1行で記述しないでください。

1
linjunhalida
  1. 人々が望むものを作る
  2. 毎日使いたいものを作る
  3. コードにコメントしない場合は、コードがきれいに読めるようにしてください
  4. コードにコメントする
1
Michael Ossareh

起こりえないバグなどはありません。

1
Rayne

「Hello world」は完全なアプリケーションではありません。出力が実際に「Hello world」であるという実証された/プログラムによるアサーションがないためです。ユニットテストが完了するまで、コードは完成しません。

1
stimpy77

これらのいくつかはすでに投稿されていますが、これが私のリストです:

  • 要件に合わせて構築し、不要なものは追加しないでください。特に、「考える」場合は追加しないでください。後で必要になった場合は、追加してください。
  • Google検索の使用方法。あなたが見ているまで、あなたの同僚を気にしないでください。
  • 利口にならないでください。
  • すべての要件を満たし、テストされ、文書化され、SVNにチェックインされるまで、それは行われません。
  • 適切なコーディング標準、例:命名規則
1
Tyler Egeto

コード、テスト、ソフトウェアパッケージを適切にデプロイする方法を学びます。

私が業界で見た開発者の最悪の習慣の1つは、ソフトウェアを他の人の手に渡す方法についての一般的な無知です。ここにいくつかの悪い兆候があります。

新しい開発環境-itus:

  • 私はRubyを学びたかったので、それに物を書いたので、顧客とメインビルドはRuby環境を今すぐ選ぶ必要があります

バージョン-itus:

  • 私たちのチームはコンパイラーバージョンX + 1に移動しました。それが最新バージョンであるためです。
  • ライブラリバージョンYが必要です。ああ、あなたの作品はそれで動作しませんか?
  • 本当に古いリリースでテストしましたが、最新のビルドでは動作しませんか?
  • リリースを機能させるために、特別なバージョンのカーネルをハッキングしました

Binary-only-itus:

  • 私たちのビルド環境は本当に複雑です、私たちはあなたにバイナリを提供します

マルチコアITU:

  • SMPを無効にします。私たちのものはユニプロセッサ環境でのみ機能します

ハードコードされた機能-itus:

  • この#defineのコメントを外して機能Xを有効にします。実行時に何をしたいですか?
1
tonylo

シンプルさ、明快さ、一般性。 http://www.math.harvard.edu/computing/programming/rules.html

  • ソケット/パイプで接続された単純なプロセスのネットワークとしてシステムを構築する
  • 単純なテキスト形式でデータを交換する:「キー:値」のペアのレコードのセット、またはTSV

「最も効果的なデバッグツールは、慎重に検討され、慎重に配置された印刷ステートメントと相まって」 BWK

1
user2137

選択したプラットフォームでセキュリティがどのように機能するかについての知識が多ければ多いほど、効果的です。

1
Ripped Off

ジョブに適したツールを使用します。

プログラマーは重要な要素であり、言語とツールは問題に基づいて選択されるべきです。新しい言語やプロジェクトを恐れないでください。

1
1
Daniel Grillo

プログラミングに泣き声はありません!

1
Billy Coover
  1. 基礎概念の完全な理解。データ型、インターフェース
  2. 彼らが使用しているツールの中程度から高度な理解。特定の.net/Javaの知識
  3. 「他のテクノロジーとのインターフェース」の合理的なアイデア。データベースのしくみ
  4. 大まかに彼らの技術基盤が向かっているところ、例えば。クラウドコンピューティングとは何か、クラウドコンピューティングが現在のスキルセットに与える影響
1
adolf garlic

FizzBu​​zzプログラムの書き方。

1
CtrlDot

アプリケーションを配布したり、Webサイトを会社の境界外で本番環境に配置したりする必要がある場合は、重要ではないと考えていたすべてのことを行います。

1
JeffO

コードは、本来あるべきことを実行する場合にのみ美しくなります。

1
sambeau
  • バイナリ署名付きと署名なしの基本的な理解。
  • 位置数値システムがどのように機能するかを理解します。
  • 基本的なデータ構造がメモリに格納される方法を理解します。
1

コードを修正するには、最初に同じコードを書くよりも多くのインテリジェンスが必要です。

したがって、賢さの限界でコードを記述した場合、定義上、壊れたときに修正するほど賢くはありません。

1
Adam Bachman

最初にデータ構造を記述します。つまり、データベーススキーマからスウィズリング/シリアル化メカニズムまですべてを意味します。

ほとんどのプロジェクトは、データをフォーマットAでポイントAからポイントBに格納および移動することを目的としています。

すべてが言われ終わったら、コードの約90%はフォーマットを行うためのロジックになりますが、本当のキラーは、データにアクセスして書き込むフォーマットを持っているだけです。データアクセス用のAPIを取得したら、必要に応じて書式設定をいじることができますが、ストレージAPIを使用して本番環境を開始すると、失敗したことに気付かなくなる可能性があります。

1
user2040

Steve Yeggeの電話スクリーンに関する5つの重要な質問では、インタビュー対象者が次の基本的な知識を持っていることを確認しようとしています。

  1. コーディング。候補者は、C、C++、またはJavaで、正しい構文でいくつかの単純なコードを書く必要があります。
  2. OOデザイン。候補者は基本的なOO概念を定義し、簡単な問題をモデル化するクラスを考え出す必要があります。
  3. スクリプトと正規表現。候補者は、50,000のHTMLページで電話番号を見つける方法を説明する必要があります。
  4. データ構造。候補者は、最も一般的なデータ構造の基本的な知識を示す必要があります。
  5. ビットとバイト。候補者は、ビット、バイト、および2進数に関する簡単な質問に答える必要があります。

http://sites.google.com/site/steveyegge2/five-essential-phone-screen-questions

彼がこれを書いたとき、彼はアマゾンにいたが、現在Googleで働いている(そしておそらくインタビューを行っている)。これは単に画面を通過するだけです。これが彼が探していたものを説明する方法です:

ここで私が探しているのは、これらの領域の1つに完全な真空があることです。彼らが少し苦労して、それを理解しても大丈夫です。マイナーなヒントやプロンプトが必要な場合は問題ありません。錆びていても遅くても構いません。あなたが探しているのは、問題の領域についてまったく無知であるか、ひどく混乱している候補者です。

1
Lou Franco

ドキュメントは非常に重要です。ゼロから何かを構築する場合はさらにそうです。コードを書く前にアイデアを文書化するのに役立ちます。

私はこれを難しい方法で学びました。

1
Pablo

まだコメントはできませんが、「テストとデバッグのスキル」のトピックに関して、Ned Batchelderによる this little gem は必読です。 (それから、デバッグとアサーションに関して彼が言わなければならないことの多くは検討に値します。)

0
Stan Rogers

すべてのプログラマーは、彼/彼女が知っている唯一のことは彼女/彼女が何も知らないということであることを知っているべきです。学ぶべきことがたくさんあります。

0
sharjeel

すべてのプログラマーは、FindNextSelectedおよびFindPreviousSelectedアクション(ビジュアルスタジオ)をキーボードのキー(できればF4およびF2)にバインドする必要があります。あなたはそれから2つのことを得る:

  1. 変数/関数/部分文字列の使用の異なるポイント間を移動するより高速な方法(「すべての参照を検索」を使用するよりも高速)
  2. 1つのドキュメント内の内容を比較する可能性。部分文字列を検索しながら前後にジャンプすると、異なる場所の違いを確認できます。同じドキュメントの一部を比較する必要がある場合、Winmergeを使用する必要はありません。
0
AareP

条件付きグループ化を含む基本的な正規表現構文を理解している。ライブラリ固有の正規表現コマンドアドオンを使用したり、これらの部分をコメントアウトしたりしないでください。

0
Bob Dobelina

どうやってするの。

... 15文字が必要だとはどういう意味ですか?

0
Randall Schulz

保守性を考慮したプログラム。

0
Jesse

正規表現 THE Book about regular expressions

単純な正規表現がデータを変換して、操作に数日かかると人々が考えた回数はわかりません。すべてのプログラマツールボックスに存在する必要があります。

確かに、xkcdを忘れることはできません。 Wait, forgot to escape a space. Wheeeeee—taptaptap—eeeeee.

0
neves

すべてのプログラマーは、プロセッサーの仕組みを知っている必要があります。

0
Brian Makin

BeMasterof Somethingですが、BeAwareof Everything !!!!

0
user11020

ここには非常に良い提案がいくつかありますが、Ulrich Drepperによる優れた一連の記事に言及した人がいないことに驚いています: すべてのプログラマーがメモリについて知っておくべきこと

0
Mansur

すべての問題コンピュータサイエンスでは、別のレベルの間接参照で解決できます。

0
FreeMemory

コードを設計し、マネージャーがRAD=スタイルのアプローチを使用したい場合は、できるだけ多くの詳細を取得してください。次に、機能を追加するときに、既存のコードを書き換えられるかどうかを試してください。より多くのコードを積み重ねると、家ではなく高層ビルになってしまいます。

0
Luke Tongs

すべてのプログラマーは、ソフトウェアエンジニアリングと、システム分析/設計および情報システムの概念をしっかりと理解している必要があります。このように、彼らがシステム分析/設計および/または情報アーキテクチャに実質的に貢献するように要求された場合、彼らは知識+意見の立場になります。通常、それは通常単に代わりに単に個人的な好みに由来する単なる個人的な意見のようです最高の問題解決の。ソフトウェアエンジニアリングを測定するのは少し難しいですが、必要な知識はそこから入手でき、適切な大学の学位コースでは、コードをまとめる方法以上のものを教えます。とにかく、これは否定的な意味ではありません。主な精神は改善であるからですが、ITの知識がまったくないか、コード化して再コード化している「スクリプトキディ」がいる一部の人々と協力してきました(そして選択した言語)とすべての問題を以前に適用されたソリューション(そのコーダーによる)の繰り返しとしてのみ見るので、プログラマーがソフトウェアエンジニアリング(SSADM)の観点からより大きな視野に集中し、問題を機会として見た方がはるかに好ましいクライアントのためにより良いことをする。

0
chris

最初に、コードまたはロジックを頭または紙で実行します。それをテストするためにコンパイルと実行コマンドを実行するために急いではいけません。

0

それは数文字で成り立っています。

わかりました、私は単純化しすぎていますが、基本的にあなたがかなり独学で学びに止まらず、少し完璧主義者であるなら、あなたは良いプログラマーになるための基盤を持つべきです。

それを超えるものは、特定の役割やテクノロジーに固有のものになります。

0
haylem

何かがうまくいかない場合は、それが起こります。最悪のケースを想定

0
Adham Saad

作成しているソフトウェアを使用する人のことを忘れないでください。

0
Dan Goldstein

問題が発生する可能性のあるものはすべて問題が発生することを認識してください。コードを書く時間はほとんどありませんが、一般的なパターンを認識して再利用します。コードを常にリファクタリングして、理想的な設計を実現します。

0
zkarthik

すべてのデータはどこかに存在する必要があります。よく見ると見つけられます。

0
Jonathan

彼らはクロージャーの力について知って、それらを使い始める必要があります。

0
nickik

16進表記。また、ビットフィールド-ANDing、ORing(包括的および排他的)、補完(1および2)、ビットシフト。

0
tcrosley

私の最初の投票は命名規則です。

0
Gopi

誰かが何かを作るように頼んだとき、覚えておいてください:彼らはあなたにそれを維持することも求めています。おそらく、永遠に。

0

どのようなプログラムでも、機械にどのように作業を行うかを伝えるだけでなく、人間の作業をどのように行うかを最も明確に示す方法です。

0
vpit3833