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.
I write code fueled by coffee for data analysis and automation at a humanitarian agency. Interested in traveling, data science, and data analysis. Love working with Python, SQL and R.
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.
Started learning to program seriously early 2017. Love fixing problems so decided to switch careers from e-commerce and management to programming and web dev. Longterm goal is full stack developer.
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.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
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.
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.
You're welcome. May you do well on your journey!
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.