「エンジニア」を取り巻く世界を知る
不思議の国のSE用語 - Qiita - inteltank
https://scrapbox.io/inteltank/%E4%B8%8D%E6%80%9D%E8%AD%B0%E3%81%AE%E5%9B%BD%E3%81%AESE%E7%94%A8%E8%AA%9E_-_Qiita#5ec8e34d84eb3a0000ed554a
https://qiita.com/hareku/items/3383be7aee616e04b80f
https://www.kantei.go.jp/jp/singi/ai_senryaku/suuri_datascience_ai/index.html
インターネット。ネットワーク
aws vpcで学ぶ
https://techplay.jp/column/541
ルーター
https://ja.m.wikipedia.org/wiki/ルーター
https://ascii.jp/elem/000/001/770/1770266/amp/
https://www.juniper.net/jp/jp/
https://www.atmarkit.co.jp/ait/articles/0302/21/news002_3.html
海底ケーブル
https://www.submarinecablemap.com/
https://jpn.nec.com/kids/himitsu/07.html
https://ja.m.wikipedia.org/wiki/海底ケーブル
ロードバランサー
https://ja.m.wikipedia.org/wiki/サーバロードバランス
vpn
https://www.sbbit.jp/article/cont1/36318
ネットワーク
https://ja.m.wikipedia.org/wiki/コンピュータネットワーク
https://www.cman.jp/network/support/go_access.cgi
OSI参照モデル
https://www.cisco.com/c/m/ja_jp/primer/osi-reference-model.html
図解!ネットワークの7層を実務に当てはめてみた - Qiita
各種ヘッダ
HTTP
https://memorva.jp/memo/dev/webbrowser_http_response_request_header.php
TCP
https://milestone-of-se.nesuke.com/nw-basic/tcp-udp/tcp-format/
IP
https://milestone-of-se.nesuke.com/nw-basic/ip/ip-format/
なぜレイヤー3のルーティングが必要か
https://milestone-of-se.nesuke.com/nw-basic/routing/routing-summary/
Ethernet
https://milestone-of-se.nesuke.com/nw-basic/ethernet/ethernet/
データベース
高負荷の軽減
https://knowledge.sakura.ad.jp/11979/
https://www.aozora-create.com/tech/dbサーバが高負荷の時に見直すべき6つの手順/amp
正規化、非正規化
https://qiita.com/k_kind/items/d2651cd2035ec3589df1
データベースとは
旧・そーだいなるらくがき帳: オープンセミナー2015@香川でRDBとNOSQLの住み分けについて登壇してきた #osk2015
https://ja.wikipedia.org/wiki/CRUD
サーバー
高負荷の軽減
https://medium.com/eureka-engineering/いますぐ始める高負荷対策-d75ad21d602a
クライアントサーバモデル
https://elite-lane.com/client-server-model/?amp=1
P2P
https://elite-lane.com/difference-between-client-server-and-peer-to-peer/
Skype、LINE電話はこれ。写真動画の共有もこれ
https://ja.m.wikipedia.org/wiki/Peer_to_Peer
https://edit.roaster.co.jp/web/3914/#index_id3
https://ascii.jp/elem/000/001/235/1235153/amp/
暗号の解読
https://ja.m.wikipedia.org/wiki/シャノンの情報源符号化定理
https://ja.m.wikipedia.org/wiki/頻度分析_(暗号)
https://ja.m.wikipedia.org/wiki/暗号学的ハッシュ関数
オクテットとは
https://ja.m.wikipedia.org/wiki/オクテット_(コンピュータ)
https://ja.m.wikipedia.org/wiki/誕生日のパラドックス
https://ja.m.wikipedia.org/wiki/ブロック暗号
RSA暗号のアルゴリズム
https://ja.m.wikipedia.org/wiki/RSA暗号
https://persol-tech-s.co.jp/corporate/security/article.html?id=26
セキュリティ
一番分かりやすい OAuth の説明 - Qiita
PCについて
PCの得意・不得意を知るために
CPUとGPUと機械学習
https://www.kagoya.jp/howto/rentalserver/gpu1/
学習はCPU。推論はGPU。
terminalを使う
パスを通すとは
https://qiita.com/soarflat/items/09be6ab9cd91d366bf71
シェルとカーネルとは
https://ja.wikipedia.org/wiki/シェル
https://ja.wikipedia.org/wiki/カーネル
細かいエンジニアの歴史
アセンブラ→C言語→JAVA→Ruby。プログラミング言語の歴史
19世紀初頭 パンチカード
https://ja.m.wikipedia.org/wiki/パンチカード
アセンブラ(アセンブリ言語)
https://ja.m.wikipedia.org/wiki/アセンブリ言語
1940年代 https://freelance.techcareer.jp/skills/58/articles/9891/
メインフレーム 1950年 https://ja.m.wikipedia.org/wiki/メインフレーム
電卓 1963年 https://office-frt.com/784/
https://ja.m.wikipedia.org/wiki/電卓
銀行のオンラインの仕組み 1965年 https://www.atmarkit.co.jp/ait/spv/1609/07/news007.html
https://ja.m.wikipedia.org/wiki/勘定系システム
銀行はまだメインフレーム
C言語 1972年 https://ja.m.wikipedia.org/wiki/C言語
Python 1991年 https://ja.m.wikipedia.org/wiki/Python
https://atsuoishimoto.hatenablog.com/entry/2018/10/20/123939
https://www.sejuku.net/blog/89458
https://github.com/python/cpython
JAVA 1995年 https://ja.m.wikipedia.org/wiki/Java
https://eng-entrance.com/java-history
https://www.sejuku.net/blog/3686
https://ja.m.wikipedia.org/wiki/JavaとC%2B%2Bの比較
Scala, Kotlin
Ruby 1995年 https://ja.m.wikipedia.org/wiki/Ruby
2004年 Rails https://ja.m.wikipedia.org/wiki/Ruby_on_Rails
Pandas 2008年 https://ja.m.wikipedia.org/wiki/Pandas
VCSとチーム開発。
OSS活動とgithub
アジャイルソフトウェア開発宣言
2001 https://ja.wikipedia.org/wiki/アジャイルソフトウェア開発
エクストリームプログラミング
1999 https://ja.wikipedia.org/wiki/エクストリーム・プログラミング
明示的な振り返りの実施(イテレーション、朝会)
暗黙知の共有(ペアプログラミング)
変化に強いソースに(リファクタリング、継続的インテグレーション、YAGNI)
動作するきれいなコード: SeleniumConf Tokyo 2019 基調講演文字起こし+α - t-wadaのブログ
スクラム
1986 https://ja.wikipedia.org/wiki/スクラム_(ソフトウェア開発)
日本発の開発手法
ITが「モノづくり」を超えた存在へ(devだけでなくops、Bizも巻き込む)
DevOps、
2008 https://ja.wikipedia.org/wiki/DevOps
闇のDevOps DevOpsと業績評価 - ところてん - Medium
DDD、BizDevOps
2004 https://ja.wikipedia.org/wiki/ドメイン駆動設計
役割駆動設計で巨大クラスを爆殺する - Qiita
プログラミング言語の名前の由来
https://freelance.levtech.jp/guide/detail/113/
どの言語から勉強始めるべき?
https://www.sejuku.net/blog/3619
言語の特徴
https://tenshoku.mynavi.jp/it-engineer/knowhow/dictionary/06
なぜRuby人気?
https://qiita.com/mogulla3/items/ef84b61d17fe6753598c
https://www.tiobe.com/tiobe-index/ruby/
人気出たのが2006年なのでRailsの影響が大きそう
https://www.ruby-lang.org/ja/about/
そう書いてあったわ
https://ja.wikipedia.org/wiki/CRuby
コーディングするときにやること
出来物を利用する
API, ライブラリ
よく使うもののI/O
txt, csv, json
処理
文字列
数字
正規表現
IF文
for文
と、配列・連想配列
可読性(保守性)を上げる何か
関数
クラス
オブジェクト指向
オブジェクト指向と10年戦ってわかったこと - Qiita
オブジェクト指向の恩恵
インターフェイス設計
OS
https://ja.m.wikipedia.org/wiki/オペレーティングシステム
直接ハードウェアに指示しない。ことで抽象的(効率的)に操作できる
現代のOSの主な機能は、ファイルシステムなどの補助記憶装置管理、仮想記憶などのメモリ管理、マルチタスクなどのプロセス管理、更にはGUIなどのユーザインタフェース、TCP/IPなどのネットワーク、など
商品として(ないし製品として)のOSには、デスクトップ環境やウィンドウシステムなど、あるいはデータベース管理システム (DBMS) などのミドルウェア、ファイル管理ソフトウェアやエディタや各種設定ツールなどのユーティリティ、ウェブブラウザや時計などのアクセサリが、マーケティング上の理由などから一緒に含められていることもある
1950年代に「アセンブラ」「コンパイラ」のバッチ処理機能として。
1960年代に
スプール、ジョブ管理、記憶保護、マルチプログラミング、タイムシェアリングシステム、そして、仮想記憶の概念が登場し始めた。
1970年代-1980年代前半 分散システムの台頭
1980年代の別の特筆すべき流れとして、GUIを標準装備したアップルコンピュータのMacintoshがある。MacintoshのOS (Mac OS) は、当時の性能的制約から、多くの部分がファームウェアの状態でハードウェアに組み込まれてはいたが、現在でいうウィジェット・ツールキットを含むToolboxと呼ばれるAPI群を持ち、アプリケーションにおけるGUIのデザイン開発をある程度まで標準化した。
マイクロプロセッサの高性能化と低価格化が進むと、業務用途のシステムでは、高機能な端末を大量に用意することが可能になり、UNIXをベースとしたクライアントサーバモデルが普及した。クライアント機であるワークステーションのOSとしてSunOS、IBM AIX、IRIXなどのUNIX系OSが用いられた。
1980年代後半-2000年代初頭 次世代OSへの流れ
1987年にはIBMとマイクロソフトが、パーソナルコンピュータ用に堅牢なマルチタスク機能・GUI(同年末の1.1より)・ネットワーク機能(拡張版)を装備したOS/2を発表した。1988年に登場したNEXTSTEPは、業務用途に耐える堅牢性・全面的なオブジェクト指向導入による柔軟性・高度なグラフィック機能・一貫したGUIといった、新世代のデスクトップOSで求められる機能を全て実現した。しかしこれらは当時のハードウェア性能では負荷が大きかったため広くは普及せず、代わりに、軽量だが堅牢なメモリ管理やマルチタスク機能は持たないMac OSや、Windows 3.x などのGUI環境が徐々に普及していった。これらは当時の限られたハードウェアでも快適に動作したが、安定性や機能では劣っていた。
1991 Linuxがフリーソフトウェアに
1994 Windows NT
CPU
https://ja.m.wikipedia.org/wiki/CPU年表
1970
マイクロプロセッサ
1970年後半
PCの台頭
https://ja.m.wikipedia.org/wiki/パーソナルコンピュータ史
2004年末
インテルのPentium 4が採用していたNetBurstマイクロアーキテクチャは、発熱と消費電力の増加が抑えられず、ついに一般向けCPUの周波数が3.8GHzで頭打ちになった。インテルは周波数向上をあきらめ、64ビット・SIMD・プリフェッチ・マルチコアなどの技術で性能向上を図ることになる。これに関連して、インテルもAMDに続きプロセッサー・ナンバーを導入することになる。インテルは開発中のCPUをキャンセルしてクロックあたりの性能を重視した路線への転換を余儀なくされることとなった。
2000年代後半
クロック周波数の急激な増大に伴い発熱と消費電力が増大の一途をたどり、マイクロアーキテクチャの複雑化とクロックの増大で性能を稼ぐ従来の方向性は行き詰まった。半導体の微細化につれてリーク電流が加速度的に増大し、半導体回路を単純に微細化しても高速化につながりにくくなった。インテルとAMDで約2年ぐらいごとに行われていた新規のCPUコアの開発ペースも鈍化し、既存コアの改良に開発の重点が向けられる。なおインテルは、2007年に発表したコードネームPenrynより、ムーアの法則に続くモデルとして、CPUの製造プロセスとアーキテクチャを1年ごとに交互に進化させていく「チックタックモデル」を導入している。「消費電力あたりの性能」が重要視され、マルチコアCPUが普及する。パーソナルコンピュータ向けでは2コアが主流だが、サーバ向けCPUでは「UltraSPARC T1」のようにマルチコアとハードウェアマルチスレッディングによりワンチップで数十のスレッドを実行するCPUが現れる。単一スレッドの実行速度は停滞気味となり、ハードウェアによる仮想化機能の搭載や、相対的に低いクロックでも高い性能を引き出しやすいSIMDの性能向上に力点が置かれるようになった。
intel core2
2006年
https://ja.m.wikipedia.org/wiki/Intel_Core_2
分散処理
https://ja.m.wikipedia.org/wiki/Apache_Spark
HadoopとSpark
https://www.jtp.co.jp/techport/2016-04-19/
https://ja.m.wikipedia.org/wiki/Apache_Hadoop
処理だけでなくデータも分散
Mapreduce
https://ja.m.wikipedia.org/wiki/MapReduce
https://qiita.com/uenohara/items/8d71ce907886422734e2
アルゴリズム・競技プログラミング
Pythonで競プロやるときによく書くコードをまとめてみた - Qiita
Python
【日本語モデル付き】2020年に自然言語処理をする人にお勧めしたい文ベクトルモデル - Qiita
データの集計は、ExcelよりPython使ったほうが100倍早い(pandas-profiling, pixiedust) - Qiita
知っているようで意外と知らなかったPython小ネタ集 | Developers.IO
Docker
https://qiita.com/ao_log/items/f615e0e82164ad854792?utm_content=bufferf538d&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer
https://qiita.com/zembutsu/items/24558f9d0d254e33088f
https://qiita.com/SatoshiSobue/items/a612ebbb3a9242c09db5
開発をしてみる。
システム設計の流れ・設計書の構成メモ - Qiita
要件定義~システム設計ができる人材になれる記事 - Qiita
要件定義と要求定義の違い、ご存知ですか? | 新規事業・イノベーション共創メディア | Battery(バッテリー)
要件定義に関わる言葉の整理と進め方のコツ(要求、要件、仕様、業務要件、システム要件) | | 元外資系コンサルのガラクタ箱
git初学者の初めてのチーム開発で気をつける事の備忘録 - Qiita
質とスピード / Quality and Speed - Speaker Deck
開発マネージャになる
同じチームにいて最高に心強かったエンジニアの特徴をまとめてみた - Qiita
エンジニアリングマネージャ/プロダクトマネージャのための知識体系と読書ガイド - Qiita
デバッグ
ネットワーク系
https://q.hatena.ne.jp/1172277953
https://builder.japan.zdnet.com/os-admin/20367228/
tracerouteを通して「ああ、ルーター通っているなぁ」を感じよう
https://www.atmarkit.co.jp/ait/spv/0108/30/news003.html
https://www.cman.jp/network/support/go_ip.cgi
なぜアスタリスクになるのか
https://cipepser.hatenablog.com/entry/2017/03/11/062226
フォワードしかしないルーターだから
ping
http://www.obenri.com/_command/ping01.html
シェルスクリプト
https://shellscript.sunone.me/debug.html
https://ja.m.wikipedia.org/wiki/Traceroute
さわちん 20_対応中