No.15ベストアンサー
- 回答日時:
> 確かに質の良い環境で学ぶことは大切だと感じます。
うん、大切だと思うよ。
でだ。ちと思いついた事があるから書く。まあ、これも教えて!gooに関わって見てきて、多分こうじゃないか、って話だけど。
知ってる範囲で言うと、実の事言えば、殆どの大学では「ソフトウェアの書き方」ってのを教えないんだ。
いや、プログラミングは教えるよ?でも「一つの作品の書き上げ方」は教えない。何か「作品を作り上げる」のならひょっとしたら、それこそ「ゲームクリエイター養成」とか掲げてる専門学校の方がキチンとしてるかもしんない。
一般的には、大学の方では「データ構造の作り方」とかさ。言っちゃえばライブラリやスクリプトレベルの書き方しか教えないんだよ。
唯一の例外があるんだけど、それは「インタプリタの書き方」なんだ。しかし、殆どの大学ではその「インタプリタの書き方」そのものが「ソフトウェアの汎用的な作り方なんだ」って学生に示さないのね。結局、教員側も「何故にインタプリタの書き方を教えてるのか」意味が分かってないんじゃないか、と言う(笑)。別にアカデミックだからそれがトピックだ、ってワケじゃないんだよ。本来は「インタプリタの構成法」そのものが「汎用的なソフトウェアの書き方」だから取り上げてるわけ。
しかし、「インタプリタの構造がソフトウェアの構造そのもの」って観点は完全に抜け落ちて、「字句解析」とか「構文解析」とか本来枝葉末節な話が講義の中心になるんだ(笑)。いや、それはそれで技術的には重要なんだけど、トピックの重要度としては本末転倒なんだ。
結果、学生側も一体「何故にそれを学んでるのか」サッパリ分からなくなる(笑)。で、その辺アタマに入ってないんだけど、卒業制作とかでいきなり「GUIのソフトを作ろう」とか思いついて、でもやり方分からんから教えて!gooに泣きついて投稿してくるわけだ(笑)。
そういうおかしな状況がままあるわけ。
こういうある種の「危機」ってのはやっぱ有名大学になればなるほど回避出来る確率は上がるだろう、ってのがあるのね。
いや、上に書いた話嘘だろ?とか思うかもしんない。でも多分事実だと思う。
と言うのも、もちろん僕も全部の出版済み書籍を読んだわけじゃないんだけど、「インタプリタの書き方がソフトウェアを作る一般的な方法なんだ」って啓蒙してる書籍って、知ってる限り2冊しかないんだ。他の初心者向けの「プログラミング入門」の類って大体その言語の簡易リファレンス、って程度のクオリティでさ。後は巻末にスクリプト例が2〜3例載ってる程度、ってのが殆どなの。
つまり、そんな本を読んでも「ソフトウェアの一般的な作り方は分からない」。結果そのテの本を読んでも「ソフトウェアは書けない」んだ。そして、「何か作りたい」とかなった場合、場当たり的に「掲示板作成入門」とか、「ゲーム作成入門」とか別途買って読まなきゃならなくなる。
んで、驚く事にそういう「簡易リファレンス」的な書籍を書いてる奴らって「現役エンジニア」とか紹介されてるのが多い事多い事。でも「ソフトウェア作成の一般論」ってのには全く触れてない、んだ。と言う事は、かつて学校で学んだ時にそういうパースペクティヴは学んでませんでした、って事になるわけじゃん?知ってるなら書くよな。知らんから書けないんじゃないか、って事になる。
彼らもその場その場で場当たり的にやってきました、って事に他ならないんじゃないか。
繰り返すけど、「インタプリタを書く」ってのがほぼ「ソフトウェアを書く」のと同義なの。それどころか、CPUとメモリの組み合わせ、そしてその動作も実は概念的には「インタプリタ」なんだ。僕らはハードウェア・インタプリタ上でソフトウェア・インタプリタを使ってる。ある種メタ循環になってんのね。
インタプリタは読み込み・評価・印字の組み合わせになってる。ソフトウェアも読み込み・評価・印字の組み合わせになってる。これをRead-Eval-Print Loop(REPL)と呼ぶ。構造的にはインタプリタもソフトウェアもREPLを持ってるんだ。
と言う事は、ソフトウェアを作る際、パーツとしては読み込み部、評価部、印字部を別々に作っておいて、それらをループで組み合わせろ、って事だ。ある意味ワンパターンで良くって、そういう「パターン」を学んでおけば色んな問題に対処可能だ、って事だ。恐らくそういうパースペクティヴは有名大学でしか教えてくれない。
例えばこういうのを考えてみよう。「数当てゲーム」だ。1〜100の範囲で適当に整数を選んできて、プレイヤーはそれを当てようとする。答えの数より小さい値が入力された場合は'lower'と表示し、大きければ'upper'と表示する。入力数が答えとドンピシャだった場合、そこまで入力した回数を表示する、と。
この程度だとREPLを使わずに書けば、より短くなるかもしんない。ただし、「インタプリタの基本」REPLを使うと次のようになるだろう(言語はPython3.10以降とする)。
数当てゲームのREPLによる実装例(注: ideone上でエラーになってるのは、処理系がPython3.9だから):
https://www.ideone.com/Gt7rqN
方針としては毎度毎度
1. プロセス対象のデータ構造を考える(このプログラム上では「環境」と呼んでて、クラスで作成してる)
2. Read、Eval、Printを別々に作る
3. プログラム本体(この例だとif __name__ == '__main__':以降)でRead、Eval、Printを組み合わせてループさせる
だ。
プログラムが複雑になる、って事はEval部が複雑化する、って事なんだけど、そう言う場合は、外部に別に関数を作ってそれをEvalから呼び出すようにする。
いずれにせよ、ワンパターンでO.K.なんだ。それがインタプリタ作成の示唆で、一貫したパースペクティヴを与える。
んで、教えて!gooなんかで投稿される質問だと、そもそも1.の時点で躓いてる例も極めて多い。「データ設計」の重要さをまるで学んでない学生も多い、って事なのか?
いや、学生を責める前に、やっぱ教員側がまずはキチンと教えてないんじゃないの?ってのをまずは疑ってる。
上で本の例を書いたけど、実際書籍類でも「言語組み込みのデータの説明」ばっかで、じゃあそれらを使って「どうデータ設計するのか」ってのは全く触れてない書籍ばっか、なんだよ。
分かる?教えて!gooを見てる限り、やっぱ有名大学に行った方が「教員がマトモで」キチンと教えてくれるんじゃないか、って思うんだ。
そうじゃないと学生が「徒手空拳」で色々と頑張らざるを得なくなる。
そしてGUIだと、REPLの延長線上にMVCがある。MVCはGUI構成法の基礎で、REPLとMVCの関連性に付いても教えてないケースが多いんだ。
他にもこう言うのがある。アルゴリズムの基礎として「再帰」ってのがあるんだけど、教員側が「再帰は難しい」って言うのね。でも僕らはそれを高校数学で習ってるんだ。高校数学では「再帰」を「漸化式」と呼ぶ。そしてモダンな言語ではほぼ、漸化式は直接プログラミングが可能だ。実際は、高校数学(多分数学II?)の問題集でも引っ張り出して来て、「漸化式」の問題を10問もプログラミングすれば形式にはすぐ慣れる、って程度の話でしかない。
一体何のために高校数学履修者相手に「数学で入試」を実施して、それを無にするような発言をするのか。サッパリ意図が分からん。教員側が高校数学さえ知らんのとちゃうの?と言うちょっとゾッとするような話だ。彼らはアメリカ人が「再帰は難しい」と言うからそのまま言ってるんだ。しかしアメリカ人の一般的な数学的能力は日本人のそれより遥かに低い。
こんな蒙昧な発言は有名大学の教員ならしないだろう。
ちなみに再帰 = 漸化式だ、って書いてる「プログラミング入門書」なんつーのも見た事がない。
あと、あんま程度が高くない大学か何だか知らんが、Pythonを使ってるトコで、「機械学習が簡単に出来る!」とか言ってんのかな。pandasだ何だ、って外部ライブラリを使う方策を持っててもPythonそのものの「使い方」を教えきれてない、とか。そういうのも教えて!gooで良く見かける。「ライブラリ使用前に言語だろ?」とか思うんだけど。
このテの話で間違えてるのは、そもそも「ライブラリの問題」ってのはプログラミングの問題じゃないんだよ。通常、外部ライブラリにはフォーラムやユーザーグループ、あるいはメーリングリストなんかがある。使い方に関して質問するなら教えて!gooじゃなくってそっちなんだけど、おかしな学校ではそういう事を「紹介」さえしてないらしい。
あと、Google Colabの使用率が高い。「ブラウザ使えば簡単にプログラミングが出来る!」とか言ってるっぽいんだけど、それが結果一番面倒くさい事となる。プログラミングの実行環境が手元にない、ってのは学習上かなりマズイんだ。そしてそれに対して学生をフォローする事もしない。困って教えて!gooに投稿・・・ってのも良くある。
大体が教育側の問題なんだよ。
と言うわけで、余力があるならやっぱ「いい大学」行った方がエエんちゃうかいな。色んな投稿見てきたけど、投稿者の学生がどーの、って言うより教員側の方に問題が多いんじゃないの?って思ってる。おかしな事を言ったりやらせたりするのは教員側の質の問題でしょ。
やっぱいい先生とか、いい同級生がいた方がメリットはデカイんじゃないのかな。
根拠を適切に述べられており、
プログラミングにおける枝葉と幹が分かりやすかったです。
まるで質の良い講義を受けているようでした。
ご回答ありがとうございます。
No.14
- 回答日時:
身内で、専門学校を2校出て、その世界で頑張っている人がいます。
専門学校によって学べる分野が違ったそうで、こうなったと言ってました。
身内は、何社か渡り歩いて実績を積んでいますが、現場だとそこまで学歴は言われないそうです。
身内は、昇進したくない人なので、その点も学歴は気にしないのかもしれません。
あと、語学はそれなりにできた方がいいかな〜とも言ってました。
ただ、わたしの考えとしては、もしも大学で学んでいたら、講義でもっと深く学べたり、学生同士で学べたりと、得られるものは大きかったのでは?と思ったりもしました。
専門2校行くことなかったのかな?と。
大卒の方の努力の仕方と取り組む姿勢は、高卒専門とは違うように感じます。
周りからの刺激を受けるという面でも、大学に行った方がいいのではと思います。
No.11
- 回答日時:
人生ってそんな単純なものじゃなくてもっと複雑なものなんですが、
一般庶民から見る
有名大学を卒業するメリットは何も考えなくていいってことじゃないでしょうか。
努力しても手に入れることは出来ないと思います。
そもそも努力しないでいいって言うのがメリットですから。
No.10
- 回答日時:
質問の意図が、「今高校生で、有名大学に合格する学力はあるのだが、進学を目指すか、高卒で就職もしくは専門学校に行くか?」ということで迷っているのであれば、お金の問題が無いのなら、大学ですね。
一流大学には一流の先生がいるし、頭の良い同級生もいます。彼らから刺激を受けることは大きいメリットです。成長できます。これらは高卒での努力ではまず手に入りません。
また論理的に物を考える訓練も受けます。これはまあ、可能性としては努力でも何とかなるかもしれません。現実的には困難でしょうね。
あと、企業に就職するなら、10人の募集に20人の応募者とかなら20人を丁寧に面接するのは可能だろうから努力の成果を見せることは出来るでしょうけど、10人の募集に応募が1000人とかだと全員に丁寧な面接をするのは無理なので、書類で足切りをするのじゃないでしょうか。
数十人~数百人募集の中大企業だと大卒でないとそもそも応募できないかも知れませんが、上記のような迷いなら、大企業就職は最初から考えてないのでしょうから関係ないですね。
高校生だと、個人の趣味で開発するプログラミングと、組織でのプログラム開発の違いが分かってないと思うので、そのあたりをどうやって知るか。バイトですかね。
就職せず個人で起業するつもりならそもそも関係ないですが。
一流大学には一流の先生がいるし、頭の良い同級生もいます。彼らから刺激を受けることは大きいメリットです。成長できます。
という文章が刺さりました。
ご回答ありがとうございます。
No.8
- 回答日時:
う〜ん・・・。
良く分からんけど、有名大学の方が、思いきって「入門用言語」がPythonなんかの導入が簡単な言語を使ってるカンジ?
逆に偏差値が低い大学なんかの方が「昔ながらの」C言語を導入に使って、学生が苦労してる印象(笑)。
また、教えて!gooの質問なんかを見てきた印象だと、偏差値が低い大学の方がやっぱ宿題の問題が良くないのね。「出題者って本当にC言語の仕様把握してるのか?」みたいな。あとは汚いコードを学生に書かせるのもヘーキ、とか言う印象かなぁ。「動けばいいだろ」みてぇな。信じられない(笑)。
それで言うと、まず「教員の質が」やっぱ違うんだろうな、って事。有名大学の方が言語の選び方、宿題の出し方、に無駄が無い気がする。
そういうのが積み重なって学生に影響を与えていく、ってのはあると思うね。
まぁ、あくまで教えて!gooの質問の印象だけどさ。
あと、例えば「最先端の」関数型プログラミングの考え方の導入、とか有名大学の方が柔軟に取り入れている気がする。偏差値が低いトコだと「就職だけ」が目標で、プログラミングの「理論」周りにあんま関心を払わん、っつーかさ。結果、色々と「最新のアイディア」に触れる機会、ってのは有名大学の方が多いんちゃうの?
総合的に言うと、まぁ、理屈寄り、ってトコはあるけど、「色んなプログラミングの側面が学べる」って意味だと、有名大学を卒業する方がメリットがあるんじゃないかなぁ。
教えて!gooとか、他の質問サイト見てるとそんなカンジ。繰り返すけど、教員側の知識とかスタンスとかが全然違うんだよな。それが「有名大学の」メリットだと思う。
No.6
- 回答日時:
有名大学を卒業するメリットは、有名大手企業に入社しようとする場合に有利です。
それは、中小企業に就職するよりも、高給が得られることに繋がります。なお、一般的に言われていますが、IT業界は建築業界と同様にピラミッド構造となっていて、上のほうに位置する企業は有名大手のIT企業であり、開発の監督・管理を行って、実際のプログラミングは、下請け・孫請けの中小派遣IT企業の社員(や非正規社員)が担当する分業体制になっていることが多いです。
そのため、ネットで書かれていたと思ったのですが、「プログラマーになりたいから、有名大手IT企業ではなくて、小さなIT企業を選んだ」なんて話もあります。
真偽のほどは分かりませんが、大手企業でプログラミングをがんばろうとしていた方が、上司から「そんなことやるな、それは下請けの仕事だ!!」と怒られたという話もあります。
つまりは、有名大学をめざすこと(卒業すること)は、プログラマーへの道をめざす方にとってはマイナスになる可能性があります。
(No.4さんの回答に近いですね)
ただ、情報系大学のシラバスなどを見ていると分かりますが、プログラミングの世界では、しっかりやろうとすると、いろんな理論を学ぶ必要があったりします。
情報系の大学を卒業することで、そういう分野を学ぶ機会が得られるメリットがあると思います。
昔、インド人プログラマさんと某大手通信会社の仕事をいっしょにしたとき、「この人たちは、しっかり理論を学んでいるなあ・・」なんて感じたものでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
家・車以外で、人生で一番奮発した買い物
どんなものにお金をかけるかは人それぞれの価値観ですが、 誰もが一度は清水の舞台から飛び降りる覚悟で、ちょっと贅沢な買い物をしたことがあるはず。
-
ホテルを選ぶとき、これだけは譲れない条件TOP3は?
ホテルを探す時、予約サイトで希望条件の絞り込みができる便利な世の中。 あなたは宿泊先を決めるとき「これだけは譲れない」と思う条件TOP3を教えてください。
-
昨日見た夢を教えて下さい
たまにすごいドラマチックな夢見ること、ありませんか? 起きてからも妙に記憶に残っているような、そんな夢。
-
高校三年生の合唱祭で何を歌いましたか?
大人になると大人数で合唱する機会ってないですよね。 思い出すと、高校三年生の合唱祭が最後でした。 そこで、みんなの思い出の合唱曲を知りたい!
-
AIの登場でプログラマーたちが解雇されていますが
その他(プログラミング・Web制作)
-
プログラミングを教えたいです。そういうSNSないですか?
その他(プログラミング・Web制作)
-
楽しくて最高のプログラミング言語を作りたいのですが、そもそもプログラミング言語を作る意味なんてないと
その他(プログラミング・Web制作)
-
-
4
プログラミング ソースコード
その他(プログラミング・Web制作)
-
5
プログラミングについて。 1つのループで Aという計算と Bという計算をするのと これらを分けて2つ
C言語・C++・C#
-
6
過剰なオブジェクト指向脳からの脱却について
その他(プログラミング・Web制作)
-
7
プログラマーは誘惑にさらされる人生?
その他(プログラミング・Web制作)
-
8
40代後半でゼロからのプログラム業界への転職
その他(プログラミング・Web制作)
-
9
プログラム言語について c言語もコードによって機械語に通訳されると知りました。直接機械が通訳しなくて
C言語・C++・C#
-
10
逆コンパイルと逆アセンブルの違いはなんですか
C言語・C++・C#
-
11
ITの見積もりってなんであんなに高いんですか? 原価がかからないのに
その他(ソフトウェア)
-
12
C言語をコンパイルするとコンピュータ上でどう動くかというコードになるみたいな説明をよく聞くのですがこ
C言語・C++・C#
-
13
mallocについて
C言語・C++・C#
-
14
Windowsのアプリ開発ってなんのためにするんですか? Excelで入力、更新、表示、検索、削除、
その他(プログラミング・Web制作)
-
15
プログラミングの課題がわからないので教えていただきたいです。特にサークル関数を定義した後に呼び出す方
C言語・C++・C#
-
16
小学1年生の子です。塾に行かせるのは難しいので、自宅で学べたらと思うのですが、子供にプログラミングを
その他(プログラミング・Web制作)
-
17
システムエンジニアの適正について
C言語・C++・C#
-
18
C言語 配列と関数の練習問題
C言語・C++・C#
-
19
CPUが16bitでも32bitOSでコンパイルしたコード(例えばintが4バイトと定義されている)
C言語・C++・C#
-
20
Pythonって何を意識した言語なんですか?コマンドライン?
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アセンブリ言語について。
-
Google ColaboでGUI作成
-
vba クリップボードクリアにつ...
-
batファイル、コマンドプロンプ...
-
フロントエンドエンジニアをし...
-
HTMLソースが表示のページのも...
-
このURLで広告を出しているのは...
-
文系のSE志望です。プログラミ...
-
プログラミングのやり方ざっく...
-
プログラミング
-
近年誕生したプログラミング言語
-
プログラミング言語について
-
Pythonでgif画像が上手く作れない
-
pythonで複数画像からgifを作る...
-
Webサイト内に埋め込んだmp4動...
-
Gitについて質問。 クローンし...
-
python エラー
-
過剰なオブジェクト指向脳から...
-
プログラミング ソースコード
-
コトリン言語について。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラマーと学歴の関係性に...
-
Fラン大学卒だと負け組ですか?
-
文章を構成し、物語を作る、主...
-
大学生です。生きたくありませ...
-
「年次」と「年時」に使い方に...
-
学費納入期限を過ぎてしまいま...
-
授業で理解した内容をレポート...
-
東京工業大学が東京科学大学に...
-
大学の志望理由書 400字制限で...
-
補導について
-
先日、1年生前期の成績が発表さ...
-
一日遅れで、学費未納のため大...
-
大学1年生の女子です。 先週、...
-
昔の短大の偏差値は高かったの?
-
大学の欠席についてです。 評価...
-
大学の教授の苦情はどこへ言う...
-
大学行きたくないです。 片道2...
-
必修科目って5回休んだらもう単...
-
豊橋技術科学大学って高専生が...
-
外出理由
おすすめ情報