プロが教える店舗&オフィスのセキュリティ対策術

文系の大学生なのですが、
大学入学後にパソコンに興味を持ち現在独学でプログラミングを勉強しています。
目標はゲームや色んなフリーウェアを作れるようになりたいです。
言語はC言語を勉強していて柴田望洋さんや林晴比古さんの本を読み
一通り基本的な文法やアルゴリズムは覚えました。

しかし数値のソートやデータ構造なんかを覚えたのは良いのですが、
実際に自分が普段使っているようなソフトウェアを作るのにどう結びつけたら良いのかよく分かりません。
特にGUIプログラム作成に関しては全く作り方が分かりません。

そこで今の状況から実際にソフトウェアを作れるようになるにはどういう勉強をしたら良いのか、
どういう本を読んだら良いのかということを教えて頂きたいです。お願いします。

A 回答 (6件)

GUIのプログラミングといっても様々なレベルがあります。

高速な描画を目指したものもあれば、マルチプラットフォームでの利用を目指したものもあれば、初級者にでもすぐに開発作業をさせられることも目指したものもあります。
C#であれば統合開発環境でHOWTO本の通りに操作すればとりあえずそれなりの画面はつくれます。
javaのGUIフレームワークを覚えれば、Windowsだけでなく、ほかのプラットフォームでも動くGUIを作れます。
WordやExcelやVisioやテキストエディタぐらいになれば、C/C++でコーディングするでしょう。処理速度が要求されるところで、ガベージコレクタなんかに馬鹿げた邪魔はされたくないですからね。
3Dシュミレーションのような高速な描画に特別に価値があるものは、重要な部分をアセンブラで最適化する可能性もあります。(少しづつそのようなこともなくなってきていますが...)
あなたがどんな環境で、どんなプログラムを作りたいかによって、開発言語もライブラリも関連知識も変わってきます。

とはいえ、GUIのプログラムを全く初めてやってみるのであれば、javaか.NETが入りやすいことは確かです。C/C++だと入りにくいのも確かです。そうでなければ、そもそもjavaも.NETも世の中に生まれてきていません。

まずはC#あたりから初めて、.NET以外の環境で動かしたいとか、描画が遅くてどうにもならないとかの問題にぶつかったときに、少しづつC/C++でのプログラミングを考えてもよいのではないでしょうか?

そのころには、また今とは時代が変わっているかもしれませんから。
    • good
    • 0
この回答へのお礼

なるほど、とりあえずGUIプログラムを作りたいしか考えていなかったのでプラットフォームの互換とか処理の効率とか全然考えていなかったです。
みなさんC#を勧めてくれるのでまずはそれを勉強してみようと思います。
そして慣れてきたらWINAPIなどについても学んでみます。
分かりやすく方向性をまとめて頂きありがとうございます。

お礼日時:2007/01/12 20:02

GUIプログラムといっても、GUIの実現方法がひとつではないので


これ! というものを提示することは質問に書かれたことだけからではできません。

プラットフォーム(まあWindowsでしょうか)と、どういう類のGUIプログラムを
作りたいのかを補足していただければもうちょっと具体的なアドバイスもできると思います。ただ、今からC+Windows SDKを使ってやることはお勧めできません。

どういう本を読んだら、ですが、これも前提が少ないのでどう考えたものか
悩ましいところですが、

プログラミング作法: 本: ブライアン カーニハン,ロブ パイク,Brian Kernighan,Rob Pike,福崎 俊博
http://www.amazon.co.jp/dp/4756136494

GUIプログラムは出てきませんが、どのようにプログラムを作っていくべきか
といったことの指針は得られるのではないかと思います。
    • good
    • 1
この回答へのお礼

自分はWinとLinuxをデュアルブートしているのですが、
今まではどちらでも動くものしか書いていなかったのでプラットフォームを気にしていませんでしたが、APIを使うのでOSに依存した動作になっていくのですね。

