|
In 1958 John Tukey, a world-renowned statistician, published the term “Software.”
During a 1968 NATO conference “Software Engineering Development” became a proposed
field of study. Fifteen years later the home computer revolution began captivating
a generation of video game hobbyist who defied their parents and made careers from
the sport.
To be most effective, a modern software developer should be familiar with the following theories, in this order:
- Fundamental program logic, Data-types, disk I/O
- Regular expressions, recursion, error handling strategies
- Database I/O, database design, normalization, referential integrity
- Class structuring, object-oriented design
- Screen layout, good UI design principles, human factors engineering
- Report generation (text-based and common reporting package like Crystal)
- Network performance fundamentals
- Application and network security fundamentals
- Encryption fundamentals (symmetric, asymmetric)
- System architectures, n-Tier designs, model-view-controller, separation of intent
- Pros and cons of stored procedures and triggers
- Port programming, Web-Service calls, general Service Oriented Architecture (SOA)
concepts
- Test driven development
- Use of architectural modeling tools: UML, SysML, etc.
- System theory and use of business process modeling tools: Visual Paradigm, Modelio,
Grahm process-chart, etc.
- Business acumen, the blatant lack of business value vs. architecture cost balance
in modern architecture literature, technical-debt
- K.I.S.S. (Keep It Simple Stupid), Complexity Kills, Shu Ha Ri
-
A programmers value increases to a company as they broaden their knowledge of business
dynamics
Red Rock Research provides software development best practice seminars that cover
this material.
|
|