https://www.perforce.com/sites/default/files/image/2020-01/image-blog-future-software-development.png

Should you learn System Design as a Software Developer?

Benjamin Landry
2 min readJan 12, 2021

What is the purpose of system design in the IT industry?

Wikipedia defines System Design as “the process of defining the architecture, modules, interfaces, and data for a system to satisfy specified requirements.”

In simple terms, system design is the process of converting stakeholder requirements into a high-level product design. This includes managing load, bottlenecks, and data consistency among servers.

This knowledge is essential to be able to resolve product scaling issues, but not how to solve rudimentary software problems.

Why is system design knowledge useful?

System design knowledge helps you solve problems on the component level, where components interact with other components. It’s useful to solve how to use components together to satisfy a product’s requirements, given the expectation that each component works as outlined in their technical documentation.

Why is system design knowledge useless?

The issue with system design is that it focuses on turning a basic product into a more advanced one. This results in a fundamental need to be a well-rounded programmer before learning system design. Therefore, if you are unable to code a basic website with a database; system design knowledge will provide no benefit to accomplishing the goal of building/coding a basic website.

What will I do with the system design knowledge I have?

Nothing! I am transitioning from software developer to sales engineer. The requirements for my new career is to determine the pain points of a business or satisfy the requirements a client has with existing products from my place of employment. Knowing how to scale a system would aid me to understand a client’s business difficulties and how certain solutions may be more appropriate to a client.

Should you learn system design?

If you have a solid foundation for developing products with code. Then you should learn system design concepts. Where I would recommend,

If you are a beginner software developer. I would NOT recommend learning system design. Focusing on building a basic product and learning about the basics components involved in building a web or app product, will provide much more benefit.

--

--

Benjamin Landry
Benjamin Landry

Written by Benjamin Landry

I spend my time dreaming about food, watching fictional characters go through adventures, and think of creative ideas to improve the future.

No responses yet