• ベストアンサー

ソフトウェア作成への勉強方法

文系の大学生なのですが、 大学入学後にパソコンに興味を持ち現在独学でプログラミングを勉強しています。 目標はゲームや色んなフリーウェアを作れるようになりたいです。 言語はC言語を勉強していて柴田望洋さんや林晴比古さんの本を読み 一通り基本的な文法やアルゴリズムは覚えました。 しかし数値のソートやデータ構造なんかを覚えたのは良いのですが、 実際に自分が普段使っているようなソフトウェアを作るのにどう結びつけたら良いのかよく分かりません。 特にGUIプログラム作成に関しては全く作り方が分かりません。 そこで今の状況から実際にソフトウェアを作れるようになるにはどういう勉強をしたら良いのか、 どういう本を読んだら良いのかということを教えて頂きたいです。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • guccii
  • ベストアンサー率31% (14/44)
回答No.4

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

die_freude
質問者

お礼

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

その他の回答 (5)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.6

GUIプログラムといっても、GUIの実現方法がひとつではないので これ! というものを提示することは質問に書かれたことだけからではできません。 プラットフォーム(まあWindowsでしょうか)と、どういう類のGUIプログラムを 作りたいのかを補足していただければもうちょっと具体的なアドバイスもできると思います。ただ、今からC+Windows SDKを使ってやることはお勧めできません。 どういう本を読んだら、ですが、これも前提が少ないのでどう考えたものか 悩ましいところですが、 プログラミング作法: 本: ブライアン カーニハン,ロブ パイク,Brian Kernighan,Rob Pike,福崎 俊博 http://www.amazon.co.jp/dp/4756136494 GUIプログラムは出てきませんが、どのようにプログラムを作っていくべきか といったことの指針は得られるのではないかと思います。

die_freude
質問者

お礼

自分はWinとLinuxをデュアルブートしているのですが、 今まではどちらでも動くものしか書いていなかったのでプラットフォームを気にしていませんでしたが、APIを使うのでOSに依存した動作になっていくのですね。 参考に載せてくれた本ですが、カーニハンさんの本は有名なK&Rは知っていましたがこういうのもあったのですね。 早い時期に読むほど良さそうなので近いうちに読んでみます。

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.5

★私も知っています。『柴田望洋』さん、『林晴比古』さん。懐かしい。 ・確かに『ソート』や『データ構造』を学習しただけでは、どうソフトウェアと  結びつくのか分かりませんよね。 ・それを知るには、やはりプログラムを組むことです。→当たり前ですが…。 ・それで、簡単な住所録などのデータを管理するソフトでも作ってみたらどうかな。 ・このソフトならば、『ソート』や『データ構造』をより理解して、実践的に  使いこなせる様になります。 ・でも、まずは 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/4797325453/qid=1084891757/...→『Windowsゲームプログラミング』 ・http://www.cbook24.com/bm_detail.asp?sku=4797333332→『猫でもわかるゲームプログラミング』 ・http://www.amazon.co.jp/exec/obidos/ASIN/4797328487/nekodemowak01-22→『猫でもわかる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/express/visualc/→『Visual C++ 2005 Express Edition 日本語版』 ・http://www.borland.com/jp/products/cbuilder/freecompiler.html→『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/sundayprog.html
die_freude
質問者

お礼

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

  • shibamu
  • ベストアンサー率50% (10/20)
回答No.3

趣味でプログラミングをやるなら、上達のコツとしてはやっぱり実際作ってみるに限ります。 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/express/vcsharp/
die_freude
質問者

お礼

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

  • Interest
  • ベストアンサー率31% (207/659)
回答No.2

