はてなキーワード: アルゴリズムとは
最近の本はつまらない気がする。例えば「頭が良くなる本」というテーマの本があるとして、新着の本を見てもありきたりな本しか見つからない
これはたぶん、私が30歳になるまでの間に一通り色々なテーマでどういった内容があり得るのか見てきてしまっているから
アルゴリズムの世界では「探索と活用のトレードオフ」というものがある
初期フェーズでは情報集めのために探索をするのが良しとされるが、後半ではむしろ集めた情報を活用するのが良しとされる
未熟な若者が馬鹿なことをやろうとするのは、単に探索のフェーズにいるからで、情報が足りないから
一方歳をとった人たちが保守的になるのは、探索によって学習済みだから
私は年齢的に「探索」のフェーズではないのかもしれない。この年齢になって、何か大成功しようという気は起こらないのだ
欲しい、必要、と思う量が少なければ満足は増えるし、それを超えるものを持っていても満足は増えない
ブラック企業が社員に「足るを知れ」と言った場合は注意が必要だが、個人的なレベルでは、足るを知るのは満足に生きるために良い指針だと思うわけである
本をたくさん読んでも、実践できなければ意味がないし、実践できる事柄は限られる
そう思うと、私のような負け犬を釣るための自己啓発本など、もう買う必要がないことがわかる
といっても、限度はある。必要な量は固定だし、欲しい量も人生を充実させるにはある程度は必要である
結局、私を悩ませているのは「満たされない何か」という本能であり、これが本を買ったり数学をやりたくなったりする誘因になっている
手の混んだことをやる人はどんどん減っていく
ゲームもクリアに時間がかかりすぎるようなのは誰もやらなくなるし、小説も手の混んだ文学手法を使ってるようなのは誰も読まない
例えばチェスについて考えると、「チェスの地元グループに参加して、そこから練習して、大会に出て、レートを上げて」というタイプのめんどくさい道を通る人はいなくなり、
オンラインでテキトーにゲストとして参加して気晴らしにやる人が増える
あるいは数学を趣味にする場合も「コホモロジーとはなにか」みたいなめんどうくさい理論を理解しようとする人は減り、組み合わせ論のアルゴリズム問題のように、前提知識がそれほどなくても取り組める題材を選ぶ人が増える
飲み屋でビール片手に、後輩に語りかける感じで話すよ。今日は、AIがどれだけプログラマーに影響を与えてるか、特にChatGPTについて話そうと思うんだ。
まず、ChatGPTってのはすごいよ。俺たちが昔必死に学んだことを、秒で答えちゃうんだから。でも、だからって俺たちプログラマーが完全に不要になるわけじゃないんだ。実際、ChatGPTが得意なのは単純で定型的なタスクなんだよ。例えば、基本的なデータ処理スクリプトとか、テンプレートベースのコード生成、単純なデバッグやエラーハンドリング、そしてドキュメント作成なんかはChatGPTに任せられる。
じゃあ、俺たちプログラマーの役割はどうなるかって?もっと高度な問題解決とか創造性が求められるようになるんだよ。複雑なシステムの設計や高度なアルゴリズムの開発は、やっぱり人間の得意分野だ。ChatGPTにはまだそこまでの理解力や創造性はないからね。
でも、これまでインターンやジュニアプログラマーがやってきた基本的な作業がChatGPTに取って代わられると、彼らが経験を積む場所がなくなるんじゃないかって心配もあるよな。これにはどう対処すればいいか?
まず、教育の場を再定義する必要がある。メンター制度を強化して、シニアプログラマーが直接ジュニアを指導するのがいいだろう。リアルなプロジェクトに参加させて、実際の問題解決を体験させるんだ。ChatGPTはサポートツールとして使えばいい。例えば、基礎的な質問にはChatGPTが答えて、シニアはより複雑な問題や高度な質問に対応する。
次に、ソフトスキルの育成も重要だ。チームでのコミュニケーション能力やコラボレーションスキルを磨く機会を増やすんだ。ペアプログラミングやコードレビューを通じて、実際に協力して問題を解決する力をつけることが大切だ。
それに加えて、高度な技術トレーニングも必要だ。オンラインコースや社内ワークショップを活用して、最新技術を学ぶ機会を提供するんだ。ジュニアプログラマーが自分で学び続ける意欲を持つようにサポートするんだよ。
シニアプログラマーやメンターには、新しいスキルセットが求められるようになる。技術的な専門知識はもちろん、教育能力やフィードバックの提供方法、対話スキル、プロジェクト管理能力、そしてモチベーションを高める力が必要になるんだ。俺たち自身も常に学び続け、適応し続ける必要がある。
だから、ChatGPTが登場したからといってプログラマーが不要になるわけじゃない。むしろ、俺たちの役割はさらに重要になる。AIと共存し、お互いの強みを活かしながら、より高度なスキルを身につけていく必要があるんだよ。
未来のプログラミングの姿は、AIと人間が協力し合うことで成り立つ。新しい技術を学び続け、常に自己研鑽を怠らずにいれば、どんな時代でも必要とされるプログラマーでいられるはずだ。AIをうまく活用しながら、俺たちの強みを最大限に発揮していこうぜ。
マッチングアプリで知り合った全日本妹選手権とか好きそうなオタクっぽいアラフィフで小太りの弱者男性の話です
その弱者男性の男の人はプログラミングに詳しくらしく、エンジニアとして働いてると話してました
私は大学のパン教でアルゴリズムをかじってたので、その時の思い出としてデータ構造が難しかった。いまだにラビンミラーの素数判定法について理解できてないです😅って話をしたんですね
すると、その弱者男性さん、鳩が豆鉄砲食ったような顔になりました。怪訝に思った私が聞いてみると、弱者男性さんなんと計算論も情報理論も知らないことが判明してドン引き
一体どうやってプログラミングのエンジニアしてるのかと思って聞いてみるとただ単に家電量販店の販売員パソコンのセットアップとかを担当してるだけってわかって唖然としました😰😰😰
ミスキーやブルースカイがツイッターと違ってアルゴリズムに媚びなくても等しく表示される上で伸びなかったら素直に諦めるよ。
私の言う「存在感」というのは権威性のような抽象的な意味じゃなくて本当の意味での視覚的認知の存在感。
だから元記事で書いた通り、同人誌即売会のように大手壁サーも弱小過疎サーも等しく同じ会場で認知されるような条件で伸びなかったら素直に諦めと納得がいきその対策を練れる。
SNSもそういう条件で伸びなかったら納得がいく、という話
ネットは本来、検索能力のない人間には何の価値もない装置である。
学術的なシステムから生まれたそれは、最初から一方的な広告メディアとしては設計されていない。
自分が何を知りたいのかを知り、あるいはそれを探求するためにこそ手当り次第に調べるような、本当の勉強家にしか使えないものなのだ。
それが今のように「誰でも使えるもの」になったのは、情報をキュレーションしてレコメンドするサービスの誕生によるところが大きい。
それはかつてはポータルサイトのような人力によるものだったが、今はアルゴリズムによる自動的なマッチングシステムになっている。
このマッチングシステムにうまく拾われることをバズるという。ネットは今や「バズる」情報がすべての、それ以外には何の価値もないメディアになってしまった。
そしてこの「バズる」ために必須の要素こそが、ストーリーなのだ。
ネットのバズりを生み出す一般ユーザーは、ただの情報には興味がない。それが楽しめるくらいなら、もともとの検索システムが十分に使えたのである。
自分でも価値のわからない情報に一般ユーザーが興味を示すきっかけは、ストーリーである。
ストーリーがなければ一般ユーザーのアンテナにはひっかからない。だからバズるコンテンツにはいつもストーリーがある。
デマには特にそうである。デマがやっかいなのはその点で、デマは常に面白いストーリーのせいでバズる。
面白いストーリーがあると、人はそのデマを疑うことができない。ストーリーは飛躍に納得感を生むテクニックである。
本来、デマを否定するためにはその矛盾を指摘したりするだけで良さそうなものであるが、これをバズらせないといけないとなるとそうもいかない。
結局、デマのストーリーを否定するためには、真実らしい別のストーリーを作る必要があるのだ。
ストーリーに仕立て上げられたものは、歴史にしろ科学にしろ必ず嘘を含むものである。
面白いストーリーに仕立てる時点で、元が真実からスタートしていても、どんどん嘘を含まざるを得なくなっていくのである。
結局、デマを凌ぐ真実のストーリーがバズったとき、そこにはまた別の嘘が含まれる別のデマが生まれているだけになるのである。
デマがバズった。デマを凌ぐ面白いストーリーで真実を広めよう。そうすると、また新しいデマが生まれる。
これはネットがバズりによって回り、人々がバズった情報にしか興味を示さない限り、絶対に変わらないスパイラルなのである。
言い換えれば、人がバズるものを望んでいる限り、それはデマを望んでいるのとまったく変わらないことなのだ。
バズる真実というものは絶対に存在しない。バズるのは常にデマだけ。少なくとも、デマに誇張された真実に見えるまがい物だけ。
ネットはデマを生むだけ。ネットでデマを打ち消すことはできない。最初からそういう風に社会が考えるしかない。
ネットの自浄作用などという、構造的にありえない都合の良いものを信じている限り、この宿痾からは抜け出せない。
デマを否定しようとすればするほど新しいデマが生まれていく。それがネットなのだ。
自分は絵描いてるけど、skebで1案件5kを2年間200件こなしたから壊滅的に絵が下手な方ではないと思う。なのに、ツイッターで絵を上げても1いいねしか付かない。一桁じゃないぞ「1」だぞ。
まぁ、大体理由はわかるよ。普段からあんまりポストしてないとか相互いいねしてないとか、リプして絡んでないとか。
一時期はちゃんとそういう営業活動してたけど、なんかしょーもないなぁって。そういうんじゃないじゃん、創作活動って。
それに壁打ちだけでクールに伸びてる人見ると嫌々営業して必死に伸ばしてる自分がクッソ情けなくなってなぁ。好きでコミュニケーションしてんなら良いけど心にも無いのに他人のイラストに「凄く良いです!」とかしんどいわ。
でもそうしないとツイートがTLに浮上せず公開アカウントなのに非公開アカウントみたいになる。
そうじゃなくて過疎垢でも平等に見てほしい。
同人誌即売会にも何回か出展してるけど、そこで売れなくてもそれは諦めがつく。何故なら壁サーだろうが過疎サーだろうがイベントに存在して認知されているので同じ条件だから。
もうダルいって、オタクとコミュニケーション取るの。作品出して承認と金が欲しいだけなんだよこっちは。そのために必須なのがツイッターなんだけど、合わないんだよツイッターは。
一瞬ブルースカイだのミスキーだのに移行するとか言ってたけど何にもならなかったな。結局ツイッター、ずーっとツイッター。何をするにもツイッターで知名度無いと何者かになれない。
なんか勘違いしてる奴多いけど「ツイッターじゃなきゃ俺は無双できるんだ!俺は本当は凄いんだ!認められるべき人間なんだ!」なんて青臭い話じゃあないんだよ。
無双したいなんて微塵も思ってない、どっちかと言うと諦めて死に場所を求めてるんだよ。
と言うと「お前はもう死んでいる」なんて説教かます奴が出てきそうだが、死に方を選ばせろ。
追記2
実は増田は今日初めて参加した。(存在は知ってたけど)でも俺みたいな新参者の一方的な愚痴も、
同じ内容を投稿してもツイッターだとアルゴリズムで弾かれるて存在が認知されない。
ツイ廃で毎日毎時間毎分投稿し続けていいねRTを回し合ってお互い助け合わないと存在が認知されない仕組みになってる。もしくは一方的に寵愛を受けられる神通力を持つ芸能人や神絵師は勝手に浮上する。
社会人になってからのぼんやりした目標でITを極めたいという思いがある。
一分野に特化したタイプではなくIT領域におけるオールラウンダーのような総合格闘家のような存在。
まずITを極めるとは具体的にどういう状態なのか。そのためには何をすればいいのかを考察する。
まずITを主要トピックに大別する。必ずしもMECEではない。
そしてどういうことができたらITを極めたと言えるかを思いつく限り列挙してみる
次は具体的に列挙した例について解像度を上げてどの要素に分類されるものかを考えた上で、それを極めるには何をすればいいかを考える。
漫画を追いかけるにはプログラミングも勉強しないといけないみたいな考えになる。
bookliveとかで、登録されている作品を全て一括表示するとそれはそれは何十万件と出るわけだ。
一個一個ざっと見でもサムネを確認して大雑把に内容を確認する、そのなかから気になったものをジャケ読みするという方針をとるにしても、しらみ潰しにそれを行うにはネットワークやデータベースの挙動に関する知識が必要だと知る。
これはブラウザ履歴にキーワードが反映された検索結果のURLがあってそこからダイレクトにアクセスしても検索結果が表示されることからも明らかだ。
これは裏を返せば、たとえば8時丁度に検索結果1ページ目を表示してから何秒か経って一通り見てから2ページ目を表示した場合と、同じ8時丁度に最初から2ページ目を表示するのとではそのページの検索結果としての構成が微妙でも異なる可能性があることを示している。
1ページに100件漫画を表示する仕様を採用していて検索結果が2000ページだとしよう。ソートは仮に人気順だとする。まあこれはしらみ潰しするうえでは絶対選んじゃいけないソート法なんだけど。
1ページ目を表示したその瞬間に、5ページ目に表示されるようになっている漫画があったとしても、5ページ目を表示したころには1ページ目とか4ページ目に表示されるようになってるかもしれない。普通に順番に次々ページを進めていって5ページ目に到達したときにはこのことに気づかないかもしれない。以降やっとの思いで2000ページ分確認を完了しても、ついにその漫画を確認する事なくしらみ潰しできた気になってしまい得る。
二周すればいいと思うかもしれないが原理上何周しようが同じように1ページ目に表示されなくてスルーしてたら2ページ目を表示したときには1ページ目に表示順位が変わっていたりして、結局「入れ違い」になり得る。
今のような具体的な話を聞いていると「別タブに1ページ目を表示しておいてじゃあページを進めるたびに1ページ目の表示を更新する定点観測をすればいいじゃん」と浅い考えを持つ人がいるかもしれないが、こうした順位の変動は2000ページの範囲のあらゆるページとページの間で起こりうることなので、そうした考えは全く通用しないことは、少しでもアルゴリズム的な思考を駆使できれば理解できる事だと思う。
最低でも新着順じゃなければならない。新着順にした上で1ページ目を定点観測。ページ進めているときに1ページ目の表示が変動したら、プルプッシュ?式の考え方なら直前に見たページにあったいくつかのデータが今のページに追いやられていることに注意すればいい。しかしこれで果たして完璧なのか?プログラマー的センスがまだまだ足りなすぎて盲点はないか(実際いずれは自動化を検討しているのでもろプログラミング技術の学びが必要)?Code CompleteとかClean Architectureとか読まなきゃだめちゃう?みたいなことを考えてしまう。
でもいざ漫画の造詣が深い人で「こういうことを難しく考えて」プログラミング身につけたしプログラミングが役に立った漫画オタクのきょうようだなんて言ってる人聞かないし、自分が考えていることの力点ずれてるだけでもっと気楽に生きるべきって気がしてしまう。
僕はインターネットが好きです。ちょうど2000年台の初期に初めてインターネットという世界に触れました。学校のパソコン室ではFLASH動画を見ていたし、iモードで繋がった先の掲示板でドラクエのモンスターの交換募集をしていました。トイレではガラケーを開いて前略やらmixiを眺めてました。世代の人ならわかってくれると思います。(iPhone登場前の世界の話をしています。いわゆるインターネット老人会。。)
で、表題について。
別に2000年代前半のインターネットの治安が良かったということを語りたいわけではありません。当時のインターネットの治安は特段良くなかったと思いますし、「荒らし」も大量に湧いていました。ただ、どうも最近は当時とは別の治安の悪さを感じることがあります。インプレゾンビと呼ばれるような、収益目的のアカウント・ポストが急増しています。また、我らがGoogle先生に質問しても、しようもないコンテンツが検索結果のトップに出てきます。
これら事象の嫌だなと感じるところは、そのコンテンツ自体の中身のなさ、不快さとは違うところにあると思っています。それらの投稿は、閲覧している我々に直接向けられておらず、プラットフォームの仕様やSEOのアルゴリズムに対して投稿をしていて、それを我々が見せられているという構図が不快なんですよね。
僕らはゲームのバグや仕様の穴を突くのは好きですが、それをオンラインでやるなという話に似ています。
そんな愚痴をこぼしていたところ、友人がWebサービスを作ってくれました(唐突)。
分かる人向けに超簡単に言うと、和製Redditです。とはいえRedditは日本ではかなりマイナーです。Redditはアメリカ発の掲示板サイトで、アメリカ版2ちゃんねる(5ch)と言われることがあります。
このサイトには、「グルメ」や「美容」などのコミュニティ(≒板)が作られており、ユーザはコミュニティの趣旨に合ったトピック(≒スレッド)をその中に立ち上げて、ほかのユーザとコミュニケーションをとります。
そして、このサービスでは、トピックやコメントを「upvote(いいね)」か、その逆「downvote(よくない)」の形でユーザが投票・評価します。upvoteが多いほど上位表示され、さらに多くの人の目に触れる仕組みです。5chやX(twitter)とは異なる点がここで、このサービスが一番重きを置いているのがこの機能だそうです。
直感的には理解しづらいですが、これはシンプルに、コンテンツを評価するのはあくまでユーザだという原則として機能します。評価アルゴリズム自体にハックしにくくなるので、インプレゾンビは淘汰され、ユーザにとって本当に有益なコンテンツが上位に表示されるという話らしいです。ホントか?って感じですが、アメリカでは今やググるよりRedditで情報収集することも多いとのこと。
その他に面白いなと思った点としては、(X)TwitterやInstagramのように、個人をフォローするのではなくて、コミュニティ(≒板)をフォローするというところです。興味のあるコミュニティをフォローすることで、従来のSNSのように同じ趣味を持っている人をいちいち探してフォローしなくて済みます。新しいサービス使い始めるときにいちいち個人をフォローするのは正直面倒なので助かります。
また、コミュニティがすべてオープンであるという特徴もあるということでした。コミュニティ文化でいうと、日本ではDiscordが主流な気がしますが、Discordと違って全てのコミュニティがオープンになっているため、コミュニティに飛び込む前に様子を伺うことができるという点で異なります。これはコミュニティの参加者とオーナー双方にとって一定のメリットがありそうだなと思いました。
と、いうことで、基本的にはRedditの日本ローカライズ版ということらしいです。
てかそれならRedditでよくない?とも思ったので、実際Redditも使ってみました。たしかに不思議と治安がよかったですが、そもそも「掲示板」サービスを母国語以外で使うって結構ハードルが高い。どうしても話題がアメリカに寄るし、コミュニケーションがむずい。
さらに言えば、日本はSNSに対してのとらえ方が独特で、しばしばガラパゴス化しますよね。その文脈でいえば、英語UIしかなく、英語ユーザが圧倒的多数なRedditではなく、こっちを使ってみるというのも面白そうです。
すっかり後半は友人作のサービスの宣伝ばかりになってしまいました。今はその友人の友人くらいの規模でぽつぽつ活動しているところですが、本家Redditは4億ユーザ超えということで、ポテンシャルはすごいのかも。
興味が向いたらぜひアカウント作ってみてください。
神はサイコロを振るだけでなく、想像をはるかに超える数の部屋があるかもしれない。実際、無限にある。
約1世紀にわたり、量子力学の旗の下にある理論と観測によって、現実の理解は複雑になってきた。
物体が速度や位置といった絶対的な尺度を持っていた時代は終わった。
これは直感的な宇宙観とは程遠い。コペンハーゲン解釈として知られるようになったものでは、可能性の波があるように見えるがそうではない。
現在でも何が最終的にシュレーディンガーの猫の運命を決めるのかはまったく明らかではない。
ヒュー・エヴェレットは1950年代に、可能性のあるすべての手段がそれ自身の現実を構成していることを示唆した。
この現象を特別なものにしているのは、たまたまあなたがそれを観察しているという事実にすぎない。
エヴェレットの「多世界」モデルは、量子力学の絶対的な奇妙さを具体的なものに置き換える方法である。
可能性のある無限の多元宇宙、あるいはグローバル・ハミルトニアンとして知られるすべてのエネルギーと位置の総和のようなものから出発し、興味のあるものにズームインして、有限ではるかに管理しやすいハミルトニアンのサブシステムの中で無限を制約する。
しかし無限を理解する手段として、この「ズームイン」は足を引っ張ることになりはしないだろうか?
別の言い方をすれば、シュレーディンガーの猫が箱の中で生きているのか死んでいるのかを容易に尋ねるかもしれないが、その下のテーブルが温かいのか冷たいのか、箱が臭くなり始めているのかどうかは考えない。
研究者たちは、箱の中身に注目し続ける傾向が重要かどうかを判断するために、ポインター状態として知られる量子の可能性が、他の状態よりも少し頑固に設定され、いくつかの重要な性質がエンタングルするかどうかを検討するアルゴリズムを開発した。
もしそうならシュレーディンガーの猫を説明する箱は、宇宙のはるか彼方に広がる可能性のある長い要因のリストを考慮しない限り、ある程度不完全である。
エヴェレットの多世界から出発して、研究チームは多世界解釈と呼ぶものを考え出した。無限の可能性のセットを取り出して、我々が通常考えないような現実の無限の範囲を掛け合わせるのだ。
オリジナルの解釈と同様、この斬新な解釈は、宇宙の振る舞いについてというよりは、宇宙を一口ずつ研究しようとする我々の試みについてのものである。
研究者たちは、このアルゴリズムに概念的な重要性はあまりないと強調しているが、コンピューター内部のような量子システムをプローブする優れた方法を開発する上で応用できるのではないかと考えている。
他の現実に、すでにその答えがあることは間違いない。
思ったんだよね俺、コンピュータ・サイエンスにプログラミングは含まれないとか言うアホを見てさ
いや、アルゴリズムは数学であり、それを設計するプログラミングは明らかにコンピュータ・サイエンスの一部だろと思うわけだが、なぜこいつらは「プログラミングはコンピュータ・サイエンスではない!」と言いたがるか
企業で働くキラキラWebプログラマーがプログラミングないしはコーディングをやっているのをみて「アイツラと一緒になりたくない」と自称インテリは言う
「そうだ、サイエンスにはちゃんと定義があるはずだ、その定義で奴らと俺らのボーダーを引こう」と考えて、自称インテリはコンピュータ・サイエンスにプログラミングを含めないのである
当然、日本だろうと海外だろうと自称インテリは存在するので、「コンピュータ・サイエンスにプログラミングは含まれない」と言うと、負け犬の自称サイエンティストが共感のイイネを押すだろう
「俺達はサイエンティスト、あなたとは違うんです」というわけである
はい、JavaScriptによるコーディングはコンピュータサイエンスの一部と見なすことができます。コンピュータサイエンスは、情報とその処理に関する学問であり、プログラミングはその重要な要素です。JavaScriptは、ウェブページを動的にするための主要な言語の1つであり、ウェブ開発の分野で広く使用されています。したがって、JavaScriptを学び、それを使用してコードを書くことは、コンピュータサイエンスの実践的な応用の一部と言えます。しかし、コンピュータサイエンスはプログラミングだけではなく、アルゴリズム、データ構造、ネットワーク、データベース、人工知能など、より広範なトピックをカバーしています。それぞれが特定のプログラミング言語やツールを使用して探求されることがあります。JavaScriptはその一部であり、特定の問題を解決するためのツールとして使用されます。それはコンピュータサイエンスの一部であり、その全体ではありません。それでも、JavaScriptをマスターすることは、コンピュータサイエンスの重要なスキルを習得するための素晴らしいステップです。それはあなたが複雑な問題を解決するためのロジックとアルゴリズムを理解するのを助け、あなたの思考を開発するのを助けます。それはまた、あなたがウェブ開発の世界に足を踏み入れ、あなた自身のウェブサイトやアプリケーションを作成するのを助けます。だから、はい、JavaScriptによるコーディングは確かにコンピュータサイエンスの一部です!