I have been confused by the amount of books to read, podcasts to listen and anything to do in learning how to code. I am moving very slowly in learning . I am curious that what is your study plan in learning to code? How many challenges do you finish on FCC daily? Beside FCC, what do you do in this process of learning how to code? I want to know everything and anything.
It’s normal to feel like progress is very slow in the beginning… especially if this is your first time in coding. Right now, it’s like you have different pieces of puzzle in your brain and you’re not getting the big picture yet of how everything fits.
Don’t stress out, and just relax and it’s more important to understand the basics and foundation, rather than reading a lot of different books and topics and subjects right now. Once you have a firm grasp of the basics, future topics/concepts will be learned faster.
I’d suggest start here, and go through all the lessons and exercises. TYPE them out, do NOT COPY and PASTE. The repetition will embed this stuff in your memory.
then next do the CSS and JS sections.
After getting a taste and a big overview, repeat again this time using “more meat” in your learning materials.
And most importantly, do PROJECTS! Reading and watching or listening to a blog won’t teach you how to program. You need to make your own programs, do your own coding if you want to learn it. Make mistakes, research your mistakes on how to fix it, repeat… practice a lot.
The more you do, the more you must learn otherwise you will get stuck and need to find the knowledge to keep doing.
When I started to learn programming I hated the idea of learning so much stuff. (there is a lot, and always new stuff to learn). I didn’t really know where to start, so I started by giving myself a sensible goal. (I’m going to make a simple text based game!) With this goal (making a basic game) I went about putting together the knowledge required to do what I wanted out of the game. (get text input, calculate the input, etc)
At the time I was missing a lot of fundamentals (I didn’t understand the concept of arrays yet), but gained a lot of understanding of a lot of other things. (loops, functions, variables, user input etc)
I study nowadays to expand my knowledge of what can I do, how can I do those things better and what else I could possibly do. But I don’t consider I learned anything until I have used it somewhere. This is where projects come in, if you work on your own personal projects, (or fcc projects for example) you will be forced to learn something. Keep doing it and the experience gained helps you on other projects/ tasks.
I’m not saying my way is the best way, but it has worked for me great so far. Plus being able to tackle something that seems impossible at first, and then finishing it is very satisfying.
I am using the 100 days challenger. Just be careful cause this approach is not the same for everyone as each person has different routines and lives. Therefore, this is my second 100 days challenge and it is changing my life as i used it to write my first book.
With this approach, I track my progress with excel also I settle a trend line to see whether I am falling apart /giving up. This way of learning is not aimed to perfectionism rather execution,. So, perfectionism is the enemy of execution. See if it can work for you, but remember to start slow because it is ease frustrate if you are not used to take long challengers.
So, my advise is, if you want to take this approach, start with a week challenge then go to the 30 days challenge, then 100. Start with 10 lessons and increase the number of lessons gradually, actually this trick can work with whatever you want to implement in your life, such as go to the gym or start a diet.
I was struggling to reach my goals and for me this is the best method i have tried, so , give a try and see whether it works for you or not.
resources I personally use to learn / improve:
hackerrank.com - learn about different Langs, concepts, algorithm challenge, compete
codefights.com - 10 minute competitions to warm up / start your day
https://www.youtube.com/watch?v=HtSuA80QTyo - intro to algorithms (6006, I think 6026 or something is more advanced stuff)
search on quora.com - what it takes to become a software engineer (this might not be relevant because FCC is mostly for full stack web dev, but for me, I want to be a software engineer so I read advice from others on there)
I guess search the same on quora for full stack web dev or any role really for a more thorough explanation
reddit.com (same as quora)
definitely sign up for open source projects (as recommended by FCC) or find small startups and see if you can work for them. it doesn’t really matter how small/grand the project is, as long as you learn and improve.
attend meetups - (depends on what you want to pursue / interested in) - meet other devs/engineers/people in the industry and network! find out what best practices/industry standards are and see if you can contribute to their project / work with them! (if travel is not possible, working on remote open source projects is probably the best bet)
attend hackathons - it doesn’t matter if you know a lot or just started recently, just build. I recommend working with friends / mutual friends / people you know when you first start to get a feel of what its like to be at a hackathon. you don’t really need to complete anything (also try to go to free ones, so not much financial obligations other than food, lodge, etc) just have fun, learn, see if you can build something with others, work with others, and make something cool! or random! it doesn’t really matter! and have fun =D. as you attend more or become more confident in your skillset, start working with random attendees. learn from your peers, maybe teach them something.
learn popular frameworks + tools
think of something you would like to have/use but isn’t available yet, or is too costly. see what it takes to build that, who knows where you’ll end up!
as long as you try something new and keep working on it, that’s all the matters =D
P.S. I personally recommend free resources because they’re access to more people as to paid services, so my recommendations are sorta biased I guess? but that’s another discussion
P.P.S. also, programming/software development/software engineering/etc is something you can’t really study for. I mean you can learn concepts, data structures, algorithms and etc, but it takes understanding and implementation, as well as execution (finding proper use cases) and tons of practice to get better.
On top of the great suggestions already mentioned here, I use a very specific learning model. I read and/or watch tutorials completely, including the solutions, except, and most importantly, I do not take notes.
Once I feel I have a grasp on what has to get done, I then implement those lessons on my own from memory. And if I get lost, I search google, quora, stackoverflow, mdn, etc. But I never go back to the solution.
I find that it’s much easier to retain knowledge once I know what is possible.