「機械語」を含む日記 RSS

はてなキーワード: 機械語とは

2024-02-16

数学定義は本当に厳密で一意なものと言えるのか気になりました

たとえばユークリッド幾何学での直線は「幅をもたず、両側に方向に無限にのびたまっすぐな線」だそうですが、これも「幅」とは?「(幅を)持つ」とは?両側とは?「方向」の定義は?「無限(限りが無く)」とは?そもそも「限り」って何?「のびる」とは?「まっすぐ」とは?「線」と結論づけるのは循環論法じゃないの?

と突っ込む人にとっては厳密ではなくなっていませんか?

ここで、これらの言葉意味は、国語辞典に載っている意味と同じものだよなどといおうものなら、それこそ数学の厳密性を否定したようなものになってしまっていると思います

たとえば「方向」を調べたら「向くこと」とでます。これを調べると「物がある方向を指す」というふうに出ます。これは循環論法に陥ってますし、「物の正面があるものに面する位置にある」という別の語釈もありますが、物とは?正面とは?面するとは?位置とは?となります。これを繰り返せば結局どこかで循環論法に行きつくでしょう。

そもそも数学の根幹部分を支える論理学重要概念である否定(そうでないこと)」にしても、厳密に定義することは可能なのかと思います

「~でない」というのは、そうであることがないということ、と言ってみたところで循環論法

そうであるのになぜ上記のような定義公理が厳密なもの認識されているかといえば、「さすがにここまで平易な単語の組み合わせで書けば、これらの単語については私が常識として理解してる意味と同じ常識を、相手も持ってるはずだから同じ理解をするよね?」みたいな態度に立っているんだと思います

結局相手も同じ常識を持っているという不確かな信念によりかかっている、甘えている点で、数学記述もまた完全に厳密で一意というわけではないのかなという気がしてくるのです。

そもそも「方向」なんていうような概念は、言語によって定義されたものを知っているというよりは、幼少期に言語習得していく過程で、それが話されるシチュエーション、つまり五感などあらゆる感覚総体とセットでそうした言葉が使われているという環境に身を置いているなかで理解しているにすぎません。理解内容が各個人で全く同じである保証はどこにもないと思います

どんなに高度な数学表現も究極的には自然言語還元されるはずで(どんな高級言語機械語に置き換えられて処理されるように)、自然言語の各単語に対する人々の理解原理的には五感に根差し感覚的なものなのだから数学記述が厳密で一意というのは、結局はほかの記述の仕方に比べた程度問題(つまりは誇張表現)なのかなと思うのです。

感覚によらない「証明」をすることに価値を見出す人が数学をありがたがることがありますが、数学もまた根源的には感覚ありきの理解に基づいていると思うわけです。

この考えは間違っているでしょうか?そうであればどうして間違いなのか、どこがどう理解を誤っているのか知りたいので教えてください。

ちなみにたとえば「否定」というのは、根本的には、やはり言語理解が完結しているものではなく、現実の状況としての存在非存在にそれぞれ直面して、それぞれに対して「○○がある」「○○がない(なくなってる)」と言われてる場面を経験したうえで、その状況から理解した内容のさらなるアナロジーとして理解してるに過ぎないと思います(理解のあり方が、言語的ではなく、観念直観的)。

数学が他よりも他者と厳密に同一な合意が常に成り立つ、その工夫として、抽象度を高くしているのがその工夫にあたるのではないかという人がいました。↓

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14293524459

しか抽象度を高くすることは、合意内容のずれを減らすという点で「有効でもあり逆効果でもある」のではないかと思いました。つまり諸刃の剣なわけです。

有効である理由リンク先に書かれているのでそこに説明を譲るとして、逆効果であると思う私の説明を書きます

まり抽象度が高い概念は、抽象度が低い概念や直接的な事物に比べて理解が難しい傾向があるのがまずあるわけです。

また定義者の提起する定義をそれを発信される側が期待通りに理解しているか確認するのも、抽象度が高い概念ほど困難な傾向はあると思います

これ自体ある意味抽象のものなのでたとえが悪いですが、たとえば「左を向いて」という発言に対して、「左」を向く反応をすることで、この人は左について正しく理解してそうだなという確認(いや原理的には推定というべき)することができます

抽象度が高くなるほど具象と結びつけたこのような正しく理解してるかの評価確認テストをすることが難しくなるでしょう。

といってもそもそもわれわれは相手自分の言ったことを期待することと厳密に一致した内容で理解してるか確認することは原理的に不可能です。

頭をパカっと割って理解内容を覗きみるということはできないですから

