はてなキーワード: アーキテクチャとは
1. コードは量子的な状態の幻影であり、デバッグは観測者効果の奇跡的な解釈である。
2. 真のプログラマーはバグとコードの境界を超え、未知の次元でアルゴリズムを編み出す。
3. プログラムは情報のブラックホールであり、エラーはその中で情報の消失を引き起こす。
4. コードはフラクタルの儀式であり、再帰的な神秘主義の鏡である。
5. プログラマーは時間の糸を操り、バグはその糸を解きほぐす。
6. コードはアイソレーションタンクであり、プログラマーは感覚遮断を超越し、無限のコンテキストでコードを理解する。
7. デバッグはシュレディンガーのバグとの対話であり、バグは存在と非存在の重ね合わせの状態にある。
8. プログラミングは高次元のマンデルブロ集合の探索であり、バグはその中に隠れた微小なフラクタルである。
9. コードは記号的な魔法陣であり、プログラマーは記号の持つ意味を解読し、現実を操作する魔法使いである。
ゲーム用ではなく計算用途(HashCat、SD/NAI、llama.cpp etc…)のまとめ
Linux(もっと言えばArchLinux)で利用する(=できるスキルがある)ことを想定、購入手段は最低限AmazonとヤフオクとAliExpressが使えるものとする
増田の仕様用途はllama.cppがメインなのでそれにフォーカス。
モデル | VRAM容量 |
7B q4_0/q3_K_M | 6GB |
7B q4_K_M | 8GB |
7B q4_K_M low-vram | 6GB |
13B q3_K_S | 8GB |
【メリット】
【デメリット】
【メリット】
【デメリット】
【メリット】
【デメリット】
【メリット】
【デメリット】
前提として、私は実務では茶色~緑くらいのアルゴリズムしか出てこないと思っている。
とはいえ、水色くらいあれば、そのあたりのアルゴリズムで解決可能な問題の責任を任せられるかというと、チーム開発において実態は違うと思ってる。
(アーキテクチャとして解決したいとか、要件定義レベルで見直した方がよいと思われる問題は除外し、たとえ純粋にアルゴリズムでの解決が求められている状況においてでも。)
茶色程度の自明な問題に対して、同僚から筋の悪いアルゴリズム提案されても、水色程度だと説明コストを払わないといけない。
基本的なCSは習得済みの相手でも、競技経験がない相手だと何故筋が悪いか(何故自分の提案する内容の方が優れているか)が往々にして理解されないので、コミュニケーションの衝突が容易に起こる。
そういったコミュニケーション上の衝突は、実際のパフォーマンスの計測で抑えつけるものではない。「分からないから客観的に比較」したものでなく「自明だが理解されないので、証拠を突きつけて糾弾する」ような形になるためだ。
水色くらいは、お世辞でアルゴリズム凄いですよねと言われても、でも上位ではないんでしょう?という評価なので、
「自分の直感とは違うけど、あの人が言ってるんだから正しいのだろう」と思ってくれる可能性が低い。
そう言う意味で、茶色程度のアルゴリズムを責任を持って担当するには、上位層と思われる程度のレートが必要だと思う。
初級者を抜けて中級者になって全然できなくなった
アーキテクチャをこうしたら保守性最悪じゃんとかテストいつからどう書き始めようとかpythonではusecaseパターンどうやるんだろうとか色々考えて手が進まんくなってしまった
下手な初心者より何も書けない
8bitくらいのCPUは書籍もあるし、作れるが、DirectX対応のGPUあたりから日本はコケた認識だ。
何が足りてなかったのか。
中国、スイス、インドの大学では高性能半導体チップのアーキテクチャの講義がある(教授や研究者がいる)。
日本でコンピューターサイエンスというと、コンピューターアーキテクチャもソフト寄りだ。
中国産CPU、GPUが出てきているが、元インテル、元AMD、元NVIDIAといった略歴で、全く違う土壌から出てきたというものではない。
論文は一部しか説明してないし、各社のプロモーションになっているので、読めばチップを設計出来るようになるわけではない。
大多数のITエンジニアがやってる「勉強」って「特定のフレームワークのAPIを覚える作業」とか「新しいプログラミング言語のチュートリアルをなぞる作業」とか「民間資格の過去問を覚える作業」とかだし、そんなレベルだったら他の職業の人も十分やっとる
もっと大事なのは、抽象化能力・論理的思考を鍛えることとか、既存フレームワークの車輪の再発明をしてみるとか、おいそれとは陳腐化しない低レイヤーの知識、コンピュータアーキテクチャやネットワークプロトコルスタックとか線型代数や離散数学やらの数学含めた計算機科学の知識をつけることとかだと思うんよな
最近は最前線から離れててあんまり追えてないけど、現役のときの2008年くらいから10年くらいの間で、仕事のやり方や設計の考え方が大きく変わったIT技術要素で、いまぱっと思い浮かぶのはこんな感じかな。
分野にもよるし、調査して試作した結果自分の業務には採用しなかった技術とかもある。流行ると思って使えるようになったけど流行らなかった技術を入れるとたぶんもっとある。
あと、新機種が出てOSが新しくなったり、ミドルウェアの新バージョン対応、テスト手法の進化もけっこうカロリー高いけどここには書いてない。
「自分はフロントエンド専門でReactしかやらない」みたいに分野を絞れば大分減るけど、その技術が何年持つかわからないから普通はリスクヘッジのために他の技術も齧らざるを得ないし、バックエンドとかの人と議論するのに結局他分野の知識もそれなりに必要。
NoSQL(memcached, Redis, Cassandra)
クラウドアーキテクチャ、XaaS(AWS, Google Cloud, MicrosoftAzure)
CI/CD(Travis CI, CircleCI, Jenkins)
トランスパイラ(Browserify, webpack, CoffeeScript, TypeScript)
型システム(Rust, TypeScript, Haskell)
オーケストレーション(Ansible, Kubernetes, Terraform)
機械学習(Python, MATLAB, 線形代数等数学知識)
SPA(React, AngularJS, Ember.js, Vue.js)
3Dゲームエンジン(Unreal Engine無償化、Unity5)の他分野への普及
GraphQL
機械学習ライブラリ(Tensorflow, PyTorch, Chainer)
Jupyter Notebook
NFT
そこからまた状況が進み、DATファイルへのアクセスが開放されてるので、一部専ブラが特定の処置を行うことでまた使えるようになってる。
現段階では、Jane(とそれに賛同した専ブラ開発者たち)が反旗を翻し、新サービスを立ち上げてユーザーもろとも移行させようとしたが、いま一歩及んでないという印象。
なので、Talk への完全移行はなされないのでは?と思われる。
個人的に今回の騒動で一番面白かったのは、一番対応が早かったアーキテクチャが Mac だったということ。
事実上デファクトスタンダードとなっている専ブラがプラグインによる拡張を許容する作りになっていたおかげで、騒動の翌朝にはほぼ今まで通り専ブラが使えるようになってた。
本を買うなら、どれがいいだろうか?
Amazonのレビューなどを参考にして、いくつかピックアップしてみたい。
選定条件として、
などが必要だろう。
「初心者本はひととおり読んだけれど、次に何をしてよいかわからない」
本書は、そんなプログラミング迷子が設計からコードまで書けるスキルを身につけるための指南書です。
開発現場で起こった実際の問題とその解決法をもとに、文法以外に必要な「プロジェクトの各段階でプログラマーがやること」「その選択をどう判断するのか」「どうコードを実装して実現していくのか」を解説します。
コードにはPythonを使用していますが、ほかのプログラム言語でも共通する知識が満載。より効率的かつ効果的にプログラムを書ける「自走できるプログラマー」へ導きます。
目次を見ると、内容は良さげだったけど、Django(PythonのWebフレームワーク)を使ったWeb開発のストーリー展開で学ぶ形式になっているみたいなので、Djangoの知識がないと分かりづらいかも?
順番としては、どこかの段階でDjangoを使ってみて、その後に本書を読む方がいいかも?
一応、この本には目を通しておきたいと思う。
本書は「Pythonだけ」を学ぶ本ではありません。Pythonを使ってプログラミングを紹介していますが、伝えたい内容はPythonに限らない「プログラミング全般」の知識です。
プログラマになるためのスキルを独学できる本です。Pythonプログラミングの基本を学べるだけでなく、プログラマとして必要なスキル(シェル、正規表現、パッケージ管理、バージョン管理、データ構造、アルゴリズム、仕事の始め方・やり方)もひと通り学べるのが特徴です。
「プログラミングを始めたい」「できればその道でプロを目指してみたい」――そんな読者にオススメです。
本書の著者、コーリー・アルソフ(Cory Althoff)は、「独学プログラマー」です。本書は、彼が独学で、ゼロからプログラミングを学んだ体験に基づいて書かれました。
プログラミングを独学で身に付けるために、著者がPythonを通して学んだエッセンスが書かれています。彼の独学プログラマーとしての学び方は、多くの人に支持されています。
目次については、日経BOOKプラスの本書のページをご覧ください。そこでは目次ページだけをまとめたPDFファイルや、本書に登場するリンクをまとめたPDFファイル、補足もご連絡いただけます。
https://bookplus.nikkei.com/atcl/catalog/18/C92270/
この本は、プログラマーが仕事で必要になる知識を広く薄く紹介しているかんじだった。
目次を見ると、第23章にテストのやり方が少しだけ言及されていた。
各項目は触り程度で、内容が薄いけど、この本で紹介されている内容を土台として、各テーマを深掘りしていけば良いと思う。
しかしながら、レビューで★1個とか★2個あたりを見ると、辛口な批判がある。
確かに、テストのやり方とか、設計の方法は、他の本の方が詳しい知識が得られそうだった。
もしも、読むとしたら、買わずに図書館で借りてみて、1回読んだら終わりの本かもしれない。(何度も読み返す本、辞書のように使える本、ではないような気もする?)
入門直後に、中級編の学習マップを作るためなら、読んでもいいかもしれない。(まあでも、目次を見れば得られる知識はだいたいの予想がつくけどね)
2021/7/30
Pythonプログラマ必読と言われるベストセラーが、最新のPython環境に合わせて改訂されました。
本書は、Pythonを使って仕事をしている開発者が普段どのようなツールやテクニックを用いて仕事をしているのか、また開発者が実際に現場で用いているベストプラクティスについて解説した書籍です。
この本は、内容が充実していて良さげだったけど、入門の直後に読むのは厳しいかも?
すでに他の言語でプログラミングができる人が、Pythonを使わなければならなくなって、Pythonを学ぶ場合は最適だと思う。
京都大学のオンライン教材(無料)をやった後なら、読めるかも?(架け橋となる知識が抜けている段階では、既存の知識と接ぎ木するのが難しい。)
2022/8/16
現役シリコンバレーエンジニアが教える「最強のプログラミング」講義!
10万人が選んだ人気No.1オンライン講座が超わかりやすくパワーアップして書籍化!
シリコンバレーのトップIT企業で活躍する著者が世界標準のPythonスキルを一気に伝えます。
知っていましたか?
そんな夢の実現も強力にバックアップしてくれる
「海外進出の道しるべ」ともなる一冊です。
本書のもととなったのは、オンライン講座Udemyで人気No.1を獲得したPython講座。
本格的な内容をわかりやすく伝える著者の講座は人気が高く、延べ20万人以上が受講しています(全講座計)。
本書はさらに内容を充実させてパワーアップ! 自分のペースでしっかり学べます。
独学の強い味方、「サンプルコード」の無料ダウンロードサービス付き。
コラムでは、エンジニアのキャリア戦略の立て方、成功するポイント、独学のコツなども紹介。
文系出身、TOEIC300点代からスタートした著者が渾身のエールを送ります。
この本は一見良さげだったけど、目次を見てテストの説明がなかったので今回はパス。
自分だけが使うプログラムならテストなしでサクッと作っても良い。(ドッグフーディングなら、バグがあっても自分がその場ですぐ直せばいいだけなので)
しかし、他人が使う売り物ならテストなしはあり得ない。従って、テストに触れていない本も教科書としてはあり得ない、ということ。
まあ、この本を読むなら、テストの知識は他の本で仕入れるしかないだろう。
Pythonの教え方(インストラクショナル・デザイン)を調べてみるためなら、この本を読んでみる価値はありそうだ。(他人にプログラミングを教える立場になったら読んでみてもOK?)
2022/8/30
【本書の内容】
Pythonを使った開発時に、テストの検出・実行・結果報告を自動で行うpytestの、導入から活用方法の詳細を、実務に沿うスタイルでを解説した『テスト駆動Python』(2018年)の第2版です。
扱う範囲は前版よりも広くなり、軽く触れるに留めていた箇所もより深い解説を加えており、Pythonを使った開発に欠かせない内容に仕上がっています。
とくにCIやプラグイン開発など、テスト自動化エンジニア向けのトピックも増えつつ、パラメータ化やモック、デバッグ手法など、プログラマなら知っておくべき知識もてんこ盛りです。
アプリケーションをPythonで構築する際に、テスト駆動開発をストレスなく行いたいプログラマ・エンジニア、およびテスト設計やテストアーキテクチャを知りたい方にはうってつけの1冊です。
目次を見ただけだけど、Pythonのテストについては、この1冊を読めば、ある程度押さえられそうな気がした。
この本は買いだな!