参考に載せてくれた本ですが、カーニハンさんの本は有名なK&Rは知っていましたがこういうのもあったのですね。
早い時期に読むほど良さそうなので近いうちに読んでみます。

お礼日時:2007/01/12 20:23

★私も知っています。

『柴田望洋』さん、『林晴比古』さん。懐かしい。
・確かに『ソート』や『データ構造』を学習しただけでは、どうソフトウェアと
 結びつくのか分かりませんよね。
・それを知るには、やはりプログラムを組むことです。→当たり前ですが…。
・それで、簡単な住所録などのデータを管理するソフトでも作ってみたらどうかな。
・このソフトならば、『ソート』や『データ構造』をより理解して、実践的に
 使いこなせる様になります。
・でも、まずは GUI プログラムを作成できるようにしましょう。
・C、C++、C#.NET、VB.NET どんな言語でも一通り GUI のソフトは作れます。
・C言語は基本言語と思って下さい。つまり、言語の入門ですね。
・回答者 No.2 と同様に、私もここの質問者さんに『猫でもわかるプログラミング』
 サイトをよく紹介しています。
・このサイトの
 『「猫Winプログラム」1週間攻略法』、
 『「猫Winプログラム 第2版」攻略法』、
 『Visual Studio.net設定方法』、
 『Windows SDK編 第1部』~『第4部』を参考にすれば GUI プログラミングに
 慣れると思います。まずは、WinMain 関数から『Hello world』です。

本:
http://www.amazon.co.jp/exec/obidos/ASIN/4797325 …→『Windowsゲームプログラミング』
http://www.cbook24.com/bm_detail.asp?sku=4797333 …→『猫でもわかるゲームプログラミング』
http://www.amazon.co.jp/exec/obidos/ASIN/4797328 …→『猫でもわかるWindowsプログラミング 第2版』

サイト:
http://www.kumei.ne.jp/c_lang/→『猫でもわかるプログラミング』お勧め1
http://wisdom.sakura.ne.jp/system/winapi/→『Win32 API入門』お勧め2

ダウンロード:
http://www.microsoft.com/japan/msdn/vstudio/expr …→『Visual C++ 2005 Express Edition 日本語版』
http://www.borland.com/jp/products/cbuilder/free …→『BorlandR C++Compiler 5.5無償ダウンロード』

関連:
http://oshiete1.goo.ne.jp/qa2657808.html→良回答20pt『HSP3でフリーソフト作成』回答者 No.3、No.4
http://oshiete1.goo.ne.jp/qa2652758.html→良回答20pt『ソフトウェアの作成』回答者 No.8
http://oshiete1.goo.ne.jp/qa2643801.html→良回答20pt『C言語等での画像処理の勉強方法』回答者 No.3
http://oshiete1.goo.ne.jp/qa2622985.html→良回答10pt『初心者におすすめのC言語開発環境を教えてください』回答者 No.2

参考URL:http://www.forest.impress.co.jp/article/sundaypr …
    • good
    • 1
この回答へのお礼

関連した情報をたくさん載せて頂きありがとうございます!
今日『Windowsゲームプログラミング』を本屋さんで読んでみたらGUIへの入り方が丁寧に書かれていて良い感じでした。
C#の勉強とともにこの本も参考にしてみます。
初めてGUIを作るにあたりデータを管理するソフトなんかだと、
たしかに今まで勉強したアルゴリズムなんかの成果を実感できて良いですね!
まずはそういうのを作ってみようと思います!

お礼日時:2007/01/12 20:11

趣味でプログラミングをやるなら、上達のコツとしてはやっぱり実際作ってみるに限ります。



1.こんなのを作りたい!と決める(例えば簡単なじゃんけんゲーム)
2.内容をコードに落とすとどうなるか、何が必要か考えてみる
 (「手」の入力、相手の「手」選択(乱数?)、勝ち負け比較…)
