いちばん失敗した人決定戦

高3です。来年から4年制大学の情報系学科に進学します。
現在、初心者向けの書籍でJAVAの学習をしていて、簡単な演算や条件分岐のパートが終わり、オブジェクト指向の学習をしています。今のペースだとあと3週間程度で今使っている参考書の学習が終わりそうなので、その後何をやろうか悩んでいます。
今のところ、選択肢は下記の3つなのですが、もし宜しければ、何をやるべきかご助言お願いします。
1,VBA(高校の授業でも少し触れたので、個人的にはこれが一番やりたいです。)
2,他のプログラミング言語(名称とおすすめの理由を教えて頂きたいです。)
3,他の参考書を買ってVAJAの学習の継続

追記:抽象的な言い方で大変恐縮ですが、プログラミング言語を学習する際、複数の言語を1通り軽く触れるのと、1つの言語をより掘り下げて学習するのではどちらの方がいいのでしょうか。
皆様のご回答、お待ちしております。

A 回答 (11件中1~10件)

>複数の言語を1通り軽く触れるのと、


>1つの言語をより掘り下げて学習するのでは
>どちらの方がいいのでしょうか。

最初はひとつが良いでしょう。まずはその言語の
エキスパートになるつもりで、深く付き合うと、
その経験は他の言語にも活かせます。

但し、ずっと一個だけは良くないです。
①言語によって設計思想がかなり異なる。
Cのようにハ―ドウェアに近いところのプログラムを書くのに
向いた言語もあるし、Javaのようなガチガチの静的型付言語は
大規模開発に向いてる。pythonやJavascriptのような
動的型付言語は、コンパクトにコードが書けて便利だが
バグが潜み易く、試験の重要性が静的型付言語より高い。

其々の言語の特性を知ることで頭がほぐれるし
適材適所を知ることが出来ます。
一つの言語を極めつつ、つまみ食いするのが良いかも。

②web開発は単一言語では開発出来ません。
・画面を表現するためのHTML/CSS
・HTML/CSSと生成するためのView言語(JSP、JSF、Jinja2、ASPX、etc)
・ブラウザ側のプログラミングのためのJavascript/Typescript
・バックエンドのプログラミングに必要なJava/PHP/C#/python等
・データベースの操作に必要なSQLやストアードプロシージャ用の言語
PL/SQL、T-SQL、etc

これらに精通しないとWebアプリケーションを
まとめることは出来ません。
一つのソースの中に複数の言語が混在するのもざらです。
混沌を楽しめる根性がないと
やってられません(^_^;)
    • good
    • 2
この回答へのお礼

なるほどです。
ご丁寧にいろいろ教えていただき、本当にありがとうございました。

お礼日時:2022/03/02 11:30

>4章でオブジェクト指向が出てきたので


JavaではライブラリはOOPで作られてますし、
オブジェクトの生成やメソッドの呼び出し方
を知らないと、Javaでは何も出来ないので、
JavaではOOPの最低限の知識は必須です。

でもクラスの書き方を一通り覚えても、
それをどう使うかはまた別問題です。
#Javaではクラス書かないと
#何も始められませんが(^_^;)

オブジェクト指向の設計は別途学習が必要ですが
千行くらいのプログラミングの経験が沢山ないと
ピンと来ないと思います。

さしあたってJavaではコードを読んだり
コレクションを使うのに困らない程度に
OOPを学んで、プログラミング初心者の内は
あまりOOPに深く突っ込まないことを
お勧めします。

また、pythonのように取りあえずOOP抜きでも
学習できる言語の方が良いかも知れません。

#OOP至上主義の方達から石が飛んで来そう(^_^;)
    • good
    • 1

ちょつと気になった点。



Javaで演算や分岐やル―プの書き方を学んで、
基本的なコードの書き方を学ぶと
様々なアルゴリズムを記述できるようになりますが、
それとオブジェクト指向の学習はかなり異質だと思います。

最初からオブジェクト指向を徹底的に覚えた方が良いという
意見も良く聞きますが、オブジェクト指向はプログラムをより
小さな単位に分割する時の手法で、数百行くらいのコードを
作る際それ程有用ではないと考えてます。

私見ですが、まず、様々なテーマで数十行/数百行くらいのコードを
OOP抜きで沢山書いて、小規模なコードを書き下す力を付けるのが
良いと考えてます。

言語は何でも良いのですが、
小さなコードをお手軽に試すなら
pythonが適してますね。
    • good
    • 1
この回答へのお礼

今使っている参考書が1章から9章までありまして、1章から順番に勉強していたところ、4章でオブジェクト指向が出てきたので、それを勉強している次第です。貴重なご意見ありがとうございました。
是非ご参考にさせて頂きます。

