JavaRush /Java Blog /Random-JA /すべてのプログラマーが読むべき 10 の記事
Shoggy
レベル 32
Санкт-Петербург

すべてのプログラマーが読むべき 10 の記事

Random-JA グループに公開済み
Java プログラマーでありソフトウェア開発者である私は、「すべてのプログラマーが知っておくべきこと....」というタイトルの多くの記事から多くのことを学びました。これらの記事は、他の方法では知るのが難しい特定のトピックについて、多くの有益で包括的な情報を提供する傾向があります。発見する。知識を探求する中で、非常に役立つ記事をいくつか見つけたので、参考情報としてブックマークし、再読しました。多くのプログラマーがこのコレクションを読むことで恩恵を受けることができるだろうという考えから、この投稿を書き、これらの「すべてのプログラマーが知っておくべきこと」の記事をすべて皆さんと共有することにしました。 この記事では、メモリUnicode浮動小数点演算ネットワーク、オブジェクト指向設計時間URL エンコーディング文字列などすべてのプログラマーが読むべき 10 の記事 - 1のトピックで、すべてのプログラマが必要とする古典的な知識を習得します。初心者や初心者には実践的な知識が不足していることが多いため、このリストは非常に重要です。記事のほとんどは実際の例に基づいているため、初級および中級のプログラマはそこから多くのことを学ぶことができます。また、キャリアの早い段階で基本を学ぶことは、他のプログラマーやソフトウェア開発者が学習過程ですでに犯した間違いを避けるのにも役立ちます。残念ながら、記載されている記事のすべての情報が、最初に読んだだけで簡単に理解できるわけではありません。おそらく、浮動小数点数の詳細をすぐには理解できないことや、メモリの複雑さによって混乱することがあるかもしれませんが、このコレクションを手元に置き、明確にするために時々参照することが重要です。あなたの幸運を祈り、これらの素晴らしい記事を楽しんで読んでください。ちなみに、他の「すべてのプログラマーが知っておくべきこと」の記事がまだリストにない場合は、忘れずに共有してください。

すべてのプログラマーがメモリについて知っておくべきこと

ロシア語への翻訳 これは、記憶の特徴をガイドする古典的な記事の 1 つで、古い記事、新しい記事、有名な記事、あまり知られていない記事もあります。管理者の役割と遍在にもかかわらず、すべてのプログラマーがメモリに関する十分なレベルの知識を持っているわけではありません。高性能アプリケーションを作成する仕事に就いている場合、最新のシステムのメモリに慣れることの重要性が増します。ハードウェア設計者は、より複雑なメモリ管理モデルや CPU キャッシュなどの高速化技術を考案していますが、これらはプログラマーの助けがなければ最適に実行できません。私はまだこの記事を読んでいますが、RAM、L1 キャッシュや L2 キャッシュなどの CPU キャッシュ、さまざまな種類のメモリ、ダイレクト メモリ アクセス、メモリ コントローラの設計、メモリ全般について、この記事からどれだけ学んだかわかりません。 。つまり、あらゆるレベルのプログラマーにとって必読の書です。

浮動小数点演算についてすべての科学者が知っておくべきこと

浮動小数点演算は扱いが難しく、習得するのが簡単ではありません。float多くの Java プログラマは、値を type / doubleoperatorと比較するときに何が問題になるのかさえ知りません==。私たちの多くは、floatと の型で金銭計算を実装するときによく間違いを犯しますdouble。この記事は、このシリーズのもう 1 つの貴重な記事であり、すべてのソフトウェア開発者とプログラマーにとって必読の記事です。経験を積むにつれて、一般的なトピックの複雑な内容に取り組む必要があります。浮動小数点演算もその 1 つです。上級 Java 開発者は、金額計算の方法、 をいつ使用するかfloat、浮動小数点数を四捨五入する方法などを知っておく必要があります。このトピックについて十分な知識がある場合でも、この記事を読んだ後は、浮動小数点演算について何か新しい発見があるかもしれません。 doubleBigDecimal

Unicode についてすべての開発者が知っておくべきこと

文字エンコーディングは、多くのプログラマーが苦労しているもう 1 つの分野であり、「すべてのソフトウェア開発者が Unicode と文字セットについて絶対に知っておくべき絶対最低限の事項 (言い訳はありません!)」は、そのギャップを埋めることを目的としています。記録のために言っておきますが、はい、これがこの記事の完全なタイトルです。その著者は、 https://stackoverflow.comの創設者の 1 人である Joel Spolsky です。ジョエルは約 10 年前にこの記事を自分のブログに書きましたが、現代社会においてもその関連性は失われていません。この記事では、Unicode とは何か、エンコーディングとは何か、バイトを使用して文字を表現する方法などについて説明します。この記事の最も優れている点の 1 つは、Unicode について何も知らなくても、問題なく理解できる言語と表現方法です。つまり、すべてのプログラマー、コーダー、ソフトウェア エンジニアにとって必読の書です。

