アプリ版:「スタンプのみでお礼する」機能のリリースについて

プログラミングについてです。
大学の情報系に進学しており、当然プログラミングの授業があります。去年の後期と今年の前期でC言語を学びました。正直プログラムを作ることは全然できません。しかし、テストは過去問に目を通して覚えることなどでその場しのぎですが合格をして単位は取得できました。
今学期からJavaが始まりましたが、三回目の授業でもう詰んでしまいました。クラスとメソッドがどうこうとか理論みたいなのはある程度分かっているつもりですが、これはこういうの、これはこういうの、という説明のみで、じゃあ課題のプログラム作って~って感じで、全然プログラムを作ることができません。独学で勉強すればいいのかもしれないけど、一週間という課題の期限を与えられている中、自分で勉強をしても絶対にその期間内にプログラムを作れる気がしません。もうすでにプログラミングに対して憂鬱というか、授業があると思うと一気に気分が沈んでしまいます。
同じような体験をされた方などいましたら、どのようにこういう気持ちを乗り切りました?どのような学習方法等でプログラムを作れるようになりましたか?

A 回答 (6件)

>同じような体験をされた方などいましたら


私はそういう体験してないですけど
友人にそういうのが何人かいたので
その人たちがどうしたのかを言います

その道をやめました

はっきり言って
プログラミングなどの技術系は
学ぶ意欲がないと今後絶対にやっていけません
大学で出される程度の課題を1週間でやることが出来ないのは
意欲が無いからです。
そりゃあ興味がないことを学ぼうとするなんて無理な話です
別にそのこと自体が悪いことではないですよ
当たり前のことなんですから

>どのような学習方法等でプログラムを作れるようになりましたか?
どんなことでも通じる学習方法なんですが
自分が作りたいものを作る
これが一番の学習方法です
    • good
    • 4

数年前までシステム開発の仕事を30年ほどしていました。


その経験から。。。

プログラム作成の課題に対し答えであるプログラムの処理内容を課題となっているプログラミング言語で考えていませんか?
それだと学ぶ言語が変わるたびに一からの出直しです。
プログラムでやりたいことは必ず人が日常使っている言葉で説明できます。そうでないと実現不可能です。
ですからいきなりC言語だとかJavaで考えるのではなく、日常使っている言葉で処理手順を箇条書きにしてみましょう。
何らかのチャート図を眞井出場合はそれを使用すると効率的ですし、ビジュアル的に繰り返しや条件判断などを理解できてよいですが、知らなければ箇条書きでかまいません。
その際、繰り返し処置や条件判断のようなところは以下のように箇条書きをネストさせるとわかりやすいです。

1.××行う。
2.変数〇〇の数だけ以下の処理を繰り返す。
 (1) △△を□□する。
 (2) 変数◇◇の値に応じて以下の処理を行う。
  (2-1) ◇◇が0以上なら※※する。
  (2-2) ◇◇が0未満なら▲▲する。
 (3) ・・・
3.・・・

こんな感じです。

で。
仕事としてのシステム開発は要求定義(人がしたい事を明確にする)からはじまり機械(主にコンピューター)に処理させる部分の設計、製造、試験と続きますが、先に記しました「日常使っている言葉で処理手順を箇条書きにする」ことは設計にあたります。
ちなみに出された課題には「こういう入力をするとこういう結果が出る」という意味合いの記述があると思いますがこれも設計です。これはやりたいことの機能を具体的に示したものでソフトウェアの見た目の動きを定義しています。機能設計とか外部設計とかいった呼ばれ方をする部分で、画面デザインや印刷様式、入出力ファイル(データベースのテーブル等も)がある場合はその具体的な構造を決める事もこの設計の重要な部分です。
そして、ソフトウェア内部での処理手順を記述するのは詳細設計とか内部設計とかいった呼ばれ方をする部分で、プログラム内部のデータ構造や処理中に中間的に出力するファイルなどがある場合はその構造も具体的に決めます。処理方法の設計では使用するプログラミング言語の機能に引きずられる部分もあります。特にJavaなどの記述レベルが高い高機能な言語(より自然言語に近く、言語側で様々なツール機能を提供するプログラミング言語)では。

あと、Javaなどのオブジェクト指向言語ですが、何をクラスとするかはC言語などの手続き型言語での「モジュール分け」とは考え方が異なるのですが、オブジェクト指向をしっかり学ばずにいきなりJavaの文法だけ習って、、、ということでしたら、あまり難しく考えず自分なりの考え方で分けてよいと思います。
理屈としては例えば。。。

「“人”というクラスがあるとAさんと言う人はそのインスタンス」とか、
「“人の腕”というクラスを考えた時、人のインスタンスは人の腕のインスタンスを2つまでしか持てない」とか、
いった面倒な理屈の部分はとりあえずオブジェクト指向の学習の方に追いやり、言語実習としては文法理解に集中するのがよいように思います。やっているうちに何となく「クラスってこういう感じなのかな?」という理解も出てくるように思いますし、もしその考え方が違っていたとしてもそれに気付く機会は後々いくらでもあるでしょうし。。。

ちなみにシステム開発やソフトウェア開発を仕事としている人でもオブジェクト指向の本質的なところをしっかり理解していない人は普通にいます。「自分はJava経験がたくさんあります」という人でも作ったプログラムのソースコードを見ると「あぁ、そうなんだぁ。。。」という人は多いです。(^^;
参考まで。
    • good
    • 1

題意から逸れるかも知れませんが、無理に勉強しようとしない方が良い気がします。



私の勝手な想像ですが、主氏自身の進路とプログラミングの関連性が
不明な為、身が入らないのでは無いかと・・・

先ずは進路先の現地見学等して必要性を感じる、とか
数千件のアンケート集計をプログラム集計してみて利便性を感じる等の
体験をされてみたら如何でしょうか?
    • good
    • 0

>どのような学習方法等でプログラムを作れるようになりましたか?


せっかく1年かけてC言語でプログラムを作る勉強をしたのに、その場しのぎ
だけで済ませてしまったのが最大の失敗。
この段階で、自分の頭で考え・試行錯誤する事が、一番の勉強になったはず
なのに...
何事も、しっかりした基礎なしで、その上に物を作り上げる事はできません。
手間がかかっても、一歩一歩地道に進んでいくのが、一番の学習方法です。
    • good
    • 1

>どのような学習方法等でプログラムを作れるようになりましたか?


その場しのぎで先人の作品を利用するのではなく、先人の作品を
 鑑賞(なるほど!、賢い!など感動しながら)して、
 妄想(このテクニックはどこで使えるか想像をめぐらして)して夢を広げ、
 技(わざ)を盗む(実際に使って自分のものにする)
かしら

回答していて気が付きました。
これって、プログラミング以外の他の科目でもいえる学習方法ですね。

>授業があると思うと一気に気分が沈んでしまいます。
それならいっそう、転科、進路変更を検討されたらいかがです?
    • good
    • 0

う~ん、Javaの道具立ては、多人数で大きなプログラムを作る為の工夫に溢れてて


初心者には複雑なだけでしょうね。経験積まないと訳わからんでしょう。

最初はクラスー個にメソッド数個くらいの規模で、Cと似たような
かんじで簡単にわかる範囲から
初心者本を見つつ始めることをお勧めします。

課題ですが、内容にもよりますね。自力で出来ないなら人にレクチャを頼む
しかないでしょう。

情報学科なら、入学前からのJava使いなど、腐るほどいると思いますよ。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!