独学エンジニアはCS卒より活躍する?2024年の衝撃
引用元:https://news.ycombinator.com/item?id=44593972
自分の経験だけど、自称開発者はどんな問題も解決するけど、CS卒は未経験だと手を出さないことが多いね。CS卒は大企業の歯車として適してるけど、自称開発者はイノベーションを起こして圧倒的に良い成果出すんだ。でも、会社員は優れたコードより安定やストレス軽減を優先しがちだね。
CSの授業が実務と離れてるのはわかるけど、85%のCS卒が未経験の問題を解決できないってのはありえないよ。CSの価値は、高い知的能力が必要なハードサイエンスを学んだ証拠だしね。実際、難しい開発現場だとCSの学位持ちが多いと思う。ソフトウェアへの深い興味が大事で、CS卒でもそうじゃない人でもいるってことだね。
CS卒が非CS卒より優秀でも、平均的なCS卒はそんなに良くないって話は矛盾しないよ。うちの会社の簡単なコーディング面接でも、CS卒が基本的な文法や配列操作もできないってことがよくあるんだ。データ構造とかSQLとかも全然ダメ。でも、今月一番良かったのは学位なしの自称開発者だったね。データはここで見れるよ。
https://www.otherbranch.com/shared/practice-coding-problem
https://ibb.co/CpznhK8m
40年近くテック業界にいるけど、俺の経験もこれと一緒だね。SWEを採用する立場だった時、他のスキルが同じなら、CS卒より自称開発者を優先したよ。
CS卒で9年プロ開発者だけど、リンク先の「mines」問題は25分じゃ解けないな。概念的にはどう解くかとかデータ構造はわかるけど、隣接する地雷の処理は一発じゃ無理かも。それに、これは普段やってる仕事と全然違うタイプの問題だしね。
ちゃんと教育を受けたエンジニアだって新しい問題に挑戦するよ。これは自称開発者とそうじゃない人の違いじゃなくて、好奇心とか勤勉さとか創造性、知性の違いだね。自称開発者はそれがないと無理だから目立つけど、実は両方にそういう人はいる。結局、そういう特性と正式な教育両方持ってる人が最強ってことさ。
君って自称開発者なの?自称開発者が優れてるって言う人って、だいたい自分も自称開発者だよね。学位は追加の経験や指導みたいなもんだよ。自称開発者の人って、自分が何が足りないか分かってないことが多いんじゃないかな。
(元コメントの人じゃないけど) 俺もページと問題見て同感だよ。25分は短すぎるって。みんなストレスも感じてるし、あの長い要件を理解して実装するのは無理だろ。自称開発者とかCS卒とか関係ないよ。スーパーヒーローが欲しいのか、ちゃんと仕事できる人が欲しいのかどっちなんだ?タイマーはもっと長く(1時間くらい)して、要件も細かく分けるべきだね。「速度最適化」って指示もわかりにくいし。
あの問題に1時間もいらないだろって俺は思うね。むしろ、問題はすでにかなり簡単なステップに分けられてて、かなり親切な方だよ。ストレスがどうとか言うけど、これが無理なら、もっと難しい問題をタイトなスケジュールで顧客相手にどうやって解決するつもりなの?
形式教育は確実な基礎知識を与えるけど、自己学習者は創造性があるって話だね。でも、ちゃんと訓練されたエンジニアが建てた橋の方が安心できるってのが俺の意見だよ。
自己学習者は見落としがちなポイントもあるから、一概には言えないな。
CS卒は未経験の問題を解決できないって意見にはマジで反論するわ。昔独学でグラフ探索をゼロからやったけど、DS&Aの授業を受けてたら2秒でBFSかDFS選べたし。CS卒は体系的な知識と深い分析力があるんだよ。
「できない」って言うのは経験レベルの問題で、独学か学位かは関係ないって思うね。
俺は開発者じゃないけど、ハードウェアやITで長年働いてきたよ。自己学習者はとにかく発明的な問題解決者だと思うな。
彼らが”何が欠けてるか知らない”って批判は、逆を言えば”既存の考えにとらわれずに新しいことを試せる強み”なんだ。決めつけは良くないってこと。
ITはソフトウェアエンジニアリングより知的レベルは低いから、独学でもなんとかなる。ITはレゴみたいに既存ツールを使うだけだろ。
独学者の”知らないからこそ発明できる”ってのは、既知の非効率な方法を再発明してるだけだろ。訓練された人が創造性を学ぶ方が、独学者がミスをしないようにするよりずっと楽だよ。
俺はIT部門で開発チームを率いてたし、複雑なソフトウェア開発にも関わってるんだ。お前が言うような単純な話じゃないよ。
独学の道を選ばなかったのはお前の自由だけど、エリート主義に陥らないよう気をつけろよ。俺はソフトウェア開発の複雑さをちゃんと理解してるつもりだからな。
職場で”グリッドの隣接セルを数える”みたいな問題は出たことないよ。もし出ても、25分以上は時間もらえるはずだしな。
”誰もが自分が何を失ってるか知らない”ってのは、まあ人間の普通のことだよな。FAANGのPhD持ちエンジニアですら、俺が経験で学んだことを知らなかったりするし。結局みんな未知の課題を抱えながら、協力して難しい問題を解決してるんだよ。
グリッドの境界チェックはこれだけで済むよ。sum += (x > 0 && y > 0 && x < x_limit && y < y_limit) ? a[y][x] : 0;
あとは画像処理でよくやるみたいに、グリッドの端を広げて値を埋めとけばいいんだ。
大企業だと、”最終的に自分で解決する”ってのは最適じゃないね。適切なツール(人材)をすぐ使える方が、ほとんどの場合、早く結果を出せるから。
チームを率いることと、その分野で深い専門知識があることは別だろ。経験が長いだけでもダメで、Google検索で解決できると思ってる過信してる人もいる。
CS学位みたいな資格は、採用時の手間を省く「労働節約装置」なんだ。この記事は間違ってるし、標準的なCS学士号は価値があるってのが俺の意見だよ。
この分野で役に立つやつはみんな「独学」だよ。中には最初に学校に行ったやつもいるけどね。
その認識は、各グループの割合のせいかもね。
独学の人は、もともと好奇心旺盛だから、ほぼ全員が好奇心がある。わざわざ何かを学ぶ性質上ね。
一方、学歴ある人の中にも好奇心旺盛な人はいるけど、「ソフトウェアって稼げるらしいから来たけど、何やってるかわかんない」みたいな自己満足なグループも多い。そういう人は、だいたい学歴ルート出身だね。
こういう結果が出ると、「10x」プログラマーは存在しないっていう「神話」はなくなるね。僕の経験では「100x」とか「1000x」プログラマーもいるよ(Fabrice Bellardが代表例)。与えられた練習問題なら、考えるより読んだりコードを書いたりする時間に使うだろうね。APL系の言語を使うように言われたら、問題を読む時間の方が長くなるかな。(ちなみに、ほぼ独学で数十年の経験があるよ。)
大卒のエンジニアって従順すぎない?僕(独学)が入った組織では、ビジネス側が開発を支配し、大卒エンジニアはめちゃくちゃなコードを保守しても長期的なことを気にしない。
とあるFortune 500で、みんながhttpで会社の認証情報を使う安全じゃないサーバーに疑問なくログインしてたけど、僕だけ抵抗したんだ。結局、本社セキュリティチームの助けで解決したけど、部署からはクビにされたよ。僕が問題って言われたことが信じられない。
ソフトウェアと構造工学の比較は全く意味がないね。
構造物は一回きりのプロジェクトで、エンジニアは材料強度とか荷重計算とか具体的なデータがある。
ソフトウェアは終わりがなく、常に変化する要件を追いかける。頼れる数学や物理の法則もないし、他のエンジニアがプログラムの整合性を確認するための「負荷や安全性」の計算もないんだ。
誰かが「関連する学位があればそれが有利」って言ってるけど、僕は「他の面で同等なら、独学のデベロッパーの方がCS卒より有利」って言ってたし、今もそう思ってる。君が自分の教育を正当化しようとしてるのはわかるけど、君が「明らか」だと思ってることは僕の経験とは違う。
僕の教育は、キャリアで4年くらいしか役立たず、その後は技術の進化で時代遅れになった。今のCSの学位も、すぐに役立たなくなるだろうね。学校を出て10年以上経ったら、大学で学んだことより、直近3年間の経験の方が今の仕事に影響するよ。
君も将来、自分の採用基準でその論理を使ってみてほしい。僕の論理はうまくいったからね。
僕の経験もこれと同じだよ。僕はCSの修士号を持ってるけど、独学のデベロッパーの方が粘り強いって認めざるを得ないね。
僕は「他の面で同等なら独学のデベロッパーが有利」って言ったけど、CS卒は独学者より4年以上多くその分野で働いてるんだ。独学者が学位がない分、スキルや知識で同等かそれ以上って仮定しない限り、比較にならないよ。
「教育は4年で時代遅れになった」って言うけど、僕はそうは思わないね。ソフトウェアエンジニアリングやハードウェアは50年前と似てるし、同じ言語もまだ使われてる。新しい技術革新があっても、根本を覆すことは稀だから、基礎知識は新しいことを学ぶのに役立つ。
「大学で学んだことより直近の経験が重要」って言うけど、皮肉にも僕は20年前大学で初めて学んだ言語で今も高度な仕事をしてるよ。大学なしでできたかっていうと、無理だったかもね。この市場だと、適切な学位がない人のハードルは高い。学位がない人に優先権は与えないし、もし採用するなら、みんながしてることをしてない分、埋め合わせが必要だと考えるよ。
どんな背景の人でも、あなたが知らない何かを知ってるって言っていいだろうね。
でも、この議論の文脈では、独学の人は平均して、理論的な問題を解く何百時間もの経験がないのはかなり明らかだ。その背景がないと、時々(あるいは頻繁に)起こる難しい問題を解決する時に、実際は不利になるだろうね。独学のプログラマーが学位持ちの専門家をけなすのを見るのは、ジムに行かない運動不足の人が、ジムに行く人より身体能力が高いって一般化してるのを見るようなもんだよ。
CS卒は4年以上多く働いてるとか言うけど、逆だよ。独学者はもっと早くキャリアを始めてるし、同年代の大学卒より実践経験も豊富。大学の学位は「つえ」みたいになっちゃうこともあるんだよね。この件では意見が合わないけど、頑張って!
大事なのは学習方法じゃなくて、情熱だよ。モチベーション低いとマジでダメ。正式な教育は基礎概念にいいけど、独学だと基礎を飛ばしがち。でも、多くのエンジニアは両方から学んでるし、情熱があるかどうかが一番重要。LinusとかMargaretの例はむしろ学術的だよねって話。
もっとコメントを表示(1)
独学プログラマーとして、情熱が大事って意見に超同意。19歳で初のプログラマーになって、もう40年近くやってるよ。情熱とやる気がマジで大事。独学者が基礎概念ないとかいうのは違うし、俺は独学者がもっと「やる」ことに時間を使ってるから、活躍するって理論を信じてるね。
独学エンジニアって、基礎があるかどうかが分かりにくいんだよね。超天才な部分と、全くダメな部分が混在しがちで、それが事前に予測しにくい。一方、ちゃんとした大学卒なら、基礎はしっかりしてるって信頼できることが多いよ。
何百人も面接してきたけど、大学卒が基礎すら分かってないこと多いし、学歴なんて品質の目安にならないよ。大学を出て最初の仕事以外は、経験の方がよっぽど大事だから、履歴書の学歴なんか無視してるね。
2020年頃、FizzBuzzテスト使ったんだけど、大学卒の半分くらいが1時間かけても合格できなかったんだ。for i:=0;i<100;i++みたいなループをただコピペしてただけで、意味を理解してない。合格した人は速攻で解いて、他の課題も余裕って感じだったね。
コーディング面接で同じような経験あるよ。学生はコードが動かないと適当に変えたり、丸暗記でプログラミングしてる感じ。アルファベット知らないのに単語を覚えてるようなもんで、新しい問題だと全く手が出ないんだ。
それってLLMの完璧な説明じゃん。
昔は学歴持ってる候補者に苦労したけど、最近の大学プログラムはFAANGに受かるよう最適化されてて、ジュニアエンジニアの質が上がった気がする。でも、結局は紙の学位より仕事への興味があるかが大事だね。
数学の基礎を独学でマスターする人は見たことないな。みんなできたと思ってるけど、ちょっとかじっただけだろ。数学の学位レベルを独学で身につける人なんていない。でもProgrammingやalgorithmsは独学できる人がたくさんいる。理論が浅くて実践的だからね。
全く同感だわ。俺の周りじゃ、優秀なengineersやadminsのほとんどは学位持ってないんだ。学位持ちは会議ばっかりで何もしてないmanagersばっかだよ。
「…彼らはcomputer scienceの基本すら理解してないみたいだね」。長年、academic routeのengineersたちに、俺が絶対的な基本だと思うことを個人的に指導してきたんだ。これってかなり興味深いよね。いくつか例を教えてくれよ。
ちゃんと教育を受けたengineersでも、学んだことを知ってるかどうかは運任せみたいなもんだよ。
「何を知らないか分からない時、効率的に導いてくれる人がいれば時間を大幅に節約できる」って話、すごく現実を表してると思うよ。俺は形式教育と独学の間のどこかにいるんだ。大学でdiscreteやlinearのような高等数学はやらなかったから、何をgoogleしたらいいかすら分からない!
一部の科目は指導と方向付けから本当に恩恵を受ける。30代後半でvector mathのprogramを証明してくれるmath tutorを見つけるのは実際難しいよ。同僚は忘れたか、別のことにenergyを使ってるし。
「30代後半でvector mathのprogramを証明してくれるmath tutorを見つけるのは実際難しい」って話だけど、探す場所を知っててお金を払う気があればいるよ(情報源:俺、または一般的にはもっと手頃なwyzant.com)。
20代の頃は、労働と引き換えにbeerとかweedを交換してたのが良かったな。俺が言いたかったのは、そういうcollaborationとexchangeのstyleなんだ。今はみんな賢くなって、もっと大金を稼げる場所に行ってるからね。お金があればtutorを見つけられるのは確かだけど、tacosとかCS homeworkの手伝いと引き換えに喜んで仕事を見てくれる若いtutorを見つけるのはいいね。
別のcommenterが提案してたけど、course bookを買って自分のpaceで進めてみるのはどう?新しく見つけたdeterminationとinterestがあれば、今度は続けられるんじゃないかな。
Alternativeとして、もしすぐにvector mathを実践したいなら、graphicsとかgame devの分野はすごく使うよ。
今はもうコツを掴んだし、ありがとう!linearをなんとか乗り切ってECSを開発し、linear spaceにあることを証明できたよ。discreteも十分学んで、Noam Chomskyの多くの人生に驚かされたんだ。これらは、俺がCSに戻った時に、学ぶ前に何を学ぶべきかを学ばなければならなかった時の例として使ったんだ。君自身のlearning journeyで共有したいことはある?
lecture seriesと一緒にtextbookを読んで、そのlanguageを習得しようとしたことはある?
MITとかハーバードのオープンコースは独学にめっちゃ役立つよ。信頼できる情報が見つかるし、俺の正規表現コンパイラもあの講義シリーズのおかげで動くようになったんだから!
「情熱が大事」って言うけど、自己学習こそ情熱が原動力じゃん。教室だと誰かが面倒見てくれるからね。
「独学は基礎を飛ばしがち」って意見も、システム理解そのものがゴールになる人もいるってこと忘れてない?
俺は大学の授業と独学のハイブリッドだよ。学位は取ってないけど、授業は独学の基礎になってくれたから、あれがなかったら今みたいには早く習得できなかったね。
体系的なカリキュラムって、正式に習ってなくても技術的なこと学ぶには唯一の方法かもね。大学の設備とか施設、リソースはめちゃくちゃ貴重だったし、独学じゃ絶対手に入らなかったよ。
誰かに少し水を教えてもらったからって、ずっと頼りっぱなしになるわけじゃないよね。独学の人は、自分で水を汲んでくる能力があるってことだよ。
大学の授業って、俺らをコンフォートゾーンから押し出してくれるんだよな。独学だとCのソケットAPIとか、bashでのプロジェクト、分散システムとか、学術的なとこはまずやらなかった。
自己学習者とかブートキャンプ卒は、面接で学術的な質問されると弱い奴もいる。でも、大学卒でもコード書けない奴もいるし、大学行く前に自分でコード書いて問題にぶつかっておくと、授業での解決策がちゃんと身につくよ。
ブートキャンプ卒と独学者を一緒にするなよ。ブートキャンプは安価な近道って思う人もいるけど、俺みたいに独学でCを学んだのは、既存のソリューションじゃ解決できない問題があったからだ。学習方法より、学びたいって気持ちが大事だと思うね。
大学入る前にはもうCとかソケットAPI知ってたし、それで金も稼いでたんだ。俺が足りなかったのは微積分とか線形代数、離散数学とかだったな。データ構造とアルゴリズムは知ってたけど、CSプログラムでさらに学んだ。
CSプログラムは俺をよりバランスの取れたエンジニアにしてくれたけど、プログラマーとしてはあんま成長しなかったかも。数学と理論で苦労したんだ。
「大学の授業は最高」ってのは否定しないけど、大学行けるかどうかって金と階級の問題もあるだろ?
「独学だとCのソケットAPIとかbashやらない」って言うけど、俺は独学でやったし、人によるよ。
独学者とブートキャンプ卒は全然違うタイプだよな。
面接で理論的なこと聞かれると俺も弱ぇけど、一人でやらせてくれれば同じ問題だって解決できるんだから。
具体的な批判はわかるけど、前のコメントの全体的な意見は同意だな。プログラマーの失敗パターンは、学術的すぎるとか、目の前の問題解決しかできなくて理論が足りないとかだよね。前者は大学卒、後者は独学の人に多い傾向があるってのは、確かに言えてると思う。
理論志向と問題志向っていう特徴付けは fair だってわかるんだけど、「comfort zones」とか「pushing through」って表現は unfortunate で unfair だと思うんだよね。独学者を怠け者みたいに言うけど、実際は教授とか大学から何も与えられないから、誰よりも hard に働かなきゃいけないことが多いんだぜ?(アカデミックな credentials がないと job 見つけるのも大変だしな。)外部からの help なしで、難しい esoteric な skill を teach yourself するってこと自体が、inherently comfort zone を break out してるって言いたいね。
College が huge expense っていうのは Anglo-Centric な issue だよね。
心配してる人には重要だけど、ほとんどの人には関係ないから、それを含めると「value of college」の debate が経済的な話に shift しちゃうから、俺は含めたくないんだ。
>お前は自分だけの意見を言ってるって?俺は largely self-taught で、そういうことしてきたけどな。
俺は「often fall apart」って言ったぜ。
>College が huge expense っていうのは Anglo-Centric な issue
Ok。まあ、Tech industry 自体が rather「Anglo-Centric」だと思わない?
>心配してる人には重要だけど、ほとんどの人には関係ない
United States を ignore したいなら fine だけど、generally 、United States を ignore しようとするのは good luck としか言えないね。
>>お前は自分だけの意見を言ってるって?俺は largely self-taught で、そういうことしてきたけどな。
>俺は「often fall apart」って言ったぜ。
ちょっと confused してるんだけど。俺は元の post の first paragraph について言ってたんだけど、お前は second paragraph について言ってるみたいだな?
もっとコメントを表示(2)
>君が独学者の普通じゃないって?
俺の point は、排他的に self-taught な crowd の中で、君が norm じゃないって賭けるってことかな。
Hackernews にはこれについて俺に debate してくる人がたくさんいるだろうけど、敢えて言うぜ。ここに hang してる時点で selection bias があるからな。
CS の academic な parts に issue を抱える programmers(self-taught か otherwise かに関わらず)は、Hackernews で「Writing a competitive BZip2 encoder in Ada from scratch in a few days (2024)」みたいな content は read しないだろうしな。
self-taught で comfort zone を overcoming するのは hard だし、field の experts が drawn した curriculum に forced される luxury がないから、何を learn すべきか figure out するために out of your way になるのは hard だ。
俺の thesis は、「Self-Taught Engineers Often Outperform」ってのには disagree するってことだよ。
Formally trained な engineers が mostly outperform するし、stand out する self-taught な few people もいるけど、彼らは iceberg の visible な part だ。もし誰かに self-taught を advise したら、most likely university に行った人よりも underperform することになるだろう。そしてそれは normal なんだ、だって self-taught は harder だからな。
>君が独学者の普通じゃないって?
何が norm なんだよ?
>俺が interview する self-taught な人たち
それも small で unrepresentative な group だろ。多分 HN に来る self-taught な developers よりもずっと smaller だ。total で、お前は何人の self-taught な人を interview したんだ?どっちにしろ selection bias だろ。
>stand out する self-taught な few people もいるけど、彼らは iceberg の visible な part だ。もし誰かに self-taught を advise したら、most likely university に行った人よりも underperform することになるだろう。
でも、それが kind of the point なんだよ。誰が誰かに self-taught になれって advise するんだ?それは strange な advice だろう。Tech industry で make it できた self-taught な engineers には definitely survivorship bias があるから、だからこそ彼らに pay attention すべきなんだ:彼らは successfully odds と obstacles を overcome してきたんだからな。そこまでたどり着く self-taught の % は、university-taught の % よりずっと smaller だろう。お前が言うように、「being self-taught is harder」だからな。
2つの groups の average を取ってるけど、iceberg なんてないよ。make it できた self-taught な人たちがその group の only one で…他の人たちは他のことやってるんだ。大学を drop out した人たちを group に含めるようなもんだよ。お前が言うように、self-taught は harder だから、それを通った人たちはもっと知るだろうし、useful なことをもっと知ることになるだろうね。
university で teach してる人たちは field の experts じゃないんだよ。university の situation は inherently artificial で、student にとっての utility(そしてもちろん、employers にとっての utility)とは largely unrelated な wide range の objectives を fulfill するために created されたものなんだ。ほとんどの subjects で、university で teach してる人たちは experts とは very far なところにいるだろうね…もし彼らが experts だったら、teach してないはずだ。
>俺の thesis は、「Self-Taught Engineers Often Outperform」ってのには disagree するってことだよ。
FAANG では outperform してるぜ。
>United States を ignore したいなら fine だけど、generally 、United States を ignore しようとするのは good luck としか言えないね。
Sorry to disappoint you だけど、カナダ人として mainly カナダ人を hiring してるから、day to day basis で US の college がどれだけ expensive かは care しないね。It really is just a US problem だよ。Canadian Universities も still expensive だけど、US とは remotely in the same ballpark じゃなくて、decent な summer job で tuition 払えることだって多いんだ。
Toronto や Vancouver で、locally に family がいないか、parents が help してくれる money がない場合、full-time student として自分を support するのは good luck って感じだぜ。
これらの school の most people は locally に family がいるけどな。
大学の費用は金銭的、社会階級の問題って言うけど、そうでもないんじゃない?俺は安い大学や短期大学で質の良いCS学位を取れたよ。めちゃくちゃ安かったし、SEの給料なら数年で余裕で返済できたしね。GoogleとかMetaみたいな初任給なら、たぶん1年で全額返済できるよ。
みんな「アイビーリーグ」とかその費用にこだわりすぎ。短期大学や小さい大学もまだあるし、手頃なんだから。CompSciみたいな「コモディティ」学位なら、費用は問題にならないよ。それに、最初の仕事後は誰もどこ卒かなんて気にしないしね。最初の仕事は少し大変かもしれないけど、借金で困るなんてことは、よっぽど高額な学費を払わない限りないよ。
大学の授業が良いなんて、俺は否定するね。むしろ有害なものも多いよ。大学時代、C言語でCS入門クラスを教わったんだけど、その影響から抜け出すのに何十年もかかったんだから。
C言語の知識が有害だなんて、今日聞いた中で一番反知性的な意見かもね。君は教育を大事にしてないみたいだから分からないだろうけど、脳に限界があるわけじゃないんだ。余分な知識は、最悪使われないだけだけど、たいていは色々な形で微妙に役立つものだよ。本物の知識が「害になる」なんてことは絶対ないね。
テックブーム以前の大学CS学科の文化は、今みんなが大学の素晴らしい点として挙げるものと、ほとんどすべて逆だったんだ。
*多くの学生を落とすように設計された授業
*先生が教えるのが楽しいからと、非常に理論的で非実用的な授業
*できるだけ多くの人にとって、その分野を理解しにくくする
俺がイギリスの大学に行った時、CSは勉強しなかったんだ(今は大手USテック企業でシニアデベロッパーだけど)。理由は上記の通りで、CSは最も留年率が高くて、 facultyも一番不愉快だったし、卒業後の失業率もどの科目よりも高かったんだ(これ、トップ5のCS大学で、成績トップの学生しか取らないところだよ)。
大学で何かを得た人がいるならそれは素晴らしいけど、多くの人にはそうはいかないんだ。それに、CS学位を持ってるたくさんの人と働いてるけど、やっぱり問題点が見られるよ。コミュ力不足、ビジネス理解不足、この2つのせいで仕事の優先順位付けが苦手だったりね。つまり、コードは書けるけど(それも卒業生は…あんまり良くないけど)、CSコースってのは、とにかく仕事をするための包括的な教育にはなってないんだ。
ほとんどの大学がどんな科目でも教えてるやり方ほど、「コンフォートゾーン」を表すものはないんじゃないかな。
これは老人の叫び声みたいに聞こえるだろうけど…大学時代は本当に最高だったんだ。コンパイラ作ったり、おもちゃのOS作ったり、GPSと連携させたりしたよ。
でも、数年前に別の大学で教えるように誘われて、本当にがっかりしたね。カリキュラムは基本的に、現代のブートキャンプを数年に引き伸ばして、関係ない授業がたくさんちりばめられてる感じだったよ。(追記:今確認したら、ビジネス、マネジメント、人文科学、化学、環境、アントレプレナーシップ…そしてeスポーツの授業までたくさんあったよ!)
アルゴリズムの授業以外、基礎がほとんどなくて、いきなりReactとか、その地域のスタートアップで流行ってるバックエンドフレームワークに直行するんだから。
それって、ソフトウェアエンジニアリングの学位か、CompSciの学位かによるんじゃない?前者は実用的なスキルに焦点を当ててて、より“役に立つ”から、そういった分野横断的な授業が多いんだよ。俺はCompSciのコアスキルの方が、Reactとかを学ぶよりも有用だと思うけどね。まあ、俺もまた別の老人が雲に向かって叫んでるだけかもしれないけど。
良い指摘だね。ソフトウェアエンジニアリングだったんだけど、それでももっと基礎的な授業があることを期待してたんだ。Reactの部分は全然問題ないんだけど、Reactがコースの中で唯一の「中身」だったっていうのが気に入らないんだよ。
大学や講師によって全然違うね。自己学習してた頃、C言語のソケットAPIが必要で学んだんだ。これは大学に入るずっと前の話で、大学に入ってから分かったんだけど、ネットワーキングを教えてた人がAPIの基本的なことしか知らなくて、俺はすでにその人をはるかに超えるレベルだったんだ。だから、「コンフォートゾーンから出る」どころか、「退屈ゾーン」だったよ。
自分でまず苦労して、壁にぶつかって、めちゃくちゃにやってみて…それから体系的な教材に触れると、本当に意味をなすようになるっていうのは、全く同感だね。
ブートキャンプ卒業生は自己学習者じゃないよ、彼らはブートキャンプに行ったんだからね。ブートキャンプの人はキャリアに貪欲な「キャリア機会主義者」だ。キャリア機会主義者が悪いわけじゃないけど、独学のデベロッパーとは違うってことだよ。
独学者が成功するのは、好奇心や意欲、規律があるからだよ。つまり、元々優秀な人が独学を選ぶってこと。生存者バイアスもあるしね。俺はCS卒だけど、独学の方が性に合ってるよ。
統計的なデータがないんだから、統計的誤謬とか心配しなくていいんじゃない?そういう言葉って、ただの誤魔化しに使われがちだよね。
教育がないことを誤魔化すために、みんな必死だよね。独学者で天才もいれば、学卒でも馬鹿はいる。俺は機械エンジニアだけど、CSの学位は絶対役に立つと思うよ。CSはコーディングだけじゃないからね。車のメカニックがエンジニアより修理できるのと同じような話さ。
「教育不足を補う」なんて言うけど、みんなが大学に行けるわけじゃない。これはハングリー精神や情熱の問題だよ。大企業でも、大学で優秀だった奴が実務で全然ダメって例をよく見る。ひどいことに、企業は特定の大学やCS学位でしか採用しないんだ。
プロのエンジニアで大学のCSも教えてるけど、成功するエンジニアは結局「興味と情熱」があるかどうかだよ。独学者はそれが obviousだけど、学卒者はピンキリ。専門用語知ってるだけで、使えるかどうかわからない奴も多いから見分けが難しいね。
まさにその通り。独学する奴ってのは、最初からすごくやる気と興味があるようにできてるんだよ。
「独学者はやる気と興味がある」って言うけど、そうかな?俺は興味ないことでも独学してきたよ。モチベーションは必要だけど、それは独学に限った話じゃないし、別に独学で extraな要素ってわけじゃないと思うけどな。
情熱と興味が大事ってのはわかる。でもそれが仕事と always一致するとは限らないし、飽きることもある。キャリアチェンジは大変だけど、仕事外でも真剣に努力して独学する奴は、長期的には成功する可能性が高いよ。その extraな driveが本当に大事なんだ。
知識って、博士課程の図みたいに円で表現できるよね。https://matt.might.net/articles/phd-school-in-pictures/ 大学で学ぶ範囲は意外と狭い。一部の天才は大学の範囲を超えて学ぶし、独学者も standardなカリキュラム外の知識が豊富だ。もちろんギャップもあるけどね。結局、情熱こそがパフォーマンスの最高のシグナルなんだ。
Linus TorvaldsやMargaret Hamiltonを例に出してるけど、彼らって formalな訓練を受けたエンジニアじゃん。formalな教育は、何かをいじるための数学的、工学的な maturityをくれるんだよ。