すべてのプログラマーが時間について知っておくべきこと

文字エンコーディングに加えて、時刻と日付 (TimeDate) も、私を含む多くのプログラマが苦労する分野です。上級開発者でも、GMT、UTC、夏時間、うるう秒の違いに悩まされます。正直に言うと、いくつかのミスをせずにタイムゾーンに対処するのは簡単ではありませんが、サマータイムを使用するとさらに難しくなります。試行錯誤すると問題はさらに悪化します。これでは問題を解決することはできません。間違った方向に進む可能性のあることは膨大にあり、同じ数の誤解も存在します。日付にタイム ゾーンが含まれているかどうかなどで混乱したり、UNIX 時間を他のタイム ゾーンに変換することにイライラしたり、時計の同期や遅延のことを簡単に忘れてしまったりすることがあります。この記事を読んで、時間に関する多くの誤解がなくなり、時間について完全に理解できるようになることを願っています。

すべての Web 開発者が URL エンコーディングについて知っておくべきこと

この記事では、Uniform Resource Locator (URL) エンコードに関する一般的な誤解について説明し、次に HTTP の URL エンコードを明確にして、一般的な問題と解決策を示します。この記事は特定のプログラミング言語に特化したものではありませんが、Java の問題を示し、最後に Java および Web アプリケーションの URL エンコードの問題をいくつかのレベルで修正する方法について説明します。基本的な URL 文法、HTTP およびその他のプロトコルの一般的な URL 構文を学びます。この記事では、文字エンコード、URL のさまざまな部分の特殊文字、URL エンコード/デコードの問題など、URL の一般的な落とし穴についても説明します。Java プログラマーの場合は、Java アプリケーションで URL を適切に管理する方法も学びます。URL を構築し、Apache Commons HTTP クライアント ライブラリを使用する方法。最後に、URL を構築するときに URL をエンコードする方法、URL 書き換えフィルターが URL を正しく処理することなど、URL を操作するためのベスト プラクティスと提案も提供します。つまり、Web 開発者およびプログラマーにとって必読の書です。

すべてのプログラマーは Web 開発について何を知っていますか?

プログラマ StackExchange からのこの興味深い記事は、Web アプリケーションの技術的な詳細を実装するすべてのプログラマが、サイトを一般に公開する前に考慮すべきことについて説明しています。これには、インターフェイスのデザインとユーザー エクスペリエンス、セキュリティ、Web 標準、パフォーマンス、検索エンジン最適化 (SEO)、使用されるテクノロジ、およびいくつかの重要なリソースの分野のものが含まれます。今日の世界はインターネットに大きく依存しており、プログラマーが個人の Web サイトやブログを持つのは非常に一般的です。この記事から得た経験は、あなたの専門的な活動だけでなく、あなた自身のプロジェクトにも役立つでしょう。HTTP、HTML、XML、CSS、JavaScript、ブラウザの互換性、サイトの読み込み時間を短縮するためのヒント、XML サイトマップ、W3C 仕様、その他いくつかの重要なポイントなど、すべての主要なテクノロジについて学びます。

すべてのプログラマーがSEOについて知っておくべきこと

これも、Web 開発者、プログラマー、ブロガーにとって非常に役立つ記事です。SEO は無視するには大きすぎるため、多くのプログラマーやブロガーにとって、Google がコンテンツを見つけて他のプログラマーに表示できるように、検索エンジン最適化の基本を知ることが重要です。今日のつながりのある世界では、Web プレゼンスなしではどの企業も生き残ることはできないため、SEO はさらに重要になります。何らかの製品を販売するスタートアップ企業がある場合、SEO に気を配る必要があります。すべてのプログラマー、特に Web 開発者は、この記事から大きな恩恵を受けることができます。検索エンジンの最適化は広範囲かつ非常に動的であり、Google、Yahoo、その他の検索エンジンごとに異なることに注意してください。したがって、このトピックをマスターするには、常に知識を更新する必要があります。

すべての C プログラマーが未定義の動作について知っておくべきこと #1/3

C プログラミング言語には「未定義の動作」という概念があります。未定義の動作は、多くのニュアンスを伴う広範なトピックであり、それが私が Java を愛する理由の 1 つです。未定義の動作が減り、混乱が減り、安定性が増し、より平和になります。C では一見合理的に見えるものの多くが実際には未定義の動作をしており、これがプログラムのバグの一般的な原因となっています。さらに、C での未定義の動作は、ハード ドライブをフォーマットするコードを生成する権限を (コンパイラとランタイムの) 実装に与え、まったく予期しないこと、またはさらに悪いことを実行します。この優れた記事を読んで、予測不可能な動作の海を深く掘り下げてください。

