はてなキーワード: プログラミング言語とは
計算機科学は、情報の理論的基盤から実用的な応用まで、広範な領域をカバーする学問です。以下に、計算機科学の主要な分野と、特にネットワークに関連するトピックを体系的にまとめます。
プログラミングパラダイム: 手続き型、オブジェクト指向、関数型、論理型など。
プロセス管理: CPUのスケジューリングとマルチタスキング。
機械学習アルゴリズム: 教師あり学習、教師なし学習、強化学習。
深層学習: ニューラルネットワークによる高度なパターン認識。
ネットワークは、情報の共有と通信を可能にする計算機科学の核心的な分野です。
OSI参照モデル: ネットワーク通信を7つのレイヤーに分割し、それぞれの機能を定義。
プレゼンテーション層: データ形式の変換。
アプリケーション層: ユーザーアプリケーションが使用するプロトコル。
TCP/IPモデル: 現実のインターネットで使用される4層モデル。
リング型: 各ノードが一方向または双方向に隣接ノードと接続。
IP(Internet Protocol): データのパケット化とアドレッシング。
TCP(Transmission Control Protocol): 信頼性のある通信を提供。
UDP(User Datagram Protocol): 信頼性よりも速度を重視した通信。
ルーター: 異なるネットワーク間のパケット転送とルーティング。
IDS/IPS(侵入検知/防止システム): ネットワーク攻撃の検出と防御。
VPN(仮想プライベートネットワーク): 安全なリモートアクセスを提供。
SDN(Software-Defined Networking): ネットワークの柔軟な管理と制御。
IoTプロトコル: MQTT、CoAPなどの軽量プロトコル。
SNMP(Simple Network Management Protocol): ネットワークデバイスの管理。
ネットワークトラフィック分析: パフォーマンスとセキュリティの最適化。
ネットワークオーケストレーション: 自動化された設定と管理。
AIによるトラフィック最適化: パフォーマンスの向上と障害予測。
マイクロセグメンテーション: ネットワーク内部の細かなアクセス制御。
『コンピュータネットワーク』 アンドリュー・S・タネンバウム著
『ネットワークはなぜつながるのか』 戸根勤著
Coursera: 「コンピュータネットワーク」、「ネットワークセキュリティ」コース
edX: 「Computer Networking」、「Cybersecurity Fundamentals」
IETF(Internet Engineering Task Force): ietf.org
IEEE Communications Society: comsoc.org
W3C(World Wide Web Consortium): w3.org
アメリカの某物理学者がo1モデルに対して嫌味ったらしく、AIが苦手なタスクを解かせて失敗させて「これがPhDレベルww」と煽っていた
そもそも、AIがなぜ具体的な知識問題や計算問題が苦手かというと、言語推論で解ける範疇を超えるから
AIに線型計画法を要する応用数学の問題を定式化せよと言えば、見事にモデルを完成させるだろう
しかし具体的な計算をせよと言えば、失敗するのが目に見えている
この「アルゴリズムの実行」の部分を、wolfram alphaやgurobi optimizerなどの代替ツールの入出力に置き換え、AIがツールを使えるようにすればもっと高度なことができるようになるだろう
プログラミング言語の入出力を直にAIが使えるようにする方法もある
この人が感じてる「つまんなさ」って、ITに対してじゃなく「プログラミングできる俺かっけー」が出来なくなってきたことに対して感じてるつまらなさなんじゃないの?
わかるよわかる、プログラミングかっこいいよね。中学英語では出て来ないようなfunctionとかfloatみたいな英単語使いこなしてコード書くのかっこいいよね。うんうん。k8sとかDockerとかDDDとか名前がかっこいいよね。そういうの使いこなせる魔法使いみたいな俺様かっけーよな。
それがLLMの時代になって、急に自然言語でプロンプトを書くことになったわけよ。
まるで下請けSEに指示するような口調で「●●について調べて下さい」とか「××のプログラムを書いて下さい」とか書くの、ダサいことこの上ないよね。わかりますよ。俺様が憧れてたカッコイイプログラミング言語やアーキテクチャ用語はどこ行ったんだって言いたいわけよな。
要するにお前さんの厨二病プログラマー時代は終わりを告げ、これからは自然言語が支配する大人の時代がやってきた、ということだと思います。さよなら厨二病。
コンピュータ・サイエンスで取り組まれている問題の一覧を紹介しよう。
この人は可哀想なことに「学校の言うことに従っておけば人生が幸せになれる」という
恐らくこの先20年ぐらい同じような失敗を繰り返してしまうのだと思う
副業で食っていけるようなITエンジニアを簡単に教育できるとは思えないし
そもそもなんだが、スクールや学校の言うことを全て丸暗記すれば大丈夫、というレベルの教育は小学生の早い段階で終わっていて
を知るためであって、塾で丸暗記を教わるために出しているのではない
興味を持って調べたことというのは誰かに教えて貰ったこととは違って記憶への定着や新しい着想に繋がるので
大学には興味・好奇心を持った人が更なる高等教育を受け、新しい発見をするために進学する
プログラミングやITに関する技術も同様で全てをスクールで教わるというのは非現実的で不可能だ
例えばよく使われるプログラミング言語だけでもC,C++,Java,JavaScript,TypeScript,Rust,Python,PHP,Ruby,Perl,ShellScript ぐらいはあって
これらの言語仕様を覚えるだけでも大変だしよく使われるライブラリなどが組み合わされるととても現実的ではない
なのであくまでもスクールや教育機関ではどれか1つの言語を選んでプログラミングの概念や思考法を教えているに過ぎないし
お金を貰えるレベルになるには少なくとも3年は自分でプログラムを書いていないと到達できない
興味がないものを3年も続けられるわけがないので、スクールや学校で「興味が無い」と思ったのならやめた方が良い
つまりスクールに通ってITエンジニアになるにはスクール外で興味を持って学習することが必要なのだが
残念ながらこの法則は小学校高学年から同様で、ちゃんと学校外で勉強してきたような人は大人になってからスクールに通ったりはしない
https://togetter.com/li/2410227
これ見て思ったんだけど、これもうもはやbashのワンライナーとかの域越えてるよね。
ぱっと見分かんなくても、解説されれば大抵スクリプトのワンライナーのってわかるけど、エクセル関数は説明されてもさっぱり分からん。
思うに、大抵の言語は人間にわかりやすく表記するという方向で進化し続けて来たのに対して、エクセルはそんな事知ったことではないからこういう進化になるんだろうね。
分かりやすさ利便性向上する為にもっと出来ることがあるのに、対して役に立たない関数増やすばっかりで、読みやすくしようとか、書きやすくしようとか言うことに全く意識が向いていない。
こんな不便な状況なのに、こういう理解不可能なティップスは増えるばかりだ。
そして理解できないけど、とりあえず動くからとコピペで使用する。おかげでメンテナンス性はボロボロだ。
でもマイクロソフトは全く気にしない。エクセルはプログラミング言語ではないからだ。実質的にプログラミング言語だとしても、その言い訳でずっと関数の整理もせずにゴチャゴチャしたシートは相変わらず量産され続ける。
地獄だな
言語とは、特定のルールに従って情報を伝えるためのシステムです。
CSSは、ウェブページのスタイルを定義するための特定のルールセットを持ち、それに従って情報を伝えます。したがって、CSSも言語の一種です。
CSSは汎用プログラミング言語(例:JavaScriptやPython)とは異なり、特定の目的(スタイルの定義)のために設計されています。
Turing Completeでない言語も言語として認識される例として、HTMLやSQLも挙げられます。
CSSも同様に、特定の目的を果たすためのスタイルシート言語です。
世界中のウェブ標準を推進するW3C(World Wide Web Consortium)は、CSSを正式な言語として認識し、仕様を策定しています。
https://d.hatena.ne.jp/keyword/%E8%BB%8A%E8%BC%AA%E3%81%AE%E5%86%8D%E7%99%BA%E6%98%8E
既に存在しているものを再び一から作ること。reinventing the wheelの日本語訳。IT業界の中でも主にSE・プログラマの間で良く用いられる。
プログラミング言語には標準で提供されている機能(関数など)があるが、それらを再作成してしまうことを指す。しかし、標準で提供されているものは注意深く検討した上で作成されており、バグは少なく、処理も速いため、余程のことがない限り作成のために使った時間と金をロスするだけである。