問題タブ [programming-languages]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
programming-languages - 一般的な言語の言語書籍/チュートリアル
私がコーダーの初心者で、学びたい言語に関する優れた本やチュートリアルを探していたのはそれほど昔のことではありません。それでも、私が取り組んでいる新しいプロジェクトのために、比較的早く言語を習得する必要がある場合があります. この投稿のポイントは、これらの言語に最適なチュートリアルと書籍をいくつか文書化することです。私が見つけることができる最高のものからリストを開始しますが、皆さんがより良い提案/新しい言語を手伝ってくれることを願っています. これが私が見つけたものです:
これは wiki で編集できるようになったので、コミュニティに制御を委ねます。提案がある場合は、このセクションに入力してください。また、より優れたプログラマー向けの書籍やオンライン リファレンスに関する一般的なセクションも追加することにしました。繰り返しますが、すべての推奨事項は大歓迎です。
一般的なプログラミング
Karl Seguin によるオンライン チュートリアル
Foundations of Programming - Codebetter から、その C# ベースですが、アイデアは全面的に真実であり、まだ誰もこれを投稿していないとは信じられません。
How to Write Unmaintainable Code - 可能な限り最も保守しにくい方法でコードを書く方法を教えるアンチ マニュアル。これらの提案の多くがそれほど真実ではない場合、それは面白いでしょう.
The Programming Section of Wiki Books - Jim Robert の提案によると
、完成のさまざまな段階にある多言語に関する書籍やチュートリアルが大量にあるとのことです。
Books
Code Complete - この本は言うまでもありません。
The Pragmatic Programmer - マスター コーダーと一緒に作業する次善の策であり、彼らが知っていることすべてを教えてくれます。
正規表現をマスターする - 正規表現は、すべてのプログラマーのツールボックスに不可欠なツールです。Patrick Lozzi が推奨するこの本は、彼らの能力を学ぶのに最適な方法です。
Algorithms in C , C++ , and Java - Knuth の本が少し深すぎる場合、すべての古典的なアルゴリズムを学習するのに最適な方法です。
ハ
オンライン チュートリアル
このチュートリアルはかなり簡潔で徹底しているように見えます。ただし、新しいプログラマーにとってどれほどフレンドリーかはわかりません。
Books
K&R C - 確かにクラシックです。すべてのプログラマーが読むべきだと主張するかもしれません。
C Primer Plus - プログラマー初心者向けの究極の C ブックとして Imran によって提案されました。
C: A Reference Manual - Patrick Lozzi が推奨する優れたリファレンスです。
C++
オンライン チュートリアルcplusplus.com
のチュートリアルが最も充実しているようです。ここで別のチュートリアルを見つけましたが、ポリモーフィズムなどのトピックは含まれていません。これは不可欠だと思います。C を使用している場合は、このチュートリアルが最適です。
別の便利なチュートリアル、C++ Annotation . c++-annotation
Ubuntu ファミリーでは、Synaptic からパッケージをインストールすることで、複数の形式 (pdf、txt、Postscript、および LaTex) の電子ブックを入手できます(インストールされたパッケージは/usr/share/doc/c++-annotation/
.
書籍
C++ プログラミング言語- C++ プログラマーにとって重要です。
C++ Primer Plus - もともとタイプミスとして追加されましたが、Amazon のレビューはとても良いので、誰かが不発だと言うまでここに置いておきます。
効果的な C++ - C++ プログラムを改善する方法。
より効果的な C++ - 効果的な C++ の継続。
効果的な STL - STL の使用を改善する方法。
Thinking in C++ - すばらしい本で、両方のボリュームがあります。ブルース・エッケルとチャック・エリソンの共作。
プログラミング: C++ を使用した原則と実践- Stroustrup による C++ の紹介。
高速化された C++- Andy Koenig と Barbara Moo - C++ を「余分なビットがボルトで固定された C」として扱わない C++ の優れた入門書。
前方へ
書籍
FORTH、テキストおよびリファレンス。マーロン・G・ケリーとニコラス・スパイズ。ISBN 0-13-326349-5 / ISBN 0-13-326331-2. 1986年のプレンティス・ホール。レオ・ブロディの本もいいけど、この本はもっといい。たとえば、単語の定義と解釈について詳しく説明します。
ジャワ
オンライン チュートリアル
Sun の Java チュートリアル- 完全に見える公式チュートリアルですが、私は Java の専門家ではありません。皆さんはもっと良いものを知っていますか?
Books
Head First Java - Patrick Lozzi による優れた入門テキストとして推奨されています。
効果的な Java - 優れた中級テキストとして pek によって推奨されています。
Core Java Volume 1およびCore Java Volume 2 - FreeMemory によって、入手可能な最高の Java リファレンスとして推奨されています。
Java Concurrency in Practice - Java での並行プログラミングのための優れたリソースとして MDC によって推奨されています。
パイソン
オンライン チュートリアル
Python.org - この言語のオンライン ドキュメントは非常に優れています。あなたが知っているなら、私に知らせてください。
Dive Into Python - Nickola の提案。オンラインのPythonブックのようです。
パール
オンライン チュートリアル
perldoc perl - これは、私が個人的にこの言語を使い始めた方法であり、あなたがそれに勝るとは思えません。
Books
Learning Perl - Perl について自己紹介するのに最適な方法です。
プログラミング Perl - Perl バイブルとも呼ばれます。本格的な perl プログラマーにとって不可欠なリファレンスです。
Perl Cookbook - 多くの一般的な問題に対する解決策が記載された優れた本。
Modern Perl Programming - 新しくリリースされたもので、Moose や DBIx::Class などの最新のテクニックとツールに関する最新の知恵が含まれています。
ルビー
オンライン チュートリアル
Adam Mika は、Why's (Poignant) Guide to Ruby を提案しましたが、それを見た後、それが万人向けかどうかはわかりません。Ruby on Rails のいくつかのチュートリアルを提供しているように見えるこのサイトを見つけました。
Books
Programming Ruby - Ruby に関するすべての優れたリファレンスとして提案されています。
ビジュアルベーシック
オンライン チュートリアルVisual Basic チュートリアルに専念しているように見えるこの
サイトを
見つけました。しかし、それらがどれほど優れているかはわかりません。
PHP
オンライン チュートリアル
メインの PHP サイト- 各ページにユーザーがコメントできる簡単なチュートリアルです。これはとても気に入っています。
PHPFreaks チュートリアル- さまざまな難易度の長さのさまざまなチュートリアル。
Quakenet/PHP チュートリアル- ゼロからガイドする PHP チュートリアル。
JavaScript
オンライン チュートリアル非プログラマー向け
の適切なチュートリアルをここで見つけました。ここで別のより高度なものを見つけました。Nickolay はA reintroduction to javascriptを良い読み物としてここで提案しました。
書籍
Head first JavaScript
JavaScript: The Good Parts (著者による Google Tech Talk ビデオ付き)
C#
オンライン チュートリアル
C# Station チュートリアル- 私が掘り下げたまともなチュートリアルのようですが、私は C# の専門家ではありません。
C# 言語仕様- tamberg によって提案されました。
実際にはチュートリアルではありませんが、C# Books
C#のすべての要素に関する優れたリファレンスです。C#は、言語を驚くほど詳細に説明する短いテキストとして tamberg によって提案されています。
ocaml
Books
nlucaroni は次のことを提案しました:
科学者のための OCaml ocaml の
紹介 ocamlの
使用 理解と解明 ocaml の使用: 理論から理論への実践とその逆
Ocaml を使用したアプリケーションの開発 - O'Reilly
The Objective Caml System - Official Manua
ハスケル
オンライン チュートリアルnlucaroniは
次のことを提案しました。
LISP/スキーム
Books
wfarr は次のことを提案しました:
The Little Schemer - 一般的な Scheme と関数型プログラミングの紹介The Seasoned
Schemer - Little Schemer のフォローアップ。
Structure and Interpretation of Computer Programs - Lisp に関する決定版の本 (オンラインでも入手可能)。
Practical Common Lisp - Lisp の優れた入門書で、実用的な使用例がいくつかあります。
Lispについて - Lisp の高度なトピック
プログラムの設計方法-
人工知能プログラミングのコンピューティングとプログラミングのパラダイムの紹介: Common Lisp のケーススタディ- 高品質の Lisp プログラミングへのアプローチ
皆さんはどうですか?私はそこのいくつかで完全にオフですか?私はあなたの好きな言語を除外しましたか? 私は最高のコメントを取り、提案で質問を修正します。
language-agnostic - 言語をオブジェクト指向にするものは何ですか?
意味のある用語のない議論は無意味なので、私は部屋にいる象を指差して尋ねてみようと思いました:言語を「オブジェクト指向」にする正確な理由は何ですか? ここで教科書的な答えを探しているわけではありませんが、それが何であれ、ドメインでうまく機能するオブジェクト指向言語の経験に基づいたものです。
最初に答えるのに役立つ関連する質問は、次のとおりです。オブジェクト指向言語の原型とは何か、またその理由
programming-languages - なぜ関数型言語?
ここでは、関数型言語などについて多くの話が見られます。なぜ「伝統的な」言語よりも 1 つを使用するのですか? 彼らは何をより良くしますか?彼らは何が悪いのですか?理想的な関数型プログラミング アプリケーションとは?
c# - 継承されたメソッドの戻り値の型で共分散をサポートする言語は?
私は最初にこの質問をしましたが、答えを見つける際に、継承されたメソッドの戻り値の型の共分散に対する C# のサポートの欠如が私の元の問題であることがわかりました。それを発見した後、私はどの言語がこの機能をサポートしているのか知りたくなりました。
一番多く名前を挙げられる方の回答を受け付けます。
編集:ジョン・ミリキンは、多くの動的言語がこれをサポートしていることを正しく指摘しました。明確にするために:
静的/強く型付けされた言語のみを探しています。
programming-languages - さまざまな言語で属性、メソッド、およびクラスに名前を付ける際の推奨規則は何ですか?
命名規則はさまざまな言語で似ていますか? そうでない場合、違いは何ですか?
oop - なぜ c# の人はオブジェクト指向プログラミングを理解できないという主張があるのでしょうか? (対クラス指向)
これは昨夜私の注意を引きました。
最新のALT.NET ポッドキャストで、 Scott Bellware が、Ruby とは対照的に、c#、java などの言語について説明しています。「クラス指向」という言葉を選ぶのではなく、真のオブジェクト指向ではありません。彼らはこの違いについて、あまり詳細に触れたり、長所と短所についてあまり議論したりせずに、非常にあいまいな言葉で話します.
ここでの本当の違いは何ですか?「オブジェクト指向」である他の言語は何ですか? かなり面白そうに聞こえましたが、何が足りないかを知るためだけに Ruby を学ぶ必要はありません。
更新:以下の回答のいくつかを読んだ後、人々は一般的に、ダックタイピングへの参照であることに同意しているようです. 私がまだ理解しているかどうかわからないのは、これが最終的にすべてを大きく変えるという主張です. 特に、疎結合で適切な tdd を既に実行している場合は特にそうです。C# ではできない、Ruby でできる素晴らしいことの例を誰かに見せてもらえますか?
c++ - C++ よりも抽象度が高く、手作業によるメモリ管理が少なくて済む言語は?
私はしばらく C++ を学んでいますが、とても強力だと思います。しかし、問題は抽象化のレベルが低く、メモリ管理を自分で行わなければならないことです。より高いレベルの抽象化を使用する、使用できる言語は何ですか?
sql - ブラウンフィールドアプリケーションでユニットテストを実装するための最初のタスクは何ですか?
最初にSQLをリファクタリングしますか?あなたのアーキテクチャ?またはあなたのコードベース?言語を変更しますか?すべてを捨ててゼロから始めますか?[リファクタリングではありません]
python - コンテキストフリーではないプログラミング言語を書き始めるための良いリソースは何ですか?
私は楽しみのためにプログラミング言語を書きたいと思っていますが、私が見たリソースのほとんどは文脈自由言語を書くためのものですが、Pythonのようにインデントを使用する言語を書きたいと思っています。文脈自由にならないでください。
compiler-construction - 強制を推測する方法は?
型推論中に強制 (別名暗黙の変換) を推論する方法を知りたいです。私は、Bastiaan Heeren によるTop Quality Type Error Messagesで説明されている型推論スキームを使用していますが、一般的な考え方はおそらくすべての Hindley-Milner 風のアプローチで同じであると思います。
強制はオーバーロードの一種として扱うことができるように思えますが、このホワイト ペーパーで説明するオーバーロードのアプローチでは、コンテキストが戻り値の型に課す要件に基づくオーバーロードを (少なくとも私が理解できる方法では) 考慮していません。強要には必須。また、このようなアプローチでは、同一性強制を優先することや、強制可能性の推移的閉鎖を尊重することが難しくなる可能性があることも懸念しています。各強制可能な式、たとえばeをcoerce ( e ) にシュガーリングしていますが、それを coerce(coerce(coerce(... coerce( e )) にシュガーリングしています。) ...))) 強制の最大ネスティングに等しい深さについては、ばかげているように見えます。また、強制可能性の関係を、深さがコンテキストから独立している有限の推移的なクロージャーを持つ何かに制限します。