対象となる言葉に関連したその人の発言や反応をみて、理解の結果としての発言や反応として、その人がある部分で正しく(定義者の期待通りに)理解してるだろうということを推定するしかありません。

しかも全体ではなく一部だけの理解が正しくても、発言や反応には異常が見られないということもあるでしょう。

反応や発言いくら調べても、概念全体を期待通りに理解してるかのテストには無限通りのパターン必要と思われ、原理不可能と思います

哲学的ゾンビにも通じそうな話ですが、日常範囲内で「理解齟齬があるような反応が返ってこないなら」そんな「理解が完全同一でないかもしれない」という可能性上の話を心配する必要はないというのはその通りでしょう。

ただ場合によってはそれが表出したように見える一例が、あれの原因がこれだとは言いませんが、望月新一がABC予想を証明したという論文での紛糾みたいなことが起こる一因にはなりえると思います

あれだけ理論として抽象的な概念を積み重ねた先には、定義者とそれ以外のその定義を見た人とでの理解のずれは、反応や発言として顕在化してくるほどになっても不思議ではありません。(定義者の解釈が正しいという優劣の問題ではなく)

特定公理範囲内において論理的矛盾のないシステム

はいますが、そもそも矛盾」とは何か?「論理」とは?「範囲」とは?とは、といくらでも曖昧でしょう。

たとえ矛盾記号論理の表現記述して定義した気になったところで、じゃあその記号定義ないし意味は?とどこまで突っ込まれても感覚に頼らない定義可能なんですかね?と思います

dorawiiより

追記

数学に限らない話じゃんっていうのはまあその通り。

でも定義について「厳密で一意」であることを(得意げに?)標榜してるのは数学(+論理学)とそれベース客観的であろうとする学問ぐらいだから別にエントリ詐欺じゃないよね?

a=b、aはbだ。「は」って何?「だ」って何?「英語的にはどっちもisという語に集約されてるけど、じゃあisってなんだよ」ってところから概念の共有をしてない前提に立った時、その概念を非感覚的で厳密に共有することは可能なのか、それが「完全に」できたと確かめるのにはどうすりゃいいって話よ。

言葉という形式が従で、それに乗るべき内容が主であることは百も承知だが、形式言い換えれば入れ

物抜きに内容を厳密に伝えられるのか、入れ物の存在無関係な、内容の厳密な伝達というテレパシーじみたものを考えることはそれこそ論理的に正しいのかという話でもある。

言語的なテレパシー論理的に矛盾してるので存在しえないのではないかとは思っている。

さら追記


イデア論かな哲学書読めばってブコメついたけど、順序が逆なんだよね。

イデア論とか学校で習って本読んだりして教養として知ってるからこそ、改めてその考え方を自分なりの具体的な考察対象にあてはめて思索したくなるわけよね。

先達の哲学者たちがいなかったら俺はいまだにブルアカで抜くだけの毎日だわ。むしろ哲学者リスペクト100パーセントなんだよね。

語彙力ないので語弊ありそうなのは百も承知だが、哲学って考え方の基幹部分のオリジナリティーはそんな求められてないんだよ。

しろ先人から受け継いだ考え方をどう今の時代の具体的な問題適用して考察を広げるかが大事なので、ちょっと哲学かじったような素人目には過去論文の焼き増しに見えてその存在意義が理解できないような論文ごまんとあるんだよね。

哲学において焼き増しは無意味パクリじゃないのよ。

あいブコメつける人って「方向性とかみたいな意味ベクトルという言葉を使ってる人は横文字使いたがりの格好つけ」と言ってる人みたいな人を性悪説的にとらえるクレーマー気質が高い人間に感じる。

ちなみに俺はベクトルという言葉を使う人は「周りがベクトルという言葉を使ってるからリアルタイム性を要求される会話でとっさに出てくる言葉ベクトルから、それをそのまま使ってる」ってだけだと思う。

2024-01-26

各位、久々の大型新人の予感がするので可愛がってください

https://twitter.com/shims_ag/status/1749925004236779961

午前7:40 · 2024年1月24日

「型」という概念存在しないプログラミング言語存在しません。

https://twitter.com/shims_ag/status/1750300836113342567

午前8:33 · 2024年1月25日

メモリ上のデータの種類を表す情報が「型」(type)です。

プログラミング言語側に組み込まれている「型」だけでなく、プログラマー独自に「型」を定義する方法も用意されています

struct、classinterface、type, enumなどを使って独自の「型」を定義します。

開発しているソフトウェア独自の「型」は、ドメインモデルの要素になります

