Movatterモバイル変換


[0]ホーム

URL:


はてラボはてな匿名ダイアリー
ようこそ ゲスト さんログインユーザー登録

「メモ化」を含む日記RSS

はてなキーワード:メモ化とは

2025-10-18

[日記]

僕は昨日、午前6時17分に目覚めた。

目覚ましは2種類、アナログ秒針音と周波数微妙に異なる合成トーンを重ねたものを使う。

単一の刺激だとシナプス閾値適応で反応が減衰するからだ。

起床後の15分間は「視覚デチューンルーチンとして照明を極端に低くし、網膜適応曲線を意図的に遅延させることで認知の鮮鋭化を増幅する。

朝食は厳密にタンパク質比0.42、炭水化物比0.29、脂質比0.29を狙ったオートミール卵白ギリシャヨーグルトで、計量は0.1g単位コーヒーブリュワー温度を93.2℃に保つ。

僕の習慣は決して儀式ではなく、情報エントロピーを最小化して日常的なノイズを排するための有限状態機械だと説明する。

ルームメイトが朝から実験ドライバーでガタガタやっているので、僕は中断せずに黒板の前に立ち、昨日考えていた超弦理論のある断片をノートに落とす作業をした。

今回は徹底的に抽象化した視座から入る。従来の超弦理論的場位相空間を「1-対象の∞-圏」と見なし、そのモノイド圏的作用を導くことで、従来のモジュライ空間位相不変量がホモトピー圏論スペクトルコホモロジー帰着するという仮説を立てた。

より具体的には、ラングランズ対応圏論アナロジーを用いて、ゲージ群の表現環が導くモチーフ(motive)の圏と、弦の世界面上のファイバー付き代数スタックの圏とを「導来圏の間の高次同値(a weak equivalence in the (∞,2)-categoricalsense)」で結びつける試みだ。

ここで新奇なのは、通常のスペクトル系列ではなく「階層スペクトル列(a nested spectral sequence indexedby ordinal-type filtrationsbeyond ω)」を導入して、閉じた遷移の非可換共鳴が量子補正式にどう寄与するかを解析する点である

ウィッテンでも一瞬眉をひそめるだろうが、それは彼の専門領域を超えた命題の述語論的再編成が含まれているためだ(注:単なる挑発ではなく、証明可能性のための新たな可換図式を準備している)。

昼過ぎ、僕は隣人とほんの短いやり取りをした。彼女は僕のキッチンを通るたびに植物の世話に関する助言を求めるが、僕は葉緑体光合成効率説明する際、ついヘテロトロフ的比喩を避けて遺伝子発現の確率過程モデルを持ち出してしまう。

彼女はいつも「もう少し軽い説明はないの?」と呆れるが、僕にとっては現象の最少記述倫理的義務だ。

午後は友人二人と対局的に遊ぶ約束があって、夕方からは彼らとLANセッションを組んだ。

僕はゲームに対しては容赦がない。昨日はまずThe Legend of Zelda:Breath of the Wildでカジュアルな探索をした。

BotWは開発を担当したNintendo EPDが2017年3月3日Wii UNintendo Switch向けにリリースした作品で、そのオープンワールド設計が探索と化学相互作用に重きを置いている点が好きだ(発売日と開発元は参照)。

その後、難度調整のためにFromSoftware古典的タイトル群について雑談になり、初代Dark Souls2011年リリースされ、設計哲学として「挑戦することで得られる学習曲線」をゲームメカニクスに組み込んだことを再確認した(初代の年は参照)。

夜遅く、友人たちがスーパーヒーロー系の話題を持ち出したので、僕はInsomniacが手掛けたMarvel'sSpider-Man2018年9月7日発売という事実を引き合いに、ゲームデザインにおけるナラティブパルス感(ゲームプレイテンポ)について議論した(発売日は参照)。

ここで重要なのはゲームを語るとき物理学比喩を使わないという僕のルールだ。

ゲーム設計原理計算的複雑性、ユーザーインタラクションフィードバックループトークン経済ゲーム資源流通)など、情報理論と計算モデルで語るべきであり、物理アナロジー曖昧さを持ち込むだけだ。

