How to self-improve as a Software Developer

Photo by Headway on Unsplash

How to self-improve as a Software Developer

What works and what does not?

·

6 min read

There are a lot of things that might not work for you, that would give you the illusion of improvement but they are fickle at best.

I suggest you give every resource you pursue a deep enough thought and get your feelings in order on why you are looking to pursue it.

Is it because that resource promises you something unimaginable?

Is it because it might give you something that you think would suddenly make you a better developer?

These are some of the questions you should be asking yourself. Your time is precious and you need to invest it in places that improve you. As always, knowing yourself will save you a lot of time.

What works and what doesn't?

Chasing Certificates

When I started development some 10 years ago, I felt wholly unprepared for a “real” job seeing that everybody had a degree or a lot of certifications.

Coursera was new and it promised certificates, so I went that route.

If you take a look at my LinkedIn certifications you will find dozens of Coursera certificates. I can assure you that it was the most mindless work that I ever did and did not learn much.

These certificates are great motivators if you choose a complex topic and put in at least part-time effort. Otherwise, they are just digital paper with your name on them.

I learned this after wasting a lot of time and later on got a lot of value from Egghead, Frontend Masters, and YouTube. These are some of the best resources to learn which respect your time.

Online Bootcamps

freeCodeCamp and TheOdinProject are the best in class.

TheOdinProject did not have a node track before which I think was a big hurdle at that time. It also does not have a built-in code editor which might or might not be an advantage.

See, the issue with freeCodeCamp is that even though it’s great for beginners, they don’t need any local setup and don’t have to worry about tooling errors, it eventually ends up being a barrier to your learning. Better eat the frog straight up.

Both of these resources are great in what they do, they promise realistic timelines and require great effort to finish.

I can assure you that if somebody finishes every piece of freeCodeCamp they already know 90% of the work they are going to perform on a job. The rest can only be earned with the experience of being in the trenches.

A case for universities

I know this is a controversial subject. The consensus in dev communities seems to be that a university degree does not matter.

I’m here to make a point on the contrary. See, while I did not need a degree to get a job or pursue my passion for software development.

I still got one, it was difficult to juggle work with the university but I believe it was necessary. It has opened up a lot of doors for me, I can move to a different country if I so desire. I don’t have to prove to have 5 years of experience if I have 3 years of experience with a degree.

Despite what everyone says, we still live in a world that values a degree attached to your name, no matter how useless it is, it still ticks a box in the recruiters' system. It still helps people in moving to different countries and it keeps your options open to pursue something different down the line.

The biggest downside of a degree might be that it costs too much and I agree with that.

If it costs you an arm and a leg and two kidneys to get a degree in Software Engineering, you might as well skip it and spend that money and time and arms gaining practical skills for free.

On the other hand, if you live in a place where the cost is downright zero unless you have your life fully figured out and know what you are doing, go for a degree.

Even better if you can do it on a part-time basis so you can intern or work part-time to gain some real-world skills.

That is what I did and it has worked extremely well for me. It takes a lot of patience and hard work but in the end, you will be able to fast-track your dev journey.

In short

Use Coursera for some deeper theoretical knowledge and peer-reviewed projects

  • You don’t necessarily need to do it for the certificate, pursue the knowledge
  • Use Coursera to get academic fulfillment
  • Gain deeper knowledge on subjects that you can't otherwise

Use YouTube, Frontend Master, and Egghead for supplemental and quick knowledge

  • There’s a little less focus on peer review, you are mostly doing the work on your own

  • The knowledge comes fast and hits you hard

  • Use this to get up to speed on technologies fast

Use University degrees to play by the system

  • You know why you are doing this

Some general advice

Open-minded and experimental

  • If you only use a hammer, everything looks like a nail, expand your horizons

  • Experiment with other languages, frameworks, and tools. You will inevitably learn new patterns that can be helpful to implement in your main work

  • Developers of a certain community converge towards having a lot of matching ideas. Break the cycle and try out other things. You might feel like it’s not important in the beginning but in the end, everything is related

Use online communities to ask and answer questions

  • Asking helps you position the problem in a way that’s simple enough for others to understand. It rewrites the problem in your brain so ultimately you can think about it more clearly.

  • Answering helps you understand what others mean and think and ask follow-up questions to clarify

  • As a developer, we spend a significant amount of time talking to people and clarifying assumptions. These skills are the most important things a developer can have.

Read code on GitHub and try to contribute to learning what it’s like to be a developer, understanding issues and communicating back and forth is far more important than the code you are writing

Learn from people better than you

  • Subscribe to people who have been in the industry for years

  • Read how they do things and try to implement those in your code over time

  • Interact with those people, and clear your doubts on things. You won’t find this kind of culture anywhere else

End

These have been my observations throughout life. I have tried all of these methods even the ones that did not work.

The only thing I can suggest to you, in the end, is that your mileage may vary although you can become better at understanding what might be most conducive to your dev journey by valuing your time and not overspending time on something that might not be working.

We humans have the habit of thinking that if we have spent 50% time on something we should go the next 50% and might as well finish it, if it’s not working for you in the first 50%, it’s better to just move on and find something else.

The internet is filled with free knowledge and it’s not difficult to find a platform or person that would cater to your exact learning style.

I hope this was helpful to you. :)