オンライン健康相談、gooドクター

プログラミングを勉強しています。最近始めたばかりですけど、
まずJavascriptを習得しようと思ったのですが、
種類が多くて、記号も出てきて、圧倒されました。

プログラミングを仕事でやっているような人は、あんなのを全部すらすらとかいているように見えるのですが、英語や日本語のように言語として暗記してしまっているのでしょうか。
覚える必要があるのか、ないのか、よくわかりません。

後、プログラミング言語にも、Pythonとか、C言語とか、色々ありますけど、あれは一体なんであんなに分かれているのでしょうか。
違う言語でも同じような事をできるのでしょうか。

後、私は今学生で、プログラミングの勉強をしたいと言ったら、親に反対されたので、隠れてやってます。なので有料のサイトとか、本とかを使ってるとバレるので、無料で解説だけ乗ってるサイトを使って学校でやってます。
こんな感じでも習得できるでしょうか。後、プログラミングスクールとかだと、プログラミングはどうやって習得していくのでしょうか。やっぱり何回も色々試していくうちに覚えるのでしょうか。

イマイチ分からないのでよろしくお願いいたします。

gooドクター

A 回答 (5件)

> 結局、C言語は○○に使って、Pythonは△△に使う、みたいな適材適所のようなものがあるという理解であっているでしょうか?



はい、その理解で良いと思います。
その2つだと、より汎用なのはPythonの方ですね。と言うのもライブラリが多いから、です。やっつけでパッパと何かでっち上げるのに向いています。

> 何から始めたら良いのでしょうか?

他の質問でも言ってますが、まずはRubyが一番良い、と思っています。
と言うのも、質問で

> 本とかを使ってるとバレるので、無料で解説だけ乗ってるサイトを使って学校でやってます。

にピッタシ合うとは思います。
一番入門者向きで、すぐ終わる「プログラミング入門」に次のサイトがあるから、です。

プログラミング入門 - Rubyを使って -:
https://ie.u-ryukyu.ac.jp/~kono/software/s04/tut …

二週間もあれば終わる内容なんで、これを終えてから本格的にやるなり、別の言語に移るなりしても良いでしょう。
どっちにせよ、ハッカーを目指すのなら、「プログラミング言語を一つ習得して終了」たぁ、絶対行かないんで、プログラミング言語を移動する経験は無駄にはなりません。むしろあった方が良いです。
ただ、どの道、「プログラミングの基本的な考え方」は上記のサイトで学べます。これは共通基盤の考え方(※)なんで、別のプログラミング言語に移っても使える考え方です。
Rubyは公式サイトから入手できます。

オブジェクト指向スクリプト言語Ruby:
https://www.ruby-lang.org/ja/

> Javascriptを習得しようと思ったら、まずはHTMLとかから習得するのが良いのでしょうか?

多分その方がラクにはなりますよね。元々HTML上で動かすように設計された言語がJavaScriptなので。
それと、あまり知られてないんですが、JavaScript言語はどっちかと言うと関数型プログラミング言語と言われる「かなり尖った」性質のプログラミング言語に影響を強く受けています。その辺の理解もRubyをやった後の方がわかり易いかも、とは思います(何故ならRubyもそうなんで)。

※: プログラミング言語はどれも基本的には次の3つの「動作」に支配されています。

1. 逐次実行(書いた順番通りに実行する)
2. 条件分岐
3. 繰り返し

この中で実は一番プログラミング素人が上手く扱えないのが、驚くなかれ、実は「一番カンタンに思える」1番の「逐次実行」です。「書いた通りに実行される」と言うのが一番感覚的には納得出来ないらしく、ここでミスが多発します。
次に難しいのは「繰り返し」で、これは慣れた人でも必ずミスを起こす部分で、しかも「繰り返しはメンド臭い」と言うのが共通認識です。ただ、慣れた人とプログラミング素人の何が違うのか、と言うと、慣れた人は

「プログラミングする事に慣れてるので、当然エラーを起こす事にも慣れているから慌てない」