コミックについては、僕はパラテキストまで含めて精査する。

作者インタビュー、収録順、初出掲載誌、再録時の微小な台詞差異まで注視する癖がある。

昨日はあるヴィンテージ単行本トーンの変遷を確認し、再版時にトーンカーブが調整された箇所が物語解釈に如何に影響するかを論じた。

これらは一般的にはオタクしか響かない情報だが、テクスト解釈の厳密さという点で、僕の思考様式と親和する。

僕の習慣はゲームプレイにも現れる。セーブ複数スロットを使い、各スロットに「探索」「戦闘」「実験」のタグ人為的に与えておく。

そうすることでメタ的な比較実験可能になり、ゲーム意思決定条件付き確率分布再現的に評価できる。

友人はこれを無駄と言うが、僕にとってはルーチンと実験設計同義だ。

夜中、帰宅した後にさらに2時間論文草案を書き直した。書き直しは僕の儀式の一部で、ペン先の角度、フォントカーニング段落の「情報密度」を計測し、不要語を削ぎ落とす作業だ。

寝る前の最後の行動は、ブラックボックス化した思考経路をメモ化しておくことで、翌朝の「継続的洞察再現性」を保証すること。

結局僕は午前2時3分に就寝した。昨日は量子的洞察可能性と、ゲームコミックにおける情報理論的語法の交差点を追求した一日であり、そうした知的遊戯が僕の精神の整列をもたらす。

次に実証すべきは、導来圏間の高次同型によって生じるゲージ的不確定性がディラック構造代数再構成に与える位相寄与だ。

寝言でその証明スケッチを口走らないよう寝具を固定してから眠ったつもりだが、多分失敗した。

Permalink |記事への反応(0) | 10:49

このエントリーをはてなブックマークに追加ツイートシェア

2025-10-14

https://b.hatena.ne.jp/entry/s/frantic.im/remix-3/

機能存在すると "使い倒さないといけない" or "使い倒さないなら一流でない" と考える "謎の集団" が存在して、そういう声に流されてるからv18以降の機能追加に拒否反応を示してるんじゃないの

あるいは "ベストプラクティス義務である" みたいな謎の強迫観念を持っているとか…

Next.jsを勧めるわけではない(自分仕事ではNext.jsプライベートRemixv2ユーザーである)が、Next.js使用した上でもv18以降の機能使用はほぼ全てオプションだよ


ただ、Reactの開発がNext.jsに毒されていて本筋から外れている感じは否定しない

ここから来る害があるとしたら、非Next.jsユーザーからするとv18以降のReactは特に発展していないということだろう

トランジションAPI自動メモ化とか便利だし恩恵0ってのは極論すぎると思うが

Permalink |記事への反応(0) | 02:45

このエントリーをはてなブックマークに追加ツイートシェア

2025-09-27

なんかちょこちょこ書き直してたら消えてしまった

-----

httpxが遅い件を確認してみた

https://b.hatena.ne.jp/entry/s/gfx.hatenablog.com/entry/2025/09/27/134421


プロファイルを取ってみると遅いのはconnection_pool.pyの_assign_requests_to_connections

https://github.com/encode/httpcore/blob/5974b03c7df89d3ee4e23779900d5349d550753c/httpcore/_async/connection_pool.py#L270


302行目以下のループ曲者で、コネクションが割り当てられていないリクエスト数*生きてるコネクション数のN*Mループがあるのでリクエストが滞留してくると著しく遅くなる

https://github.com/encode/httpcore/blob/5974b03c7df89d3ee4e23779900d5349d550753c/httpcore/_async/connection_pool.py#L302


httpx.AsyncClientにhttpx.Limits(max_keepalive_connections=1)を設定することで劇的に早くなるが、これはmax_connections=無限なのでやめた方がいいかなと思う

(httpx.Limitsの引数で省略された値は無限いであり、max_connectionss=無限となることから、全てのリクエストに無制限コネクションを割り当てることでN*Mの片方がなくなって速いってこと。余談だがこのオプションもあまりいいものではないね)


修正されるかは分からない

一気にリクエストを投げつける使い方をしないと体感しにくいのではないかと思う

