人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

プログラマの方に質問です。
業務でJavaからWindowsプログラム(VisualC++/アンマネージド)にシフトしました。
ネットの掲示板を見ると,VC++の話題でCの基本的な質問をしたり,Microsoftのフレームワークの話題とC++の話題が混在して誤解を生んでいる例を見かけることがあります。
こうした部分を切り分けて考えられるように「こういう順序や内容で習得すればよい」「ここは似ていて勘違いしやすい」といったポイントを教えて下さい。
例) 型の種類は○○な順番で覚える,ポインタが効く場面はここだ,など


●質問者: カバポン
●カテゴリ:コンピュータ
✍キーワード:C++ Java Microsoft VC++ Windows
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● hijk05
●27ポイント

>VC++の話題でCの基本的な質問をしたり,Microsoftのフレームワークの話題とC++の話題が混在

最初は区別なく習得するのが一番の早道です。

習得後、C++言語仕様の本を流し読みして、区別をつけます。

はじめから区別して勉強しようとすると逆に失敗します。

◎質問者からの返答

> はじめから区別して勉強しようとすると逆に失敗します。

スミマセン。ご指南いただいた内容はたしかにそうと思います。

それとは別に区別というか,何を積み重ねていけば習得できるのか知りたかったです。


2 ● pigment
●27ポイント

アセンブラ→C→C++→C#という順で勉強したらいいんじゃないかな?

◎質問者からの返答

C++→C#の流れが分かりません。Javaの経験があることを例示したからでしょうか。

アセンブラから始めるのは思いつきませんでした。


3 ● tdoi
●26ポイント

私は、JavaもC++を含めたいろいろな言語を使って開発をしますが、ドキュメントの量という意味では、JavaもVC++環境もそんなに変わらないのではないかなと思います。

MSDNは膨大ですが、ドキュメントという意味では、JavaDocと同等の内容は含んでいると思います。


あくまで、予想に基づく、個人的な趣味が入った提案ですが、

・C/C++について理解

つまり、ポインタについてや、値渡し、参照渡しなどについて、プログラミング言語としての基本については把握した方がよいと思います。これについては、適当な本を一冊読む程度でよいと思います。なお、この目的では、Visual C++と名前のついた本はやめたほうがいいですよ。

おススメとしては、以下の2冊が理解できるようになると、十分です。

ここまで、把握していないC++プログラマもたくさんいると思いますし。

Effective C++

http://www.amazon.co.jp/Effective-%E5%8E%9F%E8%91%97%E7%AC%AC3%E...

More Effective C++

http://www.amazon.co.jp/%E6%96%B0%E8%A8%82%E7%89%88-More-Effecti...


個人的には、その後、

・Win32 API

を学ぶことによって、Windowsプログラミングについての理解を深めるとよいかと思います。

これによって、Windowsのメッセージ処理、ハンドルの扱いなど、Javaであれば、必ず、何かのクラスにラップされたものを意識するようになるはずです。

これの良書はちょっと思いつかないのですが、

猫でもわかるプログラミング

http://www.kumei.ne.jp/c_lang/

のWindows SDK編を眺めるなんてのはいいかもしれません。

書籍の方もたぶんよいものだと思いますが、読んでいないので。

また、MSDNにもドキュメントはありますので、適宜、参照すればよいかなと思います。


その上で、

・MFC・ATL

などを学び、Windowsアプリケーションの開発を、それらが簡単に(?笑)しているかを理解していくのがよいかなと思います。

この他にも、オブジェクト指向的な考え方とか関連することはあると思いますが、それは、Javaでの開発と基本的には変わりません。

言語仕様の特性(多重継承が可能、ジェネリックプログラミング(Javaもありますが))の違いはあるので、同じ思想でも表現方法が異なるケースはあります。

これらについては、

オブジェクト指向における再利用のためのデザインパターン

http://www.amazon.co.jp/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%...

を読むと、よく分かると思います。

もし、ちゃんとデザインパターンを利用されているようであれば、Javaとの違いも明確になると思います。


というのが、個人的な理想ですが、全部、こなすのは、結構ヘビーです。

あとは、現在の業務をどの程度続けるのか、業務の内容がどのようなものなのかに応じて、調整すればと。

何かの参考になれば。

◎質問者からの返答

意図をくんでいただいた上である程度の道筋も示していただきありがとうございます。

Effective C++は知らなかったのでぜひ読んでみたいと思います。

最初にVisualC++と名前の付いた本を読んで失敗した経験があるので,あらためて裏がとれた感じです。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