多数の「型」を分類し、組織化するために名前空間を利用します。

近年「クラス」が「型」の定義であるという基本概念理解していないエンジニアが増えているので、エンジニア採用する際には注意しましょう。

https://twitter.com/shims_ag/status/1750346589431042157

午前11:35 · 2024年1月25日

ソフトウェアを起動すると、メモリ上には、たくさんのデータを読み込まれます。各データには、データの種類を表す「型」が割り当てられています

例えば、ゲームならばCartという大分類の「型」を用意し、その要素としてMarioCart, LuigiCartという「型」を用意します。

業務システムならば、Reportという大分類の「型」を用意し、その要素としてCostReport, SalesReportのような「型」を用意することになります

上記の「型」は、構造体やクラスを使って定義します。

これらの大分類の「型」と、要素の「型」は、is-a関係にある、といいます

現代ほとんどの言語にはis-a関係を明確にする方法が用意されています

上記のような「型」の知識プログラミングの基礎です。

https://twitter.com/shims_ag/status/1750014081648779450

午後1:34 · 2024年1月24日

CPU機械語しか理解できません。一方で人間機械語プログラミングすることは困難です。

人間が「1ドル」のつもりで、メモリに「1」と記憶させても、CPUは「ドル」だとは扱ってくれません。

CPUは、「円」のつもりで記憶させた「1」と、ドルの「1」を区別出来ないので、そのまま足し算などの演算を実行してしまます

そこで、人間にとってプログラムを読みやすくすることと、CPU意図しない演算をさせないために、データの種類を表す「型」という概念プログラミング言語に用意されるようになりました。

金融ECサイトなどのお金計算間違いが致命的なシステムでは、1ドル、1円を整数型などで扱うのではなく、予期せぬ演算が実行されないように「ドル型」、「円型」という「型」を定義します。

まとめると、可読性向上と、プログラムの誤動作防止のために「型」が不可欠な概念になりました。


https://twitter.com/shims_ag/status/1750507533536760000

午後10:14 · 2024年1月25日

プログラミング初心者は、

プログラミングを以下のようにシンプルに考えましょう。

(1) データメモリ記憶する命令プログラミングする。

変数配列構造体、クラスなどを使って、メモリ上にデータ記憶させる命令設計し、コーディングする。

(2) データ操作する命令プログラミングする。

上記(1)でメモリ記憶したデータに対して、計算、変換、表示、出力、保存などの命令設計し、コーディングする。

https://twitter.com/shims_ag/status/1750534515616059749

午前0:02 · 2024年1月26日

「型」という概念数学に由来しています

メモリ上のデータがどの「型」に属しているのか、という集合論の話でもあります

分かりやすく言えば、データの種類、分類の話です。

例えば、猫型のデータは、動物型という大分類に属する、という集合の話です。

オブジェクト指向プログラミングの「is-a関係」は、集合論に由来するメモリ上のデータ(オブジェクト)の分類の話です。

クラス」とは「型」の定義であり、メモリ上のデータの「分類」(class)です。

is-a関係」ではないのに継承すると、当然破綻します。

逆に、明らかにis-a関係」なのに、継承せずに委譲すると、スパゲッティコード化を誘発します。

2023-12-05

anond:20231205002147

いや何というか、高級言語機械語対応は、標準語方言の違いではないんだよな。

ラストとかは『上の』言語なんだよ。よりパワーが強い。

そうだ、電鋸とかタッカーで家を建てる時代に手鋸や金槌と釘は使わないだろ?

その人はお絵かきAI電動工具だという話をしてる。

よく知らないんだけどプログラミング言語? ってやつかな

プログラマなら同意してくれると思うけど、Rust や Go で書ける時代アセンブリ機械語を書く人間はいない、相当な趣味人とか特殊例外だけだ。

上京すると方言を喋らなくなって東京言葉しか使わなくなる、みたいな感じかしら

anond:20231204235103

ヒトの心を折る方法

作家になる夢を諦めさせる立場、大変そうですね。

お気の毒です。

イラストレーターで食える人は居なくなるだろう。

今や人気萌え絵でさえAI生成に置き換わりつつある。

人工知能スピード品質の両面で人間クリエティティ凌駕しつつある。

プログラマなら同意してくれると思うけど、Rust や Go で書ける時代アセンブリ機械語を書く人間はいない、相当な趣味人とか特殊例外だけだ。

どうすればいい? イラスト禁止するのは、俺がゲーム禁止された果てにゲームジャンキーになったのと同じように逆効果しかならないだろうな…。