と言う部分。エラーを起こす回数自体は実は両者あんま変わらないのです(ヘタすると「慣れてる人」の方が多いかも・笑)。
この「繰り返し」がメンド臭いので、比較的新しいプログラミング言語には「簡単に繰り返しが出来る」イテレータと言う機能が満載になってたりします(でも、「問題毎に適切なケース」が色々とあるので、今度は「数あるイテレータの中でどれを選択する?」と言う問題が出てくるので、それはそれでなかなか悩ましい部分です)。
この「基本動作を司る書き方」を「構文」と言って、どのプログラミング言語も備えてる機能となります。逆に言うと、「基本動作」が分かれば、どのプログラミング言語に移っても、敷居は低くなる、と言う事です。
また、ホント理論的な話なんですが、実はもっと言うと「まともなプログラミング言語」ではたった2つの機能に集約する事が出来ます。それは、

1. 逐次実行(書いた順番通りに実行する)
2. 条件分岐

の2つで、繰り返しは省かれます。いずれにせよ、たった2つないしは3つの「基本的な考え方」さえ学べばどのプログラミング言語に移っても大方大丈夫だ、と言う事です。
もう一つ重要なのは、データをどう作るか、と言う部分です。組み込みのデータ型から選ぶも良し、自分で新しくデータを設計しても良し、です。この部分で、比較的新しいプログラミング言語は有利になっていますね。組み込みのデータ型の数が豊富にある、と言う事です(C言語が厄介なのは、この「データ設計」に費やす時間がメチャクチャ多くなる、と言う辺りです)。
この「データ型の選び方」もしくは「新しいデータ型の設計」が結構難しい部分で、ここに「慣れ」が大きく関わってくるのです。
    • good
    • 0
この回答へのお礼

とても詳しく教えてくれて、ありがとうございます。
まずはリンクのサイトを読んで、Rubyで勉強していこうと思います。
一旦に『プログラミング』と言っても色々あるんですね。
勉強になりました。

お礼日時:2020/10/13 08:55

>>ホワイトハッカーになりたいと思っていましたが、あまり現実的でないので、今はどちらかと言うとアンチウイルスソフトとかの開発をする仕事に就きたいと思っています。



おお!なかなかハードル高いものを希望されましたね。
オライリーの書籍に「BINARY HACKS/ハッカー秘伝のテクニック100選」ってのがあります。
初心者の方だと、読んでも理解できる箇所は1つも見つからないと思いますけれどハッカーの世界の雰囲気が少しは感じられると思います。
そして、この世界を理解しようとするなら、選ぶ言語はC言語になるでしょう。それと並行してアセンブラ(昔のCPU 8086レベルでOK)も学ぶといいと思います。
アメリカの情報系大学では、以前は、C言語を教えるのが当然だったようですが、最近は変わってJavaになっているところもあるそうです。
米国のソフト会社の社長は、それを知って嘆いていました。
「新人はJavaではなくて、C言語を学んでいてほしい」なんてね。

昔、BITという雑誌に「本物のプログラマはPascalを使わない」なんて一文が掲載されていました。これを参考にされてもいいと思います。

ちなみに、No.2さんが書かれているように、JavaScriptを学ぶのは大変です。
実際に使われているコードには、その3つに加えて、CSS、BootStrap、jQueryも混在するので、「訳わからん!!」世界に突入です。
    • good
    • 0
この回答へのお礼

色々と時代によっても変わってくるんですね。
また「BINARY HACKS/ハッカー秘伝のテクニック100選」と言うのも、読んでみます。
回答ありがとうございました。

お礼日時:2020/10/13 08:58

>プログラミングを仕事でやっているような人は、あんなのを


>全部すらすらとかいているように見えるのですが、
>英語や日本語のように言語として暗記してしまっているのでしょうか。

してません。しばらく使ってないとすぐに忘れるので
リハビリが必要です。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
やっぱり覚えれるものじゃないんですね...。映画とかで天才プログラマーとかが一心不乱にキーを叩いてるのって、少し憧れます。

