What if I just can't do JavaScript?

No matter what language, the thing you have to learn is algorthmic thining and problem solving. You can do this with any language. Some teach it with Python cause it’s supposed to be the easiest for someone new. However, you can learn with w/e language. At university, we started with Java and C.

His problem is not the language, it’s the logic behind it most likely.

2 Likes

With JavaScript I am just in the dark about what exactly the code is telling the browsers to do. When I try experimenting with ideas, it works if I use examples correctly, but if it doesn’t work I don’t know why. I don’t really understand why it works when it works or why it doesn’t when it doesn’t. The basic concepts of the language are too foreign to me.

Do not copy solutions. Start simple, maybe from go back a few challenges from FCC and try to re-do it but without copying any code. Fiddle around with it, use console.log etc

1 Like

I hear you on this …for me it’s functions. There’s just a lot of different ways JavaScript uses functions. So it does not help to start learning a programming language that’s super ambiguous lol… Anyway if you care to read what helped me understand JavaScript better read about functions first:

http://davidbcalhoun.com/2011/different-ways-of-defining-functions-in-javascript-this-is-madness/

1 Like

[quote=“joufflu, post:26, topic:29658”]
There’s just a lot of different ways JavaScript uses functions.[/quote]
Yeah, that’s true and it might be very confusing sometimes.

There is “wat talk” which shows how hilariously weird js can be: https://www.youtube.com/watch?v=wjYlw_VtPtw (starts about ruby and then goes about js).

When I first started learning programming, my first language was C++.

Imagine, it took me several weeks of daily figuring before I started to get the hang of variables and very basic syntax like semi-colons, and way longer to understand functions and later on, structures and classes! If I can, so can you.

You just need to persist and start really small.

Can you understand something like

var x = 10;

If yes, you should be fine. Give yourself time.

Start with syntax and printing of simple data to the screen, then go from there.
Forget about libraries or DOM now.

1 Like

I agree with your views on this question to a point. In principle, a web developer need only understand the “model” and “controller” portion of the MVC paradigm, knowing just enough CSS to hide and display HTML blocks as needed. Once the controllers are finished, these being the server code and most of the JavaScript, a web designer can do his or her magic and develop the CSS to make the page look pretty, and making any additional, minimal HTML changes as required.

I’m not certain about the reality, however. The web designers I’ve known are skilled in JavaScript. I suspect that a good web designer needs to have at least some expertise in JavaScript.

I’m glad to see this thread take off with a lot of good pointers. I’ve been feeling the same way and realized I hit a point where I was working on a JS challenge and total felt an overwhelming sense of blankness.I have spent an entire day working on one challenge.

One thing I want to bring up is learning styles. I have always found that I learn better when information is presented in a spatial or linguistic format. I’m trying to incorporate other resources when I am stuck with Youtube videos about different JS issues and looking for visual/ graphical explanations. For example, I couldn’t grasp the concept of APIs until I saw a graphic filled Youtube vid with an analogy of a waiter taking a customer’s order, bringing it to the kitchen, filling it and bringing it back. That was my simultaneous “aha” and “duh” moment…lol. I’m going to download the Scratch program someone brought up too. Those with the perserverence to figure out and dig deeper are practicing a skill developers have to invoke all the time - troubleshooting, researching. This is hard as **** for me, but I’m doing it every single day.

I also believe that a site like FCC teaches us by not showing us everything but simultaneously has an amazing, supportive group of people who share their time and knowledge. In a society wrapped up with the commodification of everything, there is a grounding sense of humanity to be in a place where people share and help bring others up. Thanks to those here who share the wealth of their knowledge and those who ask questions.

4 Likes

I feel your pain! I struggled with JavaScript for a long time, and my primary income is as a front end developer. In some regards it helped, me being scared of JS forced me to use CSS3 and Sass to solve problems that would have been WAY easier to solve with JS. Which led to me landing some killer Sass with BEM refactoring projects. After enough “F*@K! I know I could solve this problem if I understood JS”, I just dedicated the time and practiced, ALOT. I’d say just stick to it, mix what you’re doing on FCC with sites like Treehouse, CodeSchool, and codacademy.com. The important thing is to DO PROJECTS USING JAVASCRIPT, you can’t get comfortable with something if you don’t use it to solve problems.