3.わからなかったら調べたりしてちゃんと解決する(Googleなど)
4.ともかく作り上げてみる

こんな感じです。

C言語はあまりGUIに向かない言語です。
GUIをやるとなると、WindowsならばWin32APIなどといった知識が必要になってきますので…
私はGUI(特にツール類など)を作るならC#を推します。(Visual C# 2005 Expressという無料開発環境が配布されています)
覚えることが多少増えるものの、「使い方」の要領がわかってくると非常に簡単です。

ただし、C言語で学んだことは無駄にはなりません。
C#やJavaといった言語は基本はC言語と同じですし、アルゴリズムの知識はプログラミングの現場ならさまざまなところで役立つと思います。
私もC言語から入りましたが、最初に学んだことは今も生き続けています。

参考URL:http://www.microsoft.com/japan/msdn/vstudio/expr …
    • good
    • 0
この回答へのお礼

C#の入門ページを見てみたのですが、
C言語とけっこう似ている部分があるのですね。
かれこれ一年ほどCの勉強をしていたので全く無駄ということにならず安心しました。
勧めて頂いたC#の本を今度探してみようと思います><

お礼日時:2007/01/12 19:55

開発環境は何をお使いですか?


Microsoft のVisual C++や、BorlandのC++ Builder でしたらWindows用のGUIプログラムを作成することが可能です。もちろん、他のC/C++コンパイラでも可能ですが。

よくこの手の質問が出てくるので、過去ログ漁って下さい。いい回答が沢山載ってます。私が同じことを書くまでも無い。いつも紹介される超有名どころでは
http://www.kumei.ne.jp/c_lang/
がお勧めです。

> そこで今の状況から実際にソフトウェアを作れるようになるには
> どういう勉強をしたら良いのか、どういう本を読んだら良いのか
> ということを教えて頂きたいです。

プロとしてそれを飯の種にする人の勉強と、趣味でちょこちょこっと作る人の勉強では大きく異なります。前者なら一般的なコンピュータサイエンスからソフトウェア工学、開発プロセス、仕様書の書き方、品質管理等々勉強すべきことが山済みです。die_freudeさんが後者だと想定すると、「本を読むよりソースコードを書いてみよう」ですね。

プログラミング上達のコツは、
1.とにかく書く。
2.書いたものを他人に見せる。
3.上手な人に悪いところを指摘してもらう。
4.優秀な人の書いたプログラムを読む。
5.下手な人のプログラムを添削してあげる。
これにつきます。

ある程度ソースコードを書けるようになったら、設計やテスト方法を学ぶことをお勧めします。
    • good
    • 0
この回答へのお礼

一口にプログラミングの勉強と言っても目的に応じて目標とすることが違うのですね。
基本的な勉強をした後どうしたら良いのか分からずFEやソフ開の資格を取ったりしてたのですが、
たしかに自分がしたいプログラミングに直結するような感じじゃなかったです><
紹介してくださったサイトが系統立っていてとても流れが分かり易そうなので参考にしてみます!

お礼日時:2007/01/12 19:15

最近ではC言語でGUI作る人はほとんどいません。


Windowsの場合C#.NETやVB.NETなんかを使って開発しますからこの辺の本から自分の能力とか好みなんかで本を選んで見てください。

ちなみに開発環境はMSから無償で手に入ると思います。
    • good
    • 0
この回答へのお礼

C言語はGUI向きじゃないのですか?
以前周りの人に聞いたらC言語を勉強するのが普通だと言われたのですが、
それだとC言語は何に使っていくのでしょうか?
そして今まで勉強したことは無駄ということになるのでしょうか><

あとgoogleで検索して調べてみたのですが、
VB.NETというのはプログラミンム言語の名前であり、
その言語を使いソフトウェアを開発するのにVisual Basic.NET 2003というようなソフトウェアが必要ということで良いのでしょうか?

お礼日時:2007/01/11 23:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!