DEV Community

Discussion on: My journey in code

Collapse
 
martinhaeusler profile image
Martin Häusler • Edited

First of all: congratulations for making it this far. Most people do not.

I don't want to demotivate you, quite on the contrary, but I have been working for about 4 years as a professional (almost) full time developer now, and let me tell you this: things will never get easier. The more you accomplish, the better you become, the larger and/or more complex the problems will be that people throw at you to solve. If there is ever any "plateau" on this curve to reach, then I haven't reached it yet myself.

But things are not as grim as they may seem. You have seen a fair share of programming languages. What you need to do next is to look beyond the languages. Forget the syntax and features, free your mind from the restrictions of thinking of a program as a piece of text. Try to think in processes and patterns. "Build" the processes and structures (not the text/syntax!) in your mind. Try to poke these mental models a bit, try to question them, try to break them (e.g. are there concurrency issues? Any threats to data validity? Do you require transactions or locks? ...) and adjust the mental model if necessary. Once you are convinced that your idea is working, only then sit down and think about how to realize it in any given language, then start typing away.

Now this might all sound very esoteric, but it really isn't. It's all about practice. In time, you will be able to do everything I've just described within a couple of minutes for most everyday problems, sometimes you may even do this while you are already typing parts of your program of which you are certain that are going to look exactly this way.

Aside from practice, try to get familiar with the Software Design Patterns of the Gang of Four. Even though you are working in .NET these days, give "Effective Java" a go, the book is amazing and applies to C# in more than 90% of all cases. Learn about the professional code of conduct of software engineers - Uncle Bob Martin describes it in his book "Clean Coder". And while you are at it, you may as well read his "Clean Code", and Andrew Hunt's "Pragmatic Programmer". You will find that these books are very practical and told in anecdotes, which makes them easy and even entertaining to read, but they contain a LOT of very good advice. Finally, you may also want to concern yourself with Software Architecture. Again, Uncle Bob Martin has you covered with his recent book "Clean Architecture". The interesting thing is that none of these books are tied to any particular language. Especially Uncle Bob switches langauges from one example to the next, simply because there are ground truths in how to tell a computer what to do, and they are (almost) universal, regardless of the language at hand.

If you don't feel like reading books, check YouTube for talks by Robert Martin, Josh Bloch, Erich Gamma and the other authors I've mentioned above.

The most important part is: stay curious. Never stop learning. Never stop improving.

Collapse
 
laraneedscoffee profile image
Lara

Thank you so much for this, this is what I have been looking for and it's okay o don't need someone to tell me things will get easier by time. I need tools and advices to keep going and up for the up coming challenges I'll face in my career. Again thank you! I'll start with the books and see how things turn up for me.

Collapse
 
martinhaeusler profile image
Martin Häusler

You're welcome. May you do well on your journey!

Collapse
 
theminshew profile image
Michael Minshew

This is encouraging to me too. I'm in a similar boat but I specifically got into programming because it was hard and I like solving hard problems. It's nice to know that although the solving itself gets easier there's an abundance of harder problems out there!

I'll be checking out those youtube channels for sure.