6 Likes

I must admit that I was a bit surprised when my designer friends told me that they didn’t know how to code. If I didn’t know people who have been paid to design sites without knowing how to code, my response would have been a little different.

I agree that that the more tools you have (e.g. languages in which you can code) the more competitive you are in the market, and the more likely you are able to market your skills and charge accordingly for them.

Hi,

In my opinion, one can learn anything. You just need the right process and tools that fit your mental structure. If the FCC exercises ant Read-Search-Ask process is not working for you and you just can’t get how JavaScript works, then you need to try a different approach.

I don’t believe knowing how to code is essential, I believe problem solving is. And in Front End, you problem solve with JavaScript code. That’s why there are so many algorithm challenges, becasue to be a great developer you have to solve optimization problems, write the least amount of code to make the site work in the Front End.

In my case, looking at someone else’s code didn’t help, and the FCC exercises didn’t either…I read around online, but still didn’t understand, asked a few questions…explanations I didn’t understand…so, I went out looking for something different. And I found that I needed to learn what’s under the hood of JavaScript (understand why it behaves like it does) and I needed to learn to solve algorithms.

So, I found a course at udemy that took care of the first part, it’s called “JavaScript: Understanding the Weird Parts”. I’m not here to promote Udemy, just saying that this course is there, I took it…an it cleared up a lot of confussing stuff. For the algorithm part, you can take any course of algorithm solving in any language, it’s the though process that counts. However, since I’m trying to learn JavaScript I bought a book called “Data Structures and Algorithms with JavaScript” by Michael McMillan. Unfortunately I could not find a video course about this topic or even an audio book, so I’m reading the ebook.

If you think my process can help you, I recommend you take the udemy course first, and then read the book. Reading the book without understanding basic things like execution contexts and how they respond to closure, or getting a better grasp on First Class Functions, really pinning down the “this” variable or even getting more familiar with the prototype object…could be even more confussing.

I hope this helps! and don’t give on learning, that’s the one thing we as human beings have a knack for…you can learn anything, you just need to find the way to do it and sometimes, the traditional way doesn’t work for everybody. This doesn’t mean that your brain can’t handle it. If you want to be a great developer, then learn to use the tools… (learn = understand) and learn to problem solve.

4 Likes

What a bunch of fantastic replies… Jesus, we should all get together and use all of this energy and just improve FCC’s JS lessons and curriculum… There had to be at least 5 posts I just read talking about how it is lacking/filled with gaps for total beginners. Why not fix this?

@Liberafied I’m gonna try keep this brief because you’ve already been provided with a ton of great resources. Some of the most helpful people on this forum have given you great replies. What I have to add is this:

  1. Get the book “Head First JavaScript Programming”. Don’t ask questions, just get it and read it. And don’t get the Kindle version, that’ll really push you over the edge, get the print version.

  2. Stay the hell away from Eloquent JavaScript. It is not a good book for a programming newbie, period.

  3. JavaScript can be a real pain in the ass. I’ve learned C++, PHP, Python, C#, HTML, and CSS. Out of all of that, JavaScript and CSS are by far the hardest for me. As others said, you’ll get the hang of it all the more time you spend with any language (CSS and HTML don’t count).

  4. If you’re good with CSS, that’s fantastic. As I mentioned, CSS is also extremely difficult and often people who are great programmer suck terribly at CSS. So give yourself a pat on the back for that. I could probably fly through half the JS curriculum here before I could align some crap with CSS half the time.

  5. You can’t expect to study JS on your phone at work, constantly being interrupted, and then shortchange yourself by saying that your brain can’t understand it. That’s like me trying to learn rocket science while riding a roller coaster then saying I’m a moron for not being able to understand it: that’s just silly.

  6. I feel like you’re on the fence of either you’re going to push past this wall or you’re going to give up. From this post, it sounds like you’re leaning more on the give-up side. Before you do, buy Head First JavaScript programming and read it, go watch these tutorials in that series, stop doing the FCC challenges…. They’re going to frustrate the living hell out of you. Hell, I was a programmer before I started them and they even frustrated me. Do all of that, come back and do the challenges in a few months… And for God’s sake, have a beer and chill out. If it’s only been a week, that’s nothing.