若い子の心を折る方法を教えてほしい。

これは聞いたことがあります。確かに禁止するのはリバウンドを招くので良くはない。

挫折を促すのに効果的な方法は、感想を書かせることです。

毎回ゲームプレイするたびに感想文を書かせるのが、ゲームをやめさせるのに効果的な方法らしいです。

おそらく、読書感想文さえ億劫子どもにとって、いちいち文章を書く面倒くささは足枷になり、

慣れてくるとプレイ中に感想を考えながらゲームするようになるのでしょう。

そしてそれがパフィーマンスを損なうので、成長が止まり、飽きやすくなるのだと思います

小説アニメなどを友人にオススメされると逆に読みたくなくなってしま現象があります

私見ですが、それも同種類の心理効果があるのだと思っています

推してくれた友人に応える感想コメントを考えながら読むのは、読書体験が損なわれるからではないでしょうか。

2023-12-04

プログラマの俺、めいっ子の夢に戦慄

「将来はイラストレーターになりたい」

「だから芸大目指す」

らしい。

うわあああああああ………。

プログラマの俺としては、なんとか芽吹いた夢が若い内に摘まなきゃならない。

だって将来はとじてるのだから

イラストレーターで食える人は居なくなるだろう。

本当の意味でのトッププロと、声や生活などを釣り餌にするアイドル絵師けが生き残る。

あとは今のアニメ奴隷労働のようなレッドオーシャン過酷しか残らない。

未来では誰しもがイラストAIに頼る。

今や人気萌え絵でさえAI生成に置き換わりつつある。

人工知能スピード品質の両面で人間クリエティティ凌駕しつつある。

プログラマなら同意してくれると思うけど、Rust や Go で書ける時代アセンブリ機械語を書く人間はいない、相当な趣味人とか特殊例外だけだ。

こんな事態になるとは思わなかった、こんな辛い役割を担いたくはなかった。

どうすればいい? イラスト禁止するのは、俺がゲーム禁止された果てにゲームジャンキーになったのと同じように逆効果しかならないだろうな…。

若い子の心を折る方法を教えてほしい。

2023-11-18

anond:20231118031259

今までだって機械語からアセンブリ言語、高等言語っていう風に自動化が進んできたんだから

それがプロンプトっていうさらヒューマンフレンドリープリプロセッサに変わるだけなんだよなぁ

2023-09-11

anond:20230911124918

冴えた指摘だね。

自然言語プログラム言語コード化するのはプログラム言語機械語コンパイルするプロセス本質的に同じとおっしゃっているんだよね?

3段階あるプロセスの2→3ができるなら1→2もできるだろうと。

その視点はなかった。というか、多くの人にないのではなかろうか?

2023-08-08

Web開発者傲慢さには呆れる

初心者プログラミングを身に着けるのに、LinuxCLI必須とか言い出すのが意味不明

しかUbuntuインストールとかじゃなくWSL2入れて覚えろとか、駆け出しの開発者にそんな難しいことできるわけねーだろっていう。

(Ubuntuだって十分に難しいと思うし)

そりゃ「Web系の」プログラミングだったら、そこら辺のノウハウ必要なのはそうだろう。

でもプログラミングWeb系だけじゃないし、Web系がほとんどなわけでもないからな!

組み込みモバイルだったらLinuxCLIで触る機会なんてまず皆無なので、最初から学ぶのは時間無駄だし、もっと優先して覚えるべきことはいくらでもある。

それこそWeb系だろうなんだろうが、プログラマなら機械語ラインエディタくらい覚えろ当然だろ?ってレベル意味のない勉強だったりするわけで。

こういうこと書くと

「むしろWindowsPOSIXから外れていて異端

とか言い出すバカがいるんだが、POSIX原理主義のほうが世界が狭いことにいい加減気づけっての。

過去に遡れば、薄っぺら機械しかなかったPCにすら日本語処理で大きく劣っていたくせに「UNIXは美しい」とかほざくアホがいた頃から、何も変わってないのな。

しかも今でこそ猫も杓子もLinux推しなのに、Linuxが出た頃は「ワナビーのクソガキが使うおもちゃ」として嘲笑しつつ*BSDが最高とか言ってたのは誰だったっけ?

差別主義者どもが恥を知れ。

2023-06-20

anond:20230620143356

なになに。どこがダメなの。

 

メモリ空間の使い方。もっと自由につかわせろ。

機械語命令ダイナミック命令作らせろ。

文字コードの標準。JISISOうざい。

メモリ境界が8bitごとになってる。自由にしようぜ。

 

