About one year ago, I started my journey to become what's known as a self-taught software developer. A very interesting and demanding path, as it turned out. I didn't know where to start or what I would learn in the process, but I took my first full-stack developer course on a famous platform because it cost me only 12 dollars and I thought back then, "What the heck. That adds up to just a few cups of coffee. If it isn't worth it, no big deal". Actually, it was worth it - quite worth it in fact! And now I feel so grateful to my one-year-younger self who was brave and stupid enough to take that first step. Brave because with two kids, a daily job, and a lot of things to fill in my schedule, I wasn't sure if I was able to find time to study, and stupid because if I had known how much I'd have to learn and that the process never ends for a developer, maybe I wouldn't have ever started in the first place. However, I did!
As you can imagine, I've dived into this absolutely fantastic world of programming. Slowly, but constantly, I started to draw on my own canvas of knowledge in this field. Dot by dot, line by line.
Imagine the process of learning anything you want to learn from scratch as a whiteboard or a white canvas if you like. You just start with your first dot. Your first small piece of knowledge, and then another dot here, and another there. You get my point. Sometimes you draw a dot and connect it with another with a line. Something clicks in your mind. You solidify your previous knowledge because of the new information you have acquired. And the cycle goes on and on. Eventually, after many hours of study and practice, you've drawn your own white canvas with hundred of dots and lines connecting them. Congratulations, you've become an expert!
Thanks for reading :)
Hey Dimitris, that's a cool text, and very well written as well! I think I also notice how your English improved.
As I'm a professional software developer myself and started similarly to what you describe in your post, I'm curious to know about what exactly you learned :). Was it something like full-stack development with JavaScript (NodeJS + Angular or something like that)? Or something completely different?
Eduard I'm still learning and I have covered around 90% of my first course. It's a course with Angela Yu as the instructor.-full-stack development. I've learned so far the basics of HTML, CSS, JavaScript and Bootstrap, nodeJs and express, API's, the Unix Command Line and how to use it, Git and GitHub, MongoDB and Mongoose, EJS and templates, and authentication and security. And how all these connect together. I just have to finish another module about React.js. I know I have a lot to learn and practice practice practice :) I've also have another course to watch about Python, and have downloaded the e-book "Eloquent Javascript".
Do you have any suggestions?
Oh, sorry, now I somehow remembered I still wanted to answer this comment. I started my new job last week and in the last time I'm not so present in Journaly...
Oh, okay. I know Angela Yu's courses (i.e. I know she has several ones on web programming and so on). So you seem to be focussing on web programming as well. My suggestion is influenced by what I like most about programming: programming languages :). The first question is, obviously, what you want to do/know more about (what kind of programming? what kind of projects/things are you interested in?), but besides that I think that by learning a second (third, etc.) programming language, you get a different perspective on programming itself, learn new concepts, new ways to do old things, and so forth. In a way, it's a similar process to learning a natural language. If you want to automate things, like write scripts, or do data analysis / data science and stuff like that, then sure, Python is a good thing to learn. But if you (like me) focus on web programming, then I think you could move on to learning some TypeScript, assuming you want to stay in the JavaScript world (I don't :D). I meantion TypeScript, because I think the next logical step should be to learn a statically typed language (neither JavaScript nor Python fall in this category). So what I would personally do, is learn something completely different. The "classical" choice would be Java, which is an object oriented programming language with some functional programming possibilities, and I'm mentioning it because it is sort of universal.
Keep me posted on your decisions and progress - Happy coding :)
Thank you for your response! :) I don't know yet exactly what I like to do, but I want to be creative. I'd like to work as a freelancer for start. I'm sure I don't want to quit my current job in order to work as a programmer. I think I would like to work as a freelancer for start. I'm about to finish my first ever course of Angela's (you can search for it on Udemy - it's her's "full stack programming course. That was too many informations for me. I think I'll repeat the course again. At least some of the modules. I found recently about FreeCodeCamp and I'll start it's curiculum while at the same time I'll read the book eloquent Javascript. I need to learn a lot more about programming and work on some projects in order to find put what I like most. The most difficult part for me is to start my own projects from scratch. I feel like I'm in the middle of the ocean...
Great! Do you have specific ideas for possible own software projects? I think that's a great way to learn, by the way.
The only idea I have is to create a site for my gaming club. Actually I want to create a site where the users can login and can add photos and videos and write blog posts. Also it will have the general idea of the gaming club and info for every individual. I want to do that in order to work on different features, to try ideas I have, to find out how to do things etc. I know it's a very difficult project. I'm afraid to start building it :(