I'm newbie in Javascript and have heard of FCC a lot of times. I have started the lessons, but I've seen that they are teaching ES5, and then ES6
So is that worth using FCC to learn Javascript or should I learn directly ES6 ?
Videos
Purpose This is a review of the first 25 hours(*) of FreeCodeCamp. It's a name that comes up here quite a lot, as a course recommended for beginners. Specifically, it teaches front-end and back-end web development, wholly in the flavor of javascript.
It has consistently (and very noticeably to me, as I lurk here most days) received a lot of praise in the comments threads on here, to almost any "Should I try FCC" type threads. In fact, the comments threads have been so uniformly positive that it aroused my suspicions that it was potentially astroturfing. That wasn't a grudge against FCC. It was really a product of innate spidey-sense that the internet develops in many of us, plus a more personalized scepticism: There's so many courses out there, how could this one be so good? And specifically, could it really claim to be a "one stop shop" for an aspiring learner?
This scepticism was heightened recently when FCC started an ad campaign (on Reddit) saying no one finishes their course because they all get hired before they finish!
Well, having decided that I have some unfinished business with my own (toehold intermediate) javascript learning, I decided to have a look.
(*) This review covers the first "25 hours" of FCC. That excludes the 50 hours allocated to (the first) two (of many subsequent) personal projects - building two (extremely) basic websites. I've done enough of that, so I skipped over that bit and followed the curriculum. The 25 hours is the estimated course time allocated by FCC to that part of the curriculum, and includes:
A little bit on onboarding
An introduction to HTML and CSS (5 hours)
Introduction to Bootstrap (if you haven't heard of it, chalk it up as more CSS really) (5 hours)
jQuery (3 hours)
Basic javascript; and OOP and functional javascript (10 hours; 2 hours)
(For any total newbies reading this, these are the elemental building blocks of making things visible on the web, and is the foundation to a career as a front-end web developer or tinkerer as well.)
Proof of completion of these units: http://imgur.com/AvRYzFb
Background I have been teaching myself code for about a 15 months, but with a very long break of about 10 months in between when I had to turn to a consulting project in my other occupation. I did no learning or practice at all in that period, so all told it's about 5-6 months of leaning, in my own time.
For the purpose of benchmarking, I'll set out roughly what my learning curve looked like:
A couple of months with Treehouse and Codeschool
Read a few books (the two books by Jon Duckett, and some other books on Javascript)
After that (and in conjunction with continuing reading), built a bunch of projects based on some $10 coupon courses I bought off Udemy, and sourced on YouTube (very good source if you are prepared to sift through a lot of dross)
Probably around the same time as this, headed over to Codecademy to fill in some gaps on my jQuery and JS OOP especially - did the whole thing and flew through the bits I thought I knew
Continuous - bits and pieces as I need them in Bootstrap and specialist CSS topics etc, sourced from all over the place - eg Linda.com, more YouTube, more Udemy
Did a bit of Udacity on Git and learned the command line somewhere along the way.
Build a bunch of websites off my own initiative along the way, almost continuously - many of them simple, even silly experiments really (can I get an array to pop up like this on a screen) - these have been very important
Anyway, I'm not here to show off my progress or do a victory lap as I haven't got a job yet, so all this is really to set out what I approached FCC with. I believe I'm fairly well acquainted with what's out there, both if you spend some cash and for free.
Review
FCC is a very fine program and I would recommend it unhesitatingly to anyone as either a starting point, or anyone who is looking to consolidate their initial education in front-end webdev gained anywhere else. However, it should be pointed out (and it does not qualify the previous recommendation) that -- based on what I have seen -- I very much doubt that it is a one-stop-shop to getting hired. But stop chasing that unicorn anyway. It's fantastic and your should do it.
I flew through the course reasonably quickly as you'd expect, on and off over a handful of days in the last week. The time estimate of 50 hours for the material I mentioned above is about right if you're a total noob taking on these concepts for the first time.
This section of the course gives you some very early satisfaction in seeing you put some results up on the web. You'll gain (just barely) enough information to have a genuine web page up on the internet with some basic styling.
These initial units in HTML and CSS (and Bootstrap) are nothing more than the basics however. The same goes for the jQuery module. You're taught just the bare minimum to scrape something together to put up on a web page. The instruction however is incredibly shallow, and the concern I have is where anyone gets real skill in CSS sufficient to know really anything about what they're doing. I don't recall, for instance, anything about the concept of floats being discussed. I think someone relying solely on this instruction would lack a basic vocabulary sufficient to be able to imagine what CSS is really about.
The same could be said of the Bootstrap and jQuery material. There is no doubt this leaves you with a ton to learn. While that is true of any course of instruction, this material really does only just scratch the surface. While Codecademy's jQuery course gets you into toggle menus, dropdowns and carousels, you won't find those possibilities even hinted at in this material. It's all $(.class).css("color", "red")
I have two takeaways here. One paradoxically is: it is great that they introduce Bootstrap and jQuery so very early in the program. In my experience, I spent more time in a state of anxiety about these big features approaching on the horizon, than in took actually to learn the basis of them. It really is great to give you a taste of these up front and get that anxiety out of the way.
On the other hand, I did not notice any further material in the course at all on those topics (save for jQuery events and AJAX a little bit later). On the CSS side especially, the course leaves you with a huge amount to learn on your own steam. Of course, some of this may well be picked up in the personal projects you need to make as you progress, but you are going to have to acquire that knowledge on your own, and you may lack even the basic frame of reference as to what the possibilities are.
On the javascript side however I think the course is superb. I haven't seen dedicated material on events handling -- this seems to be left entirely to jQuery. So again, a bit of a blackspot there, but that's an easy enough one to fill in.
But what is here in the javascript sections is really, really solid. There appears to have been a huge investment of focus in programming details that many others skip over or miss out - you do a lot of array methods for instance, and then you apply these in some really interesting and quite challenging algorithm tests, like this one:
// my solution code for "Factorilize the number 5
function factorialize(num) {
var factor = 1;
var numOfFactors = num / 1;
for (i = 1; i <= numOfFactors; i++ ) {
factor *= i;
console.log(factor);
}
return factor;
}This is a really fantastic little program to be writing at only ~50 hours of instruction in! And the course drills dozens, even hundreds of these tests. This was the actual attraction to me for doing FCC at this stage, being to fill in some of these gaps in programming analytically like this.
These little projects may seem quite abstract, but when it comes time to make your own programs, and you're looking blankly at an array thinking "how do I get these things to appear this certain way in this order on the screen", it is stuff like these challenges that will really sort you out.
Conclusion I highly recommend it. FCC is not a one-stop-shop and I have to say I don't think there's a one-stop-shop in existence. I don't think there can be. (Here, for example, is a NINE HOUR course just on CSS page layouts: https://www.lynda.com/Web-Interactive-CSS-training/CSS-Page-Layouts/86003-2.html.). No one course simply "has it all".
If you're a beginner and you're asking "I'm interested in web development, should I try FCC", my answer is unequivocally: Yes.
However, if you're asking "Should I do FCC or Codecademy or [otherCourse]" my answer is, do them both.
Previously I'd completed and written up some thought's on Free Code Camp's Scientific Computing with Python and Responsive Web Design certifications. I think people found those helpful, so here I am with some thoughts on their JavaScript cert, and hopefully it'll help some people decide whether it's worth it.
First - how long did it take? I didn't really time myself, but I'd estimate about 60 hours. It's a bit hard to say because I spent some of that time *thinking* about coding challenges and some of that time looking at other tutorials when I didn't understand certain lessons (more on that later). There are 7 'learning sections', 2 'scripting challenge' sections, and a final section of 5 projects that need to be completed in order to earn the cert.
Out of the three programs I've completed from FCC, this JavaScript one seems to be the most polished. Like the Responsive Web Design program, everything is done in the in-browser editor, which makes it really easy if you computer hop or can't set up your own dev environment. So I was able to complete a lot of this program with my work computer while on my lunch break.
Because I'd previously learned some Python, I was able to breeze through about 75% of this course. Many of the core concepts are the same, so I just had to learn a lot of syntax differences. There is a Regular Expressions section early on that I had some struggles with, but it turned out to be very important for many of the scripting challenges. In fact, I ended up using RegEx in 2 of the 5 final projects.
Speaking of the final projects, I didn't think any of them were too difficult. The final "Cash Register" project was the one I had to think about the most. But if you could figure out the core functionality of each project, it was easy to quickly finish them. There was no tedious output formatting like the Python cert had. I think these projects were pretty well designed. But most valuable were the basic and intermediate algorithm scripting challenges, which really forces you to use all the concepts you've learned.
Still, I think there are 2 flaws with the FCC JavaScript cert:
First: while most of the program is paced really well, once you get to the Object Oriented Programming and Functional Programming sections, the difficulty ramps up very fast. You are presented with big walls of text and (relatively) big chunks of code to figure out. The OOP section I was able to get through because I'd learned a lot of those concepts in Python, but a lot of the functional programming stuff (especially the .map and .filter functions), I had to just go and watch other tutorials on the subject. Also, I just had a hard time getting recursion down (and I still need to go and find more tutorials on that).
Second: The program is pure JavaScript. Nowhere do you learn how to use JS to interact with HTML & CSS. I think that's a big hole in the program. The next cert is on stuff like Bootstrap and React. So I guess the vanilla JS+HTML stuff is just skipped over?
Aside from that, I think it's a good cert to get (even if the cert doesn't really mean anything). I learned a ton, and I'm glad I did it.
So I just recently finished the html and css sections of freecodecamp and went to JS next on my journey to hopefully become a front-end developer somedays. After a couple of hours of JS tutorials I am having a really hard time adjusting to this new style of learning.
With html and CSS I could pretty much immediately see results when I learned a new concept because it was visualized right away. With Javascript, I am learning about Arrays, Strings, functions etc. but I have zero imagination about what to do with any of these. I am just wondering if this will become better the longer I keep studying or if there is a better, sort of hands-on way to learn with real-world examples and use cases of different concepts I am learning.
Happy about any input!
Like a lot of people, I flew through the HTML & CSS and then finally met my maker at javascript. The first half went ok, but I have begun struggling like crazy with the second half - delving into possible solutions and then trying to understand why those were the solutions. Record Collection gave me a two day headache and once I had shaken that off, I hit Profile Lookup...
I am starting to feel like my level of understanding is not where it needs to be to continue on and am thinking I should just put this down and supplement my current understanding with something else, to make it through the rest of this section.
Can those of you who have completed this section with no prior programming experience, clue me in as to what helped you? Maybe there is a specific book or website that you found paramount to this section? Any help is hugely appreciated.
The HTML courses were easy. But the JS courses - I dont understand most of it.
I go 10 steps with no issue, easy instructions. Then I get a question and I cant get anything to write. I can use chatgpt but thats cheating, i can check the forum but most of the people that write are almost there and just miss a dumb dot or something. So what do i do? I skip to the next lesson and I copy the answer and bring it to the previous lesson to finish it.
Should I just quit and find a different way to learn? I'm already creating my own little projects.