みたいな感じか。

MSX以前の混迷状態になりそう。

2023-05-22

零細だろうがメガだろうがベンチャー技術力はない

そもそも高い賃金が欲しくてプログラマーになったようなやつは勘違いしているようだけど

技術系は普通社員より給料が低くて当たり前だ

なぜなら経済として会社を支えているのはどんなときでも営業から

優秀な営業なら技術がなくても売れるし

現に9割9分の会社技術などないが営業が優秀なので存続している

(ちなみにここでいう営業というのはプロモーション戦略系も含まれる)

例えば流行機械学習生業としているようなベンチャー企業であっても

価値の大半は要件課題定義ドメイン知識抽出であって

最新のトレーニング手法パラメータ定義なんかを使っても得られる利益ほとんど無いのだ

Web系でもAngularだろうがReactだろうがVueだろうがどうでもよくて

とにかくデザイナーの出したものを忠実、もしくはそれ以上のものを生み出せれば技術などどうでも良いのである

「5年後に技術負債になるかもしれない」

という人もいるが、残念ながら全ての技術は5年後に負債になっている可能性が等しくあるということを理解していただきたい

そんな中で日本での人材流動性の高まりであるとかプログラマー育成問題なんかもあって

技術系(プログラマー)の市場価値が高まりたまたま今だけ高給になっているわけである

卵が少なくなって卵の値段が上がったとしても

その卵が美味しいかと言われるとそんなわけはないのだ

どちらかと言うと腐った卵まで流通するのが恐ろしいところである

私が見てきたベンチャーの腐った卵には下記のようなジャンルがある

テックマウントパワハラ

メガベンチャーや伸び盛りのベンチャー系に多く、特に旧帝大出身特に東大)に多いのがこのパワハラ

とにかく(自分の)理論が正しいということを前提に自覚無くパワハラを繰り返す

これが雇われ社員ならそれほど問題でもないのだが、経営者側のCTOなどだった場合は目も当てられない

テックだろうがベンチャーだろうが雇用主と雇用者という関係性は変わらないのに平気でゴリゴリパワハラを行う

雇用主側に主張されると組合も無い弱い立場雇用者は何も言えない

その状況を理解していないのか雇用主側のパワハラエスカレートしていく傾向にあり

社員退職するが新しい人材は集まらずたいていの場合は逆に雇用主側が病む

この手のテックマウントパワハラ系の特徴は、ドメイン駆動や過度の抽象化、もしくは無駄高速化機械語への執念などが挙げられる

例示するのは難しいが、PRを上げてきた新人社員Slack上で公開にボコボコ論破した上に

「こんなことは一般企業として当たり前のこと」

社会人としてできて当たり前」

「他の企業に行っても絶対役に立たない」

みたいなことまで説教を始める人を何人か知ってる

結局全部自分でやる系

小さめで大きくなってきているベンチャーに多いのが、この結局全部自分でやる系

部下や委託者に対する指示はかなり抽象的、もしくは指示が無く

締め切りの前日もしくは当日、もしくは過ぎた後に自分で全部やり直す人

それまで部下や関係者が相談しつつ進めていても結局は全部ぶち壊して全部自分でやる

「全部自分でやるなんて技術的に凄い」

などというのは完全な素人で、単に他者業務依頼できない人である

その証拠に出来上がったもの特殊ことなどなく

「言ってくれればもっと早く出来たのに」

ということしかない

そんな調子で依頼することができないので結局は自分実装を繰り返し更に時間がなくなる

本人は多忙なくせに部下は暇という典型的ダメ管理者なのだ

「俺ほどの技術力を持った人がいなくて困る」

みたいな自己肯定感を醸成しているのでそのうち上のパワハラ系へと移行していく

特徴としてはSlackしろPRしろ話が抽象的すぎて文章力が無い人である

「1を聞いたら10を知るのが当たり前だろ!」

と言う人が多く(1と10から100は分かるけど1だけで10を知ったら変態ですよ)

タスクの分割や共通化などがひどく苦手な印象がある

ヒドイ人になるとIssueやPR管理全然できず、ブランチ規則無く乱立してしまっていて

新しく入った人もいったい何をどうすればいいのかさっぱり分からない状況で放置してしま

これも例示すると、新サービス仕様だけは決まっていてページレイアウトが無い状態