(その点では指摘者のユースケースはぴたりとハマってる気がするねw)


ただいくらでもメモ化、dict利用などでループ改善はできそうなので、修正自体は難しくなさそうである

Permalink |記事への反応(2) | 22:00

このエントリーをはてなブックマークに追加ツイートシェア

2024-06-27

anond:20240627115140

まあ最近AI(というかLLMや基盤モデル)のせいでデータセンター需要がでかいから、そういうところでのSWE需要は増えてるのかもなと思う。

金融本来はそういうのの塊なんだろうけど、日本みずほみたいに勘定系システム政治的に揉めまくってるとかいう感じだからなあ。

俺はSWE的な意味ではプログラミング全くできないけど、昔競プロやってみたときに学んだ計算量やデータ構造メモ化みたいなメモリ計算量の関係なんかのイメージは役には立っている。

プログラミング特化の人たちは逆に応用数学的・物理学的な感覚が弱すぎるなって感じるけど、それは脳みそが違うから仕方がないことで、お互いちょっとずつ歩み寄るくらいがせいぜいなんじゃないの?って思うわ。

マジで両方できる天才ももちろんいるけど、人数が少なすぎて現実課題解決するには足りなさすぎるんだよな。

Permalink |記事への反応(1) | 12:01

このエントリーをはてなブックマークに追加ツイートシェア

2023-10-21

anond:20231021204855

ABC325感想

https://atcoder.jp/contests/abc325

A:sanを付けて出力するだけ

B: 開始時間で全探索をする。24の余りで判定をする。何故かデバッグ時間がかかった...

C: 順番に見ていってメモ化再帰をする。一度使ったセンサーは使わない。

D:ソートして時間更新しながら数えていく。よく分かっていないけど解けた。

E:ダイクストラかなとか思っていたら終わった。

Permalink |記事への反応(0) | 22:47

このエントリーをはてなブックマークに追加ツイートシェア

2018-07-07

Haskell を書いてるわけではないんだけどHaskellメモ化したい関数ってどうするんだろう

OOP言語で書いてて

 

 

という条件なので、キャッシュを取って、キャッシュになければ計算して返すクラスを作った

純粋関数型でこれをやろうとするとモナドになったりして面倒臭そう

 

しかしながら

 

  1. メモ化は単なる最適化なので無限計算リソースがあれば不要。IOと違い、副作用自体を扱いたいわけではない。最適化の結果として副作用になるだけ。
  2. コンパイラに任せて低レイヤー隠蔽できるならその方がよい。上層レイヤー関数を書く人間が直接扱うようなものではない。
  3. メモ化できるのは参照透過性ゆえなのでむしろ関数純粋性が保証されてるHaskell とかの方が標準の言語機能として当然のごとく提供できるのでは。

 

と思ったのですがどうなんでしょう。

Permalink |記事への反応(2) | 09:01

このエントリーをはてなブックマークに追加ツイートシェア

2017-09-11

https://anond.hatelabo.jp/20170910205249

まじな話をすると、N予備校プログラミング入門コースやるのがオススメ

https://www.nnn.ed.nico

一日8時間勉強時間があるなら、だいたい一ヶ月で終わる内容。

月額1000円だけどしっかり勉強すれば一ヶ月の無料間中に終わると思う。

もともとN高等学校のノンプログラマーの生徒をWebエンジニアとして就職させるために作られたカリキュラム講師曰く去年はこれで二人エンジニア就職を決めたらしい。

内容も相当親切に説明していて、プログラミングで何か作るだけじゃなくて、就職必要な環境構築やセキュリティまでみっちりやる。

http://qiita.com/sifue/items/7e7c7867b64ce9742aee#%E3%82%B3%E3%83%B3%E3%82%BB%E3%83%97%E3%83%88%E3%82%92%E3%82%82%E3%81%A8%E3%81%AB%E6%A7%8B%E6%88%90%E3%81%95%E3%82%8C%E3%81%9F%E3%82%B3%E3%83%BC%E3%82%B9%E3%81%A8%E5%86%85%E5%AE%B9

講師が書いてる入門コースで習うことがまとめ。テキスト教材もあるけど授業も1項目を2時間で説明している。授業は週2の生放送とそのアーカイブがある。

