高3です。来年から4年制大学の情報系学科に進学します。
現在、初心者向けの書籍でJAVAの学習をしていて、簡単な演算や条件分岐のパートが終わり、オブジェクト指向の学習をしています。今のペースだとあと3週間程度で今使っている参考書の学習が終わりそうなので、その後何をやろうか悩んでいます。
今のところ、選択肢は下記の3つなのですが、もし宜しければ、何をやるべきかご助言お願いします。
1,VBA(高校の授業でも少し触れたので、個人的にはこれが一番やりたいです。)
2,他のプログラミング言語(名称とおすすめの理由を教えて頂きたいです。)
3,他の参考書を買ってVAJAの学習の継続
追記:抽象的な言い方で大変恐縮ですが、プログラミング言語を学習する際、複数の言語を1通り軽く触れるのと、1つの言語をより掘り下げて学習するのではどちらの方がいいのでしょうか。
皆様のご回答、お待ちしております。
No.11ベストアンサー
- 回答日時:
>複数の言語を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アプリケーションを
まとめることは出来ません。
一つのソースの中に複数の言語が混在するのもざらです。
混沌を楽しめる根性がないと
やってられません(^_^;)
No.10
- 回答日時:
>4章でオブジェクト指向が出てきたので
JavaではライブラリはOOPで作られてますし、
オブジェクトの生成やメソッドの呼び出し方
を知らないと、Javaでは何も出来ないので、
JavaではOOPの最低限の知識は必須です。
でもクラスの書き方を一通り覚えても、
それをどう使うかはまた別問題です。
#Javaではクラス書かないと
#何も始められませんが(^_^;)
オブジェクト指向の設計は別途学習が必要ですが
千行くらいのプログラミングの経験が沢山ないと
ピンと来ないと思います。
さしあたってJavaではコードを読んだり
コレクションを使うのに困らない程度に
OOPを学んで、プログラミング初心者の内は
あまりOOPに深く突っ込まないことを
お勧めします。
また、pythonのように取りあえずOOP抜きでも
学習できる言語の方が良いかも知れません。
#OOP至上主義の方達から石が飛んで来そう(^_^;)
No.9
- 回答日時:
ちょつと気になった点。
Javaで演算や分岐やル―プの書き方を学んで、
基本的なコードの書き方を学ぶと
様々なアルゴリズムを記述できるようになりますが、
それとオブジェクト指向の学習はかなり異質だと思います。
最初からオブジェクト指向を徹底的に覚えた方が良いという
意見も良く聞きますが、オブジェクト指向はプログラムをより
小さな単位に分割する時の手法で、数百行くらいのコードを
作る際それ程有用ではないと考えてます。
私見ですが、まず、様々なテーマで数十行/数百行くらいのコードを
OOP抜きで沢山書いて、小規模なコードを書き下す力を付けるのが
良いと考えてます。
言語は何でも良いのですが、
小さなコードをお手軽に試すなら
pythonが適してますね。
今使っている参考書が1章から9章までありまして、1章から順番に勉強していたところ、4章でオブジェクト指向が出てきたので、それを勉強している次第です。貴重なご意見ありがとうございました。
是非ご参考にさせて頂きます。
No.7
- 回答日時:
この段階だと、簡単なコンソ―ル用プログラムの作成を
沢山こなすのがよいかと。
まずは自力でコードを編み出す力をつけないと。
ちょっと思い付くのは
①今月のカレンダをカレンダAPIを使わずに出力する。
②エイトクイーンなどでバックトラック探索に親しむ。
③素数を一万まで計算してみる
④物理や数学が好きなら各種の数値シミュレーションに挑戦してみる。
などなど、いくらでもあります。
それとまだまだ先と思いますが
Javaならwebアプリでしょう。
まずはJSP/サーブレットから始めてみるのも面白いかも。
とんでもなくハードル高いけど
Javaはほぼ100%Webアプリで使われているので・・・
No.6
- 回答日時:
プログラム言語は実用として使ってこそ身につくものなので、最初の入門勉強が終わったら実践に入りましょう。
4. ゲームを作って遊ぶ。
最初は既存ソースをそのまま写し、修正や改造していく教材の例
https://puyo.sega.jp/program_2020/
5. プログラムで数学パズルを解く
市販されている問題集の例
https://www.shoeisha.co.jp/book/detail/978479814 …
6. 今困っている問題を解決するプログラムを作る
大学のシラバスが見づらいから独自に改善した例
https://zenn.dev/sugiken/books/bb9c3391ab9118d88 …
No.5
- 回答日時:
> まずは自分のやりたいようにやって、何が肌に合っているのかじっくり考えていきたいと思います。
うん、頑張って下さい。
なお、以下は単純な情報、です。
繰り返しますが「これを勉強しろ」って言ってるわけじゃないです。
ただ、プログラミング初心者は「有名な言語が良い言語」だと言うバイアスがかかってる事がしばしばあるので、一応マイナー言語でも紹介しておこうと思いました。
貴方は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言語になった一つの理由ではあります。
No.3
- 回答日時:
あと。
> 抽象的な言い方で大変恐縮ですが、プログラミング言語を学習する際、複数の言語を1通り軽く触れるのと、1つの言語をより掘り下げて学習するのではどちらの方がいいのでしょうか。
どっちでもいいです。
好きなようにすれば良い。
人によっては「極める」方がラクな人と「浅く広く」学ぶ方が好きな人がいます。
どっちも正解です。単に貴方がどっちのタイプなのか、によるのです。
学校で学ぶのではなくて、自習ならなおさら「自分がどっちのタイプか」見極めてやるべきで、これも人の「経験論」に左右されるべきじゃないですね。
繰り返しますが、重要なのは「貴方がどっちのタイプなのか」です。
ちなみに、こういう場合、なるたけ抽象度が高い高級言語を選んだ方が恐らくBetterだと思いますが、「どれを選ぶのか」と言うのもぶっちゃけ、「学校で学ぶのではなければ」「就職を考えなければ」相性、ってものがあります。
ある人が薦める言語Aが別の人に相性が良い、って保証も実はなくって、ハッキリ言うと言語にも「好き嫌い」が生じる事があるんですよ。
ラーメンは全部ラーメンだけど、一番好きなラーメンは?となると「醤油」とか「豚骨」とか、出てくるでしょ?あるいは「嫌いなラーメン」とか。
ラーメンも「最大公約数的に」「皆が好むラーメンはこれ」と言う言い方は出来ますが、実のトコ、自分の好みがそこに従ってる保証もない。
プログラミング言語も同じです。実は好き嫌いがある。ただ、皆あまりその辺考えないようにしてるだけ、です(笑)。
プログラミング言語は星の数程存在するんで、皆が薦める言語を貴方も好むかもしんない。でもそれは貴方の嫌いな言語になるかもしんない。
いずれにせよ、それも「自習をやる」前提だと貴方次第、なんです。
まずは自分のやりたいようにやって、何が肌に合っているのかじっくり考えていきたいと思います。参考になりました。
ご回答、本当にありがとうございました。
No.2
- 回答日時:
VBA。
何故なら「貴方が一番やりたい」と言ってるから。貴方が一番やりたい事をやるのが一番です。
他の人の意見やらその理由を聞く必要なんざ全くないですね。
貴方がやりたくもない事をやらさせられる事程不幸な事はありません。
そういう「強制」は大学入った後でやらされでしょうから、自習時間内は「貴方が一番やりたいこと」をやるのが一番良いのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 大学受験 大学受験における文理選択についての質問です。 現在高校1年生の身分なのですが、私の高校ではこの時期に 4 2021/12/12 01:36
- 教育・学習 通信制高校2年生です。 中学は不登校になりました。 最近勉強がしたいと思うようになり中1からの英語を 3 2021/11/20 16:50
- 中学校 授業が分かりづらい先生っていませんか? 私の学校は数学と英語の先生なんですけど、数学の先生は初めてす 3 2021/11/05 21:09
- 英語 英語を人に教えるにはどれくらいの勉強時間が掛かりますか? 指導者の英語学習は中学英語理解レベルとする 2 2021/11/16 18:08
- その他(学校・勉強) 学校教育の改善案を教えてください 2 2021/11/11 23:30
- その他(社会・学校・職場) 中高一貫校に通っている中学生の娘が英語が好きで、学校の休み時間も英単語帳を離しません。家でも熱心に勉 6 2021/12/25 09:24
- 英語 僕の英語学習、理にかなっていますか? 仕事を辞めない限り、ロサンゼルスへは行けそうにもない。 そこで 11 2022/02/04 03:44
- その他(妊娠・出産・子育て) こどもチャレンジ 海外受講やめるか迷っています 1 2021/12/22 19:50
- その他(学校・勉強) 通勤時間を使って英語の勉強をしようと思っています。レベルは中学3年から高校1年位のレベルから始めよう 3 2021/10/31 16:52
- 大学受験 高一です。僕は京都大学医学部を志望しています。今参考書は以下のように進めています。 英語 鉄壁 1周 4 2022/02/06 00:21
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語、C+、C++、C#の違い
-
COBOLでのNOT = の AND条件
-
プログラムに書かれる"%"記号の...
-
TO_CHARで小数点以下がある場合...
-
C言語とhtmlの違いを どな...
-
CとJava両方学習するべきか?
-
VBScriptで引数を省略したい場合
-
アプリ開発について 初心者です...
-
C言語から呼び出し可能なXM...
-
VBSとWSHは読み方が違うだけで...
-
VCとVC++
-
COBOLで文字タイプを数字...
-
HTTPで .do という拡張子を見つ...
-
Windows(デスクトップ)上で動く...
-
C# でソフト開発をした事のある...
-
パスカルケースの由来。
-
HTMLとC++で、どんなホームペー...
-
C++における継続行
-
昔、MZ-2000やX1でBASICを書い...
-
TANDEM言語ってあるんですか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語、C+、C++、C#の違い
-
COBOLでのNOT = の AND条件
-
UNITY Float型の接尾辞fって
-
プログラムに書かれる"%"記号の...
-
vbaとc言語の関連性について
-
C言語とhtmlの違いを どな...
-
C++における継続行
-
プログラムからアイコンファイ...
-
TO_CHARで小数点以下がある場合...
-
COBOLで文字タイプを数字...
-
パスカルケースの由来。
-
VBSでDim、Private、Publicの違い
-
Excel VBAで文字化けする (英語...
-
VBSとWSHは読み方が違うだけで...
-
VBScriptで引数を省略したい場合
-
Solve()とは、なんですか?
-
プログラムははぜ小文字大文字...
-
C++ ってなんて読む?
-
今、コンピューター言語で、COB...
-
HTMLとC++で、どんなホームペー...
おすすめ情報