PS: JavaScript is not “harder” than other languages, but in my experience, it is harder to find good explanations and tutorials for it. For that reason, stick to what I told you in this post and some of the other recommendations above… Or else you’re going to keep hitting brick walls if you’re trying to do FCC challenges and read Eloquent JavaScript! If all else fails, go buy this course. It would be a great pace for you with very thorough explanations.

17 Likes

Hey don’t worry about it, you’ll be fine, it’ll come! HTML and CSS are very easy to grasp and so that just fills you with confidence, then you get to JavaScript, which for me was my first programming language, and it was so bloody hard to get my head around especially as I don’t have a CS background, so I just got SO overwhelmed, it was horrible and completely put me off, telling myself “I cant do this” (look into fixed mindset vs growth mindset if you hear yourself saying these types of things a lot, I’m so much better for it).

I started coding casually back in April but have mostly spent my time using Ruby. I tried JavaScript with The Odin Project at the very start and I found it so hard, but since completing a few of their Ruby projects(again I found this very difficult to get my head around and still do sometimes) I’m looking at JavaScript in a whole new light. I can read it now at least and get whats going on, but If given a challenge I find it very difficult knowing what to write and where to start, think deer in headlights, but then I have to keep telling myself, I’ve been looking at it less than a month . jQuery makes soooooo much more sense now too, I can write a lot of functions now from memory like its CSS. It’ll come. You might not be as fast as other people but as long as you practice at least daily (I don’t do this and I HATE my past self for it) it’ll come, take baby steps and don’t rush yourself you’ll only overwhelm and burn yourself out.
I found the codecademy to be completely useless for JavaScript, confused me even more. I used a JavaScript app on my phone during my commute, which helped clear up a lot of confusion, I’ve watched quite a few videos aswell. Im also reading a book by Jon Duckett. It’s perfect for visual learners like myself! Perhaps try a language like Ruby? Imo its very simple and easy to follow/understand. May open you eyes and help you understand coding fundamentals better.
I really like this guys tutorials https://www.youtube.com/user/derekbanas/videos. For me they make a lot of sense.

Knowing exactly what to write and where to start comes with a year or so of experience, even then a lot of web devs copy and paste and reuse a lot of code.

Just don’t panic. Go take a shower, take a walk, grab a cup of coffee/tea or even a glass of wine, put on some relaxing acoustics and just read, write, watch and listen. Use Pomodoro, I found this to be a really useful learning method at the start, prevented me from getting overwhelmed and stressed.

And by the way, you sound exactly like I did back in April :stuck_out_tongue: but I’ve pushed myself through it so far and you can to!

3 Likes

I can’t remember what mine was called, but it was very similar to that too. Extremely useful! :smiley: I only tend to use it now if I’m learning, just to keep myself from getting burnt out.

bloomin’ flash :angry: install not working on Ubuntu :angry: will have to look into that later. This looks like sooo much fun haha :smiley: this is awesome for kids and big kids like me !

Yeh definitely :smiley: When I’m doing projects though, a glass of wine is what helps me more :joy:

1 Like

I agree with @PhilJayN that Eloquent JS is not for beginners… I recommend you use something else before that book, because it can be incredibly discouraging once you get past the very first chapters. I felt like being sick at one point it looked so difficult.

I am still a total beginner in JS, but I felt like you a few weeks ago, like I’d never understand it. I couldn’t do any challenge on FCC or any project. I went off and joined CodeWars which present algorithm problems like FCC. Also CodeAbbey. Try your best at the exercises and Google it or use StackOverflow if you really need help. Follow coding tutorials on YouTube, and eventually you’ll start understanding it.

Now some of the simplest exercises that stumped me seem easy. I’m sure with more practice, one day I’ll feel the same way about the more difficult exercises! Keep at it, no one started off great at something. :slight_smile:

Go for HeadFirst books if you like how they explain things (I didn’t like them at all). Jump Start JavaScript from SitePoint is a good starter too.
Just don’t give up. Read as much as you can on the topic. Read only those that explain things in a way you can understand if you pull through next 50pages (because giving up before thing is explained to you in a few next pages is dumb).

