• ベストアンサー

プログラミングについて

(最近、HTMLとCSSは使いこなせるように なりました。) プログラミング言語には ・C言語 ・Python(パイソン?) ・JavaScript(ジャバスプリクト?) などが、ありますが、どれを学習しておいた 方がいいですか? また、学習しやすい(簡単)な言語は なんですか? わかる方、実際に経験した方、教えて ください! できれば、その言語の基本的な構文なども 教えてください

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

> ・C言語 > ・Python(パイソン?) > ・JavaScript(ジャバスプリクト?) > などが、ありますが、どれを学習しておいた > 方がいいですか? 学習「しておいた」方がいい、って言語はフツーはない。 と言うのも言語のトレンドは大まかに10年毎くらいになるんで、今学んだ言語が10年後にも「主流である」って保証が無いんだ。 そしてそれが他言語を学ぶ時に際して「応用が効く」たぁ限らないんだよ。 また、コンピュータサイエンス的(つまり「理論の世界」では)には「この言語を学んでた方がいい」ってブツはあるけど、残念ながら今挙げた3種の言語の中にはそれは含まれない。 その3つの中だと、まずは「C言語を学ぶのは今(初心者時点で)はやめた方がいい」。 この言語をプログラミングの基礎、って言いたがる輩が多いけど、実際は、モダンな「新しい言語」が登場する昨今の流れだと、「Cのスタイルでその言語を使う」のは、実際問題「悪いスタイル」になってきてる。 つまり「プログラミングの基礎」にはなり得ないんだ。今の世の中で「Cが基礎」って言ってる人は時代の潮流に乗りそこねている、言っちゃえばおっさんか爺さんだけ、だ(そして彼らは若者をマウンティングしたがる)。 よってCは外そう。仮に学ぶにせよ「将来にとっておけ」で、その将来でシステムエンジニアリング言語としてCが重用されてるか分からん(最近の傾向では、同ジャンルではRustと言う新しい言語の人気が高まってるんで、本当に「未来」は分からんのだ)。 加えると、Cの入門書/サイトにロクな本/サイトが無い、んだ。2024年現在に於いても「ANSI C」と言う現行規格と食い違った30年も前の「書き方」を強要する書籍ないしはサイトしか無いんだ。 つまり、このテの本/サイトの著者は「現行規格を勉強しようと」してない。 勉強しない著者が書く本やらサイトやら、をアテにしちゃいけないだろう。 残る2つ ・Python(パイソン?) ・JavaScript(ジャバスプリクト?) はある意味競合してる。「言語機能的に見る」とほぼライバル関係、って言って良い。 言語としての基本設計がより優れてる、ってのはJavaScriptの方だ。反面、Pythonは「基本設計がJavaScriptより劣る(汚い)」けど、豊富なビルトインライブラリとサードパーティ製ライブラリを持つ辺り「便利な」言語だ。下手すればプログラムを書く必要さえない(笑)。 言語の綺麗さで言うと、個人的な意見だとJavaScriptの勝ち、だと思ってるが、初心者向け、って事を考えると欠点がある。と言うか重大な欠陥だ。それは ・JavaScriptには入出力がない。 って辺りだ。 つまり、貴女がプログラミングした「結果」を見ることが出来ない。そういう仕様になっている。ウソ、って思うかもしれないけど本当の話だ。 元々、JavaScriptはブラウザ上で動く事を念頭に於いて設計された。そしてネットワーク越しにプログラムが「走る」って言った場合、「悪意のあるプログラムの実行をどう防ぐのか」と言う問題がある。貴女の使ってるコンピュータがブラウザを介して「乗っ取られたり」するのをどう防ぐのか、と言う事だな。 JavaScriptの解は「入出力そのものを無くしてしまう」だ。代わりにブラウザのAPIを利用してやり取りする、と言う設計にしてる。 これはいわゆる「Webプログラミング」ではある意味最適解ではあるんだけど、残念ながらプログラミング初心者向けじゃない。 結果、 ・HTML/CSS塗れのコードを書く しかなくなるし、 ・学習に於いて、何がJavaScriptの機能で何が違うのか の把握がしづらくなるんだ。非常に複雑なシステムになりがちで、結果、対初心者には学習負担がデカい。 「ブラウザで簡単に学べます!」と言うような宣伝文句は(JavaScriptに限らずいろんなトコで)良く見かけるんだけど、個人的には全く逆だと思ってる。フツーの開発環境じゃなく、「ブラウザで全部行う」のはむしろ「面倒だ」って事の方が多いんだよ。 だからJavaScriptは薦めない。貴女はHTML/CSSを既に学んだ、って事なんでその辺敷居は低いだろうが、いずれにせよ、プログラミング初心者なら「攻略二個目以降のプログラミング言語」にしておいた方がいい。プログラミングの「ロジック」を学ぶにはHTML/CSS塗れだとキツすぎるんだ。 と言うわけで、残りはPythonだけ、だ。挙げられた3つのプログラミング言語だったら、「サイト選び」とか「書籍選び」さえ間違えなければ、一番最初に触れるプログラミング言語としては3つの中では一番マシ(学習しやすい・簡単)だと思う(ベストだとは言わん)。 Pythonの場合、教科書として ・世界標準MIT教科書 Python言語によるプログラミングイントロダクション 第3版: https://www.kindaikagaku.co.jp/book_list/detail/9784764906464/ を推挙しておく。値段は5,000円以上、って張るように見えるけど、これ一冊あれば当面は困らないだろう。 ぶっちゃけ、技術書関係の本って二冊買っただけでも5,000円をすぐ突破する、なんて事は良くあるし、下手な入門書を買って「分からない!」とかなってまた別の本を買う・・・なんて事になるとバカバカしい。 その点、この本は実際に大学の、「プログラミング入門コース」で使われてる本なんで初心者向けだ。そして現在、「良いPython入門書」を探すのは本当に大変なんだ。10冊見れば10冊共全部クソ、ってのが良くある。理由は「Pythonを良く知らんのにPython本を書こう」ってバカが後を絶たないから、だな。 そういう「ヘンな本を掴むな」ってこった。 それこそ「安物買いの銭失い」ってこった。 > できれば、その言語の基本的な構文なども > 教えてください 「できれば」なんで「出来ない」ってのが一つの答えかな。 と言うのも、どのレベルで「基本的な構文」って言ってるのかサッパリ分からん。 例えば、良くある「Hello, World」プログラムが基本的構文なのか、っつーと違うだろ(笑)。それは「構文」じゃない。 また、一つの言語の各要素が必ずしも他の言語で1対1対応になってる、たぁ限らんのだよ。 // Hello, WorldのCの例 #include <stdio.h> #include <stdlib.h> int main(void) { puts("Hello, World!"); return EXIT_SUCCESS; } // JavaScript -> ナシ // 何故なら「出力がない」からだ。 // ちなみに、console.logはブラウザの機能であってJavaScriptの機能ではない。 ## Python #!/usr/bin/env python3 if __name__ == '__main__': print("Hello, World!") でもこういうのって「見た目」は説明出来るけど、「基本的な構文」でも何でも無いのよね。 プログラミングで「構文」ってのは、基本的に3つしかなくってそれらは 1. 逐次実行 2. 条件分岐 3. 反復 を指すんだ。基本的にはどんなプログラミング言語でもこの「3つの機能をもってる」。 この中で1番の「逐次実行」ってのは「ファイルに書かれた上からプログラムは順次実行される」って意味なんだけど、これはどんなプログラミング言語でもまず持ってる機能だ。「ランダムに実行されたり」「下から実行されたり」って事はない。基本中の基本なんでここでは差が出ない。 反面、「条件分岐」と「反復」ってのは、一つの言語で一つしか用意されてない、って事はない。大体どの言語でも複数手段が提供されている(むしろ、その「複数手段の提供」がどれだけ扱いやすいのか、ってのが言語の「特徴」、っつーか「ウリの一つ」って事になる)。 んで、ここで各言語に於いてのそのテの「手段」を全部出して比較、なんつーのはちとさすがに量が多くなるし、例えばCでのfor(反復の一つ)とif(条件分岐の一つ)で書いたコードを「そのまんまの構造」でJavaScriptやPythonに持ってくるのは可能だろうけど、「それじゃダメ」なんだよ。JavaScriptやPythonにはforやifはあるけど、「C言語みたいにそれらを使って書く」のはスタンダードじゃなくって、もっと簡便に同じ物事を成し遂げる「機能」が搭載されてるんで、それらを使うべき、なんだ。「CみたいにJavaScriptやPythonを使う」ってのはあまりにも「旨味」がないのね。むしろ「間違っている」。 そういうわけで、同コンテクストに於いて「構文の比較」は出来ない。むしろやっちゃいけない事、だとまで思ってるんだ。 了解?

