テーマ、知りたいこと
プログラミング初心者です。これからプログラミング学習を始めようと思っているのですが、どの言語を最初に学ぶべきかわからず困っています。将来的には開発に携わりたいと思っているのですが、作りたいものが明確に決まっているわけではなく、まずはプログラミングの基礎を学びたいと考えています。
基本情報技術者試験の受験も考えており試験対策にも役立つ言語を選びたいと思っています。
(基本情報技術者試験は擬似言語のため、プログラミングの基礎を理解することが大きな目標です)
今の所はJavaかPythonにしようかと考えていますが、他にも色々な言語があり特徴や難易度も違うため、何を基準に考えれば良いのか分かりません。そのため学習コストが低く初心者でも学びやすい、かつ基本情報技術者試験の学習にも繋がる言語があれば教えてください。
また学習を始めるにあたっておすすめの学習サイトや教材などもあれば合わせて教えていただけるととても嬉しいです!
様々な意見を参考にしたいのでぜひ皆さんのオススメを教えてください。
よろしくお願いいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答15件
#1
総合スコア10482
投稿2025/07/29 00:11
編集2025/07/29 00:56(「擬似言語」に統一されたことに気づいていませんでした。以下は昔の言語選択を前提にしているので参考程度にしてください)
まずは、作ってみたいものを基準に考えるのがオススメです。
プログラミングは「何かを作るための手段」だからです。
そのため、プログラミングを学習する際には、成果物として何かを作る形になるので、それが面白いほうがモチベーションにつながると思います。
最初はどの言語も似た感じのプログラムになると思いますが、それでも目的のものを作りやすい言語のほうがいいでしょう。
「将来」のことは分からないとのことですが、「今」だったら何が作りたいか、を基準に考えてみてもいいと思います。
学習すれば今からでも作ることは可能ですので。
また、もし学生などでプログラミングの授業があるのであれば、そちらに合わせるのもいいでしょう。
もし、それでも決まらないというのであれば、個人的にはJavaを選択してオブジェクト指向もついでに習得するのがおすすめです。
オブジェクト指向は複雑なものを、簡単なパーツに分けるものでもあり、これを知っていると作る幅が大きく広がります。
Pythonもオブジェクト指向を扱えるためおすすめですが、Javaのそれとは少し違う点は考慮したほうがいいです(オブジェクト指向としてはJavaのほうが厳密です)。
C言語はオブジェクト指向が出てくる前の言語ですので、この点ではおすすめしません(C++であればオブジェクト指向を扱えますが、試験用としてはJavaでいいでしょう)。
ちなみに私は、当時はPythonが選択できないのもあり、Javaを選んでいました。
なお、当時としては「アセンブラを選んだほうが一番楽」という意見もありましたが、試験としては楽かもしれませんが、実用性はあまりないのでおすすめしません。
(現在ではコンパイラが自動で最適化してしまうためです)
また、「表計算」という選択肢もありますが、プログラミングですらないので、プログラミングに興味が無い人向けでしょう。
#2
総合スコア118037
投稿2025/07/29 00:37
個人的にはichigoJamあたりからはじめると楽しみながらプログラムが学べると思います
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#3
総合スコア19
投稿2025/07/29 01:02
将来開発に携わりたいとのことですので、それがどの分野なのかによって決めるのも1つの方法だと思います。
例えばHPなどのブラウジングならHTMLやJava、Ruby、AI分野ならPython、組み込み系ならCやC++など
色々な言語を試してみたいのでしたら、「paizaプログラミングスキルチェック」をオススメします。
Dランクの簡単そうな問題で色々な言語を試してみて自分に合ったものを見つけるのもいいと思います。
https://paiza.jp/challenges/info
参考になれば幸いです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#5
総合スコア12253
投稿2025/07/29 01:35
編集2025/07/29 01:43(基本情報技術者試験は擬似言語のため、プログラミングの基礎を理解することが大きな目標です)
疑似言語での問題というのがどういうものなのかわかりませんが,
仮にそれが「オブジェクト指向がどうので~」みたいな雰囲気の物ではなくて,もっと簡素(?)な範囲(ループとか条件分岐とか関数がどうのいう程度の範囲?)の話なのであれば,C言語も良いのかもしれません.
学習コストが低く初心者でも学びやすい
という意味で.最初に「プログラミングの基礎」なる部分に触れてみるための選択肢として.
「Cは学びやすいのか?」という点にはいろいろと異論もありそうですが,上記のような範囲の事柄に触れるだけ(の目的)ならば,「オブジェクト指向がどうの~」みたいな余計な要素がくっついてない言語の方が迷子にならないんじゃないかな? とか.
候補がいくつかあるようなら,それぞれ2日くらい軽く触れてみて「これでいいかな」的なのをフィーリングで選んでみてもよいのではないかな.
そういうのをやってみるのに paiza みたいな場所は良さそうですね.
その言語を使うための準備作業みたいなところに手間と時間が要らないし,簡単な問題(お題)があるのも便利そう.
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#6
総合スコア9
投稿2025/07/29 06:12
私はC言語が最初でした。当時はインターネットはとても高価なものでしたので、とても苦労しました。
しかし、現在最初に学ぶ言語の選択肢はたくさんあります。
私がお勧めするのは、その言語のコミュニティがあることで、そこで質問できるかどうかですね。
さいわい、teratail が色んな言語に対応しているので、気になる言語を勉強されればよいと思います。
どの言語も、基本的なところは同じなので、あまり考えずにさいころを振って決めてしまうのもアリかと思います。
なので、2つ目の言語は、スムーズにいくと思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#7
総合スコア59
投稿2025/07/29 07:24
JavaやPythonができるのであれば、それでよいかと思います。
何を選ぼうかと悩んでなにもしないよりは、なんでもいいから手を動かしたほうが効率はいいです。
恐らくほとんどの資格試験でも入社試験でも手続きの理解を重視してみるかと思うので、どんな言語でもforの手続きの順序が分かっているかどうかが基本な部分になります。
逆に言うと、ここで挫折する人が多いです。
また、言語よりもいい教材にであることが重要です。
エンジニアは学習時に詰まらなかった人が多いので、理解が難しかったり難易度が高かったり、自分が詰まったことを初心者にお勧めしがちですが、そのアドバイスが正しいかどうかというのは微妙なところです。
自分もforレベルでいいというのは最近になって理解しました。
意見としては色々あると思いますが、すでに出ている意見として
#3の余計な要素がないC言語の方が迷子になりにくそうだという意見には同意です。
私として、初心者が手続きを理解する、プログラムの初歩的なことを学ぶためにお勧めな言語は
C言語、javascript, windows bat(shell)です。
C言語
メリットは先の意見にあるように、不要な文法が少なく混乱が少ないのではないかと思っています。また、コンパイルするので文法の間違いに実行前に気づけるという所も評価点です。また、C言語は使っている人が多くこだわりが強い人が多いのでインターネットを参照して古臭くて使い物にならない、間違ったコードみたいなのが比較的少ないです。
デメリットは環境構築やコンパイラの用意が初心者にとって難しいところです。
JavaScript
メリットは環境構築が簡単でブラウザからコンソールを開くだけで使えるという所です。
デメリットはインターネット上にめちゃくちゃなコードが多量に散見されるところ、DOM操作をするなどはオブジェクト指向特有の文法を理解しなければならないこと、原始的な手続きだけを学びたいなら少し新しめの書き方も多いところです。
windows bat(shell)
メリットは環境構築の容易さ、簡単なプログラムを書く上では不要な文法がないことです。
デメリットはゴリゴリにメジャーというわけでもない、文法が若干複雑なところです。
手続きを学びたいというだけなら、javaやpythonでも書けないということは無いのでもし使えるのであれば選択肢として問題はないと思います。
プログラミングはオブジェクト指向などのテクニックだったり、
paizaのようなアルゴリズム問題(若干競技プログラミングよりの)を解くだったり、
色んな学習範囲がありますが、私個人の意見としてはそこまで必要かは微妙です。
paizaですらナップサック問題とかでますから。たいていのエンジニアは解けないでしょう。
オブジェクト指向ですら大抵のエンジニアはクリーンアーキテクチャでコード書けないでしょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#8
総合スコア150
投稿2025/07/29 10:00
編集2025/07/29 12:06まず、「基本情報技術者試験」の合格を目指す、と言うのと「プログラミング学習」をごっちゃにしない事。
基本情報技術者試験の受験も考えており試験対策にも役立つ言語を選びたいと思っています。
これは一見、「合理的」に見えるが、実は全然そうじゃない。「プログラミング学習」にとっては悪手だ。
試験対策は試験対策で別に分けてやった方がいいんじゃないか、と思う。
別に「基本情報技術者試験」をバカにしてるわけじゃなくって、ちと性質が違うから、だ。
基本的に、「プログラミングを今から学びたい」って思ってる人、言わば「プログラミング初心者」が勘違いしている事が一つある。
それは最大の勘違いで、
今から「たった一つのプログラミング言語を学んで、一生それを使い続けたい」
と言うモノだ。
簡単に、その発想は「無駄だった」と言う事を後に知ることとなる。
正直言うと、プログラミング言語にはどうしても「流行り・廃り」がある。
大体、歴史的に見てみると、特殊な言語を除き、大まかには「ある時点での流行りのプログラミング言語を学んでも」、その寿命は大体10年前後、って考えて良い。
結果、貴方が「今から学ぶプログラミング言語」としてどれを取ろうと、10年後には「使ってる人がいなくなる」ってのを覚悟しとかないとならない。
大まかにはホント、そうなんだ。一つは「技術革新がある」んで、新しい言語が今後続々登場するだろうし、人々の関心は、「何らかの技術的ブレークスルー」と起こした言語に移るから、だ。
だから「プログラミング言語はこれ」って決め打ちするのはあまり得策じゃないんだ。
予告しておく。結果、貴方はどの道、「複数の言語を操らないとならなくなる」。
今からプログラミングを学び始める場合、「これから複数の言語を学ぶ」覚悟がいる。
これは、例えば1990年代前半まで、とかなり状況が変わった、って事に由来している。大雑把に言うと、まずは「パソコンの処理速度がかつてとは比較にならない程速くなった」事が理由として挙げられる。
つまり、往年だと、「とんでもなく非効率な言語」だと処理しきれなかったんだ。だから「パソコンで動かす」前提だとどうしても低レベルな言語を使わざるを得なかった。
反面、今だと、一見非効率だけどより簡単に使える言語の方が重宝されてるんだ。低レベル言語である事を行うプログラムだと「とんでもなく長く書かなければならない」のが、非効率だけど簡単に記述出来る言語だったら短く書ける。と言う事は開発効率が良いって意味になる。
ゲーム開発を見てみれば分かると思う。ゲームは速度が重要なんで低レベル言語の独壇場だ。一方、昔のゲームは開発期間が1〜3ヶ月くらいだったのに、今だと4〜5年かかる、ってのがザラだ。「☓☓を発売します!」って予告が出たのに発売されるまですんげぇ月日がかかる。子供が小学校1年生だった時に発売予告されたのに、発売されたのは中学生になってから、とか洒落にならん状況になっている(ルーンクエストのビデオゲーム化とかどうなったんだろう?)。
開発期間が長くなる、って事は開発費が青天井だ、って事だ。単純に言うと、「そのゲームの開発期間」にはそれに関する収入が一切ない、って事だ。こんなんじゃ「開発費の回収」はシャレになんない。相当「売らないと」赤字玉砕まっしぐら、って事になる。
まぁ、ゲーム業界はそういう意味ではかなり特殊ではあるんだけど、いずれにせよ「CPUの効率」よか現代では「人件費の効率」の方がより重要で、往年のPCだったら「とんでもなく非効率な言語」でも、今なら「開発期間の圧縮」の為には使わざるを得ないわけだ。
そのために「往年のPCでは非効率」だけど、「色んな問題を解決する為の」簡単に書ける言語が続々と開発されている。そして今後も「開発されて発表され続けていくだろう」。
残念ながら、貴方は、「Kawaiiを追いかけ続ける渋谷を闊歩している女子高生ギャル」の如く、ある程度「プログラミング言語のトレンド」を追い続けないとならない。
もう一つの理由として、1990年代前半辺りまでは「プログラミング言語処理系は購入するモノ」だったんだ。5万円〜10万円、とかしてて。フツーのソフトウェアを買うよか遥かに高額だったんだよ。
PC自体も高かった上に言語処理系がウン万円レベルの商品。もう買っちゃったヤツは、初期投資が高かったから引き返せなかったんだよ(笑)。だから「石の上にも三年」だし、一つの言語処理系に習熟せざるを得なかったんだ。
一方、現代では、ホントのプロ・エンジニア用の100万円もする言語処理系も売られてはいるけれど、殆どの言語処理系はタダで入手出来る。Microsoftでさえ、会社向け(エンタープライズ向け、と称してるが)では有料販売してるが、往年のように「個人相手に商売」はほぼ考えなくなってる。
そんな世の中だと「あるプログラミング言語を学んでも」、捨てても構わない、って時代になってんだ。なんせ金銭コストがかかってないからな。ある言語Aが気に食わなかったら、別の言語Bに乗り換えてもいい。すぐに、だ。
繰り返すが、往年なら、Borland Turbo Cを買って、気に食わなかった、ってぇんでBorland Turbo Pascalに乗り換える、って決定はしづらかった。何故なら金がかかるからだ。そうそう気楽にウン万円もはたけない。
反面、現代では一つの言語に固執しないってのがセオリーとなる。むしろ、「初めての男を守り続ける」みたいな感覚だとプログラミングには向いてない、んだ。ビッチになれ。それがモダンな考え方だ。
だとすると、「プログラミング入門」は「ある言語の文法を学ぶ」んじゃなくって「プログラミングそのものの汎用的な考え方を学ぶ」のが重要となる。なるんだけど、一方、実はそういう書籍は極めて少ないんだ。
この辺が、プログラミング初心者がまた誤解してるところで、ついでに言うと、学習上「躓く」原因となる。
実のことを言うと、プログラミング関係の書籍で「☓☓入門」って書いてる本の半分以上は、「プログラミング初学者」を想定してないんだ。別言語の経験者を想定してたりする(つまり「その言語に於いての」入門者用だ、って事だ)。
よって、そのテの入門書ってのは「その言語仕様の易しい絵解き」が殆どとなる、んだ。これが殆どの「☓☓入門」書の実態だ。
一方、例えば「英語を学習する」として、「英文法の解説書」を熟読してもどーしよーもない、ってのは想像に難くないだろう。文法に習熟しても英語は上達しない。英文を「読んだり」「書いたり」しないとダメだ、ってのは分かるだろう。特に「書き方を学ぶ」だよな。
殆どの「プログラミング入門書」の類はその観点に欠けている。だから挫折する人があとを絶たないわけ。
と言うわけで、ある種再録だけど、真に推薦出来る「プログラミング入門書」を紹介する。
実の事言うと、知ってる限りで言うが、世界的に見てみても、「プログラミング初学者向け」にキチンと書かれた「入門書」の存在って10冊に満たないんだ。
そして「初めて学ぶプログラミング言語」はその本次第、になる。「言語を選ぶ」んじゃない、「本を選ぶ」んだ。
また、繰り返すが「基本情報技術者試験の学習にも繋がる言語」は忘れろ。まずは「プログラミングの汎用的な考え方」を学べ。試験対策は試験対策で分けて考えた方がいい。
その10冊に満たない候補内で、日本で書かれて日本で売られている本を紹介する・・・コストの面でもそれが一番いいだろう。翻訳本には極めて評価が高い本も存在するが、おしなべて高額だと言う欠点がある(例えばCTMCPとか)。
日本で書かれた唯一の「プログラミング初学者向けの本」は、そのものズバリ、「プログラミングの基礎」だ。これは実際、お茶の水女子大学の「プログラミング初学者向け講義」の為に書かれた教科書で(現在は二年時の講義へと移動したようだが)、知ってる限り、日本の本でこれ以上上手く書かれている本はない。
また、お茶の水女子大学の方でビデオ講義も用意されている。よって自習向けだ。
使用している言語はフランス生まれのOCamlと言う恐らく「聞いたこともないだろう」プログラミング言語だが、心配しなくていい。この本は「プログラミングに於ける汎用な考え方を教える」本であって、OCamlの文法解説書ではない。つまり曲がりなりにも「プログラムの作り方」を教えている。
また、OCamlはMicrosoftのF#の元ネタだ。と言うより、F#はOCamlの方言、となる。Microsoft製なんでWindowsなら導入は簡単だろう。
そして、F#はC#やVB.NETと同じ仮想マシン上で動く「異体同心」な言語だ。よってC#やVB.NETで出来る事はF#でも出来る。
要は、Windowsだったら「プログラミングの基礎」を読解する為、まずはF#をやってみろ、って事だな。難点はF#はOCaml方言なんで若干記述差異がある。ただし、最近だと生成AIが賢いんで、何かエラーを食らったら生成AIにコードを突っ込んで「差異」を教えてもらえばいいだろう。
OCaml/F#は非常に高機能なプログラミング言語だ。その辺も初学者向けだ。
高機能なプログラミング言語は「色んな新しい概念」を既に含んでる。一見、それらは「後回し」した方が良く思えるかもしれないけど、実際は逆だ。最初に色んな新しい概念を学んだ方がいい。
最初にあまりに低レベルなプログラミング言語で学ぶと新しく出てくる概念を理解出来ないんだ。「差分が大きすぎる」んだな。逆に最初に色んな新しい概念を学んでおけば差分が小さい。また、既存の知識を使って別の言語の機能の予想が付けやすい。
また、低レベルなプログラミング言語だと書くべきコードが「常に長くなる」傾向になり、プログラミングスタイルが「汚く」なりがちなんだ(言い換えると、「綺麗/汚い」より「速い/遅い」が重要視されて、観点がちょっと変わる)。この辺の「プログラミングスタイルの矯正」ってのは後になればなる程厄介なんだよ。
「悪い行儀作法」を直すのは、現実世界でも骨が折れる、のは良く知ってるだろう。
「最初が肝心」なんだ。
もちろん、最初にOCaml/F#をやったから、と言って「この世に存在する全てのプログラミング言語が備えてる全概念を学べる」たぁ言わない。OCaml/F#に限らず、そんな万能な「教育用言語」は存在しない。
それでも「新しい概念の差分が小さい」方がいい。初学者状態でそれらに触れられる「プログラミングの基礎」はホント良く書けてるよ。
本屋で手にとってまずは立ち読みしてみる事をオススメする。
※: ハッカー(プログラミングの達人)は皆、「複数のプログラミング言語を学ぶ」事を推奨している。
その中でも僕が大好きなピーター・ノーヴィグセンセは「最低でも半ダース(つまり6つ)の言語を学べ」って言っている。
引用してみよう。
少なくとも半ダースのプログラミング言語を学ぶこと。そのうちの一つはクラス抽象をサポートするもの(例えば Java や C++)、一つは関数抽象をサポートするもの(例えば Lisp や ML)、一つは構文抽象をサポートするもの(例えば Lisp)、一つは宣言的記述をサポートするもの(例えば Prolog や C++ テンプレート)、一つは coroutine をサポートするもの(Icon や Scheme)、そして一つは並列処理をサポートするもの(例えば Sisal)であること。
知らない言語ばっかでビビるかもしれないけど(笑)、言語名が重要なんじゃなくって、「ある言語A」が一体何を基準として設計されてるのか、そして「設計基準が違う」って事は若干「プログラミングに対する捉え方/考え方」が変わってくる、って事を言ってるんだ。
そう、実は「一つの考え方は万能ではない」って事なんだ。ノーヴィグ先生が言ってるのは「少なくともプログラミングに対するアプローチは6種類程ある」と言う事。そして「一つの考え方にこだわらないような柔軟性を持て」って事だ。
なお、OCaml/F#はピーター・ノーヴィグセンセが挙げた例でのMLの仲間、だ。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#9
総合スコア21501
投稿2025/07/29 11:20
基本情報技術者試験の受験も考えており試験対策にも役立つ言語を選びたいと思っています。
(基本情報技術者試験は擬似言語のため、プログラミングの基礎を理解することが大きな目標です)
歯に衣着せぬ物言いをすると
基本情報技術者試験用の勉強はアセンブリの擬似言語一択
アセンブリは出来る事が極端に少なく、架空言語なのでルールも全て問題文に記述されている
要するにタダのパズルゲーム
問題文を読んで即座に頭の中にマス目を思い描き、試験を問いていくだけ
反面C言語やJava等も一応選んで受験出来るが
お前ホンマに実務経験あるんか?みたいなカスなコードを読まさせられ、それのデバッグや解説をさせられる
問題だらけのコードじゃないとテストにならんから、そりゃ問題だらけだろって話ではあるが
というわけでアセンブリ以外は難易度が跳ね上がる
また学習を始めるにあたっておすすめの学習サイトや教材などもあれば合わせて教えていただけるととても嬉しいです!
動かして使える、繋がるを意識しやすい言語が良いと思うね
そのためには初手でWeb(HTML、CSS、JavaScript)に触るのがオススメではある。
んで、HTMLやCSSをちょっとやれば分かるが、人間が読み書きするようなフォーマットではない
おまじないが多すぎて疲弊する
そこでNode.js製のツールを使って賢く記述していく
Pugというテンプレートエンジンは、コンパイルするとHTMLファイルになるし
同じくSASSを使えば、少ない記述でイケてるCSSファイルを作れる
なのでまずはNode.jsがオススメ
ドットインストールで環境構築方法も教えてくれる
まぁ、やりたい事が無いなら、とりまドットインストールを覗いてやって見たいことを探しても良いかもしれない
https://dotinstall.com/lessons
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#10
総合スコア10482
投稿2025/07/29 12:14
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#11
総合スコア150
投稿2025/07/29 12:29
ありゃま。じゃあ、CASL IIとかCOMET IIとか無くなっちゃったんだ・・・・・・。
擬似言語に統一か・・・・・・。
でもそもそも国家資格だったのにJavaとかPythonが選択言語にある、ってのは変ではあったんだけどね。
JISで仕様定義されてない実在プログラミング言語を国家資格試験で使う、ってはおかしかったんだけどね。一体何を考えてるんだ、経済産業省。
石破政権が悪いのか(違
でも勉強やりづらくなったのかしらん。
その「擬似言語」、もうインタプリタとかコンパイラってあるのかしら?
CASL II/COMET II時代は結構、言語処理系はあったんだけど・・・(IPAでもJava製の仮想マシンを公開してた記憶あり)。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#12
総合スコア10482
投稿2025/07/29 22:33
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#14
総合スコア8
投稿2025/08/05 01:21
やりたいことが決まっているのであれば、それに合わせて学ぶと良いと思います。
ただ何でもいいからプログラミングのスキルを身につけたいのであれば、個人的にはEXCEL VBAを身につけるのが良いと思います。
なぜかというと、
- UIを実装する必要がないため、アルゴリズムの実装に集中できること。
- EXCELなので実務に組み込みやすい。
- 操作する対象は主にセルなどのEXCELの要素なので、プログラムを直感的に理解しやすく難易度が低い。
また、自動化という目的においては、Pythonでできることと近いので、VBAを学んだあとに次のステップとしてPythonを学ぶなど学習の方針が立てやすいのも魅力の一つですかね。
参考になれば幸いです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#15
総合スコア86389
投稿2025/08/05 04:52
明記されていませんが、「将来的には開発に携わりたいと思っているのですが」ということから、学生さんということですかね?「定年退職したので、趣味でプログラミングを始めたい」だとまた違う話になるかと思います。
初めて学ぶのに良い言語はなんですか?
という質問は良い観点です。5つくらいの言語は読み書きできて、さらに5つくらいの言語を読めるようになると良いかと思います。もちろん「リファレンスを見ながらであれば」という前提の読み書きで問題ないです。
「xxxという分野ではxxxという言語が向いている」というのもちろんありますが、5-10の言語を学ぶにあたってその最初を選ぶという観点ではあまり気にしなくていいでしょう。やってみたい分野があればそれに向いた言語から入るのも良いと思いますが、「作りたいものが明確に決まっているわけではなく」ということなので、学ぶ前に分野を限定する必要はないと思います。
学び初めに考えるべきことは、「その言語に詳しくなる」ことではなくて、
・プログラミングの諸概念を学ぶ
・ロジックの組み立てができるようになる
・各種リファレンスを読んで活用できるようになる
・他人の書いたプログラムの意味・意図が読み取れるようになる
(・プログラムの動作原理を理解する)
とかでしょうか。で、そのあと別の言語をスムーズに学べるようにする。
JavaかPythonかは、どちらでもいいと思いますし、あえてそれ以外のxxxが良いというほどのものではないと思います。PHPが挙がっていれば止めるところですが。
例えば、こんにちは
という文字列と改行を出力するプログラムは、Pythonでは1文で書けますが、Javaだと前後に数行必要です。これを「最初に学ぶときはそういう余計なものを書かなくていい言語の方がいい」という考えにも一理ありますが、Javaのそれらは「余計なもの」ではなくて意味があって必要なものなので、それらの意味・必要性を含めて学ぶというのもよいことです。どちらの言語も5-10個の言語の中に入れるべきものですので。
ウェブ上の入門記事だと「これはおまじないと思っておけばよい」的な文章も見かけますが、プログラミングには「おまじない」は存在しません。「これは、この後でちゃんと説明するので、ここではいったんおまじないとでも思って先に進みましょう」とかであれば問題ないと思いますが、「おまじない」で終始する記事だと「書いた人がその部分の意味を理解していない」可能性も考慮すべきですね。
Pythonのimport ~~
くらいであれば、「後で説明」でなく、いきなりの説明で理解できる話だと思います。
(・プログラムの動作原理を理解する)
の部分を括弧書きにしたのは、これの必要性をどれくらいの強さでいえばいいか、わからないからです。
これは、「プログラムでこう書くと、どういう感じのCPU命令になって、CPUはそれをどのように実行するのか」のような話や、OSの基本機能みたいな話です。アセンブラ言語を読み書きできるレベルは必要ないと思います。
例えば、「Cだとopen
/close
/read
/write
と、fopen
/fclose
/fgets
/fputs
の違いをOSとの関係含めて理解しているか」とか。
あるいは、「SQLのSELECT文をDBMSがどのように解釈して、DBMS内のどのような情報を参照して、どのように実行するか」を理解していないと「SQLで性能が出ないときの性能対策」を自分で考えるのは難しいと思います。が、いまは生成AIに聞くということもでき、何とかなるのかも知れないので、「こういう知識が必要だ」と言い切る自信がないです。
まったくの個人意見を言うと、「PythonとRubyとJavaScriptの3つを並行して学び始める」ですが、並行学習が合うかどうかは人によるので、無理には勧めません。PythonとRubyの対比は勉強になると思います。
あと、関数型言語を読み書きできる言語に入れるかどうかは難しいところですが、読める言語には1つくらい入れておいてほしいですね。
基本情報処理試験については、プログラミングできるようになっていれば、午後試験のプログラム部分は、特段の試験対策しなくても通ると思いますので、使われる疑似言語の事前理解くらいで良いかと思います。
「・プログラムの動作原理を理解する」の部分に興味があるなら、「午前試験のテクノロジー系を合格ラインの60%でなく90%くらい」ということになりますが、試験を目的に勉強しましょうというよりは、「ちゃんと知っていれば、結果的に90%以上は取れるでしょ?」ということです。まあ、「(必要と)言い切る自信がない」と書いた通りではありますが。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。