↓みたいなことが学べる

----

Webプログラミング入門コース

Webブラウザとは (Chrome,デベロッパーコンソール, alert)

はじめてのHTML (VSCode,HTML, Emmet)

さまざまなHTMLタグ (h, p, a, img, ul,tableタグ)

HTMLで作る自己紹介ページ (HTMLタグ組み合わせ,コンテンツ埋め込み)

はじめてのJavaScript (JS, ES6,エラー)

JavaScriptでの計算 (値,算術演算子,変数, 代入)

JavaScript論理を扱う (論理値,論理積,論理和,否定, 比較演算子, if)

JavaScriptループ (ループ, for)

JavaScriptコレクション (コレクション, 配列, 添字, undefined)

JavaScript関数 (関数,関数宣言,引数,戻り値,関数呼び出し, 再帰)

JavaScriptオブジェクト (オブジェクト,モデリング,プロパティ,要件定義)

はじめてのCSS (CSS,セレクタ,background-color,border)

CSSを使ったプログラミング (transform, id, class)

Webページの企画とデザイン (企画,要件定義,モックアップ, 16進数カラーコード)

診断機能の開発 (const, let, JSDoc,インタフェース,正規表現,テストコード)

診断機能組込み (div,無名関数,アロー関数, ガード句, truthy, falsy)

ツイート機能の開発 (リバースエンジニアリング, URI, URL, URIエンコード)

Linux開発環境構築コース

LinuxというOS (VirtualBox,Vagrant,Ubuntuインストール, OS, CUIの大切さ)

コンピューター構成要素 (ノイマンコンピューター,プロセス, lshw, man, ps, dfの使い方)

ファイル操作 (pwd, ls, cd, mkdir, rm, cp, mv, find,ホストマシンとの共有ディレクトリ)

標準出力 (標準入力標準出力標準エラー出力パイプgrep)

vi (vimtutor)

シェルプログラミング (シバン,echo, read,変数, if)

通信ネットワーク (パケット,tcpdump,IPアドレス, TCP,ルーター,ping)

サーバークライアント (tmux, nc,telnet)

HTTP通信 (http,https, DNS, hostsファイル,ポートフォワーディング)

通信をするボットの開発 (cron,ログ収集)

GitHubウェブサイトの公開 (GitHub,リポジトリ, fork, commit,情報モラル)

イシュー管理とWikiによるドキュメント作成 (Issues,Wiki)

GitとGitHub連携 (git, ssh, clone, pull)

GitHubへのpush (init, add, status,インデックス, commit,push, tag)

Gitのブランチ (branch, checkout, merge, gh-pages)

ソーシャルコーディング (コンフリクト、プルリクエスト)

Webアプリ基礎コース

Node.js (Node.js, nodebrew,Linux, REPL,コマンドライン引数, プルリク課題)

集計処理を行うプログラム (集計,人口動態CSV,Stream, for-of,連想配列Map, map関数)

アルゴリズムの改善 (アルゴリズム,フィボナッチ数列, 再帰,time,プロファイル, nodegrind, O記法,メモ化)

ライブラリ (ライブラリ,パッケージマネージャー, npm)

Slackボット開発 (slack, mention, bot)

HubotとSlackアダプタ (hubot, yo)

モジュール化された処理CRUD,オブジェクトライフサイクル, filter)

ボットインタフェースとの連携 (モジュールのつなぎ込み,trim,join)

同期I/Oと非同期I/O (同期I/O, 非同期I/O,ブロッキング)

例外処理 (try,catch, finally, throw)

HTTPサーバー (Web, TCPとUDP,Webサーバーの仕組み,Node.jsイベントループ,リスナー)

ログ (ログ,ログレベル)

HTTPのメソッド (メソッド, GET, POST, PUT,DELETE,CRUDとの対応)

HTMLフォーム (フォームの仕組み, form, input)

テンプレートエンジン (テンプレートエンジン, jade)

HerokuWebサービスを公開 (Webサービスの公開,heroku, dyno, toolbelt,login, create, logs)

認証利用者を制限する (認証,Basic認証, Authorizationヘッダ,ステータスコード)

