Trying Not to Deviate

So I finished all the way through Object-Oriented Programming for JS and Bootstrap and I’m almost done with the HTML/CSS projects…but I also feel like I want more security in JS. I’ve seen a lot online that suggests that the algorithms aren’t suuuuuuper important in the very beginning when learning, so I really want to move to Saas, complete my Responsive web design certifation and hopefully find the Head First Javascript book at my library (they only have one copy :sweat:).

Is there anyone else here who worked through the rest of front end, then came back to the algorithms later? Is that an okay idea? I really want to get to building things, and I enjoy the challenge of the algorithms…but it’s not really feeding my motivation haha.

Yeah, that should be fine. If you want to take a little break from JS to pursue the later certificates, especially ones that don’t involve JS, that should be OK. I might suggest try to keep doing a little bit of JS so you don’t loose what you’ve learned. There are sites (like codewars) that have algorithm challenges and you can try some of the easy ones. Or you can try the FCC ones but just spend a little time each day on them and spend the rest of the time on the later stuff. It’s really up to you. Or maybe just alternate days. I do think algorithms are important - it’s like lifting weights for your coder brain - but I also think doing them for a month straight can be daunting.

You mention motivation and that is definitely important. If you think you can stay motivated and keep learning by switching things around a bit. But I’d definitely want to feel strong in JS before you get to the FE Libraries section, and also the APIs.

1 Like

This is my second time around, so I definitely know better this time! It’s part of the reason I’m trying to sit down with a book so I can understand these concepts better. Like…I have the theory basically, but then I hit prototypal(sp?) inheritance and figured it’s time to slow down. I went through codecademy’s JS section and felt a bit better, but I’m gonna flex the brain muscles and work it in while I improve the css bits.

So am I right in thinking that the algorithms aren’t super important for building, but rather as practice on how to break a problem down and figure out how to use different methods? How much do VanillaJS algorithms affect ReactJS? :thinking:

Yes, keep in mind that FCC is not supposed to be comprehensive. The fact that you didn’t master everything just from FCC is normal. You’re expected to consult outside sources and keep learning.

As to algorithms, a lot people hate them. But you will always use algorithms. Maybe not the specific ones that we have here, but any non-trivial app is going to have some algorithms in them and some apps will have a lot. Algorithm practice makes you think better. Learning the language gives you the tools, but thinking better helps you build a better app. Two apps can do the same things, but one app may do it smaller and faster. And being good at thinking about these things will help you spot potential edge cases that may break a “less good” algorithm. They are important to becoming a better coder. So, we’re all writing algorithms all the time. The question is are we choosing the best approach. A good coder looks at a problem, thinks about different ways to solve it, and uses his knowledge of algorithms to choose the best approach based on the needs of that app. That comes with practice. Algorithms problems are good at teaching that. Algorithms also show up on a lot of job interviews. Even if not, if you’re relying on your portfolio, if you have a lot of O(n^3) algorithms where the interviewer knows that there is an easy O(n log n) solution, they will raise their eyebrows. But you aren’t expected to be an expert in such things at this point. But I would not advise ignoring it either. Books like Cracking the Coding Interview is also a great resource for things like this.

How much do VanillaJS algorithms affect ReactJS?

Well, you certainly need to know vanilla JS for React. And you have to know ES6 pretty well (which is pretty much vanilla JS at this point, even if it sometimes gets called out separately). React uses a lot of ES6. And anytime you’re dealing with large sets of data and transforming that data, that is algorithms.

Do you need to be an expert at algorithms to start React. No, not really. But in the long run, it will make you a better coder in general which will also make you a better React developer.

Really, there is no such thing as “VanillaJS algorithms”. There are algorithms, and they are language agnostic. I’ve worked with coders at meetups where were doing algorithm challenges and we’re both working in different languages, but we can discuss the algorithm irrespective of the language. Sometimes we even write the algorithm in pseudocode. Once you understand the solution, then you apply whatever language you want. Algorithms aren’t really about learning the language better (although they can help with that if you’re still learning the language) - they’re about thinking about a problem and what steps are needed to solve it.
You already have some basic algorithmic knowledge.

How would you double all the numbers in an array? We could discuss that with someone irrespective of language. That is a basic and simple algorithm with a very simple solution.

But, no, you don’t have to be an algorithm expert to start learning React.

Hey, thanks! Yeah, in that case definitely gonna work on Javascript confidence, especially ES6 syntax while I improve on UI things so I’m not losing footing. You were super helpful! :sparkles::sparkles::sparkles:

Thing #1: You should defintely pursue things that interest you and that might mean deviating from the suggested FCC learning order.

Thing #2: I would argue that algorithms is the MOST important part of writing any sort of application. An algorithm is a defined process for which an input results in exactly one predictable output. That’s what software is made out of: a series of algorithms. Saying that algorithms aren’t important to programming is like saying equations aren’t important to mathematics. The “algorithms” section of FCC is about learning how to turn a human-defined problem into a computationally-defined solution. You have to design a process (an algorithm) that will always perform the correct action for all valid inputs.

1 Like