Every software developer must know: part 1

There are some underlying theories behind software architecture and structure that every software engineer must know. On the face of it, a developer may not face a situation where this knowledge is applicable, but there are situations in development where one may have any idea where the problem exactly hides. If you really want to know why overdriving yourself and your team is not helping you to get things done and dusted, I recommend you to study some subjects.

Problem: code management, optimization, adaptability, readability

Subjects:

  • SOLID principles – hardest of all. It will take a long time and practice to truly master and improvise these principles.
  • Refactoring
  • Version Control

Problem: Resiliency, Stability, Testability

Subjects:

  • Unit test, Test driven Development (TDD)
  • Inversion of Control
  • Lose Coupling & Dependency Injection

Problem: Memory, resources

Subjects:

  • Memory Leak
  • Object life cycle
  • Application monitoring tools

If you get hold of these theories, it will not only help you to solve those critical situations but also help you find out the actual problem – the very real problem – which makes all the difference. Most of our superficial problems stem from very simple and basic underlying problems. All too often these underlying problems are invisible to us, and so we also ignore the solutions to them altogether.  When you go through the theories I state here, you need to see the problem they address and solve. Because if you cannot see the problem, the solution will just seem futile to you.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s