Cookie を使った秘密匿名掲示板 (Cookie, Set-Cookie, expire)

UI、URI、モジュール設計 (モジュール設計,フォームメソッド制限,リダイレクト, 302)

フォームによる投稿機能の実装 (モジュール性, textarea, 303)

認証された投稿の一覧表示機能 (パスワードの平文管理の問題, 404,テンプレートのeach-in)

データベースへの保存機能の実装 (データベース,PostgreSQL, 主キー)

トラッキングCookieの実装 (トラッキングCookie, IDの偽装,Cookie の削除)

削除機能の実装 (データベースを利用した削除処理, 認可,サーバーサイドでの認可)

管理者機能の実装 (Webサービス管理責任,管理者機能の重要性)

デザインの改善 (Bootstrap,レスポンシブデザイン,セキュリティの問題があるサイトを公開しない)

脆弱性 (脆弱性,脆弱性で生まれる損失,個人情報保護法, OSコマンド・インジェクション)

XSS脆弱性対策 (XSS, 適切なエスケープ処理, リグレッション)

パスワード脆弱性対策(ハッシュ関数,メッセージダイジェスト,不正アクセス禁止法,パスワードジェネレーター,辞書攻撃)

セッション固定化攻撃脆弱性対策 (セッション,セッション固定化攻撃,ハッシュ値による正当性チェック)

より強固なセッション管理 (推測しづらいセッション識別子,秘密鍵)

CSRF脆弱性対策 (CSRF, ワンタイムトークン)

安全なHerokuへの公開 (脆弱性に対する考え方, HTTPの廃止)

Webアプリ応用コース

Webフレームワーク (Express.js,フレームワーク導入,簡単なAPI,セキュリティアップデート,Cookie パーサー,ミドルウェア, 外部認証, ロガー)

ExpressのAPI (app, Properties, Request,Response, Router)

GitHubを使った外部認証 (Passport,OAuth)

スティングフレームワーク (Mocha,レッド,グリーン,リファクタリング)

継続的インテグレーション (CircleCI)

クライアントフレームワーク (Webpack,Chrome 以外のブラウザでもES6)

DOM操作フレームワーク (jQuery,jQueryアニメーション, this)

AJAX (jQuery.ajax,クロスドメイン, 同一生成元ポリシー, x-requested-by, CORS)

WebSocket (WebSocket,WebSocketの状態遷移,Socket.io)

RDBとSQL (DDL, DCL, CREATE,DROP, INSERT,DELETE, UPDATE, WHERE)

データモデリング (リレーショナルモデル,正規化)

テーブルの結合 (外部結合, 内部結合, 片側外部結合,JOIN ON)

インデックス (インデックス, 複合インデックス, Bツリー)

集計とソート (SUM, COUNT, ORDER BY,GROUP BY)

「予定調整くん」の設計 (要件定義、用語集、データモデル、URL設計モジュール設計、MVC)

認証とRouterモジュールの実装 (Mocha, supertest,passport-stub,モックテスト)

予定とユーザーの保存 (セキュリティ要件, UUID, 複合主キー)

予定とユーザーの一覧の表示 (非同期処理,Promise, then)

出欠とコメントの表示 (入れ子の連想配列,Promise.all,子どもからデータを消す)

出欠とコメント更新 (Promiseチェイン,リファクタリング)

予定の編集と削除 (要件の衝突,関数再利用)

デザインの改善 (this,グローバルオブジェクト)

セキュリティ対策と公開 (X-Frame-Options,Heroku環境変数)

Permalink |記事への反応(17) | 11:07

このエントリーをはてなブックマークに追加ツイートシェア

2016-01-21

http://anond.hatelabo.jp/20160121155603

プログラム苦手で嫌いだけど再帰だのポインタだのくらいは使うわ。必要ならな。

(つうかC/C++使っててポインタ使わないってどういうことだよって思うけど)

プログラミングができるかどうかってのはそんなもんを使ってるかどうかで判断できるもんじゃねーと思うわ。

再帰メモ化しますとか言われて「うっひょーカッコいい〜!!!」って思うか「うわっめんどくせえし興味ねえ」って思うかとかの差だと思うわ。

