文系の大学生なのですが、
大学入学後にパソコンに興味を持ち現在独学でプログラミングを勉強しています。
目標はゲームや色んなフリーウェアを作れるようになりたいです。
言語は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を探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
中卒がプログラマーとして生き...
-
変数・関数 メモリの関係 本...
-
OpenGLで質問があります。
-
C言語、C+、C++、C#の違い
-
Pythonって何を意識した言語な...
-
COBOLで文字タイプを数字...
-
Visual Studio Codeについて
-
プログラムに書かれる"%"記号の...
-
TO_CHARで小数点以下がある場合...
-
C++ ってなんて読む?
-
UNITY Float型の接尾辞fって
-
C言語とhtmlの違いを どな...
-
エクセルVBAでRS232Cへ
-
COBOLでのNOT = の AND条件
-
VBSとWSHは読み方が違うだけで...
-
どのソフトでHPを作っているか...
-
作業工程 SDとMD
-
HTMLてインタプリタの類になる?
-
MFCとC++/CLIとの比較
-
Python で筆算のプログラミング...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラミングに触れて見たい
-
情報工学科にはパソコン知識が...
-
PixivとかDMM(FANZA)みたいなサ...
-
プログラマーになったきっかけ...
-
中卒がプログラマーとして生き...
-
「やさしいC」の次に読む本を探...
-
Win32APIは覚えて損する?
-
プログラミングの習得期間はど...
-
中学生 プログラマーになりた...
-
万年カレンダーのプログラムの...
-
ExcelでのVisual Basicのプログ...
-
C#の基本文法が詳しく書かれて...
-
オリジナルの占いサイトを作る...
-
今からWin32を勉強する意義
-
独学でプログラミングを習得す...
-
自作でプレステ対応ゲームは作...
-
VBAの勉強の仕方
-
プログラミングに 興味をもっ...
-
ゲームを作りたくてプログラミ...
-
変数・関数 メモリの関係 本...
おすすめ情報