4 years ago, I started as a self learning programmer. Before I even got into the programming world, I was obsessed with websites like Youtube, Google, and most particularly Facebook. I remember going to these websites and opening up inspect element to change the layouts of these websites to my liking. It used to make me feel like a professional engineer or even better, a hacker! I used to open up MS paint and rebuild these websites from scratch in paint and pretend that I am the original creator. Gosh, the nostalgia is hitting me as I am writing this. Hence why I started with web development whilst most programmers start with C++, Java, or Python. Over the past 4 years, I have been able to fully comprehend the infrastructure of a web application, which includes the frontend, backend, and database. To be honest with you, I am not an expert by any means. I understand that even though I know a hefty bit about web development, there still lies a plethora of knowledge I have yet to discover. I don't have as much professional experience as other programmers would have by this point of their programming career, but I have worked on a multitude of personal projects which helped me to not just learn more about programming in general, but about how much I love this profession. I never saw this path as a career but rather something which I can indulge in for my own pleasure, which is something I would recommend to other aspiring programmers as well.
I believe programming is one of those fields which is made unnecessarily difficult by academic curriculums. Well... I don't exactly know that yet because I have yet to experience a fully fledged computer science course, which I am very enthusiastically looking forward to, but by reading blogs online, this is an assumption I believe I can safely conclude. Maybe it is not just programming in particular, maybe it is every other field as well, but I don't seem to understand other fields yet and what joy you can get from them. Like dentistry for example, I don't hate it but I don't understand how one can possibly come to enjoy it. To the people who do enjoy it, you have my utmost respect for being one of the crucial professions for our society and I can not thank you enough for withstanding the amount of work load you guys have. Anyway, where was I. Yes, programming and why I choose it. It is definitely not an easy career. The frustrations when you get errors, or even worse, when you don't get any errors but your code is not doing what it is supposed to do, is quite overwhelming at times. However, the satisfaction when you solve a problem, complete a task, or debug an error, is just as pleasurable to offset the mental endurance you face during the challenge.
If you are starting out programming and you are looking for some advice, here is some from a not-so-professional programmer. Instead of memorizing syntax of programming languages, understand and get comfortable with building logic. You will probably go through plenty of tutorials where you will learn to completely memorize some algorithms and data structures - learn to avoid that. As a matter of fact, avoid memorizing anything. Try to understand and compare algorithms and data structures. Learn the why instead of the how. After you implement an algorithm, say some sorting algorithm, you will most probably forget how to do it the next you try to implement it. That is completely fine, you do not have to remember every algorithm by heart. You only need to understand their fundamental usage and implementation. I also recommend not to immediately start solving complex competitive problemset, although this completely depends on what you prefer. Some DO enjoy the competitive nature of programming, and if you find yourself to be one of those people, feel free to go wild. Otherwise, take no pressure. I am not saying to avoid competitive programming, you will have to do it because it is probably the primary way of building knowledge about algorithm and data structures, but try to get comfortable first. Afterall, most interviews will ask you to solve some very complicated problem. But most importantly, try to have fun. Programming has been probably one of the most enjoyable experience of my life. As cliche as it sounds, it did change my outlook on life and problems in general. If you can find pleasure in this field, then rest assured that you will find nothing but success and happiness in this career