oKjunko9240
質問者

お礼

ご丁寧に回答ありがとうございます! 参考にしてみてみます! やはり、C言語は難しくて他のを学んだ方が いいらしいですね!そして、 教科書?までわざわざありがとうございます! そして、わざわざ細かい内容など、 いろいろなことがわかりました! Pythonについて少しは頑張ってみます! ちなみに、何を基準に順位をつけているか わかりませんが、Pythonは、「学んでおく価値があるランキング」「人気プログラミング言語ランキング」1位でJavaなどと比べて単純な構文が多い から、学びやすいらしいですね!

その他の回答 (1)

回答No.1

>などが、ありますが、どれを学習しておいた >方がいいですか? 「学習可能なもの全部」です。 >また、学習しやすい(簡単)な言語は >なんですか? そんな物は存在しません。どれもクセがあって、どれも難解です。 >できれば、その言語の基本的な構文なども >教えてください どの言語も「説明可能な基本」など存在しません。 ですが「プログラミング」には「基本」があります。それは「入力があって、入力が処理されて、処理された物が出力される」です。どんな言語で、どのようにプログラムを記述しても「入力」「処理」「出力」が「絶対の基本」になります。 プログラミングとは「入力を良く分析して、どのように処理するかを多くの選択肢から選択し、要求仕様通りに出力する」事を言います。 これを「具体的なプログラミング言語で表現するだけ」の話です。

関連するQ&A