プロのプログラマ
https://gyazo.com/7128c55fd0370c7a5512d69d9369a416
あらゆる プラットフォーム / プログラミング言語 / フレームワーク / データベース の、開発環境/実行環境を、調べて構築して維持できる
既存の大規模なソフトウェアを迅速に解読することができる
人間が無自覚に雑に扱っている情報とその流れを、計算機で扱えるデータ構造・処理・通信・表現に過不足なく反映できる
重複や繰り返しを減らし、効率よく、分かりやすく、修正・拡張しやすいプログラムを書くための定石を把握している
情報設計(インフォメーションアーキテクチャ)
要件定義
データベース設計
ER図
正規化
通信プロトコル設計、API設計
シーケンス図
暗号化、認証
REST
システム設計
クラス図
オブジェクト指向
デザインパターン
SOLID原則
O/R mapper
ソフトウェアアーキテクチャー
MVC
DDD
Clean Architecture
アルゴリズム
複数人で継続的にプログラムを修正・拡張していっても混乱に陥らないような開発の進め方を把握している
分散バージョン管理システム
git
バグトラッキングシステム(課題管理システム)
XP
アジャイル
スクラム
デバッガやプロファイラを使ってプログラムの実行時の挙動を詳しく調査し問題点を特定、修正できる
自分の書いたプログラムが要求通り確実に正しく動くことをソフトウェアテストによって客観的に再現性を持って証明できる
https://gyazo.com/0a1025a5d35cdc3a45af260f8bca896d
#ソフトウェアエンジニアリング
#ソフトウェア設計
#ソフトウェア開発
#まとめ