DEV Community

Cover image for The Importance Of Solving Real-World Problems As A Developer
James Hickey
James Hickey

Posted on • Edited on • Originally published at blog.jamesmichaelhickey.com

The Importance Of Solving Real-World Problems As A Developer

Being a software developer is much more than simply knowing everything about mastering programming languages.

You need to know how to deal with people, understand how software is best built from a high-level, best practices and trade-offs between them, etc.

We'll look at a question I received from someone who is struggling with the fact that he just graduated from university - but has no idea how to apply everything he's learned to solve real-world problems.


This is based on an excerpt from my email newsletter Navigating Your Software Development Career. If you would like to get up-to-date articles similar to this then you can join the community here!


Here's the question I was given:

"Does knowing how to code in a particular language makes one a developer? I just graduated from the university and want to be a professional developer, what must I learn, I’m learning C# and Python now. I’m confused because I don’t even know how to apply the coding I’m learning in solving real-life problems?"

I don't know how to apply what I've learned in University to solve real-life problems.

This is a problem πŸ˜‹

This is why I prefer community college vs. universities. Usually, a 2-year college program will give you much more practical experience and knowledge than a university usually gives in 4-years!

Anyways - a topic for another day.

The answer: You need to build some real-life projects that you can show off!

Solving Real Problems

Companies want to hire people who can demonstrate that they can solve real problems. The questioner understands this - otherwise, they wouldn't be asking the question. 😜

You need to be a problem solver - who just happens to know how to build software to solve some of these problems.

Your task then is to find some problem - big or small. Then build something to solve it.

Let me give you a couple of examples.

Coravel

I had the idea one day "I wish .NET development could be as easy as using Laravel".

.NET is very robust but lacks some of the ease-of-use that frameworks for other languages have - like Laravel.

So, I created a solution to that problem! That was why Coravel was born.

If you turn something like this into a GitHub repo then you can showcase things like:

  • Understanding how to solve a real-life problem by building software
  • Ability to write very clear documentation
  • Initiative and passion to build this in the first place

Build An App!

Another option is to build an entire app!

I did this when I was learning how to build web apps using Laravel years ago. It's just a small social media spoof app.

This app uses Vue.js and SASS for the front-end and Laravel for the back-end.

In this case, I demonstrated that I could do front-end and back-end development, among other things.

If you can't make up your mind then just do this. Just make something that will demonstrate you can solve problems with code!

Does knowing X number of programming languages make you a developer?

No. It just means you can make something that someone else told you to build.

Sadly, many companies will interview based on irrelevant technical knowledge alone (which doesn't test if you can think for yourself, etc.)

You need to be someone who can first identify problems within a company or community. Then, you can decide whether or not building software is a good fit for solving it.

What are some other skills and qualities that will help you become a quality developer?

  • Ability to work with a team in a positive and encouraging manner
  • Experience connecting different systems together
    • Back-end to database
    • Front-end to API
    • Back-end to API
  • Understanding of general programming principles and best practices
    • SOLID
    • Recognizing and knowing fixes for "code smells"
  • Code organization
    • How the business/product should influence your code's structure
    • Knowing the different ways to organize code and the trade-offs between them
  • Architectural patterns
    • MVC
    • MVVM
    • Onion architecture
    • Hexagonal architecture
  • Programming paradigms
    • Object-oriented
    • Functional
    • Declarative vs. procedural

That is by no means an exhaustive list - but are fundamental to becoming a quality developer.

If you don't know most of these topics then I would suggest learning a little bit about each one in general.

Then, pick a few to really dive into.

Knowing some of these really well can help you stand out among your peers.

But that's a topic for another day.

Have any other tips? Leave them in the comments 😁.

Keep In Touch

Don't forget to connect with me on twitter or LinkedIn!

Navigating Your Software Development Career Newsletter

An e-mail newsletter that will help you level-up in your career as a software developer! Ever wonder:

βœ” What are the general stages of a software developer?
βœ” How do I know which stage I'm at? How do I get to the next stage?
βœ” What is a tech leader and how do I become one?
βœ” Is there someone willing to walk with me and answer my questions?

Sound interesting? Join the community!

Top comments (0)