Permalink |記事への反応(1) | 16:09

このエントリーをはてなブックマークに追加ツイートシェア

2013-03-27

プログラミングの初級になるためにの目次

http://anond.hatelabo.jp/20130325172822 の続き

言語Java7を想定。(Java8が迫っていますが、Lambdaなど関数型は、まだ早いと言うことで)

定理由は、C++比較して学べるところが大きく、安全シンプル言語から

※いきなりJavascriptはやめとけ、PHPは論外。

RubyScalaでないのは、筆者が初心者には適切には教えられないから。

おもちゃToyとしてjQueryで遊ぶのは、悪くは無いと思う。

0.はじめに

これ以降は名著の紹介や学習方法の紹介が主体となります。名著のコンポジションという形が時間限界ですね。

量については「初級になるなら、専門書を計3,000ページは修得することは覚悟してね」なんて言ったりしています

Javaで初級のわかりやすい指標ですと、[amazon:EffectiveJava]とGoFまでの修得。

初級になるまでに登竜門への挑戦期間を含めて、3~4年はかかっても仕方が無いとも思います

※逆に「一山いくらのコーダー」というのは、EffctiveJavaGoFが達成している技術も知らずに「自分Javaプログラマー」だと誤解してしまっているような人達です。

そういったコーダーは何年経とうとも初級プログラマーにすら敵いません。

初級を目指して、プログラミングを楽しんでください。

ただ、学ぶべきことはべらぼうですが、「各分野毎に、エレガントな方法がある。だから探して修得する」ということが大切です。

※「一を聞いて十を知る」ような優秀な人に、50冊くらいドーンと本を置いてあげて、各本の目次を読ませるだけで、

底の見え無さを悟ってくれたりすると、嬉しくなってしまます

※余談ですが、その底の見え無さは数学という学問のものですね。例えば、関数型言語の底流に「圏論」というここ100年の最新の数学があります

また中級くらいで、Liskovの置換原則などが載っている本を紹介しますが、

そのLiskovの置換原則の周辺で出てくるcovariant(共変)って、圏論という数学概念だったりします。

数学出身としては、数学現実に活かされている嬉しい事例です。

閑話休題

1.目次

1)エディター・コマンドライン正規表現友達

「速く正確に大量の出力」という能力は、プログラミングをする上でも、ドキュメントを書く上でも、何より「つまら仕事」の時間圧縮ができるようになるため、重要です。

スローガンとしては「思考のスピードで出力することを目指そう」です。

紹介するエディターはemacsvimExcelです。ついでにIMEとしてATOKを使用しているため、ATOK操作Emacsライクにする話も紹介します。

ExcelWindows環境Meadowすら入れさせてくれない場合最後の砦という扱いです。

コマンドラインは、「コマンドラインというものがある」「時として非常に強力である」程度の紹介です。

※筆者はzsh全然使えません。使いこなしている方々と接する度に「勉強しなきゃな~、でも、あっちの方を先にやりたい・・・」とグズグズして、はや何年・・・

正規表現は置換を用いて、テキストの一括編集重要です。後、遭遇したくない事態ですが、スパゲッティコードの解析をする上での最後の砦です。

※遭遇したくない例

ん?何か変なところで副作用のある処理があるようだなぁ(消沈)、SQLのInsertかUpdateか一応Mergeも使っているところから逆算して原因箇所を探すか・・・(諦念)

この糞コードがっ!!こんなところに書くんじゃねぇ!!(憤怒激高)

(ここで、他にやらかしていそうな似たようなコード正規表現grep検索。改行コード込みにすれば複数文検索も可能)

わはは、予想通り共通化すべきロジックメソッドがそこら中にある・・・

2)アルゴリズムに始まりアルゴリズムに終わる(データ構造アルゴリズムの一部という認識言葉を使っています)

入門編で一つLinkedListというアルゴリズムを学びました。

少なくとも一つ本を読みながら自力でアルゴリズムを学べる人なら、大成できる可能性があります

前に紹介した[amazon:C++実践プログラミング]には、LikedListやStackなど基本的なアルゴリズムが載っておりますが、

