2010-12-12 10 views
10

Where should a veteran C programmer start in order to master Java?のスタイルで、私はあなたに逆の質問をします。私はJavaとプログラミング全般で多くの経験を持っていますが、私はC(いくつかのプロジェクトでは私はハッキングに興味があります)を手に入れたいと思います。以前のCSの背景を持つ人々のために調整された「迅速かつ汚れた」ガイドがありますか?私は無料のオンラインリソースを好むだろうが、どんな提案も感謝している。ベテランのJavaプログラマはCをマスターするためにどこから始めるべきですか?

+0

本当にCが必要ですか? C++ではない?とにかくこれをここに残す:http://www.horstmann.com/ccj2/ccjapp3.html http://en.wikipedia.org/wiki/Comparison_of_Java_and_C%2B%2B –

答えて

6

かなり前に、Joel SpolskyはCプログラミングがall software developersにとって重要だと宣言しました。その記事では、彼はKernighan and Ritchie本を参照しています。これは、古典的なCの本として受け入れられています。しかし、その本を使ってCプログラミングを教えていたので、それはカジュアルな学生のためのドラッグの一種です。

つまり、すでにJavaで経験したことがあれば、それはあなたではありません。

でも、それは読める価値のある本です。他に何もないなら、私は図書館でそれを探すだろう。

This tutorialは、(特にANSI Cと比較して)少し古いですが、構文上最も速いブラッシュアップを探しているなら、ひどいことではありません。

ちょっとした基本的な構文(おなじみでしょう)では、C librariesに直接進むことができます。それは、あなたが必要としている実際の機能のほとんどがとにかくある場所です。 Cを「マスターする」ために必要な資料のほとんどは、実際にはそれらのライブラリをサポートしていることに気付くでしょう。完全のために

は、あなたが実際のコンパイラ必要がある場合には:私の一日の仕事で

を、私の開発環境は、両方のケースでのLinux(Fedoraの14)とWindows 7との間で分割されて、私は上のgccを使用私はCコードを書く必要があります。 gccはFedoraのインストールでは受け入れられる標準ですが、Windows側ではMinGWまたはCygwinのいずれかがgccを与えることができます。

私がまだCプログラミングを教えていたら、上級者のための上級者向けのいくつかの組み合わせをお勧めします。

+1

"...カジュアルな学生のために":私はドンCは、カジュアルな学生、カジュアルなプログラマー、またはカジュアルな何かのための適切な言語だと思いません。Cはあなたの手を保持していない、あなたはボールの上に常にある必要があります。 –

+2

@mu、私はCが他の言語よりも多かれ少なかれあなたの手を保持していると主張するつもりはない。私は、Cプログラミング(つまり、ポインタ管理)とJavaの並行性の問題の私の精神的なイメージは、少なくともCが、あなたが保持しているナイフを示していることを知っています。 "そのポインタを台無しにしないでください。 " Javaでは、自分自身でタイムバンプを設定できるようになっているので、数週間、数ヶ月、または数年後にデッドロックが発生すると、それはエキサイティングな*驚きです!* ;-) –

+0

私はJavaやデッドロックを魅力的ではありません。 –

0

経験豊かな開発者の基本的な側面は多少ありますが、K.N.による「C Programming - A Modern Approach」が見つかりました。キングはかなり良いです。これは、穏やかではあるが徹底した言語の紹介と必要な主要ライブラリの一部です。私は本の初版を読んだ。提供されたリンクは第2版用です。

0

最初は非常に入門的ですが、K&Rを読んで、演習の例を実行してください。彼らはしばらくしてから非常に挑戦的になり、ポインタ、構造体、およびJavaとは異なるCの他の側面をよく理解するでしょう。すべての運動の解決策はオンラインで見つけることができます。

また、クラス「CS107プログラミングパラダイム」のStanford youtube講義もご覧ください。講義はすべてonline、課題やその他の教材を利用できます。

関連する問題