開発環境は何をお使いですか? Microsoft のVisual C++や、BorlandのC++ Builder でしたらWindows用のGUIプログラムを作成することが可能です。もちろん、他のC/C++コンパイラでも可能ですが。 よくこの手の質問が出てくるので、過去ログ漁って下さい。いい回答が沢山載ってます。私が同じことを書くまでも無い。いつも紹介される超有名どころでは http://www.kumei.ne.jp/c_lang/ がお勧めです。 > そこで今の状況から実際にソフトウェアを作れるようになるには > どういう勉強をしたら良いのか、どういう本を読んだら良いのか > ということを教えて頂きたいです。 プロとしてそれを飯の種にする人の勉強と、趣味でちょこちょこっと作る人の勉強では大きく異なります。前者なら一般的なコンピュータサイエンスからソフトウェア工学、開発プロセス、仕様書の書き方、品質管理等々勉強すべきことが山済みです。die_freudeさんが後者だと想定すると、「本を読むよりソースコードを書いてみよう」ですね。 プログラミング上達のコツは、 1.とにかく書く。 2.書いたものを他人に見せる。 3.上手な人に悪いところを指摘してもらう。 4.優秀な人の書いたプログラムを読む。 5.下手な人のプログラムを添削してあげる。 これにつきます。 ある程度ソースコードを書けるようになったら、設計やテスト方法を学ぶことをお勧めします。

die_freude
質問者

お礼

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

  • snow765
  • ベストアンサー率26% (8/30)
回答No.1

最近ではC言語でGUI作る人はほとんどいません。 Windowsの場合C#.NETやVB.NETなんかを使って開発しますからこの辺の本から自分の能力とか好みなんかで本を選んで見てください。 ちなみに開発環境はMSから無償で手に入ると思います。

die_freude
質問者

お礼

C言語はGUI向きじゃないのですか? 以前周りの人に聞いたらC言語を勉強するのが普通だと言われたのですが、 それだとC言語は何に使っていくのでしょうか? そして今まで勉強したことは無駄ということになるのでしょうか>< あとgoogleで検索して調べてみたのですが、 VB.NETというのはプログラミンム言語の名前であり、 その言語を使いソフトウェアを開発するのにVisual Basic.NET 2003というようなソフトウェアが必要ということで良いのでしょうか?

