SE 基礎

ノウハウって言うか基礎なんだけど一応は書いて置くか。俺には全く得にならないんだけど。全てを書き出すのはとてもじゃないけど無理だからポイントを絞って書く事になると思うんだけど。書き方がちょっと変かもだけど許して欲しい。俺の個人的な考えが出捲ってると思う。一応は俺が学んで来た事を書いて行く事になるんだけど。これだけで足りるのかなって感じもある。こういう基礎を覚えて上流工程に入った方が良いと思う。

  1. パソコンの使い方を覚えよう。
  2. 用語を覚えよう。
  3. エディタの使い方を覚えよう。
  4. 手続き型言語 C のプログラミングを一通り覚えよう。言語とライブラリの違いを理解しよう。
  5. システムコールを理解しよう。
  6. 最適化を理解しよう。
  7. 赤の他人でも読み易く保守し易いテストし易いデバッグし易いソースコードになる様に心掛けよう。
  8. キャッシュを理解しよう。
  9. オブジェクト指向でプログラミングしてみよう。
  10. オブジェクト指向プログラミング言語を使ってみよう。
  11. 関数型言語を使ってみよう。
  12. アセンブラを使ってみよう。取り敢えず x86 の CPU でやってみよう。
  13. デバッガを使いこなそう。
  14. IDE を使おう。
  15. カーネルモードとユーザモードの違いを理解しよう。
  16. プロセスとスレッドを理解しよう。排他を理解しよう。
  17. メモリを理解しよう。ページングとか。スタックとかヒープとか。
  18. PE ファイルと OS のローダーの動きを理解しよう。
  19. ファイルシステムを理解しよう。
  20. ネットワークプロトコルを理解しよう。
  21. DB を理解しよう。リレーショナルデータベース。インデックスを理解しよう。SQL を覚えよう。セッションを覚えよう。トランザクションを覚えよう。
  22. アルゴリズムを覚えよう。配列、双方向リスト、ツリー、ソート、ハッシュ、インデックス、圧縮。
  23. Win32 プログラミングをしてみよう。
  24. Eclipse を使って Web プログラミングをしてみよう。JSP, java, javascript, HTML。
  25. XML を覚えよう。
  26. Visual Studio を使って Web プログラミングをしてみよう。
  27. スクリプト系の言語を幾つか使ってみよう。perl, ruby, python, PHP, javascript
  28. 自分だけでは無理だとは思うけどメインフレームをちょっと弄ってみよう。端末エミュレータ, 端末エミュレータのマクロ, TSO, JCL, COBOL, PL/I, CLIST, アセンブラ等々を使ってみよう。
  29. Microsoft Excel マクロを使おう。数式を使おう。
  30. 基礎的な正規表現は暗記する。バックトラックを理解する。
  31. 文字コードを覚えよう。
  32. RGB と透過を理解しよう。VSync とダブルバッファリング。ビデオメモリ上で行うダブルバッファリングと、Win32 や java でいうダブルバッファリングもどきは違う事を理解しよう。
  33. サンプリングレートと量子化ビット数を理解しよう。ステレオとモノラルを理解しよう。プライマリバッファとセカンダリバッファを理解しよう。
  34. プログラミングや仕事に役立つツールを探して使いこなそう。どんどん技を増やそう。古くなった技を最新化しよう。

書くのが面倒臭過ぎる。普通に本とかインターネットで情報を集めてくれた方が良いなやっぱり。つーか本当に細かく書くのは無理だわ。俺はハードウェアから理解しろとは言わないよ。電気信号のレベルからは論じないですよ。そこは理解しないで良いと思う。だけど CPU とかノイマン型コンピュータって所からは理解して欲しいなって思う。レジスタがあってキャッシュがあってメモリがあってクロック数があって命令があって、命令毎にクロック数が違って、命令の解読や実行といったパイプラインがあって、分岐予測や投機実行があって、ってそういう所から覚えてて欲しいよなあって。俺も細かい所までは覚えて無いんだけどね。