Job Requirements
- Has mastered the fundamentals and is deepening their technical knowledge
- Abides by and enforces standards on a team
- Knows at least two programming languages
- Is developing a discipline for writing tests, particularly for complicated code
Learning Roadmap
Learning Roadmap in rough priority order:
- Learn both JavaScript and Python
- Learn Domain-Driven Design and practice it on a software project
- Learn about the different types of tests, how to write them, and practice writing them:
- Unit Tests
- Integration Tests
- End-to-end (e2e) Tests
- Learn computing and programming history
- Origins of computing: Babbage, Von Neumann, and Turing
- Timeline of programming language development and major languages
- History and development of Object-Oriented Programming
- History of the Internet/Prominent People
- Paul Graham, founder of Viaweb and Y Combinator
- Brendan Eich, creator of JavaScript
- Guido van Rossum, creator of Python
- History, development, and prominent figures of software development methodologies
- Martin Fowler
- Kent Beck
- Robert Martin
- Fred Brooks
- Other people to know/follow
- Alan Kay
- John Carmack
- Joel Spolsky
- Virtualization, Containerization and tools
- Oracle VirtualBox
- VMWare
- HyperV
- Docker
- Kubernetes
- Load testing and tools
- Loader.io
- JMeter
- Siege
- Apache Bench
- Encryption Topics
- Symmetric/Asymmetric keys
- Hashing & Signatures
- SSL/TLS
- RSA
- GPG
- The “two generals” problem and idempotency
- Atomic transactions
- Set up a live error monitoring tool
- Sentry
- Rollbar
- Set up a live uptime and performance monitoring tool
- Pingdom
- New Relic
- Learn useful programming maxims and practice applying them. Understand that they are useful for decision-making, but are dangerous if not used thoughtfully:
- The Zen of Python
- Don’t repeat yourself
- Premature optimization is the root of all evil
- Flat is better than nested
- Favor object composition over inheritance
- A foolish consistency is the hobgoblin of little minds...
- … and you’ll find plenty more on Google
- Understand profiling and instrumentation and tools
- New Relic