December 22, 2020
My Advice to New Programmers After Coding for the Last 3 Years
💻 My Programming Background (Or lack thereof)
It is important to mention that I had literally never written a single line of code before starting my bachelor's. In fact, I don't remember taking a computer course throughout my middle and high school years. Suffice it to say. I was not like those students in my class, who had been coding as a hobby for a long time, or those who had already published entire Apps to the Play Store.
Thus, in all aspects, I was a complete Newbie. Therefore, I also had some misconceptions about programming and coding in general. It took me the better part of the last 2 and a half years to understand my negligence and realize how mistaken I was. Thus, I am writing this blog post to help others who are new to programming like I was by debunking some common misconceptions about programming.
Enough talking, let's get into it, shall we?
🎯 Focus on the Fundamentals
As a new programmer, your number one priority should be to master the fundamentals. By this, I mean you should grasp concepts like variables, data types, data structures, conditionals, loops, algorithms, etc.
The reason being, once you have sound knowledge of the fundamentals, you can learn any programming language in a matter of days. At the core, all programming languages generally have the same concepts. Good knowledge of the fundamentals will help you regardless of the programming language you choose to pick up.
With my own example, I can say that once you know the basics, picking up a new language will be a piece of cake. So, if you take away one thing from this post, it should concentrate on sharpening up your fundamental programming concepts.
🙏 Please Make Lots of Mistakes
Fear of making mistakes is another big reason people fail at programming. I, too, was in the same boat. I had the notion that a good programmer knows the exact syntax of the language and wrote the perfect code that runs the first time around. This notion hindered my ability to learn new things because I was so afraid of making mistakes that I never even tried.
This concept of mine was blasted to smithereens in a concise span of time. Writing clean and elegant code that runs on the first try and produces the correct output is nothing short of a fantasy. Even the most experienced developers cannot write fully functioning and error-free code on the first attempt. The sooner you realize this, the faster you will learn from your mistakes.
You must understand that most of your time coding will be spent on debugging and looking up errors on the internet. To succeed as a developer, you are not expected to memorize the entire syntax of a language in your head. I hardly believe anyone can do that.
Instead, you focused on effectively debugging your applications. Errors are an essential part of programming. The sooner you feel comfortable seeing red output on the screen screaming at you, the quicker you will master programming. Some of the best programmers I know or follow still spend a considerable amount of time-solving simple errors and looking up syntax that they cannot remember.
You should also realize that the first time you write a piece of code, it will never be perfect. Instead, a good practice is to write code that works and then refine and refactor that code to make it more readable and concise.
👨🎓 Don't Rely on College to teach you everything
By far, the worst notion you could have as a new programmer is expecting the university or college to teach you everything.
Universities follow a fixed curriculum, and while certain courses have greatly benefited me, like Database Systems, Computer Networks, Data structures, and Algorithms, etc. Many courses were not relevant to what is required in the field.
For example, most universities don't teach you about web development in detail or about tools like git and GitHub, widely used throughout the industry.
Thus, the cold truth is that you have to develop a habit of learning on your own. In my case, the entire knowledge I have about web development is through my own efforts and learning. While it may be true in other Engineering fields, the programming landscape changes so quickly that educational institutions can't keep pace. Learning to code is a continuous process, and you must keep practicing and expanding your skillset if you want to stay relevant in today's competitive market.
And the best thing is the abundance of online resources available to help you in this regard. If you want to learn a language or framework, there are probably many tutorials and articles you can consult. So, it's a matter of dedication and hard work you are willing to put in, and you can master a skill in no time.
😵 Don’t Fall into Tutorial Hell
Another problem that new programmers face is that they tend to fall into Tutorial Hell. Most of us resort to coding tutorials on YouTube and Udemy courses to learn any new language, framework, or skill. But these courses have a critical flaw that many of us don't realize.
As you follow along with your instructor, you might feel very confident and even feel like you're getting everything. But as soon as you finish a course and try to develop something on your own, you'll feel completely blank and have no idea where even to start. This has happened to me many times, and it's a very sinking feeling.
The problem with these tutorials and courses is that they teach you how to build a specific application. They don't teach you how to develop the mindset to solve a particular problem. Additionally, you also don't understand why the instructor uses a particular framework or why he/she is writing a piece of code in that way and not the other way round.
Thus, it just becomes a case of copying code that the instructor is writing and not understanding its reasoning. So, while you may finish the course and build the application yet, you will be unable to code something from scratch on your own.
Instead, the best way to benefit from these courses is to modify the code after you have finished the project. Try to break the code and change things around. Experiment with a different approach to implementing a specific feature. At the very least, try to add some functionality on top of the course project. By adopting this approach, you will learn why things work the way they do and understand the purpose behind the code instead of merely copying it as your own.
🏹 Don't try to Master Everything
Finally, the last bit of advice I will give to upcoming programmers is that you don't have to learn each and everything under the sun. When you first start to code, you quickly realize that there are WAY too many fields that you can choose from, and it can be quite overwhelming to decide what you want to do.
Or you can choose both and become a full-stack developer and handle both the front and back-end of a web app. Do you see where I am getting at? And this is just one field.
Maybe you fancy Mobile Development or perhaps Game Development. You might be into Machine Learning or Artificial Intelligence and work with data analysis and training complex neural networks. Or you might want to indulge in the field of cybersecurity and work on ethical hacking and so on.
Suffice it to say, and whatever you want to do, there is a field for it. My advice is to choose what you want to specialize in and go all out in it. There is a high demand for talented individuals who are great developers in a specific field instead of knowing a bit about everything. So, experiment to find what you like and then focus on mastering skills needed in that field, and you'll be doing better than most.
💭 Closing Thoughts
Thus, these were some of the things I learned since I started to code. I am in no way an expert yet. This is the essence of what I have personally experienced in my 3 years of programming. I am thrilled to choose this field as my profession, and I want to give back to the community as much as possible.
For all the new programmers starting, focus on fundamentals, continue learning in your time and don't forget to have fun! 😊
Never miss new trends
daily.dev makes it extremely easy to stay updated with the latest dev news. It’s a 100% open-source browser extension, free (forever), and doesn’t even require a signup. A must-have tool for every busy developer.
If you are busy or lazy it's ok, try our weekly recap and we'll save your time