コンピュータサイエンスの学位って、本当に必要? 79
ストーリー by reo
そっちのOliver氏ではない 部門より
そっちのOliver氏ではない 部門より
danceman 曰く、
Developer World の Andrew Oliver 氏によれば、大概は独学でプログラミングを覚えた技術者の方がコンピュータサイエンス専攻の大卒者より仕事ができるとのこと (Developer World の記事、本家 /. 記事より) 。
特に米国の大学授業料は高く、多額の負債を抱えることにもなるのに、本当に大切なことはほんの少ししか教えてくれないとし、「いっそ自分で勉強したほうがいいのでは?」と問いかける必要があるとしている。コンピュータサイエンスの学位を取得しているほとんどの人が、理論を何一つ理解していなければコードも書けず、そのかわりに、経歴を立派にみせる言葉で履歴書を埋めることは上手くやっているとのこと。
Oliver 氏は、才能あるプログラマーを発掘するのにコンピュータサイエンスの学位があるかどうかに頼るのはやめたのだという。学位で分かることは、その分野に対する一般的な関心があるかどうかだけである。また、学校の教える理論の授業はひどくて、Java すらもきちんと教えることができておらず、他にまともに教えられる言語もないまま Java を教えているとのこと。
プログラミングできる人とできない人との間の深い溝 (スコア:3, 参考になる)
参考
「プログラミングできる人とできない人との間の深い溝」 http://d.hatena.ne.jp/masatoi/20090707/1246965336 [hatena.ne.jp]
「どうしてプログラマに・・・プログラムが書けないのか?」 http://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm [aoky.net]
「Javaスクールの危険」 http://local.joelonsoftware.com/mediawiki/index.php/Java%E3%82%B9%E3%8... [joelonsoftware.com]
「学位は持ってる = 優秀なプログラマ」ではないが、
「独学でやりました(キリッ)=優秀なプログラマ」でもない。
それだけの話だと思う。
ひょっとしたら、この記事を書いた人の会社がすごく人気がない会社で、
学位をもっていて且つ優秀な人はみんなGoogleなりFacebookなりの人気のある会社に
行ってしまうために、この会社に来てくれる学位のある人は全て実力の無い人ばかりに
なってしまうというオチかもしれない。
Re:プログラミングできる人とできない人との間の深い溝 (スコア:5, 興味深い)
> 「独学でやりました(キリッ)=優秀なプログラマ」でもない。
これは事実だな。黎明期からのパソコンユーザのはしくれとして、単なるアプリの利用者になるのではなく、
自分のやりたいことをしてくれるプログラムを組む自由ってのは絶対に確保しなきゃならんと考えているのだけど、
結局、自分はバグを量産するばかりで、本当に凄い連中には絶対に敵わないことを思い知ったよ。
configureスクリプトにパラメータを渡して、コンパイラを動かして独自のビルドを作る方法とかは分かるし、
ちょっとしたソースの修正なら自分にもプログラムが読めなくはないのだから、クイックハックというかアレゲな修正というか
そういうパッチみたいなコードなら書けるけど、何かやりたいと思った時にスクラッチから書くのは難しい。
『Cプログラミング診断室』 開院準備 ■レベル差 [pro.or.jp]にある通りだった。
> コンピュータが良くなり、より複雑な処理をするプログラムがどんどん増え てきました。
> 大学には多数の情報関係の学科が新設され、コンピュータ専門学 校もどんどん増え、多数のプログラマを排出しました。
> したがって、プログラ ムの開発技術の方も着実に進歩したと考えるのが当然でしょう。
> いまでは、学 校で正規にプログラミング教育を受けた人達がプログラムを組むようになって きたので、
> コンピュータメーカ、大手企業のソフト開発部門から中小ソフトハ ウスに至るまで、ソフト開発のレベルも自然に上がってきたと考えるべきでしょ う。
> しかし、現実の姿は全く反対で、技術レベル差はますます広がり、下級レベ ルは「ごみプログラム」を大量生産しているだけになってしまいました。
再帰なんて基本テクニックでしょ?と言われても、
自分はSchemeみたいにループを全て再帰で表現するような言語でマトモにプログラムを書ける気がしないッスよ。
Re:プログラミングできる人とできない人との間の深い溝 (スコア:3)
数学がとっても苦手な人が、数学が必須の学科に行こうとは思わないですよね(多分)。
プログラミングも数学と同程度に向き不向きがはっきりしているものだと思う……下手すると
数学以上かもしれないな、数学は苦手でも訓練で道具としてなら使えるレベルになるけど
コード書きは使えるレベルになることすら難しいかも……のだけれども
向かない人が情報関係の学科や専門学校に進んでしまうのは、高校までにプログラミングに
触れる機会が少ないからかもしれませんね?
以前にも何度か/.で子供の頃からコンピュータ的なトピックが上がってたけど、こうした深刻な
現状があるのなら、高校か中学で何かプログラミング言語を必修にしておくと効果的かも。
その段階で「私には向かないわ」と自覚すれば、そういう人は関連学科に進学してこようとは
思わないでしょうから。そういうもんでもないのかな。
Re:プログラミングできる人とできない人との間の深い溝 (スコア:3)
一番とは書いていないのですが?
数学は道具として使われている歴史が古いですね。たとえば、仕事の中で数学を
よく利用する分野として電気関係があります。たくさんの公式があり、その公式が
どうして導出されているのかを理解したり、自分で式を導出するのはセンスが要ります。
しかし、仕事としてその公式を使う分には、その式がどうやって導出されたかまで考える
必要があることは稀ですし、式を仕事の道具として使うことができます。ですから、数学が
まったくできないのは論外にせよ、得意でなくても頑張ればなんとかなるわけです。
プログラミングにも公式的なものがないわけではないですが、解決すべき問題は
常に新しいもので、使える道具はいくらかの方法論とプログラミング言語くらいのものです。
数学を道具として使うのとはまた違った難しさがあり、センスや向き不向きが強く出る
と思うのですよね。
言い換えると、数学は道具として使うためによく整備されていて、応用されている分野では
使える公式(道具)がたくさんあるということです。一方、プログラミングはそこまで整備されてない
ということかもしれません。レゴブロックみたいに、マクロをいくつか組み合わせただけで
たいがいの問題が解決できる、くらいに整備されれば、適性とかセンスも要らなくなるかもしれませんね。
Re:プログラミングできる人とできない人との間の深い溝 (スコア:2)
他の手続き型プログラミング言語の多くでループで実装されている処理って, 関数型言語のmapで実現されているので, 分けて考えないといけないのかと思います.
古典的手続き型プログラミング言語だと, 計算結果を次の計算の入力に使用する時間的な繰り返しと, 複数のデータに対して計算を行う空間的な繰り返しを一纏めにして「繰り返し」としちゃっているのが間違いの元のような. 古典的な手続き型言語だと, どちらも同じ繰り返し構文で実現できますが(同じだから良いわけではないけど), 関数型言語だと前者は再帰関数に適応することができますし後者はmap系関数に適応することができます.
そういう違いを考慮せず, ループに拘泥することがむしろ「古典的手続き脳」なんじゃないかと思います.
Re:プログラミングできる人とできない人との間の深い溝 (スコア:1)
でも、そのmap系関数も元をたどれば再帰で書かれてて、
ものすごーく基本的な要素と再帰だけで何でもできるんじゃー
というのが関数型言語のセールスポイントかと思ってました。
ちなみに、ループにしろ再帰にしろ空間的な繰り返しと時間的繰り返しが
同じ構文で実現できるのはただの偶然じゃなくて、
何か数学的もしくは物理的な裏付けがあるような気がするんですよ。
単なる素人の妄想ですけどね。何かの条件のもと空間と時間は等価だ。みたいな。
Re: (スコア:0)
a = b;
の=記号が代入であるとの前提なしに出現したら(「あくまでコードを一度も見たことのない学生にむけてのテスト」である)
"数学的等号", もしくは"電卓的計算要求"が候補となり、右辺が存在することから数学的等号であると判断するのは、当然ではないだろうか。
結果、式は偽なのに選択肢に無いので途方に暮れると。
Re:プログラミングできる人とできない人との間の深い溝 (スコア:1)
自分の知ってる常識からは外れてるが、何かしら合理的で一貫性のあるルールで書かれてる、と言うのをさらっと納得した上で、上手いことそのルールを演繹できる能力、みたいなのを見てる話でしょう。
一字一句、順に勉強するよりは、「こんなルールかな」と想像してそれがあってる、みたいなプロセスを挟むとプログラミングの習得は簡単ですよ、みたいな。 素晴らしいプログラミングの講義を聴くか、抜けの無い完璧な解説をちゃんと読めば全部書いてあることとは言え、 必ずしもそういうテキストなりに当たるとも限りませんし。
Re:プログラミングできる人とできない人との間の深い溝 (スコア:2)
前半二つの段落はそれでいいと思います.
ですが,それは一般的にプログラミングを学ぶ上での話だと思いますがどうでしょう.
理論としてコンピュータサイエンス,
特に言語理論をやる人はその「さらっと納得」している部分を,
きちんと論証していく能力を身につけるのが一つの目的です.
a = b; という例では"="オペレーションの意味論を定義した上で,
その特性について議論しますので,「さらっと納得」というレベルだと困ってしまいます.
余談だけど,CやJavaのこの"="を「代入」と呼ぶ人は,
自分の言っているに違和感をもたないものなんでしょうか?
明らかにやっていることは上書きなのに.
Re:プログラミングできる人とできない人との間の深い溝 (スコア:2)
>a = b; という例では"="オペレーションの意味論を定義した上で,
>その特性について議論します
タレコミはそういう議論が役立つ実務はあまり多くないということでしょう。趣味もしくは
コンピュータサイエンス以外の学科で必要があってコードの書き方を覚えた人は
少なくとも何か動くものを作ったことがあり、その経験を通してコードの設計を考えたことがある
人が少なくないでしょうし、実務のレベルであれば、そうした経験の方が、役に立つことが
多そうな気はします。
一方で、言語やOSのようなシステムを設計するのならコンピュータサイエンスで学んだことが
役立つでしょうし。
たぶん一番理想的なのは、趣味でコードの書き方を学ぶ一方で、コンピュータサイエンスの
学位もとった、というような人じゃないでしょうか。どちらか一方というのは、それはそれで
偏りがあるでしょうということで。
Re:プログラミングできる人とできない人との間の深い溝 (スコア:1)
はい、その話として、コメントを書きました。このストーリーの本題に対してではなく、このコメントツリーの根っこからの流れに対してです。
一方で、改めて考えてみて、コンピュータサイエンスでも似たような能力が理解の一助になると思います。
ざっと見て、どういうルールの理論なのかを想像する(この時点で、ごく当然のこととして、それなりに合理的かつ一貫性のあるルールを想像できる能力)→教科書その他を念入りに参照して、想像したルールが正しいことを確認、みたいなプロセスで学べるので。
もちろん、想像したルールが、学ぼうとしている対象とは別のルールになっちゃってて、混乱することもありますし、そうなった場合はなまじっか両方ある意味正しいせいで、混乱はより根深い物になったりもしますが。
そういうやり方だと、確認漏れが出たりして、理論全体の精密な理解にならない危険性があるから、1から順に精密に積み上げるような理解の仕方をすべきだ、というご意見でしたら、反論の言葉を持ちません。 あの複雑な理論をそういうやり方で理解するのは私には無理そうです。
多分、どこかに漏れがあっても、使っていてその不理解が問題になる場面に遭遇したら、その時点で気付くだろう、ぐらいの楽観主義でやっています。
「代入」の違和感はいまいちぴんときませんでした。 個人的に、代数より先にプログラミングを身につけたせいかもしれません。
オフトピ (スコア:2)
もちろん,言語理論なんて知らなくていい状況の方が多いでしょう.
というよりもそれが支配的でしょう.
それを批判するつもりもありません,念のため.
でもそういうことが必要になるケースがあり,その能力を示すひとつの目安が学位なんではないでしょうか.
あの複雑な理論をそういうやり方で理解するのは私には無理そうです。
どの理論のことを言っているのかわかりませんが,
それが無理と言うのは教材が悪いか,重要なところを読み飛しているんだと思います.
結局言語理論なんてのは数学ですから,
より馴染みのある例で話をした方がいいかもしれません.
中学で数学の勉強をするとき,練習問題があったかと思います.
公式を知らずに法則を自分で推測し,
その正しさを練習問題で確認する勉強方法をとるでしょうか?
練習問題ではうまくいったけれど,章末問題で上手くいかない.
あのときの法則は違ってたんだ,と知って元に戻ってやりなおす.
場合によってはそれを知るのはテストの結果が返ってきたときになるかもしれません.
そんなことはしないのではないでしょうか.
もちろん,複雑なものを学ぶときに,
一定の手続きを踏まずに概要を把握できる能力,というものがあるのでしたら,
それは素晴しいことだとは思います.
一方,そんなものがなくてもスムーズに勉強できる教材は良い教材.(タネンバウム然り,ピアース然り)
Re:オフトピ (スコア:1)
個人的には、そこに壁を感じました。
中学・高校までの数学・物理は、どこか現実の問題をモデル化したような感じなので、 分からないところを、世の常識(こういう風に動くはず、とか)で補えたのが、 より抽象度の高い言語理論とか、論理学とかになると、対応する世の常識が存在しなかったりして。
幸い、私は、プログラミングはそこそこ経験があり、「こういう作用をもたらしたいけど、直接それは書けないから、システム上許されるこの操作とこの操作で間接的に結果を得る」みたいな回りくどい話には慣れていたので、そういうのを使って乗り切った、と思ってます。
>一方,そんなものがなくてもスムーズに勉強できる教材は良い教材.(タネンバウム然り,ピアース然り)
それはそうかも知れません。・・・分かってしまえば、「ただ正しい」だけではなく、もうちょっと、分かりやすい言い回しで説明出来るよなぁ、これ、とか思う授業が結構多かったです。
Re: (スコア:0)
プログラミングでは抽象化能力がかなり重要になると思うけど、意味するところと表現の仕方を別モノと見られるのもその一つかもね。
Re: (スコア:0)
???
「電卓的計算要求」ってどういうことかな?逆ポーランド記法的な何かの計算手順の記法ってこと?
この話が上のコメントとどうつながるの?
「初めてソースコードを見た人間が、C言語の代入操作を等式と誤解する」ことはあるかもしれないけど、
それでプログラミングそのものを挫折したという人は見たことがないし。
なんとなくだけど「プログラミングは難しい」ってことを言いたいのかな?
持てる限りのESPを発動したけど、まったく言いたいことが読み取れなかったOrz
Re: (スコア:0)
話題とはほとんどそれているけど
持ってる情報をひけらかしたいタイプなんだよ
オタクにありがちw
Re: (スコア:0)
> 「学位は持ってる = 優秀なプログラマ」ではないが、
> 「独学でやりました(キリッ)=優秀なプログラマ」でもない。
> それだけの話だと思う。
前者が後者に比べて有意に多くないなら学位の必要性に疑問を持たれて当然だな。
とりあえず (スコア:2, すばらしい洞察)
>才能あるプログラマーを発掘するのにコンピュータサイエンスの学位があるかどうかに頼るのはやめた
才能を探すのに学位があるかどうかに頼る人は人事に口を出すべきではないと思う。
〇〇の学位が…と言っていられるのはまだ幸せだ (スコア:2, すばらしい洞察)
日本じゃあなあ,そんな細かい話にならん.それどころか,「学士/修士号は必要なのか」と問われるからな…
実際はというと,同じ大学の同じ研究室の同じ代の出身でもレベルが違いすぎて学士/修士号の有無なんてなんの指標にもならん.できる奴は〇〇の世界大会で何位に食い込めるレベルだし,できない奴はコンビニバイトすら務まらん.
# まったくできない奴でも結局お情けで学士/修士号が取れる今のやり方はやめようぜ.誰も幸せにならん…
Re:〇〇の学位が…と言っていられるのはまだ幸せだ (スコア:1)
そのくせ中卒/高卒は採らないってのがね。
大卒なら学部も専攻も関係無しでOK、卒業研究なんて始める前に採用とか。
本当に日本の人事部の奴らは狂ってる。
Re:〇〇の学位が…と言っていられるのはまだ幸せだ (スコア:1)
人事部が狂ってるんじゃないよ。
全然専門性のない学生を
輩出排出している日本の大学が狂ってるんでしょ。旧帝大の下位グループなんて、日本の上位数パーセントに入ってるはずなのに馬鹿だらけ、、
探し物はなんですか~♪ (スコア:1)
世の中いろんな会社があるから仕事内容もいろいろだろうけど・・・
・必要な数式は全て仕様書に載っていてただひたすらコーディングとデバッグばかり行う仕事をしてる
・既知の問題に対する仕様(おまけとしてそのちょこっとした修正)に対して成果物を出す
・解決可能かすら見えてない問題に対してアルゴリズム設計を1から行う
どういう学生さんを探してるんでしょうねえ?
Re:探し物はなんですか~♪ (スコア:1)
得てして「雇用主にもわかる範囲の事を、全てそつなくこなす人」が高い評価を得るようです。
Re: (スコア:0)
>どういう学生さんを探してるんでしょうねえ?
もちろんコミュ力のある人でしょう。
「仕事ができる」の評価関数にもよる (スコア:1)
即実践能力を指しているなら、そりゃ”何年も前の技術をテキストに受動的に学んだ者,さらにその内には何らかの学位が欲しいだけのたまたまその専攻を選んだ者もいるかもしれない母集団"と、独学で(少なくとも能動的に情報を集め)現時点のトレンドの技術を追っている者のほうが実践力はあるでしょう。
これが、新たな言語仕様を策定するだの,コンパイラを開発するだのとなったら、体系的に過去の技術も網羅的に学んだ(はずの)コンピュータサイエンスの学位卒の方がいいことは素人目にも予想付きます。
Re:「仕事ができる」の評価関数にもよる (スコア:1)
> これが、新たな言語仕様を策定するだの,コンパイラを開発するだのとなったら、
> 体系的に過去の技術も網羅的に学んだ(はずの)コンピュータサイエンスの
> 学位卒の方がいいことは素人目にも予想付きます。
いや、そういう話じゃないでしょう。
私は独学組ですが、コンピュータサイエンスにはすごくお世話になってます。
実際すごく役に立ちますよ。
問題は、コンピュータサイエンスの学位を持っていても、実はそれが身について
ない卒業生が沢山いることでしょう。
もちろん、きっちり身についていて、独学組よりずっとデキる卒業生も沢山いる
はずですが、この記事見る限り、そうではない卒業生も多いんだと思います。
しかし、日本の大学と比べて入るのがやさしく出るのは難しいという米国の大学でも、
やっぱりこういう調子なんですね。
Re: (スコア:0)
いや、そういう話じゃないでしょう
CSの学位が必要かって話
オレも持ってないけど何も不自由ない
技術は学位に付いてくるものではなくて、個人に付いてくるものだから
Re: (スコア:0)
> CSの学位が必要かって話
「必要条件ではない」というのはその通りでしょうね。
でも、
> オレも持ってないけど何も不自由ない
それはどうかなあ。
4年間みっちりやれば、別方面の学科に時間を費やすより、ずっと役に立つと思いますよ。
「何の不自由もない」かどうかは、場合によるとしか言いようがないと思うな。
CS方面の知識が必要な開発作業にあたった場合でも、たしかに大学でやるのと同じくらい
独学で時間をかければなんとかなる人もいるとは思うけど、それだったら大学の学科選択で
CS選んだ方が時間的におトクだと思う。
高校卒で即就職した人は別ですが。
Re: (スコア:0)
技術と科学の違い
現場では科学する技術や知識はほとんどいらない。
でもサイエンスする人がいないと発展すらない。
たとえば単純には、アルゴリズムを大きく発展させる人とかいないと困る。
理工系の大学の学部学科と立ち位置と一緒ですよ。
職場によってはその分野での基礎科学を押さえておく必要がある場合もあるし、
無論、まったく必要ない場合もある。基礎研究と実用・商用は違う。
数学的なバックボーンも含めて、CSを身につけるのは独学だと非常に困難。
ただ単にコーディングすればいいのとはまた訳が違うわけだし。
当然、それとまた大学でCSの学科を出てもCSを身につけられるかどうかは話は別。
また、実際のCSの大学ごとでどのようなサイエンスを教えているのかどうかも別
(たとえば、もっと実践的にコードを書けるような方向性で学科の立ち位置を作っているところもあると思うが、それこそ大学の立ち位置の意味がわからない気もする。)
Re: (スコア:0)
> 現場では科学する技術や知識はほとんどいらない。
そんなことはないですよ。
ある応用について、データ構造として配列とリストとヒープとハッシュと平衡二分木の
どれを使うのがいいか判断するとか、ほとんど常時必要になる話だし、
知識分野としては、コンピュータサイエンスの範疇でしょう。
まあ、これを判断できずにやたら時間のかかる実装をして、プロジェクトに一人だけいる
CSの知識のある人が尻拭いする(あるいは、設計者にCSの知識があって、問題が起きない
ように、設計時に手を打っておく)とかもよくある話ですが。
> 数学的なバックボーンも含めて、CSを身につけるのは独学だと非常に困難。
独学で数学ができるようになる人もかなりいるので、非常にってほどではないかと。
むしろ、もともと数学苦手で、大学教育で数学ができるようになる人のほうが少ない印象。
> 当然、それとまた大学でCSの学科を出てもCSを身につけられるかどうかは話は別。
これは同感。
Oliver氏なにしてはるん (スコア:1)
って思ったけどそっちのOliver氏じゃないのね。
大学云々と技術力云々に相関があるとは思えないなぁ。
本人の努力と気力と、あとほんの少しの運だと思うよ、仕事なんて。
// 幾人ものダメな奴を見てきたけど、みんな共通して「今が回ればいい」な生き方してた。
// 向いてないとわかったら「創る仕事じゃなく、作る仕事をしなよ、君。」って毎回言ってる。(:>^
話は簡単 (スコア:1)
>コンピュータサイエンスの学位を取得しているほとんどの人が、理論を何一つ理解していなければコードも書けず、そのかわりに、経歴を立派にみせる言葉で履歴書を埋めることは上手くやっているとのこと。
じゃぁ最初に履歴書を見て、学位を持ってると書かれていたら採用しなければOK。
そして、残った人に簡単な課題を与えて目の前で好きな言語でコーディングさせてみればいいと思うよ。
#そんなことは百も承知で既にやってそうだけど。
Re:話は簡単 (スコア:2)
コンピュータサイエンスの学位を取得していないほとんどの人は、理論を何一つ理解していなければコードも書けないけどね:b
要件と違うことを求める (スコア:1)
のは最近の流行りですかね?
C言語の年数はと聞かれたら、だらだら経歴を並べないとダメだ、とか。
こういう話法で「大概は」なんて使うのは相関だの統計ではなく、体感を言ってるだけですから。
学校で習っていようが、多少個人的に勉強していようが、
多くの場合、即戦力にはならないんで、講習やOJTを経て一人前になっていくものでしょう。
「趣味でコーディングして役に立つツールを何本か作っちゃいました」という人ならそりゃあ望ましいでしょうが、
それが希望なら募集要件にプログラム仕様書をつけて完成品を提出しなさいっていう募集をかければいいんです。
さぞ優秀な人がこぞって応募するでしょうよ。
Re:要件と違うことを求める (スコア:1)
真の要求を汲んだ「設計書」を提出することならば、確かに仕事のうちですが、
要求仕様にも設計書にない「真の要求」を勝手にエンジニアが実装したら、それは障害と呼ばれます。
伝説の流布 (スコア:1)
独学するしかなかった (スコア:0)
最初に読んだコンピュータの本って、近くの高専に導入されたフォートランのマニュアルだった。教えてくれる学校も何もなかったんで、当然のように独学するしかなかった。そういえばNHKの教育でコンピュータ講座があったような記憶がある。
必要な能力 (スコア:0)
別にサイエンス学んでも体力(耐久力)は付かないし。
Re: (スコア:0)
IT技術の前に、体力、交渉力、コネがないと、長生きできない業界ですからね。
なぜにCSだけ? (スコア:0, 既出)
航空工学とったからって立派なパイロットになれるわけでは無いです。
建築取ったからって腕のいい大工とは限らないです。
国文学出たからって美文麗文書けるわけじゃないしそれどころか字が汚いことさえザラです。
社会学取ったからってまともな社会人じゃないのは吐いて捨てるほどいます。
なのに、何故CS(やIS)とったら使い勝手のいい奴隷になると勘違いできるのでしょうか。
Re:なぜにCSだけ? (スコア:2)
あなたは大学を勘違いしているのでは? 本来、学問自体が目的なので、学部、学科名も~学が一般的。つまり、職業訓練を目的としていません。たとえ工学部でも設計者になるための教育が普通です。
> 航空工学とったからって立派なパイロットになれるわけでは無いです。
最初から、航空工学でパイロットになるための教育はしていないでしょう。航空機の設計でしょう。
> 建築取ったからって腕のいい大工とは限らないです。
建築も、設計です。
> 国文学出たからって美文麗文書けるわけじゃないしそれどころか字が汚いことさえザラです。
国文学も、作家になるための教育はしていないし、硬筆も習字も教えていないでしょう。
> 社会学取ったからってまともな社会人じゃないのは吐いて捨てるほどいます。
立派な社会人になるための教育はしていないでしょう。社会学の研究・教育です。
コンピュータサイエンスも、同様で、プログラマになるためじゃありません。新しいCPUのアーキテクチャを研究していたかも知れないし、効率の良いプロトコルかも知れない。
それに、多くの企業が求めるのは、それなりに経験を積めば、普通か、若干それより優秀になる人では。特別に優秀な天才プログラマは会社員に向かないことくらい、判っているはず。
Re:なぜにCSだけ? (スコア:1)
いや、元コメの人はそれをわかった上で、
「○○学をやることとそれに基づいた技術者になることはそもそも全く別なのが当たり前なのに、何でコンピュータサイエンスの場合だけプログラミングの能力と関係があるとか勘違いしてやがるの?」
って突っ込んでるんだから、言ってること同じだよね?
Re:なぜにCSだけ? (スコア:2)
そもそも、プログラミングってのはCSでは必修科目ではありますがが、CSのカリキュラムはプログラマ養成を目的にして組まれていないですからね。プログラミング系の授業と演習のうち必修なのはせいぜい90分×15回×5~10くらいしかないはず。 「カリキュラムを全部こなしただけ」でのプログラマとしてのレベルは大学のCS系学科より専門学校の方が上だおともいます。
所属学科のカリキュラムにはほとんどプログラミングがないのに研究テーマ等の必要性に駆られて独学した人 >> なんとか卒業にこぎ着けただけのCS学生 なのは当然かと。
仕事で必要になったときにどの程度の速度でプログラミングに熟達するかどうかは、学科がCSかどうかよりも当人の地頭次第ですね。
Re:なぜにCSだけ? (スコア:1)
コンピュータというものが、未だに産業や社会とって、よく解らない新参者扱いなんですね。
複雑で面倒なものだと思うだけで理解しようともしないから、この Andrew Oliver 氏も含めて
コンピュータに関しては、あなたの挙げた例と同じ勘違いをしているのに気付かない。
あるいは、大昔の自動車のように、運転する人がエンジン整備やっていた、そんなイメージも
加わっているのかも知れません。それにしても、自動車やエンジンを研究する人と、自動車を
使う人の区別はつきそうなものなのに。
あと他の方も指摘していますが、一流大学のコンピュータサイエンスの学位と、流行に合わせ
学科名に情報と入れてみました的な三流大学を、ごっちゃにしている可能性も高いですね。
> 使い勝手のいい奴隷になると勘違いできるのでしょうか。
強欲な経営者というのは、プログラマに限らず総ての職種においても、都合のよい労働者を
求めています、なので人も定着しませんし技術も蓄積しません。それでも一部の労働者は、
そういう条件でも働くので、勘違いを改める必要もなく経営を続けられるのです。
おい (スコア:0)
> Java すらもきちんと教えることができておらず
なんでJavaがdisられてんの?
大学を十把一絡げに語られても… (スコア:0)
レベルの低い CS はレベルが低いって言えば、それで済んだ話なのに… MIT 出てる CS の人とかはやっぱすごいですよ。
コンピュータサイエンスと仕事は別もの (スコア:0)
一般的なプログラマーが仕事をするのにコンピューターサイエンスが必要な場面は少ないですし、コンピュータサイエンスを学習するのにプログラミングの技能はそんなに必要ないというだけでしょう。
CS系の研究論文でも、論文は研究者が書くけど、実際のプログラミングはプログラミング専門の下請け業者がやるなんてことはよくありますし。
Re:コンピュータサイエンスと仕事は別もの (スコア:1)
> CS系の研究論文でも、論文は研究者が書くけど、実際のプログラミングはプログラミング専門の下請け業者がやるなんてことはよくありますし。
あー、そうやって下請けでプログラム作ってる者です。
> 下請け業者に仕事をだすために「詳細な仕様書」を書くという場面が、まったく想像できない。
論文=仕様書、って感じです。
まず最初に既存の論文(著者が元請けの研究者じゃない場合もある)を貰って、それをプログラムにしてから、
次に「今度出す論文では○○を△△にする」みたいな感じで草稿レベルのものを貰って追加実装、って流れが多いかな。
あとは、学生が作ったプログラムを、まともなものにリライトするなんてことも。
論文の内容をきっちり理解しないといけないので、必要な知識レベルはかなり高くなりますが、
Web系のコーダーに成り下がったプログラミングに比べると格段に仕事が楽しいですね。
コストパフォーマンスの問題 (スコア:0)
アメリカの一流大学は学費だけで年間4-500万円はしますからね
これに見合うだけのスキルを得られているのかどうか
Re:コストパフォーマンスの問題 (スコア:1)
「一流プログラマーの年俸何年分」という比較をしたら
日本の方が元を取るのが難しいんではあるまいか?
日本の方が学費が安くても、それ以上にプログラマーの時給が安いから。
#日本じゃプログラマーの命はもっと安いけどな。