プロが教える店舗&オフィスのセキュリティ対策術

Premiumを購読しようかなって思うんですけどこういうプログラミング勉強サイトってあとでくだらなかったみたいになりますか?いま大学生です

A 回答 (2件)

ハッキリ言うけど、「オンラインプログラミング学習サイト」なるモノは、知ってる限り、「全てクソ」だ。


時間をかける価値はない。
まぁ、LeetCodeってのは良く知らない。ただ、Paizaの無料Pythonコースを見た事もあるし、現時点で貴女が紹介してくれたアルゴ式ってのもチェックはしてみた。
全てのこの系統のサイトでは恐らく同様の欠陥がある。

1. 入力関数がマトモに使えない。

これは以前説明した事があるんで割愛する。

2. 貴女が書いたコードの「ロジック」を判定して正誤を判定してるわけじゃない。

プログラミングで重要なのは、「どういうロジックでプログラムを書くか」だ。
初心者段階でここをキチンと練習しないとどうにもならない。
しかしながら、このテの「オンライン学習サイト」は「貴女が書いたプログラムをチェックしてるわけじゃない」んだ。

システム的には実は至極簡便だったりする。
printでオンラインの端末に文字列を表示する。
そして、それと「解答」データベースに登録されてる「解答」の文字列と比較する。

貴女の答えの端末表示 == データベースに登録された解答の文字列

これが仕組みだ。
結果どういう問題があるのか、と言うと例えば

問: 5の階乗を計算しなさい。

ここで貴女が「どういう風に」5の階乗を計算するかは実は内部的には問うてない。単に貴女が書いたプログラムが表示する「文字列」とデータベースに登録された文字列"120"が一致してるかどうか見てるだけ、になる。
と言う事は、場合によっては、「例」とかで挙げてる「回答例」をコピーアンドペーストするだけで「正答」になっちまう、って事があり得るんだよ(実際Paizaなんかではあった)。
こんなモン、「プログラミングを学習する」って言えるか?
繰り返すけど、貴女の書いた「コードのロジック」をチェックしてるわけでも何でもないんだ。
こんなの、やるだけ無駄だ。
そしてこれが次の問題を引き起こす。

3. 関数が何でもかんでもprintで終わる、と言う悪習が身につく。

学習サイトの端末上に「表示」させる以上、関数を書いても全部を出力目的のprintで結ぶ、と言う悪習から逃れられないんだ。
もちろん、プログラミングをキチンと学んだ事がある人は関数は「returnする」モノだと設計して改めてprint(関数)にするだろう。
ただし、それは「オンラインプログラミング学習サイト」なんて言うバカな場所で勉強してこなかったから、だ。
言い換えると、プログラミング初心者は「一体自分が何を書いてるのか」ハッキリとは把握していない。その状態で、2を成立させる為だけ、にprintを埋め込みまくるんだ。
貴女はPythonをやってたと思うんだけど、Pythonの関数でprintで終わるようなカンジで書くのはサイテーだ。むしろ「やっちゃいけない」。プログラミング書法的にはご法度だ。「printで終わる関数」はその関数の再利用を妨げる。
しかし、そういう「バカな書き方」をこのテのオンライン学習サイトでは(正誤判定システムがどーしよーもねぇため)強制するハメになってるんだ。

これがオンライン学習サイトを「クソだ」と言う根拠だ。オンライン学習サイトを終えても貴女はマトモなプログラムを書けるようにはならないだろう。

一応、LeetCodeなるサイトの事も調べてみた。問題集サイト、との事。
しかもある意味特化している。「入社試験対策」だ。
貴女はPythonをやってたと思うんだけど、「既にPythonで充分プログラムが書ける」のかい?Pythonに習熟してるのかい?
このサイトは「既にPythonに習熟していて」、例えばGoogleの入社試験対策をしたい、って人向けのサイトなんだ。「決してPythonを学ぶ為のサイトではない」。
貴女がPythonを既に使いこなしていて、「就職の為に入社試験対策をしたい」とか言うのならそれに対しては問題はないだろう。
ただし、「Pythonをそのサイトで学びたい」なんつーのなら金、そして時間の無駄だ。ハッキリ言えば「マトモな教科書を買え」ってのがアドバイスになる。マトモな教科書が一冊あった方が100万倍もマシ、なんだよ。
正直、「YouTubeでプログラミングを学びたい」とか「オンライン学習サイトで学びたい」なんて言う「プログラミングを学びたい層」はどうかしてると思う。そもそも「今からプログラミングを学ぼう」って言うのに、「何が学習効率がいい」なんて判断出来るわけないじゃないか。
つまり、「動画/オンラインで〜」とか言う「プログラミング初学者」ってのは単に宣伝に踊らされてるだけ、なんだよ。
そして君らは「マトモな書籍一冊」にどれだけの価値があるのか知らんのだ。