お礼日時:2020/10/13 04:57

> まずJavascriptを習得しようと思ったのですが、


> 種類が多くて、記号も出てきて、圧倒されました。

ハッキリ言って、JavaScriptは初心者向けのプログラミング言語としてはサイテーです。止めた方が良いですね。
と言うのも、「JavaScript入門」的なモノで使われてるのは、JavaScript「だけ」じゃないんです。ハッキリ言うと3つくらいの混成体をやらされている。

・JavaScript
・HTML
・DOM/Web API

元々HTML等を知ってるならいざ知らず、いきなりこれらを同時に覚える、ってのはなかなか厄介なのは想像に難しくないでしょう。
JavaScript単体でJavaScript「だけ」学ぶのも不可能ではないんですが、今度はブラウザから離れてJavaScript単体だけ用意するのも手間がかかるのです。そして「仕様上入出力が存在しない」JavaScript「だけ」学んでも、それはそれだけでは「何もできないプログラミング言語」なのでどーしよーもないんですよね。
何故こんなに色々と面倒が多いプログラミング言語なのに、「初心者向け」って紹介する人がいるんだか、個人的にはサッパリ意味が分かりません。

> 後、プログラミング言語にも、Pythonとか、C言語とか、色々ありますけど、あれは一体なんであんなに分かれているのでしょうか。

平たく言うと、どのプログラミング言語も「汎用」だ、って言ってますが、ぶっちゃけ、特定領域の問題を解く為にデザインされています。それだけです。
30年くらい前だと、PCの場合、「何が何でもC言語で書かないと」って言われていましたが、単純に当時は、PCのメモリも小さいし、CPUのスピードが遅かった、って事が原因でした。
今はメモリもかなり増えてて、CPUも俄然速くなったんで、「大学の中だけで、ワークステーションだけで使われてたような高機能な言語」が色々と出てきたんだよ、とそういう事です。

> 違う言語でも同じような事をできるのでしょうか。

理論的にはYES、です。
ただ、言語次第で、短く書ける方がラクだよね、って事はたくさん出てきます。

> こんな感じでも習得できるでしょうか。

基本的な事柄を学ぶだけ、なら大丈夫なんじゃないですか?
一つ覚えれば応用も効きますからね。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
結局、C言語は○○に使って、Pythonは△△に使う、みたいな適材適所のようなものがあるという理解であっているでしょうか?

後、私は将来、IT関係の仕事に就きたいと思っています。
ホワイトハッカーになりたいと思っていましたが、あまり現実的でないので、今はどちらかと言うとアンチウイルスソフトとかの開発をする仕事に就きたいと思っています。
そう言った場合、何から始めたら良いのでしょうか?

Javascriptを習得しようと思ったら、まずはHTMLとかから習得するのが良いのでしょうか?

お礼日時:2020/10/13 04:56

>>プログラミングを仕事でやっているような人は、あんなのを全部すらすらと....



すらすらと書ける人もいると思います。
でも、私はそれできないので、似たようなプログラムを参照しながら書きます。

>>Pythonとか、C言語とか、色々ありますけど、...違う言語でも同じような事をできるのでしょうか。

「もっと使いやすい言語を!」ってことで、いろいろな言語が生まれています。
そして、違う言語で同じことをできる場合もあります。
でも、できないこともあります。

>>こんな感じでも習得できるでしょうか。

プログラミニングって、大工さんなどの職人みたいな仕事では?なんて思います。
ネットの講座見たり、本読んでいるだけではだめで、実際にいろいろと手を動かして、作って、失敗しながら覚えるものかな?なんて思っています。
「親バレ恐れながら・・・」では、難しい面がありそういn思います。
少なくとも、入門者レベルでは、入門用書籍の購入が必須だと思いますね。
    • good
    • 0
この回答へのお礼

やっぱり、プログラミング言語を全部暗記するのは難しそうですね...。
とにかく何度もやって習得していこうと思います。
回答ありがとうございました。

お礼日時:2020/10/13 04:47

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

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング