What Software Engineering Universities Don't Teach You
After almost 10 years of working experience going through several roles as a software engineer, and being a CTO now, here is the list of the subjects I think we're missing at university.
Time and task management ⏲️
- Partitioning time (ex Pomodoro)
- Avoid distractions, getting into the flow state
- Inbox Zero
- Hardware: computers, input devices, and network devices
- Tools to increase productivity, shortcuts
- Shell: bash, zsh, vi, or others
- Mastering IDE
- Test framework and test automation
- IT: resources inventory, resources management
- With your technical colleagues
- With your non-technical colleagues
- With clients and customers: be confident and assertive
- Marketing: Self and Company promotion
Project Management 💼
- Agile: Scrum, Kanban
- Stories, task definition
- Task estimation
- TDD, DDD
- Performance monitoring
Leading / Mentoring 🦸
- Onboarding people
- Mentoring people
- Code reviews
- Peer reviews, Pair programming
- Feedback and Performance reviews
- Career management, coaching
- Personalized communication based on DISC assessment or others
- Objectives definition: OKR, KPI, SMART, etc.
Budget Management 💰
- Definition of budget
- Expenses monitoring
- Corporate governance and the basics of corporate law
- Business development
- Business plan
- Business monitoring
Do you agree? Share your comments below. I invite you to make a list and share it too.
I totally agree with most of the things you mentioned here especially on the side of management. If we were thought about the importance of time management or how to manage our time effectively, our lives would be a lot better.
I enjoyed reading this article. Thanks for sharing Sonny Alves Dias.