いつもお世話になっております。
プログラムの勉強をしているのですが、どの本を読んでも一定の難しさのところで挫折してしまいます・・。
こんなことではいけないと思い何度も読み返してみるのですが、やっぱり分からず、言葉を調べてもやっぱりピンと来ないし、分かりやすい説明を求めて別の本をやってみる。というのを繰り返しています。
自分には出来ないのかと悲しくなってしまうときもあります。。
そこで、皆さんはどうしても理解できんって時はどうしているか伺いたいのです。勉強のコツというより、継続のコツを教えて頂ければと思います。進むスピードはゆっくりでもいいのですが、とにかく嫌にならない方法があれば知りたいと思っています。
現在Objective-Cという言語を学んでいて(Macしかもっていないため)そんなに難しい言語ではないらしいので、これをマスターしたいと思っています。いろいろ試行錯誤しながら4ヶ月(うち1~2ヶ月は前段階としてC言語)勉強しましたが、まだボタンを押すとハローワールドが表示されるアプリが作れるレベルです。それより難しいアプリになると、どうしても何かいてあるか分からなくなるのです。
アプリを作ったりの演習をせずにC言語を徹底的に勉強した方がいいのかな、とも考えています。
長くなってしまいもうしわけありません。
アドバイスいただけると嬉しいです。
No.5ベストアンサー
- 回答日時:
★挫折しないプログラム勉強法
・次の方法を参考にして下さい。
(1)本などを買うときに著者が異なる本を買います。
これにより同じ内容でも別の表現で解説されているので理解しやすくなります。
(2)本、ネットのプログラミングに関する内容を読むだけでなく実際にサンプルを
作成して試す手間を掛けます。できればコピー&ペーストではなく自分の指で
入力していきます。時間は掛かりますが実感があり実行時の感動から挫折しないはず。
(3)本、ネットのサンプルをいろいろと変更して動作を試すことです。(エラーも含む)
(4)ちょっとしたツールを作ってみます。
特に目標がなければ Vector さんへ行き自分でも作れそうなフリーソフトか、
使いたいと思うフリーソフトを元に本、ネットを駆使してツールを作成します。
(5)私のお勧めソフトは『時計』です。
最初はただのデジタル時計。
次にアラーム機能を追加。
次にタイマー機能を追加。
次にストップウォッチ機能を追加。
次にカウントダウン機能を追加。
次にカレンダー機能を追加。
次にスケジュール機能を追加。
次にCPUモニター機能を追加。
次に電電モニター機能を追加。
その他いろいろと機能追加してきます。
追加していくうちに全体の構造を見直す必要が出てきますがこれもお勉強の一環です。
こんな感じです。
その他:
>コードというよりは、説明してある概念がよくわからないことが多いです。
>確かに正確には動くけど、なんでこうなるのか分からない・・というような。
↑
これは Windows の GUI の仕組み(概念)が理解していないからです。
会社では VB を学んでいるようですが VB も VC 系でも概念は同じです。
つまり Windows OS での GUI プログラムは WM_XXXXX メッセージを処理する
プロシージャが一番重要です。このプロシージャがどのように呼ばれるのかの
概念をまず理解します。この概念が理解できないと
>でも、むしろコマンドライン上で動くプログラムを組んでいたときの方が
>楽しく感じていました。
↑
コマンドラインの方が楽となります。
コマンドライン型と GUI 型は全く別の概念を持つ必要があります。
>何をやっても消化不良になってしまうので面白くないのかも。。
↑
消化不良になってしまうのはメッセージ・ループやそのメッセージ処理の仕組みを
完全に理解していないからです。本、ネットでメッセージ・ループとその仕組みを
検索してそこから勉強して下さい。あと VC 系は C 言語+Win32 API と C++ 言語と
MFC とか、C++/CLI 言語とかいろいろのタイプで開発できます。
VC 系が初めてなら C 言語+Win32 API での学習をお勧めします。
この方法ならメッセージの仕組みや VB でも使える知識と経験が身に付いて来ます。
>何となく自分ではC言語系の技術も覚えておきたいというのがあって勉強しています。
↑
知っておいて損はしませんが C 言語系はポインタがあります。
VB にはない概念です。
このポインタを使いこなせるかどうかで C 言語系での GUI を理解できるかどうかが
分かれると思います。理由はプロシージャ関数は wParam、lParam でいろいろなデータを
ポインタとして受け取ったりしますので。構造体(共用体)やポインタの基礎知識が
必須です。
>家のパソコンがマックってのもネックになっています(ちょっと後悔しています・・
↑
Mac 環境で Windows のプログラミングは出来ますか?
Mac は使ったことがありませんが Windows のプログラミングはやはり Windows の環境が
使えるパソコンを中古でも良いので用意した方がいい気がします。
本、ネットの記事を読むだけでは何時までたっても『消化不良』のままです。
・以上。参考に。
凄く丁寧にご回答いただきましたありがとうございます。
そうですね、概念的なものがつかめないのはやはり力不足な証拠なのだと思います。
やっぱりC言語と、コンピューターそのものの知識を焦らずに地道に蓄えて行く事をしっかりやろうかと思います。
この業界に未経験から入った(大学まで全く違う分野)ため、一刻も早く一人前になろうと(むしろ周りを蹴落としてやろうと)勝手に暴走していた部分があると思いました。浅い理解でどんどん進んでもいい事ないですね。
ところで、機能を少しずつ足して行くというアイデア(?)は素晴らしいですね!
コマンドラインの勉強の息抜きに、GUIでそれこそハローワールドから計算結果してみたり、ボタン増やしてみたり、いろいろ足してみたい機能を先行させる形で勉強してみようと思います。
時計も、少し慣れたら絶対に試してみます。
やる気が出ました!アドバイスありがとうございます!
No.6
- 回答日時:
Objective-Cを使ってCocoaのプログラミングをマスターしたいのに、WindowsやC++/CLIの話をしてみてもほとんど無意味ですね。
Cocoaフレームワークを理解するためにはObjective-Cの理解が必須でしょうし、Objective-Cの理解にはCの理解が必須だと思います。C++とは異なり、Objective-Cに関する資料の大多数はCを習得していることが大前提になっているでしょうから。
仕組みは分からなくても、とりあえず動くものを作りたいのであれば、どんどん先に進むのもよいでしょう。会社でVisualBasicを学ぶときも、おそらくそうしているのではないでしょうか。
そうではなく、コンピュータに対する理解を深めたいからC言語系の勉強をしたいのですよね。それなら、足場からしっかり固めることをお勧めします。
No.4
- 回答日時:
ただ目的もなくプログラムを勉強するのは無理があると思います。
目的を作って、それに向かって勉強していくのが良いんじゃないでしょうか。
目的となるアプリも最初は簡単な物を目標にしてステップアップしていく感じで目的を変えていくのが良いと思いますよ。
[目的の例]
・簡単な電卓
・簡単なメモ帳
・簡単なお絵かきソフト
あと自分の趣味というか得意の分野に関係したプログラムも良いかもしれません。数学が得意なら数学的な図形表示のプログラムを作るとか。音楽関係なら、音に関係したソフトとか。
そうですね、確かに目的がないと辛いというのは痛感しました。
しっかりとした動機づけをできるようにしたいです。
回答ありがとうございました。
No.3
- 回答日時:
ハローワールドなんかを作ることが目的ではないでしょ。
何か目的があれば嫌でも覚えます。必要は発明の母とは良く言ったもので、私の場合は必要に迫られたからというのもありますが。まぁ一番大きいのは不精モノだからというのがあります。ちょっとした繰り返し作業を行うことを一々手作業で行うことが我慢ならないため、バッチやマクロから始めて、それでは実現できない壁にぶち当たれたばネットや書籍で勉強しての繰り返しです。そうこうしているうちに周りからこれ出来ないか、あれをやってくれと頼まれて・・・となって便利屋的に扱われていますが、その状況には全く不満もなく、逆に自分から提案することも多々あります。私のレベルはあくまでも日曜プログラマレベルのものでしかありませんが、常に何かを勉強し続ける動機ははっきりと自覚しています。
本格的なプロのプログラマーを目指しているのであれば、それはそれで勉強する意欲もわいてくるでしょうが、質問者さんの場合は、一体何が動機になっているのでしょうか。それが無いのであれば、そもそも勉強する必要すらないと思いますが。
そうですね、目的を持てば勉強ははかどるとはいろいろなところで読むのですが、必要に迫られる状況に持ってくのが苦手なのもあるかもしれません。
自分自身は中途で未経験プログラマになったばかりで、会社ではVBを学ばせてもらっているのですが、何となく自分ではC言語系の技術も覚えておきたいというのがあって勉強しています。
家のパソコンがマックってのもネックになっています(ちょっと後悔しています・・
No.2
- 回答日時:
> まだボタンを押すとハローワールドが表示されるアプリが作れるレベルです。
ということは、GUIのプログラムを作っているのですね。
言語そのものを十分に理解しないうちに、いきなりGUIを扱おうとすると、どうしても消化不良を起こしてしまいます。
まずは、コマンドライン上で動作するプログラムで、しっかり言語そのものを習得し、その上でGUIやネットワークに手を出した方がよいと思います。
> アプリを作ったりの演習をせずにC言語を徹底的に勉強した方がいいのかな、とも考えています。
C++とは異なり、Objecttive-Cの場合は、やはりCを徹底的に勉強した方がよいと思います。
解答ありがとうございます。
はい、GUIのアプリを作って勉強しています。
でも、むしろコマンドライン上で動くプログラムを組んでいたときの方が楽しく感じていました。
おっしゃるとおり、何をやっても消化不良になってしまうので面白くないのかも。。
出直すつもりでC言語の基礎からもっかいしっかり勉強してみようと思います!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 仕事術・業務効率化 効率的な勉強方法(分野問わず)を教えてください 1 2023/08/16 01:33
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- 大学受験 大学受験英語長文の勉強法について 武田塾のYouTubeなどを参考にして、勉強法を考えました 自分は 2 2023/05/05 08:05
- 大学受験 大学受験英語の勉強法についてです どうしても英語長文の勉強ができません 初めて数分で絶対にやる気がな 2 2023/05/05 00:32
- その他(コンピューター・テクノロジー) AIに関連する用語を理解したい、RNN、LMM、LSTMなど、書籍で理解したい 1 2023/07/06 22:18
- 大学受験 高3。通信制高校生。英検四九レベル偏差値は30も無いでしょう。社会不適合者です。 中学は2年から頭に 1 2022/05/12 22:06
- 高校 英語の勉強法について 3 2022/05/05 22:35
- 英語 今高校二年生なんですけど今になって英語を勉強してまして、留学に行きたいし海外の人と関わって生きていき 5 2022/06/04 16:03
- その他(メンタルヘルス) 「自己啓発系サイトや本を読むコツ」 自己啓発系サイトや本を全体的に把握できなくても、理解できるコツが 4 2022/12/14 20:29
- その他(プログラミング・Web制作) 次に、楽天のアジャイル就活に参加して、1日で内定を獲得できる。私は大企業に就職できる? 2 2022/04/17 13:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Pythonを勉強する道のり
-
MSFormsとは何ですか?
-
データベースのデータをTextBox...
-
Lex,Yaccについて。
-
WindowsでのOvjective-C開発環境
-
VBAの「for i=1 to cells(…」...
-
XMLの勉強方法
-
テンプレートエンジンとフレー...
-
XMLとUMLの相違点?
-
独学でc言語ってどうやって勉強...
-
エクセル VBAでフォルダ内のPDF...
-
プログラミング未経験者がRails...
-
大学生です。プログラミングに...
-
PHPとMySQL の勉強環境の構築方法
-
A[1][1] = A[1][1] - A[0][1] *...
-
サイト訪問者の情報を取得したい
-
為替レートの取得方法
-
クッキーの使い方
-
vba クリップボードクリアにつ...
-
Javaでのエラーについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MSFormsとは何ですか?
-
VBAの「for i=1 to cells(…」...
-
データベースのデータをTextBox...
-
Pythonを勉強する道のり
-
XMLとUMLの相違点?
-
エクセルVBAを動かすノートPC...
-
質問です。 Java言語を勉強出来...
-
Fortranのmakefileについて
-
サイト訪問者の情報を取得したい
-
C#とDelphiの違いについて
-
超恥愚問ですが、CとC++の間に...
-
Excel VBAマクロをマスターする...
-
画像編集ソフトの作り方
-
2ショットチャットができるHP...
-
pythonでの掲示板作成
-
Java Struts メッセージリソー...
-
サーブレットで電卓をつくる
-
C++ですごろくゲーム作成
-
助けでください!!!!!!!...
-
エクセルでガントチャート
おすすめ情報