
文系の大学生なのですが、
大学入学後にパソコンに興味を持ち現在独学でプログラミングを勉強しています。
目標はゲームや色んなフリーウェアを作れるようになりたいです。
言語は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で質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- 仕事術・業務効率化 効率的な勉強方法(分野問わず)を教えてください 1 2023/08/16 01:33
- その他(プログラミング・Web制作) 次に、楽天のアジャイル就活に参加して、1日で内定を獲得できる。私は大企業に就職できる? 2 2022/04/17 13:38
- 高校受験 中3 高校受験 今日全県模試を受けて自己採点をしたのですが、めちゃくちゃ勉強した社会が38点でショッ 2 2022/12/04 17:51
- 大学受験 高3、march志望です。助けてください...! 古文の模試で3割しか取れませんでしたT^T 今から 6 2022/09/24 09:44
- 中学校 中2女子です。私は最近医者を目指したいと考えているのですが、目指す上でいくつか知りたいことがあります 10 2023/05/09 03:43
- 高校受験 中3 9月 模試の結果D判定 夏に受けた模試の結果が第1志望D判定でした。 あと21点でやっと合格圏 3 2022/09/09 23:19
- 高校 テスト勉強について 中間テストの結果がかえってきたのですがあまりよくありませんでした。 現代の国語と 2 2023/06/05 00:46
- 大学・短大 通信制高校 成績について 1 2022/07/15 12:01
- 大学受験 立教大学か中央大学か 3 2023/01/06 11:06
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プロゲートを終えて絶望してい...
-
自作でプレステ対応ゲームは作...
-
PixivとかDMM(FANZA)みたいなサ...
-
C言語、C+、C++、C#の違い
-
COBOLでのNOT = の AND条件
-
C言語とhtmlの違いを どな...
-
リピート再生が出来ません
-
【Cか】ノベルゲーム【Jav...
-
VBSでDim、Private、Publicの違い
-
HOLONついて教えてください。
-
VCとVC++
-
プログラムに書かれる"%"記号の...
-
ニンテンドーDSのソフト作成に...
-
TANDEM言語ってあるんですか?
-
スクリーンセイバーの作り方
-
PL/Iについて
-
VBScriptで引数を省略したい場合
-
Excel VBAで文字化けする (英語...
-
パスカルケースの由来。
-
どのプログラミング言語で作ら...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プロゲートを終えて絶望してい...
-
PixivとかDMM(FANZA)みたいなサ...
-
自作でプレステ対応ゲームは作...
-
オリジナルの占いサイトを作る...
-
情報工学科にはパソコン知識が...
-
今からWin32を勉強する意義
-
プログラマーになったきっかけ...
-
C++Builder初心者の勉強法
-
OpenGLで質問があります。
-
組込技術者を目指しています
-
独学でプログラミングを習得す...
-
ゲーム改造について
-
Linux Cプログラミングを学ぶた...
-
情報端末自作
-
私は、プログラマーになって5年...
-
プログラミングで学ぶ上での数...
-
ASPについての基礎知識
-
組み込み系+制御系プログラム...
-
C++とJava、両方学ぶとしたらど...
-
中卒がプログラマーとして生き...
おすすめ情報