これに加えて、初級になるためにはこれくらいは知っておいて欲しいというものを紹介します。

※後、最初から必ずしも手を出さなくても良い上限も紹介いたします。

3)正・不正の定式化・自動テスト・ロギング・アサーション・例外・契約プログラミング

プログラムは、データ入力して、加工して出力・保存する処理の繰り返しです。

まり、各一連の繰り返し毎に、「正しい入力」「正しい出力」を定式化する必要があります

それを人間の手では無くコンピューターやらせられるように、つまり自動テストできるようにテストプログラミングします。

そこで処理の進捗を確認するためにロギングし、処理が想定通りであるかをアサーションでチェックし、

不正入力不正な出力=例外が起きたら、対処策をプログラミングします。

(ex 途中で処理を中断して、入力者に適切な入力メッセージを伝えてあげる。入力自動補正などもあり得る)

で、ここら辺をまとめてどうあるべきかとして「契約プログラミング」があります

※余談。定式化・テストに際して、数学畑の人間としては、Javaだとequalsのオーバーライドでも必要になるし、同値関係同値分割だけでなく、集合論群論から学んで欲しい・・・(ここいらは数学科学部1~2年の学習内容)

4)名著を読め、新たな名著を探せるようになれ・素晴らしい人を見つけたら、縁を大切に

名著は英語で読みましょう。名著が名著たる由縁は、度々引用されることにあります

まり最新の技術書を読むときに、引用された名著のフレーズが、新旧のリンクをなし、理解の助けになります

対話は学問をする上で非常に重要です。

壁打ちといって、独り言で思考補助をするよりも遙かに有益です。

※素晴らしい師匠を探すなら、大学行くのが一番ですが、見聞を広げていく中で出会いを待つしかないとも思います

5)オブジェクト指向とはなんぞやとGoFデザインパターン +マルチスレッドプログラミング

マルチスレッドが難しいのは「バグを起こしにくいプログラミング」を求められるから

まりTry and Errorからの決別が求められ、今後の仕様変更拡張も踏まえて慎重に慎重にデザインする必要があります

できる限りステータス変数を持たずに安全に、でもマルチスレッドにするのだから効率を追求しなければ本末転倒

でも効率のためにはメモ化に代表されるキャッシング必須と、アンビバレンツな要素のバランス取りが難しい。

このために、リエントラントな実装・抽象と実装の分離など様々なエッセンスを駆使することが必要です。

床屋哲学者問題

6)日々コツコツと

というよりも孔子曰く、知っているよりも好きであること。好きであることよりも楽しめることのほうが強く、

気づいたら日々時間が許す限りプログラミングをしてしまうのが理想です。

仕事として嫌々スキルを磨かなきゃということが、これほど不幸な職業も無いですね。

余談FizzBuzz写経について

FizzBuzz」は、本来の目的通り、協力会社の選定の際の足切りには便利ですが、

学習の達成度を測るには、簡単すぎる不適切な問題ですね。

写経

数学畑の人間として言わしてもらうと、

写経数学証明問題を、教科書テンプレ通りに、数値や名称だけ変えて記述することしか出来ない人の発想。

まり矛盾無く一貫した論理モデル」の構築が自由に出来ず、テンプレの微修正しか出来ない人の発想。

また、外部の「矛盾無く一貫した論理モデル」の吸収が不自由で、アルゴリズムを「手順」としてしか捉えられないように見受けられる。

プログラマーとしての大成は見込めないと思う。

数学畑として提供できる試金石

連続であること確かめるための「ε-Δ論法」(数学科学部1年の学習内容)

事前知識無く、このモデルを理解できる人は、十分に「矛盾無く一貫した論理モデル」を構築できる人。

1.まず「連続」とは何ぞやと考えて概念を膨らませてください。

2.十分思考できたと思えたら、Wikiあたりでイプシロンデルタ論法を見てください。

Permalink |記事への反応(2) | 02:00

このエントリーをはてなブックマークに追加ツイートシェア

 
ログインユーザー登録
ようこそ ゲスト さん
Copyright (C) 2001-2025 hatena. All Rights Reserved.

[8]ページ先頭

©2009-2025 Movatter.jp