お礼日時:2022/03/01 22:59

覚えた言語で何がつくれるか試してみたらいいと思います。


Javaであればグラフィックもネットワークもデータベースアクセス機能も用意されており、普通に思いつくたいていのものが作れるような気がします。

実用品をつくろうとすると大変ですが、実用にならなくていいです。
実際に作ってみて問題に突き当たらないと、なかなか身につかないと思います。
    • good
    • 1
この回答へのお礼

分かりました。まずはJavaに慣れられるように頑張ります。
ご回答、ありがとうございます。

お礼日時:2022/03/01 23:00

この段階だと、簡単なコンソ―ル用プログラムの作成を


沢山こなすのがよいかと。
まずは自力でコードを編み出す力をつけないと。

ちょっと思い付くのは

①今月のカレンダをカレンダAPIを使わずに出力する。
②エイトクイーンなどでバックトラック探索に親しむ。
③素数を一万まで計算してみる
④物理や数学が好きなら各種の数値シミュレーションに挑戦してみる。

などなど、いくらでもあります。

それとまだまだ先と思いますが
Javaならwebアプリでしょう。

まずはJSP/サーブレットから始めてみるのも面白いかも。
とんでもなくハードル高いけど
Javaはほぼ100%Webアプリで使われているので・・・
    • good
    • 1
この回答へのお礼

参考になります。とりあえずは復習としていろいろ自分で考えてプログラムを書いてみます。ご回答、ありがとうございました。

お礼日時:2022/02/27 08:51

プログラム言語は実用として使ってこそ身につくものなので、最初の入門勉強が終わったら実践に入りましょう。



4. ゲームを作って遊ぶ。
最初は既存ソースをそのまま写し、修正や改造していく教材の例
https://puyo.sega.jp/program_2020/

5. プログラムで数学パズルを解く
市販されている問題集の例
https://www.shoeisha.co.jp/book/detail/978479814 …

6. 今困っている問題を解決するプログラムを作る
大学のシラバスが見づらいから独自に改善した例
https://zenn.dev/sugiken/books/bb9c3391ab9118d88 …
    • good
    • 1
この回答へのお礼

参考になります。今の学習が終わったら、時間を作って取り組んでみます。
ご回答、ありがとうございました。

お礼日時:2022/02/27 08:49

> まずは自分のやりたいようにやって、何が肌に合っているのかじっくり考えていきたいと思います。



うん、頑張って下さい。

なお、以下は単純な情報、です。
繰り返しますが「これを勉強しろ」って言ってるわけじゃないです。
ただ、プログラミング初心者は「有名な言語が良い言語」だと言うバイアスがかかってる事がしばしばあるので、一応マイナー言語でも紹介しておこうと思いました。
貴方はJavaを既に知ってるので、JVM言語、と言われるものを列挙していきます。
JVMは、既に知ってると思いますが、Java Virtual Machine(Java仮想マシン)の略称です。
そして実はJVM上で動くプログラミング言語は既にいくつか存在して、それらは当然Javaで書かれています。
言い換えると、この世には「Javaと言うプログラミング言語で書かれたプログラミング言語」と言うモノが存在してるのです。
と言う事は貴方が興味があるかどうかは知りませんが、貴方もJavaで「俺様プログラミング言語を」作れる、と言う事を意味します。
そして、全部オープンソースなんで、実際「どうやってJavaで書かれてるのか」を読む事が可能です。

まずはいっちゃん有名なJVM言語から。

Scala:
https://ja.wikipedia.org/wiki/Scala
https://scala-lang.org/ (公式ページ)

広範囲で使われてるプログラミング言語ではないですが、それでも知名度だけ、は異様に高い言語です。なんせ「Twitter」はこれで書かれてるから、です。

Rhino(EcmaScript/JavaScript処理系):

https://ja.wikipedia.org/wiki/Rhino
https://mozilla.github.io/rhino/ (公式ページ)

プログラミング言語としてはいわゆるJavaScriptです(正式名称はEcmaScript)。
通常、JavaScriptはHTMLに嵌め込んだり、DOMと言う「JavaScriptと全く関係がない」機能を使ったりして、ブラウザで実行させる前提なんで学習は紛れが多いです。
ところが、このRhinoはJavaScript「単独」で実行する処理系です(スタンドアロンとか呼ぶ)。
つまり、これを使うと「JavaScriptだけ」を学ぶ事が出来る。
プログラミング初心者には通常勧めないんですが(セッティングが若干メンド臭いから)、貴方は既にほぼJavaを学び終えてる、と言う話なんで、敢えて紹介しました。

Processing:

