文系の大学生なのですが、
大学入学後にパソコンに興味を持ち現在独学でプログラミングを勉強しています。
目標はゲームや色んなフリーウェアを作れるようになりたいです。
言語はC言語を勉強していて柴田望洋さんや林晴比古さんの本を読み
一通り基本的な文法やアルゴリズムは覚えました。
しかし数値のソートやデータ構造なんかを覚えたのは良いのですが、
実際に自分が普段使っているようなソフトウェアを作るのにどう結びつけたら良いのかよく分かりません。
特にGUIプログラム作成に関しては全く作り方が分かりません。
そこで今の状況から実際にソフトウェアを作れるようになるにはどういう勉強をしたら良いのか、
どういう本を読んだら良いのかということを教えて頂きたいです。お願いします。
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++でのプログラミングを考えてもよいのではないでしょうか?
そのころには、また今とは時代が変わっているかもしれませんから。
なるほど、とりあえずGUIプログラムを作りたいしか考えていなかったのでプラットフォームの互換とか処理の効率とか全然考えていなかったです。
みなさんC#を勧めてくれるのでまずはそれを勉強してみようと思います。
そして慣れてきたらWINAPIなどについても学んでみます。
分かりやすく方向性をまとめて頂きありがとうございます。
No.6
- 回答日時:
GUIプログラムといっても、GUIの実現方法がひとつではないので
これ! というものを提示することは質問に書かれたことだけからではできません。
プラットフォーム(まあWindowsでしょうか)と、どういう類のGUIプログラムを
作りたいのかを補足していただければもうちょっと具体的なアドバイスもできると思います。ただ、今からC+Windows SDKを使ってやることはお勧めできません。
どういう本を読んだら、ですが、これも前提が少ないのでどう考えたものか
悩ましいところですが、
プログラミング作法: 本: ブライアン カーニハン,ロブ パイク,Brian Kernighan,Rob Pike,福崎 俊博
http://www.amazon.co.jp/dp/4756136494
GUIプログラムは出てきませんが、どのようにプログラムを作っていくべきか
といったことの指針は得られるのではないかと思います。
自分はWinとLinuxをデュアルブートしているのですが、
今まではどちらでも動くものしか書いていなかったのでプラットフォームを気にしていませんでしたが、APIを使うのでOSに依存した動作になっていくのですね。
参考に載せてくれた本ですが、カーニハンさんの本は有名なK&Rは知っていましたがこういうのもあったのですね。
早い時期に読むほど良さそうなので近いうちに読んでみます。
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/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 …
関連した情報をたくさん載せて頂きありがとうございます!
今日『Windowsゲームプログラミング』を本屋さんで読んでみたらGUIへの入り方が丁寧に書かれていて良い感じでした。
C#の勉強とともにこの本も参考にしてみます。
初めてGUIを作るにあたりデータを管理するソフトなんかだと、
たしかに今まで勉強したアルゴリズムなんかの成果を実感できて良いですね!
まずはそういうのを作ってみようと思います!
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/expr …
C#の入門ページを見てみたのですが、
C言語とけっこう似ている部分があるのですね。
かれこれ一年ほどCの勉強をしていたので全く無駄ということにならず安心しました。
勧めて頂いたC#の本を今度探してみようと思います><
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.下手な人のプログラムを添削してあげる。
これにつきます。
ある程度ソースコードを書けるようになったら、設計やテスト方法を学ぶことをお勧めします。
一口にプログラミングの勉強と言っても目的に応じて目標とすることが違うのですね。
基本的な勉強をした後どうしたら良いのか分からずFEやソフ開の資格を取ったりしてたのですが、
たしかに自分がしたいプログラミングに直結するような感じじゃなかったです><
紹介してくださったサイトが系統立っていてとても流れが分かり易そうなので参考にしてみます!
No.1
- 回答日時:
最近ではC言語でGUI作る人はほとんどいません。
Windowsの場合C#.NETやVB.NETなんかを使って開発しますからこの辺の本から自分の能力とか好みなんかで本を選んで見てください。
ちなみに開発環境はMSから無償で手に入ると思います。
C言語はGUI向きじゃないのですか?
以前周りの人に聞いたらC言語を勉強するのが普通だと言われたのですが、
それだとC言語は何に使っていくのでしょうか?
そして今まで勉強したことは無駄ということになるのでしょうか><
あとgoogleで検索して調べてみたのですが、
VB.NETというのはプログラミンム言語の名前であり、
その言語を使いソフトウェアを開発するのにVisual Basic.NET 2003というようなソフトウェアが必要ということで良いのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
情報工学科にはパソコン知識が...
-
プログラミングに 興味をもっ...
-
アマグラマーについて
-
Win32APIは覚えて損する?
-
自作でプレステ対応ゲームは作...
-
こんなプログラミング可能です...
-
C言語、C+、C++、C#の違い
-
C言語とhtmlの違いを どな...
-
UNITY Float型の接尾辞fって
-
プログラミング言語を作るには
-
楽しくて最高のプログラミング...
-
Excel VBAで文字化けする (英語...
-
数式を作るソフト教えて下さい。
-
プログラムに書かれる"%"記号の...
-
プログラマは頭が良くなければ...
-
ゲームの開発言語(1980~2010年)
-
abnormal program termination
-
Visual Studio Codeについて
-
アセンブリ名とは??
-
VBScriptで引数を省略したい場合
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PixivとかDMM(FANZA)みたいなサ...
-
「やさしいC」の次に読む本を探...
-
今からWin32を勉強する意義
-
プログラム上達するためには?
-
アンドロイドアプリを学ぶには
-
Linux Cプログラミングを学ぶた...
-
プログラミング言語
-
VBA初心者の勉強法とお勧めの書籍
-
自作でプレステ対応ゲームは作...
-
Win32APIは覚えて損する?
-
教えてください!
-
『ゼロから作るディープラーニ...
-
私は、プログラマーになって5年...
-
これから学ぶべきプログラミン...
-
プログラムに関しての疑問です...
-
windowsプログラミングについて...
-
こんなプログラミング可能です...
-
DirectX9を使って球を動かすデ...
-
プログラミング好きですか?
-
VBAの勉強の仕方
おすすめ情報