はてなキーワード: コンピューターサイエンスとは
雑にSEになりたいとかほざく非正規の同僚を見てコンピューターサイエンスのコの字も知らない分際でSE舐めんなって怒っちゃった
自分もずっと仕事でプログラミングをして来ましたが、コンピューターサイエンスを学ぶべきというのは正しいと思います。
前から、フーリエ変換と、プログラミングのソート(SQLのorder by)との関連性については「何かあるのでは無いか」と思っています。
ただ、無制限にコンピューターサイエンスを勧める事が出来ない自分もいます。
プログラミングや設計やプロジェクトマネージメント(以下ソフトウェア開発という)もコンピューターサイエンスの恩恵を受けるべき
それに対し、フーリエ変換などが得意な人(以下数学が得意な人)が、ソフトウェア開発に対して、ためにならない事をやり続けているのは
ベイズ論(因果分析あり) と頻度論(因果分析なし)との長い死闘の1断面と言っていいと思います。
主に2点
1.数学が得意な人が、それと「似ている」ソフトウェア開発に対して片手間的に関与して来て、自分の資格を以て、なんの実績も無しに
ソフトウェア開発での「上級の資格」を無条件に得ようとする事です。
それを実現するために、数学と相性の良い、ソフトウェア開発が抱える問題のサブセットを切り出し、そうでない問題は、問題が悪い
2.数学が得意な人が、それと「似ている」ソフトウェア開発に対して真剣に取り組み、相当の時間をかけて「プログラミング」や「設計」
や「プロジェクトマネージメント」について、自分だけでかなり体得し、
その過程でプログラミングなどの実務はやっていない(実質的に同等の事をやっているにも関わらず)という事実をもって、
(たとえば)「プログラミングなんて不要だ、自分がその実例だ」といって信奉者を集めるのです。(それは自分が天才なだけでは)
1.ですが、原因があります。人間は「似ている仕事では手を抜く」という性質です。
一番身近な例として、プログラミングと設計があります。似ている仕事ですが、プログラマーとしての自分が現役の頃は絶対に設計は
させてもらえませんでした。逆も真でしょう。もちろんプログラミングの経験は設計に生きると思いますが、
コンバートするには前職の匂いを消し去り、手を抜かない様な心構えを持ってから出ないとダメだと思います。
数学が得意な人は現役の内は、似ている分野のソフトウェア開発では手を抜くでしょうし、逆も真だと思います。
2.ですが、そういう天才は、プログラミングと同等の事を、自分だけで体系化出来、実績も上げます。信奉した人間はたまったもの
では無いと思います。
「努力してパーティーに出席した人間には、ウェイターしか道が無かった人間の事は分からない」のも人間の性質です。
最近コンピューターサイエンスがプログラマーに必要か否かみたいな話が上がっているが、そもそもコンピューターサイエンスって何だよ。どこまでの範囲をさしてんの?
ググって出てきた情報を整理しただけなので詳しい人、補足・訂正よろしく!
https://www.acm.org/binaries/content/assets/education/cs2013_web_final.pdf
CS2013はACM/IEEE-CSによるカリキュラム標準。
ACM(計算機協会)はコンピュータ分野全般の国際学会、IEEE-CSはIEEE(米国電気電子学会)の中にあるテクニカルソサエティ。
https://www.ipsj.or.jp/12kyoiku/J07/20090407/J07_Report-200902/4/J07-CS_report-20090120.pdf
J07-CSは一般社団法人情報処理学会がCC2001CSをベースにアレンジを加えたカリキュラム標準。今はCS2013を反映したJ17-CSがあるらしいけどその辺は良く分からん。
https://www.ipa.go.jp/files/000024060.pdf
J07ーCSから抜粋。CS2013と比較するとナレッジエリアがあったり無かったり。
小学校から国語算数と同レベルで義務教育に組み込むべき。どんな奴でも基本がわかってる世の中になればPC使えない奴もトンチンカンな経営者もエンジニアを見下す風潮も紙とハンコのやり取りも使い物にならない政府や銀行のシステムもセキュリティインシデントも減って、全人類のQOLが上がる。
「定番」っていうだけあって、内容が古いんだよ。
多少は足してるみたいではあるけれども。
「まずいなあ」は、元増田が現状に満足してるかどうかによるんじゃないの。
もっと面白い仕事をしたいとか、給料が少な過ぎると思うとか、余暇に取れる時間が少な過ぎるとか。
コンピューターサイエンスっつっても、現場たたき上げからの集合知みたいなのから、ほぼ数学じゃないかみたいなのまでバリエーションはいろいろあるし、どれが自分にとって有用かは、その個人に寄る。
ランニングしてるのが楽しい市民ランナーに、そんなフォームで走っててもフルマラソンで4時間を切れないぞとか言われても、そりゃあ響くわけがないよなあ、という感じ。
コンピューターサイエンスや競技プログラミングに懐疑的な人たちは決まってソートのアルゴリズムがどうとか言う傾向にあるけど、たしかに増田の言う通り、ソートなんて自力実装するような時代ではないからその辺は無視してもらって構わないとは思う。
でもソートについて「ソートだけをして終わり」なんて実装をすることはなくて他の処理と組み合わせて存在しているものじゃない?
たとえば「配列をソートしてからサーチする」「ソートしていない配列に対して都度サーチする」「配列をハッシュマップに変換してからサーチする」要求に対してどれが効率的かみたいな判断は要る場面はあるでしょう。
「今書いているコードが呼び出す機能の一つ一つがどういうふうに書かれているかがわかったとして、一体何が嬉しいんだ?」
たとえば配列に対する.find() 的な関数があると思うが、これは「配列を先頭から順にチェックして、指定のものを見つける」ような実装であることが多い。内部的には配列長に比例する時間がかかるループが書かれている、O(N)の関数。
これを自分が実装するコードのループ内で使うと、自分が書いたコード自体は一重のループにしか見えないが、実は二重ループになっているということがあり得る。
その処理がやけに遅いと思ったとき、「find()は標準の関数だから無罪!中身を見る必要なし!」って感じでスルーしてたらコードの全体像は永遠に見えないことになる。
とはいえ、勉強したくないものを無理に勉強する必要もないとは思うよ。
サンプルで実装してあげたものの一部改変などをしてもらうぶんには知識もスキルもいらないだろうし。
https://gigazine.net/news/20210302-hacker-reduces-gta-online-load-times/
JSONをパースする処理や、配列から重複を探す処理など、増田が言う通りラップされたものを使うだけでできることではあるけど、求められる出力を満たせる部品をただ並べただけではこういうダサいことが起こりうる事は知っていてほしい。
増田が言うように、提示されているようなWebプログラミングにコンピューターサイエンスの知識は必須とは言えないと思う
もっとローレベルのライブラリ作成、フレームワーク作成、ドライバ作成、ゲームプログラミングなどで生きてくる
Webプログラミングでも、トラブル時の調査やフレームワーク内部まで調べに行くときにあったほうが良いかな・・・?ぐらい
コンピューターサイエンスの勉強というふわっとした事より、新フレームワークの習得や会計なり隣接別分野の勉強に時間使った方が市場に求められるスキルアップになりそう
コンピューターサイエンス自体がふんわりしていて、範囲が広すぎるから分からんでもない。
(ある程度アルゴリズムとデータ構造は既知のものとして)、計算理論や離散数学辺りを浅くてもいいから、さらっておくといいよ。
よさげなのを探してみた。
https://www.youtube.com/@hayamizu
「計算の仕組み 〜オートマトンからラムダ計算まで〜」 関山 太朗 - 国立情報学研究所 2020年度 市民講座 第3回 - YouTube
https://www.youtube.com/watch?v=DaiUQvE8O1U
Yoshio Okamoto - YouTube
https://www.youtube.com/@okamoto7yoshio
ここ数年,日本の経済が落ち込んでいるためか若者を中心に悲観論が蔓延している気がする.
こうなると「日本終わり」とか「嫌なら出てけよ」みたいな言葉が飛び交うのを見て少し悲しい気持ちになったりする.
地方からスタンフォードが出たとか,そういったニュースが取り沙汰されるのもそういった影響からなんだろうか.
メディアでも海外と比較するようなコンテンツが増えてきているような気がする.
実際,若者の一部は着実に海外に逃げる準備を進めていて,そして実行に移し始めている.
メディアでよく見るのは寿司職人だとかワーホリ等だが,実は理系学生も例外ではない.
日本人の留学事例に着目すれば,帰国子女やインターナショナルスクール卒の日本人学生が欧米の大学に行くという事例は昔から変わらずいた.
特筆すべきはこういった海外ルーツのある若者の進学ではなく,純日本人の理系大学院生が欧米に進学する例が増えている点だ.
将来のものづくりを担う理系学生が院から国外に行って,返ってこなくなるのである.
自身もかつて,地方国立大学の修士卒後に新卒で日系メーカーに入った後に退職し,米国の博士課程に流れ着いた身である.
コロナの影響で一旦は停滞したが,理系学生の海外進学の流れは着実に近年増加しているのを感じる.
国によって多少違うがほぼ例外なく,大学院生(特に博士課程)は学費無料もしくは格安で更に給料を貰いながら研究に取り組むことができる.
また学部生と違い大学院生は英語に加えて研究という共通言語を持ち合わせるため,英語能力が低めでも実績で挽回しやすい.
在学中に英語能力を鍛えて卒業後に国外で仕事を得れば,日本の同年代と比較して非常に高額な給与を得ることができる.
そんな実態が段々と浸透してきている.
近年では日本も博士学生への経済的支援の拡充を打ち出しているが,はっきり言って待遇は雲泥の差だ.
在学中に生活費と学費を自費で賄い,いい歳して学生と社会的に後ろ指を刺され,卒業後も職探しに困る日本で,一体いつまで学生が博士を取りたいと思うのだろうか.
分野にもよるが,これまでは日本の理系学生は修士を卒業した後にメーカー技術職という流れが一般的だった.
博士まで行くと一気にアウトロー感が増し,非正規雇用や就職難なんていう問題が噴出するのもあって,
実際に研究が好きでも修士で止めにして,就職後にメーカーで研究を続けるという人も珍しくなかった.
それが日本経済の停滞や給与・終身雇用問題等と相まって修士で卒業して就職するという選択肢すら影を落とすようになった.
優秀だけど就職のため修士卒で技術者になっていた層が一転,国外で博士号取得を目指すという選択肢が現実的になりつつある.
ものづくりで一時代を築いた日本から技術者の担い手が失われていくのは悲劇だ.
諸外国では既に,頭脳流出という将来を担う若者が先進国に引き抜かれて返ってこない事象が問題視されていた.
ただ日本は経済的に豊かであったこと,英語の苦手意識,保守的な思考等々から他の国ほど顕著ではなかった.
これらの障壁が近年ではすごい勢いでぶっ壊されているのだろうなと思う.
このままだと日本から理系院性,特に修士で研究成果が出せるような優秀層はどんどん減っていくだろう.
そして,卒業した後も可能な限り米国に居続けたいと多くの学生が願うだろう.
コンピューターサイエンスの院卒がGAFAMで年収○千万!みたいな事例はよく聞くが,自身の分野でも日本の会社員時代の上司(幹部職)を超える額が卒業直後から支給されるのが普通だ.
そして若者からすれば,払った税金に見合うリターンのある国で税金を納めたいと思うのではないだろうか.
はっきり言って若い内に日本で税金や年金を払ってもそれに見合うリターンがあると思えない.
税金をどこに納めてどんなサービスを見返りに頂くか,グローバル時代ならではの課題だと思う.
米国の保険が高いのも事実だ.この国は自分が支払う対価に見合った保険しか提供されない.ある意味究極にフェアだ.
将来自分に返ってくる保証もなく,勝手に給与から社会保険料が天引きされていて皆保険とは最高に皮肉である.
ただ単に,自分の環境をより良い場所に変えることを選んだだけだ.
根本的に社会構造から日本の大学院の仕組みと卒業後の待遇を改善しないと,研究ができる人からどんどん日本から消えていきますよ.
色々と読んでみたい本はあり、
なんなら気になる本をKindleでチマチマ買ってたりするのだが、
序章部分だけ読んで飽きてしまい、途中ではてブとかを開いてしまう。
そうしたら、もうその本は二度と開くことはなくなる。
そんなことを、もう何度も繰り返している。
ネット記事のように、数分で読了できるようなモノなら興味深く読めるのだが。。
とても興味深く読めた。
でも、それは俺にとって稀有な例で、
他の自己啓発書を手に取ってみても、これほど興味を惹かれるものを未だ見つけられていない。
自己啓発以外でも、色々読んでみたい分野はある。
世界史とか、コンピューターサイエンスとか、経営学とか。。
それらの本を気まぐれに買ってみては、導入部だけ読んで、積む。
あとで読み返そうとしても、既読部分の内容はすっかり忘れているから、もう一度最初から読む羽目になる。
そんなことを繰り返していると、いつしかやる気を無くしてしまう。
どうすりゃいいんだろう。
何かいい策があれば、ぜひ教えて欲しい。
ちゃんとやるならスミルノフ・グラブス検定かなあ、値が正規分布である(ディスプレイの遅れとぴったり同じところの値が出ることが1番多くて、そこからだんだん離れていくと出ることが少なくなっていく)と仮定して、一番離れている値が正規分布からあまりに離れていたら外れ値とみなす、みたいな方法
定式化されてるからパラメータ決めて実装すれば外れ値が弾けるはず
外れ値の検出、とか検定、とかで調べると色々出てくると思います
あとこの辺は確率統計だけどコンピューターサイエンスでは習うので数学ってほど数学でもないと思います
追記:正規分布=ガウス分布です、ほかのトラバと一緒に読む時に用語で混乱しないように念のため
あととりあえずで実装してみるなら四分位範囲の1.5倍とかでぶった切った方が楽かも!箱ひげ図のWikipediaの定義のところの下の方に書いてあります
副業がしたい。
新卒からエンジニアとして働いて苦節11年、2回の転職を経て年収が800万を超えた。去年のことだ。
今年、仕事にもずいぶん慣れた。リモートワークも肌にあっている。子供も小学校に入学した。
学生時代は恋愛などにうつつを抜かすことなく努力を続けたことで、コンピューターサイエンスの基礎を身につけ、希望の企業から内定がいただけた。
社会人になってからはエンジニアという職業が想定とは違い、エンジニアリングより対人コミュニケーションが重要であるギャップに苦しんだ。
しかし技術が好きなことは変わらずその道の研鑽を怠らなかったことで、紆余曲折ありながらも居心地のよい職場に巡り会うことができた。
妻とは今時珍しい両親から強烈プッシュされたお見合い婚だったが、落ち着いた人柄で一緒にいても穏やかな気持ちでいることができる。
一人でいるよりも、二人でいる方がリラックスできるという感覚は今まで想像したことがなかったので驚いた。
子供は、私が大好きだった祖父の面影をどことなく持っていて、時折かわいいという感情と懐かしいという感情が入り混じる不思議な感覚になることがある。
イケてる人たちを横目に黙々と生きてきたつもりだったが、気づけば公私ともに恵まれた環境にいる。
技術以外にはさほど欲がなかったので、今新たに何を求めて生きていけばいいのかわからなくなってしまった。
その幸せを生み出す事業か、幸せを損なうものを排除する事業に自分の力を使いたいと考えた。
こんな自分でもなんとか生きていけている社会に対して貢献したくなった。
今の会社は業績的にも安定しているし、エンジニアとして長く働けそうないい環境なので転職は考えていない。
「副業 サイト」「副業 マッチング」でググればいくらでも候補が出てくる。
しかしそこで辿り着くサービスはほとんど採用時に成果報酬がかかる。かなり高額の。それは不本意だ。
自分がどれくらいマッチするか、作業時間を確保できるか、パフォーマンスを発揮できるかは働き始めなければわからない。
そして働くのはきっと私が惚れ込んだ社会の役に立とうとする気概をもつ企業だろう。
その企業に私がジョインするだけで数十万円の負担をかけたくない。だから成果報酬がない副業マッチングサービスを探したい。
wantedlyは企業を探すのには良さそうだがスカウトが来ない。自分から応募するほどの情熱はないというか、情熱を持てるほどの事業かチームかというのを見分ける術がない。
PayCareerはいくつかスカウトをいただけたが、残念ながらマッチするプロダクトではなかったので友人を紹介した。面談して報酬を貰えるサービスというのは素晴らしい体験だった。
友人・知人の紹介だと、断る時に断りづらそうな気がして敬遠している。