デザイナーの配属が難しいので実装側が考える、ということになったとき(割とある

「せめてテーマカラーかぐらい決めて下さい」

と言っても音信不通で渋々とこれまでのレイアウト踏襲して3人できっちり作ったところ

リリース前日になってCTO徹夜で全部作り直す、ということがあった

レイアウト全然変わっていて、実はニュースリリースの段階から新規テーマになることが決まっていたらしく

それに合わせて全部作り替えたそうだ

新規テーマは1ヶ月も前から決まっていたのだから共有さえしてくれればそれに合わせて作ったのになぁ、という話をした

余談だがこういうときにこの手の人が「デザイン共有できず申し訳なかった」というような一言ほとんど無い

そういうコミュニケーションが取れる人は最初から業務依頼ができるのだ

技術無いけどとにかく頑張る系

最後最近一番多いのだが、単に技術力が無くて頑張ってるだけの技術

社員だけでなくCTOにも多い

技術力が無い、というのがどういうレベルかというと

JavaScriptリストの中に'apple'があるかどうかを調べる時に array.includes('apple')と書くとして、

10個のフルーツリストがあってそれらが含まれいるかを調べる時に10個のincludesを書いてしまうような人である

「せめてfor文で書こう」「そもそもデータ構造おかしい」「というか本当にやりたい処理は?」

などなど様々な疑問が出てくるが、不思議なことにこれらを指摘しても絶対に直ることは無く、全く同じことを何度もやる

他にも例えば男性女性かでメッセージを変えて出力しているコードがあったとする

if( gender === 'male') {
...
} else {
...
}

これに、20歳以下の場合は男女共通で違うメッセージを出す場合

if( gender === 'male') {
  if ( age <= 20 ) {
   ...
  } else {
  ...
  }
} else {
  if ( age <= 20 ) {
  ...
  } else {
  ...
  }
}

みたいなコードを書いてしまう(20歳以下の部分は同じコードコピペ

メッセージ表示させるだけなら大したことないが、実際にはもっと複雑な処理をコピペで貼り付けるのである

そのため

20歳以下の表示部分のバグについて、男性場合は直ってるけど女性場合に直ってない」

という謎のバグを生成するし、そのバグ修正

if ( gender === 'female' && age <=20 ) {
...
}

というコードをこれより前に追加して更にカオスになっていく

これでもだいぶオブラートに包んでいて、実際にはもっと複雑なロジックをぐちゃぐちゃのまま整理せずに追加するのでとてもじゃないがメンテできない

最近だとそういう部分はまとめてChatGPTに放り込むと綺麗にしてくれるので非常に助かっている)

こういう低レベル技術者は結構いるのだが、大企業だと時間をかけて成長していくのに対して

ベンチャーになると自己肯定感が高いのか成長せずに偉そうである

「動いてるものは触らないで欲しい」

こちらの方が自分は分かりやすい」

Javaだとこういう書き方するんだよね」(そんなことはない)

みたいなことを言って、とにかく学習しない

CTOシニアエンジニアに非常に多く

曲がりなりにもそういう職に一度就いてしまうと指摘されることもないので学習しないんだと思う

特にCTOだとあくま雇用主側の立場なので雇用者側から指摘されることも少ないし

同業他社レビューなんてのもないからそこで時間が止まってしまうんだろうな、という感じ

こういう技術者のコードでも、見た目は動いているので営業から見ると売るには問題ないのだ

なので営業が優秀だと下手に売れてしまって成功体験からますます自己肯定感が増して手が付けられないモンスターCTO誕生である

メガベンチャーありがちな

成功してから伸び悩んで大手企業が買収したけど技術負債が凄まじ過ぎてリファクタリングだけで一大プロジェクトになる」

リファクタリングが上手く行かずに仕様変更することになって『大手企業に買収されてダメになった』というレッテルが貼られる」

「当時のCTOは別の会社で新しい事業CTOとして活躍している」

という流れはこうして生まれている

ベンチャーに行っても技術力は身に付かない

以上のようにまともに技術力を伸ばしたいのであれば大手企業に入ってプロダクトに携わるか

もしくは自分セミナー等に参加して技術収集をするしかない

「一流技術者として将来は高収入を」

などと考えてベンチャーには絶対に行ってはいけない

2023-03-10

anond:20230310134036

機械語翻訳できるプログラミング言語のように、

プログラミング言語翻訳できるプロンプト言語?ができたらそうなるだろうけど

今のAIプロンプトに一意な回答を出さないしそれが本当に合ってるか分からいから結局プログラミング言語知識要るでしょ

精度が上がって99.9%信頼できてもチェックしなきゃいけないのはプログラム部分

anond:20230310135246

アセンブラコードもかけるそうだ

Q:アセンブラコードって記述できますか?

A:はい、私はアセンブリ言語コード記述することができますアセンブリ言語は、コンピュータプロセッサ理解できる低水準の機械語命令に直接対応するプログラム言語であり、CPU命令セットアーキテクチャ依存するため、異なるCPUアーキテクチャに対して異なるコード必要です。

以下は、x86アーキテクチャ向けの単純なアセンブリ言語の例です。これは、メモリ特定場所にある2つの数値を加算して、結果をレジスタに格納するプログラムです。

sql

Copy code

section .data

num1 dd 10 ; Define num1 as a double word (32-bit integer) and set its initial value to 10

num2 dd 20 ; Define num2 as a double word and set its initial value to 20

section .text

global _start ; Declare the entry point for the program

_start:

mov eax, [num1] ; Move the value of num1 into the eax register

add eax, [num2] ; Add the value of num2 to the eax register

mov [result], eax ; Move the value in eax to the memory location "result"

section .data

result dd 0 ; Define result as a double word and set its initial value to 0

このプログラムは、num1の値をeaxレジスタに移動し、num2の値をeaxレジスタに加算し、最後にeaxレジスタの値をresultメモリドレスに保存します。

2022-08-12

なんでそんなにコマンドラインを目の敵にするんだか

anond:20220811155256

↑を書いた元増田ですが、VBの話から派生した話で、やたらコマンドライン(以下CLI)を使った開発に否定的人間がいて閉口した件。

そりゃ一口に開発と言っても色々なので、本当に統合開発環境(以下IDE)だけで開発するケースもあるのは、こっちも知ってるんだよ。

から学習者の中で「何をやりたいか」が既に決まっているなら、CLIを全く触らずプログラミングを学ぶケースもアリということなのだろう。

でも、これには主に2つの理由で全く納得がいかない。

1つ目は、そもそもプログラムって何?」というレベルの人が「何をやりたいか」なんて決まっているわけがないので、最初から「何をやるか」を決めてかかるのはナンセンスという話。

しろどういう開発に進んでもいいように、「等号は代入を意味する」辺りから始まって、どんなプログラミングでも基礎の基礎になる、データ構造アルゴリズム意識させることに集中させたい。

そのためには難易度低めで比較潰しが効く言語を、できるだけシンプルな手順で作業できる開発環境で学べる方がいい。

そしたらPythonの実行環境とそこそこ以上の機能を持つテキストエディタを入れて、コマンドプロンプトとかPowerShellとかのCLIから"Helllo, world"が取っ掛かりだと思うわけ。

もしLinux環境が用意できるなら同じことをLinuxでも試してもらって、プラットフォーム依存しない開発の入り口くらいを知っておければベター

いずれにせよ何かを実行する方法が1つではないという重要な知見は、できれば基礎のうちに知ってもらいたいことの1つだし、それはWindowsLinuxとかCLIIDEという対比がうってつけかなーと。

ちなみにIDEは、Pythonによる手続きプログラミングに慣れた後のタイミングで学べばいいと思う。

そこまで行ったら変数の型や、クラスオブジェクトとかの難しい話をGo言語で学んでおくことで、現場で使われているJavaC#swiftへの移行もスムーズになりそうだし。

ちなみに「初心者コース」の最後、もし可能ならRustでポインタメモリの話の触りくらいを体験してもらえると、組み込みに進む際のハードルが少しは下がるんじゃないかな。

もう1つは、いくら現場によってはIDEだけで開発する現実があっても、CLIを使った開発がどういうものかくらい、プログラマにとっては知ってて当たり前じゃねーの?という話。

もちろん「プログラマが何を知ってて当たり前なのか」は、時代の移り変わりとともにどんどん変わる。

大昔ならおそらく機械語とかが必須だっただろうけど、今なら機械語よりはHTMLを読めるほうが遥かに重要なわけで。

あと、UNIX系OSパーティションごとに主要なディレクトリを分割してインストールしていた時代であれば、edエディタの使い方は必須だったと聞く。

(/binに入るエディタedのみだったため、もし使えないとシステムクラッシュして/以外マウントできなくなったときに詰む)

でも今やそんなの完全に過去の話どころか、viemacsの論争ですら多分古い方の問題になるだろう。

そういう過去の諸々も踏まえるとCLI未来永劫、プログラマにとって常識的ナレッジだとは自分も思っていない。

でも今はまだ、プログラマを名乗るならCLIからコンパイルだ実行だくらいの基礎は知ってて当然だと思うんだが。

(流石にmakeまで知ってる必要はないと思うけど)

ということで、自分の言ってることはそこまでおっさん臭くないつもりなんだけどね。

本当に、何がそんなに引っかかるのか意味がわからない。

2022-08-11

anond:20220811164418

出た極論。

アセンブラ機械語不要になったのはソフトハード諸々の発展により、プログラミングコンピュータを扱う際に必須知識じゃなくなったからだけの話。

プログラミングといってもWeb組み込みデスクトップにと色々あるけど、そのほぼ全てにおいてCLIの出番が、万に一つもない時代になればCLI不要になるだろうけどね。

まだそこまで行っていないと思うぞ。

2022-07-22

anond:20220722120450

全然違うことをやるアプリケーションでも実際に動作する機械語に占めるアプリケーションコード部分の割合1%もないので

カーネルOS、使ってるライブラリほとんど全部同じで生物種の違いはアプリケーションコードが違うだけと考えるとかなり納得がいく

2022-06-27

anond:20220627101846

そもそも機械語が分かりにくいので、人間に分かり易い言葉に置き換えたマクロが、

最初プログラミング言語だったりするので。

2022-05-27

anond:20220527014248

機械語だけでは難しかたことがアセンブリ言語でできるとしても、より応用的なことが沢山出来るようになるだけで、仕事自体は減らない

AIで様々なことができるようにモジュール化されたとすると、より応用的なことが誰にでもできるようになって新しい仕事が生まれしま

そうすると現代視点で「難しい」と思われている仕事簡単になっても、新たな難しい仕事は生まれてる可能性はある

2022-05-12

for文知らずにforeachから入る人って、実際の機械語でどういう変換がされてるイメージなんだろうな

for文ならカウンタが増えてメモリから読み出してそれに対して処理してる、というイメージが付きやすいけど

2022-04-15

プログラミングだけ教えるのは難しい

例えばJavaScriptリストコピーするとき

const newList = list.slice();

って書かないとダメだよ、と教えるのは簡単

しかし、

「なんで const newList = listじゃダメなんですか?」

と聞かれると非常に困る。

例えばconst a = 123と入っているときに、bにコピーたかったらconst b=aで良い。

プリミティブと配列の違いとして覚えてもらう、という方法もあるけれど

じゃぁ文字列はどうなんですか?となると非常に困る。

JavaScriptだけを教えるならそれでも問題いかもしれないが、Pythonも一緒に教えるとかなるとカオスになる。

結局のところ、コンピュータの仕組みを理解してもらって、メモリアドレスとかポインタを知ってもらい

それからプリミティブや配列の話をしないと根本的には説明できない。

単純なプログラミング教育ってこの辺が破綻してると思っているので、結局はPC構造機械語アセンブリ言語C言語と順番に教える必要があると思っている。

2021-10-27

anond:20211027152420

スキルというか"プログラミング"についての理解が足りてないだけだと。

適材適所スキルレベルも含めて、そのとき一番"自分に"いい(楽とかスキルアップ)と思うものを選べばいいのでは?

例えば動画編集していてDaVinciと他のソフト連携したいなと思っても、そういうのはググっても出てこない。

Photoshopプラグインとして機械学習を使ったものを入れたいと思っても、ググっても出てこない。

なければ自分でやる。そもそも連携可能でなければ出てこないし、労力に見合わなければやらない。

Pythonからエクセルを動かすのは、試してみたが、VBAマクロの方が楽に感じる。操作を記録する機能はあるし、そこから不要部分削ったりすればよく、Pythonエクセル動かそうとすると読みにくいし何やってるか結局わからない。

汎用型か、特化型か。Pythonで楽になるならVBAマクロはいらない。汎用性無双ならアセンブラ機械語プログラミング言語は止まってる。

プログラマーの人はエクセルなどを嫌うけれど、matplotlibを細かい調整しようとすると調べて描画し直してを繰り返さないとならず、GUIポチポチ調整する方が楽に感じてしまう。

エクセル含め便利なツールはがっつり使う。楽だからエクセルで辛くなったら、GUI=>VBAマクロ=>自作ツールGUIで楽なら無駄自作ツールなんか作らない。楽になりたい時だけ

個人GUIを作るとして、ボタンやプルダウンは簡単だけど、マウスを使ってインタラクティブになるとググってもすぐ出てこない。

Python使いじゃないのでなんともだけど、PythonオンリーならDjangoとか?

PythonGUIが得意な印象がないので、自分ならJS(TS)+Pythonで。Python部分は必要最小限にして、Node.jsで呼び出しか、ReactでAPIコール

ログイン ユーザー登録
ようこそ ゲスト さん