関連するQ&A

  • C言語の勉強方法

    こんにちは。 今C言語の勉強方法で悩んでいます。 私のC言語暦は、大学の授業の時に、文法一通りを覚えました。(当時はオセロゲームの次の一手を考えるようなアプリを作りました。) ポインタに関しては、柴田望洋さんの「C言語ポインタの極意」という本を少し読みました。ぼんやりと理解しているような状態です。K&Rの本は概ね理解できます。(演習問題はやっていません。) 仕事としてしているわけではなく、本はいろいろ読んでいるのですが、あまり自分でサンプルコードを打ってみたりはしていません。演習問題も解いていません。 APIに関する知識は乏しいです。アルゴリズムとデータ構造は、ヒントがないと、自力では書く自信がありません。基本情報処理技術者の資格も持っていません。 こういったレベルですが、これからどういった勉強をすればいいでしょうか?アドバイスを頂けるとありがたいです。

  • C++導入または入門書として

    大学でC言語をやっているのですが、せっかくなのでC++(VC++)も勉強したいと思っているのですが(実用ではCよりVC++ようなので) Cはある程度分かっていることを前提にして、初期段階で読むのではこのサイト等を参考にすると 独習C++ Visual C++2005 シリーズ 林 晴比古 明解 C++ 柴田 望洋 C++プログラミング シリーズ ハーベイ M. ダイテル 等あるようですが 個人的にCを林さんのでやったので使いたいとは思っているのですがあまり評価がよくないようなのでどうしようか迷っています。 他の本もあわせてご推薦いただければありがたいです。

  • C言語等での画像処理の勉強方法

    画像処理をしたいがためにCを勉強中のものです。 新版 明解C言語 入門編 (単行本) 柴田望洋 (著) を読んでCの基礎を学んだのですが、画像処理については一切触れらていませんでした。 これからC言語で画像処理の勉強をするに当たって分かりやすい本やサイトがあれば教えてください。

  • C++のSTLかJAVAのGUIの学習

    C++のSTLかJAVAのGUIを詳しく勉強したいです。 お勧めの本を紹介してください。 C++とJAVAの入門書は読み終わってます。 林晴比古さんの本を教科書で使いました。 新C++言語入門 シニア編 クラス機能 上巻、下巻 改訂 新Java言語入門 シニア編

  • C言語のおすすめ本を教えてください。

    C言語のおすすめ本を教えてください! 現在自分は学校でC言語を学んでいます。 しかし学校で教えてくれる教科書や資料はとてもわかりにくく学びにくいです。 なのでC言語の参考書を買おうと思っているのです。 今のところ候補として、 ・わかりやすいC 入門編 川場 隆 ・新版 明解C言語 入門編 柴田望洋 ・新C言語入門 ビギナー編 林 晴比古 この3冊の中から考えているのですがどれがいいでしょう? 1冊目は、唯一実際にに読んでみて分かりやすそうだなと思いました。 しかし、参考書と言うより辞書という印象を持ちました。 2冊目は、C言語の参考書の中ではかなりの人気があったため選んでみました。 試し読みの部分を読んでみましたが零代の多さはすごいと思いましたが少し説明が少ないような・・・? 3冊目は、自分ではなく先輩に以前勧められたことがあったからです。 内容は参考書と言うよりは本当にC言語を学ぶ本と言う感じでした。 自分は1冊目がいいかなと考えております。 2冊目の本は例題が多いですが内容的に足りないかなと感じました。 自分がいいと思うものがいいよと思う方もいますでしょうが、 1冊目の本を買っている方がいたら内容的にどう思うかを聞きたいです。 他におすすめ本があってもかまいません。 お願いします。

  • アルゴリズムとは何なのでしょうか?

    学校でアルゴリズムを習っているのですが、 アルゴリズムとは何なのでしょうか? 教科書として、 「新・明解 C言語によるアルゴリズムとデータ構造」という本を買ったのですが、 内容的には以前C言語を勉強するために読んだC言語の勉強本とあまり変わらないような気がします。 スタックやキュー、ソートに検索など確かにC言語を教わる本には書いてないことはありましたが、 要するにC言語の別の面ということだと思いました。 意味的にはアルゴリズムは数学でいう計算方法、 つまり答えを求めるための色々な方法というように考えたのですが、 実際アルゴリズムとはどのようなものと理解すればいいのでしょうか?

  • 勉強の方法!

    今年の4月からシステム会社のプログラマとして就職が 決まっているのですが、ほとんどプログラムの知識が ありません。 言語は、C言語を勉強しているのですが、 本やホームページを見て勉強するだけで いいのでしょうか? 効率がいい勉強方などがあったら教えてください。 時間はありますのでアルゴリズム等もしっかりと 覚えたいと思っています。 又は、他の言語でおすすめがあったら、教えてください。

  • Java言語で例を沢山見て学習できるお薦めの本

     いつも、お世話になっております。C言語を柴田望洋先生の新明解C言語という本を使用して勉強した者なのですが。Java言語で例を多く出していてCからのスムーズな移行ができるようなお薦めの本があったら教えて下さい。アプレットやサーブレットがたくさん載っているとうれしいのですが。こんなわがままな要望に合う本があると良いのですが。よろしくお願いします。

    • ベストアンサー
    • Java
  • C言語の入門書

    いい参考書を探してるんですが調べた結果 明快C言語/柴田望洋と 入門C言語新装版/田口景介 がいいって聞いたんですがどっちがいいですかね? はじめてのC言語 完全入門/塚越一雄も気になってるんですがどんな感じの本ですか? 一通りこのあたりの入門書を見ている方がいれば教えてください。 苦手分野は文字列、ファイル分野で使う関数です。

  • 基本情報処理技術者のC言語

     僕は基本情報処理技術者の勉強をしているのですが、プログラム言語は中学生のころから使っているC言語を使おうとしています。  そこで思ったのですが、C言語はどの範囲までできればいいのでしょうか。一応僕は柴田望洋さんの書いた”明解C言語入門編”を一冊読破しました。これだけでは足りないでしょうか。もし足りなかったらお勧めの本をご紹介してほしいです。よろしくお願いします。