とは言ってもPython関連の「入門書籍」はクソ本が多い。10冊目を通すと10冊全部クソ、ってのもマジで良くある。
そんな中で、殆ど唯一、って言って良いカンジで推薦出来る書籍は次の本だ。

世界標準MIT教科書 Python言語によるプログラミングイントロダクション 第3版:
https://www.kindaikagaku.co.jp/book_list/detail/ …

これは本物の「プログラミング入門書籍」だ。実際にMIT(マサチューセッツ工科大学)の「プログラミング入門講座」で使われている。これがベストチョイスだ。
値段が5,500円、と高めだけどそれだけの価値がある。っつーか、下手な「オンラインプログラミング教室」の年間サブスクリプションと比べてもそこまで高い、って程でもないだろう。
仮に、もし、これでもちと高いな、とか思うのなら、恐らく次の本が良い。

独学プログラマー Python言語の基本から仕事のやり方まで:
https://bookplus.nikkei.com/atcl/catalog/18/C922 …

こっちは持ってないんだけど、古本屋で立ち読みしてみたら「割にイイんじゃね?」と言う感触だ。「オンライン講座」では学べないような事が色々と書いてある。

この二冊の共通点、ってのは「原書が洋書である事」だ。バカバカしい理由に見えるけど、極めて重要だ。「日本で日本人によって書かれたPython本はクソの確率が高い」。よってプログラミングの世界では洋書の翻訳本の方がマシなんだ。これは覚えておいた方がいい。
別に外人が日本人よりアタマがいい、って言ってるわけじゃない。向こうにもバカが書いたクソ本は当然あるだろう。ただし、そういうクソ本を「わざわざ翻訳して出版しよう」とする素っ頓狂なヤツはいない、って事だな(笑)。
つまり、海外で既に「分かりやすい」「面白い」って言われてる本が本邦では翻訳・出版されるわけだ。結果「良質な洋書しか日本では翻訳・出版されない」。これを「資本主義的フィルタ」と呼んでるが(笑)。
いずれにせよ、Pythonに限らず、プログラミングの技術書は「洋書の翻訳書」の方が質が高い。これは自分で本を選ぶ際にもかなり有用な基準になってくれるだろう。

以上。
    • good
    • 0
この回答へのお礼

助かりました

ありがとうございます(´;ω;`)
めっちゃそうと思いました。なんかアルゴリズムとかデータ構造のお勉強のためだけにこういうのをやるのは良いと思うし実際にわたしもひっっきしけんのアルゴリズムのためにしかやってないですけど、本当にプログラマーの人がやってることとはちょっと違ったものなのかなと思いました。こういうアルゴリズムとかが大切なときもあると思うけど、なんかつかれました

お礼日時:2024/03/24 11:08

教材にもよると思いますが、後々Wikipediaに無料で乗ってんじゃん!とかはあると思います。


大抵のサイトはどこかのサイトのコピーです。
英語のブログなら英語に翻訳して読めば無料で読めるとか。
そもそも、有料版と無料版で内容変わらないとか、色々あります。
お金払う価値あるのはせめて学問の領域に足を踏み込んだもので、グラフィックと物理学を学べるとかそういうものだと思います。まあそこまで派手なデザインを実務で使うのかは謎ですが。

C言語、C++は構文が難解ですが、構文さえ分かれば難しく無いはずなのでお金を払う価値はないと思います。利用者も多いですし。
あとは環境構築のために少しはパソコンのことを分かってないと行けないです。

ま、でも何もやらないよりはやった方がマシだって考えもあるかもしれないです。

LeetCodeを調べてみましたが、アルゴリズムが学べるようなので十分お金を払う価値はある感じがします。
アルゴリズムを学ぶなら、学校へ行くか教材を買うか、Webで頑張って調べるか、と言った方法が考えられますが、仰るようにサブスクでもいいかもしれないです。

貴方がどのようなレベルかは分かりませんが、「競プロ 本」とかで調べれば、数学オリンピックとかそういうのに出てるような優秀な人の書籍に出会う事も出来ます。

プログラミングを初心者が学ぶにはいくつかの段階があると私は思っています

基本文法
アルゴリズム
アーキテクチャ

など。
足りないと思う分野を学べばいいです。お金を払っても払わなくてもいいです。

私は趣味と仕事でプログラミングをしています。
    • good
    • 0
この回答へのお礼

ありがとうございます。わたしもいまアルゴリズムとかの勉強のためにやってますがあんまり問題を解くことがおもしろいと思えません
まわりは競技プログラミングとかいってるけどおもしろいのかなっておもいます

お礼日時:2024/03/24 11:09

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

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


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