https://ja.wikipedia.org/wiki/Processing
https://processing.org/ (公式ページ)

最近あっちこっちの大学で、「入門用言語」として使われてるらしい、です。
この言語の特徴は「描画」に特化してる辺りでしょう。アニメーションも出来る。
言い換えるとズブのプログラミング素人が「プログラミングってこんな事が出来るんだろうな」と言う「想像通り」のプログラミング言語です(他の言語では、希望に反して「端末相手の」地味な結果しか得られない・笑)。
文法的には「Javaを簡易化した」ような言語です。だからJava修得者には違和感が無く扱えるでしょう。
言い換えると、Javaに含まれる「描画系ライブラリ」を簡易に扱えるような言語、となってます(とは言っても、本音を言うと、初心者向けの簡単な言語、ってワケではないです)。

Clojure:
https://ja.wikipedia.org/wiki/Clojure
https://clojure.org/ (公式ページ)

やたらマニアックな信者が多いプログラミング言語、です。言語「自体」ではこの4つの言語では一番パワフルでしょうが、残念ながら活用例は(少なくとも個人的には)知りません(プログラミング言語「自体」のパワフルさと「活用事例」は実はあんまり関係がない)。
なお、入門書籍も発売されています。

プログラミングClojure 第2版:
https://www.ohmsha.co.jp/book/9784274069130/

この4つの言語ともJavaの豊富なライブラリを「使い放題」と言うのが特徴です。
言い換えると、一種「コバンザメ」なんですよね(笑)。自分で一からライブラリを作るよりもJavaから借りてきた方がイイんじゃない?ってのが少なくともJVM言語になった一つの理由ではあります。
    • good
    • 1
この回答へのお礼

時間を作っていろんな言語に触れていこうと思います。
ご丁寧にいろいろ教えて頂き、本当にありがとうございました。

お礼日時:2022/02/27 08:48

それを大学が教えてくれるんじゃないの

    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。
入学まで時間があるので、自主学習でプログラミングの勉強をしています。
進学先の大学とは連絡を取っていません。

お礼日時:2022/02/26 21:48

あと。



> 抽象的な言い方で大変恐縮ですが、プログラミング言語を学習する際、複数の言語を1通り軽く触れるのと、1つの言語をより掘り下げて学習するのではどちらの方がいいのでしょうか。

どっちでもいいです。
好きなようにすれば良い。
人によっては「極める」方がラクな人と「浅く広く」学ぶ方が好きな人がいます。
どっちも正解です。単に貴方がどっちのタイプなのか、によるのです。
学校で学ぶのではなくて、自習ならなおさら「自分がどっちのタイプか」見極めてやるべきで、これも人の「経験論」に左右されるべきじゃないですね。
繰り返しますが、重要なのは「貴方がどっちのタイプなのか」です。

ちなみに、こういう場合、なるたけ抽象度が高い高級言語を選んだ方が恐らくBetterだと思いますが、「どれを選ぶのか」と言うのもぶっちゃけ、「学校で学ぶのではなければ」「就職を考えなければ」相性、ってものがあります。
ある人が薦める言語Aが別の人に相性が良い、って保証も実はなくって、ハッキリ言うと言語にも「好き嫌い」が生じる事があるんですよ。
ラーメンは全部ラーメンだけど、一番好きなラーメンは?となると「醤油」とか「豚骨」とか、出てくるでしょ?あるいは「嫌いなラーメン」とか。
ラーメンも「最大公約数的に」「皆が好むラーメンはこれ」と言う言い方は出来ますが、実のトコ、自分の好みがそこに従ってる保証もない。
プログラミング言語も同じです。実は好き嫌いがある。ただ、皆あまりその辺考えないようにしてるだけ、です(笑)。
プログラミング言語は星の数程存在するんで、皆が薦める言語を貴方も好むかもしんない。でもそれは貴方の嫌いな言語になるかもしんない。
いずれにせよ、それも「自習をやる」前提だと貴方次第、なんです。
    • good
    • 1
この回答へのお礼

まずは自分のやりたいようにやって、何が肌に合っているのかじっくり考えていきたいと思います。参考になりました。
ご回答、本当にありがとうございました。

お礼日時:2022/02/26 21:22

VBA。

何故なら「貴方が一番やりたい」と言ってるから。
貴方が一番やりたい事をやるのが一番です。
他の人の意見やらその理由を聞く必要なんざ全くないですね。

貴方がやりたくもない事をやらさせられる事程不幸な事はありません。
そういう「強制」は大学入った後でやらされでしょうから、自習時間内は「貴方が一番やりたいこと」をやるのが一番良いのです。
    • good
    • 1

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