すべてのプログラマーがネットワークについて知っておくべきこと

記事自体から「あなたはプログラマーです。マルチプレイヤー ゲームがどのように機能するか考えたことはありますか? 外から見ると、それは魔法のようです。2 人以上のプレイヤーが、実際に同じ仮想世界に一緒に存在しているかのように、オンラインで協力的な体験を共有します。しかし、「プログラマの皆さん、私たちは真実を知っています。実際に起こっていることは、あなたが見ているものとはまったく異なるということです。それはすべて幻想であることが判明しました。」これはゲーム プログラマー向けに書かれたネットワークに関する非常に興味深い記事ですが、すべてのプログラマーと開発者が恩恵を受けることができると思います。

すべての Java 開発者が文字列について知っておくべきこと

これは私の記事でありjava.lang.String、個人的にはすべての Java プログラマーがこれについて知っておくべきだと思います。文字列は日常の Java プログラミングにおいて非常に重要であるため、Java 開発者には十分な知識が必須です。この記事では、文字列プール、文字列リテラル、文字列と==vsの比較equals()、バイトの文字列への変換、文字列が不変である理由、適切な文字列の連結など、文字列の多くの重要な側面について説明します。上級プログラマーはこれらの機能をすべてすでに知っているかもしれませんが、それでも復習しておくことをお勧めします。

すべてのプログラマーがセキュリティについて知っておくべきことは何ですか?

この質問は、StackOverflow で学生プログラマーによって行われました。私たちがオペレーティング システム、アルゴリズム、データ構造、コンピューター アーキテクチャなどの一般的なプログラミング概念についてよく知っているのと同じように、セキュリティについて知ることも重要です。セキュリティのトピックは非常に幅広く、暗号化/復号化、SSL、Web セキュリティ、難読化、認証、承認などの領域をカバーしていますが、すべてのプログラマーに必要な最低限の基本的な知識があります。個人的には、キャリアの初期にはセキュリティについてあまり知りませんでしたが、サーブレット/JSP ベースの Java Web アプリケーションを書き始めたときに、Web セキュリティと、SQL インジェクション、サービス拒否、XML などの多くのセキュリティ脅威について学びました。インジェクション、クロスサイトスクリプティングなど。Java 開発者として、私は現在、Fortify、PMP、およびその他の静的コード アナライザー プロバイダーが提供する安全な Java プログラミング手法に従っています。この記事には、非常に優れたセキュリティ トピックとリンクが含まれており、コードを作成するかどうかに関係なく、このリソースから恩恵を受けることは間違いありません。

すべてのプログラマーが知っておくべきレイテンシの数値

この記事はおまけですが、プログラマーにとっては必読の内容です。Java であれ C++ であれ、あらゆるプログラミング言語で高性能アプリケーションを作成するには、基本的なレイテンシー値、たとえば、メモリ、L1 キャッシュ、L2 キャッシュから変数を読み取るのにどれくらいの時間がかかるかを知っておく必要があります。 SSD とディスクからのランダム読み取り。ある都市から別の都市にデータ パケットを送信するため、または 1 つのデータ センター内で往復するために、ミューテックスをロック/ロック解除するのにどれくらい時間がかかりますか。これらのレイテンシの値はプログラミング言語には依存せず、開発者が高負荷、低レイテンシのアプリケーションを作成するために必要な基本知識の一部です。このリンクの良い点は、これらの値が長年にわたってどのように進化したかを比較分析できることです。2006 年の値と現在の値がわかります。すべてのプログラマーが読むべき記事のリストは以上です。「すべてのプログラマーまたは開発者が知っておくべきこと」などの記事を読むことで、特定のトピックについての知識が深まります。正直なところ、プログラマーにとって学ぶべきことは多すぎます。Java のようなプログラミング言語を学ぶのは氷山の一角にすぎません。しかし、私たちのほとんどは学ぶことに情熱を持っているのではないでしょうか。プログラミングは継続的な開発を必要とする仕事であり、プログラマーにとってキャリア全体を通して役立つ唯一のものは、メモリUnicode浮動小数点数時間セキュリティ (セキュリティ)などの基本的な知識です。Java の String に関する私の投稿や、未定義の動作についてすべての C プログラマーが知っておくべきことなど、言語固有のものもありますが、多くの初心者や開発者にとって学ぶのに役立ちます。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION