「機械語」を含む日記 RSS

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

2024-09-29

anond:20240929092551

計算機科学知識体系とネットワーク技術

計算機科学は、情報理論的基盤から実用的な応用まで、広範な領域カバーする学問です。以下に、計算機科学の主要な分野と、特にネットワークに関連するトピックを体系的にまとめます

1. 計算機科学の主要分野

1.1 アルゴリズムデータ構造

アルゴリズム設計: 問題解決のための効率的な手順の開発。

データ構造: データの整理と管理効率化するための手法

1.2 プログラミング言語コンパイラ

プログラミングパラダイム: 手続き型、オブジェクト指向関数型、論理型など。

コンパイラ設計: 高水言語機械語翻訳する技術

1.3 オペレーティングシステム

プロセス管理: CPUスケジューリングマルチタスキング

メモリ管理: 仮想メモリメモリ割り当て。

ファイルシステム: データの保存とアクセス方法

1.4 データベースシステム

リレーショナルデータベース: SQLによるデータ操作

NoSQLデータベース: 非構造データ管理

1.5 人工知能機械学習

機械学習アルゴリズム: 教師あり学習教師なし学習強化学習

深層学習: ニューラルネットワークによる高度なパターン認識

1.6 ソフトウェア工学

開発プロセス: アジャイルウォーターフォールモデル

品質保証: テスト手法バグトラッキング

1.7 セキュリティ暗号

暗号アルゴリズム: 対称鍵暗号公開鍵暗号

セキュリティプロトコル: SSL/TLSIPsec

2. ネットワーク技術

ネットワークは、情報の共有と通信可能にする計算機科学の核心的な分野です。

2.1 ネットワークの基本概念

OSI参照モデル: ネットワーク通信を7つのレイヤーに分割し、それぞれの機能定義

物理層: 電気信号ビット伝送。

データリンク層: フレーム転送エラー検出。

ネットワーク層: パケットルーティング

トランスポート層: エンドツーエンドの通信制御

セッション層: コネクションの管理

プレゼンテーション層: データ形式の変換。

アプリケーション層: ユーザーアプリケーション使用するプロトコル

TCP/IPモデル: 現実インターネット使用される4層モデル

2.2 ネットワークトポロジー

スター型: 中央ハブを介して各ノード接続

リング型: 各ノードが一方向または双方向に隣接ノード接続

バス型: すべてのノードが一本の通信ラインを共有。

メッシュ型: ノード間が多重に接続され、高い冗長性を持つ。

2.3 ネットワークプロトコル

IPInternet Protocol): データパケット化とアドレッシング

TCPTransmission Control Protocol): 信頼性のある通信提供

UDPUser Datagram Protocol): 信頼性よりも速度を重視した通信

HTTP/HTTPS: ウェブデータの送受信。

FTP/SFTP: ファイル転送プロトコル

SMTP/POP3/IMAP: 電子メールの送受信。

2.4 ネットワークデバイス

ルーター: 異なるネットワーク間のパケット転送ルーティング

スイッチ: 同一ネットワーク内でのフレーム転送

ブリッジ: ネットワークセグメントの接続

ゲートウェイ: 異なるプロトコル間の通信可能にする。

2.5 ワイヤレスネットワーク

Wi-Fi802.11規格): 無線LANの標準技術

Bluetooth: 近距離間のデータ通信

セルラーネットワーク: モバイル通信3G、4G、5G)。

2.6 ネットワークセキュリティ

ファイアウォール: 不正アクセスを防止。

IDS/IPS(侵入検知/防止システム): ネットワーク攻撃の検出と防御。

VPN仮想プライベートネットワーク): 安全リモートアクセス提供

暗号技術: データの機密性を保護

2.7 クラウドネットワーキング

クラウドサービスモデル: IaaSPaaSSaaS

仮想ネットワーク: ソフトウェアによるネットワーク構築。

SDNSoftware-Defined Networking): ネットワークの柔軟な管理制御

2.8 分散システム

分散コンピューティング: 複数ノードタスク分散処理。

ブロックチェーン: 分散型台帳技術

2.9 IoTモノのインターネット

センサーネットワーク: デバイス間の通信データ収集

IoTプロトコル: MQTT、CoAPなどの軽量プロトコル

2.10 ネットワーク管理モニタリング

SNMPSimple Network Management Protocol): ネットワークデバイス管理

ネットワークトラフィック分析: パフォーマンスセキュリティ最適化

3. ネットワーク技術の最新動向

3.1 5Gと次世代通信

帯域幅と低遅延: リアルタイムアプリケーションの実現。

エッジコンピューティング: データ処理の分散化。

3.2 SD-WANSoftware-Defined Wide Area Network

ネットワーク仮想化: 柔軟なWAN構築とコスト削減。

中央集中的な管理: ネットワークポリシーの一元管理

3.3 ネットワーク自動化AI

ネットワークオーケストレーション: 自動化された設定と管理

AIによるトラフィック最適化: パフォーマンスの向上と障害予測

3.4 ゼロトラストセキュリティ

信頼しない設計: 常に認証検証を行うセキュリティモデル

マイクロセグメンテーション: ネットワーク内部の細かなアクセス制御

4. 学習リソースと参考文献

4.1 推奨書籍

コンピュータネットワーク』 アンドリュー・S・タネンバウム著

TCP/IP詳解』 W. リチャード・スティーブンス著

ネットワークはなぜつながるのか』 戸根勤著

4.2 オンラインコース

Coursera: 「コンピュータネットワーク」、「ネットワークセキュリティコース

edX: 「Computer Networking」、「Cybersecurity Fundamentals」

4.3 標準化団体リソース

IETFInternet Engineering Task Force): ietf.org

IEEE Communications Society: comsoc.org

W3CWorld Wide Web Consortium): w3.org

2024-09-19

プロンプトエンジニア」と「古典的プログラマー」の違いってなんだ?

プログラマーも結局は「読み方も分からない0と1の羅列に変えてくれるコンパイル機能を持った高級言語」を使ってるだけだろ?

お前の普段向き合ってる文字の羅列は、結局はお前にとってのブラックボックスに送られ、そしてお前はそれが最終的にどうやって動作しているのかを分かってない。

パンチカード時代パソコンはクソデケー電気仕掛けのそろばんだった。

電卓」ではない。

何故ならあれを置ける卓はないから。

嘘だと言うなら科博にでも行ってこい。

それでもなお「でもよお、俺はイギリスアーサー王が使ってたという100人用の円卓を見たが、アレぐらいなら乗るぜ?」と返すならもう俺は何も言わない。

電卓の化け物だった頃のパソコン相手原始時代言語で「ウホウホ!1+110!俺!0を発見!(BGMレクイエム』より、第2楽章キリエ」)」してた頃は、パソコンブラックボックスではなかった。

だが、その時代はとうに過ぎ去った。

その昔はパンチカード目視で読める人間バーコードリーダーみたいなことをしてる奴らもいたが、今はもう宴会芸にしかならない。

プログラミングとは高級言語を用いてやるものであり、コンパイルしたあとの機械語とは「人間が目で読むことを想定していない精霊界の言語」だ。

プロンプトエンジニアリング」はよく呪霊操術や精霊魔術にたとえられる。

よく分からんけど召喚獣魔法を使わせ、召喚獣がどうやって魔法を打ってるのかは知らないという世界だ。

だが待ってほしい。

それと対比して語られる「古典的プログミング」も結局は「途中の過程はよく分からんけど最終的に機械がなんとかする」で同じではないのか?

ニューラルネットワーク構成する離散的なモザイクと、コンパイルされた機械語解読不能な01の羅列、それらにどれほどの違いがあるんだ?

どう違うんだ。

教えてくれ。

GPTは俺に架空書籍名前しか教えてくれない。

2024-09-11

[]

すごい人物と巷で有名な男が目の前のデスクに座り、タイプし始めた

生の機械語演奏するように何かを作っている

よく見ると、作っているものは「女性」だった

すげぇ、と感心していると案内人がついてこいと言うので行くとオタクたちがワラワラといた

と、案内人が猫に化け、いなくなってしまった

ここがどこだかわからないのでキョロキョロすると、別の案内人がいたので一緒についていく

「この空間はどう?」と言うので、よく見ると映像解像度の低い部屋だったので「なんかザラザラしてるね」と私は言った

「じゃあこっちの空間は」と言うが、やはりザラザラしている

私は良さそうな空間を探し、「あ、ここははっきりしているね」といった

内人が言った「二人か三人一組になって同時並列で世界設計しているんだ」

私は「ああ、そういうことだったのか」といった

2024-08-22

プログラミングの何が面白さだったんだ?

いつか勉強したいなー

と思いつつ幾星霜。

結局、プログラミングは入門止まりだった。

知らんうちに、プログラムは生成AIが出してくれる時代になったらしい。

機械語にこだわる老害のように、プログラミング手書き老害になってきた、とのこと。

外野としては、へー、という感想だ。

望むプログラムを出してくれれば手書きだろうと自動だろうと関係なくね? と思う。

だけどそう思うのも結局、プログラミングの楽しみを理解できなかったかなのだろう。

心残りは少しある。

有識者に聞きたい。

プログラミング面白さって、どんな感じのものだったんだ?

2024-08-21

anond:20240821122228

プロンプトエンジニアリングこそが、プログラミングの醍醐味

まさしく粘土ねこねだ。

機械語とかオブジェクト指向とかよりも純粋プログラミングの楽しみに一番近い。

昔の時代の人々を憐れむぜ。

2024-06-05

anond:20240605171919

AIさんのほうが表向き人の真似してるからね。

機械語で出力しだしたら話が変わる

2024-05-06

anond:20240506075202

そして時が進めば今のプログラマのように「機械語知らない」「VBも知らない」でもアプリは作れますって人ばかりになるんだと思う

そうなんだよなあ

から、もうプログラミングするのやめたわ…

2024-02-16

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

dorawiiより

追記

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

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

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

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

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

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

さら追記


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

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

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

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

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

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

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

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

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まで知ってる必要はないと思うけど)

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

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

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