I know I did struggle a few years back, when I was learning programming (it was C/C++), but now - when you read a lot, watch a lot… It just flips to right places in your mind. One book might not be enough, but your brain will put those puzzle pieces together and after a while - it will work :slight_smile:

And Eloquent JavaScript is the best - but after you get the basic concepts and can code some little things by yourself. Leave it for later.

1 Like

Indeed, JavaScript can get extremely complicated. But on one hand, you only have to know what you actually need. And once you understand the basic concepts, it will be easier to move further, and… it’s quite fun. I didn’t know much JavaScript until I figured I could write my own user scripts for an online game. I just wanted to reload my energy by refreshing the page and clicking a button.

The biggest problem with some of us is always having to remember that we’re not learning programming for the sake of knowing programming, but rather to do something useful, or something cool for ourselves or someone else. A big problem as well, is the fact that we set some very high expectations from ourselves, by comparing what we know to what others know. But as I said, you only have to learn what you really need. And of course, take your time with it. It won’t happen overnight, so don’t force it.

Here are some programming basics.

What is a variable?
A variable is like a bank account: you put some money in it, you can take money from it, and you can add some more. Basically, a variable is a container for a value that you need to change every once in a while.

What is a constant?
A constant is like a banknote. It has a value but you can’t change it. That’s like “Pi” in a math formula: Pi is just a label for 3.14.

What’s the point of variables and constants?
There’s really no point in using them if you only need those values once, but if need to perform multiple operations with them, then it’s worth storing the values in “containers” so you don’t have to change „the formulas” - you change the value once and everything will be processed according to the defined value.

What motivated me to learn JavaScript and jQuery was my need to spend less time going back to my game’s page for a trivial task, so that was my small goal. If you think JavaSript is not fun, then you’re perfectly right. But if you’d like to learn JavaScript, find something fun to do with it, start as simple as possible, and don’t give a rat’s ass about how much others know because that’s completely irrelevant. All you have to care about is to have your share of fun while learning one bit of the puzzle at a time. For some reason I believe that should work for most people. :slight_smile:

4 Likes

I tried to read Eloquent JavaScript early on as well and found it way over my head for starting out. I kept cycling through books and online tutorials and almost gave up. Nothing made sense at first, but little by little, there were these little flashes where something would make sense. After 9 months or so, I still have a lot to learn, but I’m really feeling comfortable with a lot of JavaScript. Just like being exposed to a new language and picking up on words and phrases little by little. One thing that has helped me is to take my time and never move on until I at least partially understand something, or can at least play around with some code and get some sense of how something works, even if I don’t totally get it. I can tell when I look at other people’s solutions that quite a few people just copy and paste something and get it to work, but they don’t really have clue what’s going on. It’s much better to be in your situation and realize that you’re not understanding something then to think you’ve learned something when you haven’t!!

We all learn differently, but one book that made things ‘click’ for me is ‘DOM Scripting’ by Jeremy Keith. It may be a bit outdated, but it really made the connection for me between HTML, CSS, and JavaScript, and explains things in a way that are very concrete so I could make a mental connection between the words & symbols in the code and the things I can actually see and do on a web page.

2 Likes

I am very “math special” so I completely understand the frustration you may have with JS. I too have only just been working with HTML & CSS, trying to build my foundational understanding of how they work. I’m gradually moving along to SASS & Bootstrap, etc…and I admit I’m not excited about JS. While Free Code Camp is an excellent study plan, that is what it is, a study guide giving you a study pathway. It is up to you to take your learning further beyond the concepts you learn here. For example, in order to tackle my JS issues, I’ve signed up for a few online MOOCs and have followed a few developers on YouTube who focus on teaching the basics of JS to a beginner. Granted, everyones teaching style (as well as learning style) differs, hence why I have several different sources. I would recommend plugging through a few beginner level courses before giving up or assuming you just can’t learn it. And don’t be put off by others who seemingly pick this stuff up quickly. Some people are just zen that way, others work at it very hard. Best of luck!

1 Like