I can speak from my own experience.
Let me first say that I was not consistent in my learning, especially at the start. Sometimes there were gaps of a month or multiple weeks. Iāve been learning to code since February, last year. I have never had any experience before. So that makes it around 1 year and 2 months. Out of all that time, I think you can honestly count maybe 10-11 months.
I learned on codecademy first. I first learned html, css and then javascript. Also did some jQuery. The way I did it though, was that I did 2 courses on codecademy for each, as they had old courses and new courses. I thought, hmm, my knowledge could be better, so let me do the other one too. To be honest I had no idea which one of them was old or new, so the order was mixed. It gave me some solid very, very beginner-ish base.
When I came to freecodecamp, I breezed through the challenges part verrrry easily. There were a couple of new things that I picked up here and there and I also touched on the basics I had already learned which was very handy as you forget these things quite easily when you first start out. Perhaps a couple of things were a bit tougher on the javascript challenges. Iād say tougher than any I had experienced on codecademy, but it all seemed a bit more specific and less general on freecodecamp for javascript.
Freecodecamp gave me the real skills, which were the projects. The process of hitting a wall and seemingly plateauing (which now I know is a part of the process too) I found was really, really beneficial. It was kind of like I knew a lot of the basics, but when you start putting the whole website together, you realize you have no idea what the hell you are doing. You push through, you learn and you learn how to build. I think thatās what freecodecamp has given me most - the skill to build, the logical thinking of a programmer. Putting the pieces together.
All in all, I feel like codecademy gave me a good solid base and freecodecamp actually taught (is teaching) me how to code. I, personally, feel like freecodecamp throws you into to the water a tiny bit too early. Maybe itās just me, I donāt know. I just feel like that if I did not know the basics, I would have unnecessarily struggled through freecodecamp. I think the main way to learn is by doing, which in the case of software development is writing code and building, but I feel like it bottlenecks the progress a bit if you do not know the basic basics and start so early. If I were to do it again, Iād do it the same way. Perhaps I may not have done 2 courses for each topic, but I would do it the same otherwise.
If anyone was to ask me how to proceed with this whole thing as a beginner, Iād say learn html, css and javascript with some basic courses and then come to freecodecamp.
OH. And also! I want to mention that freecodecamp has the best community I have ever seen anywhere. Which is a big plus! People are very helpful and friendly and will give it to you straight when necessary. Codecademyās community was a bit more cold, I think.
EDIT:
oh wow! thatās a lot of notes!
I did not know in what way you wanted the information written out. I thought It would be easy to read since I split it into paragraphs. I hope I still helped you or somebody else. At the end of the day, it was just my experience and my opinion. Perhaps someone might come and say the opposite.
By ābottle-neckingā (This term is not exclusive to software development. It can apply to many things) I meant that you can put in a lot of work and effort (which is the bottle) to try to do something, but if you have very limited knowledge (which is the neck), it slows down the progress. Sometimes learning a bit a bit of theory first, speeds the whole process up in the long run, rather than trying to do something and learning with bits and pieces on the fly.