Help Learning JavaScript (Absolute Beginner)

When I did a bit of HTML I liked the ressources on selfhtml.
There is also a section for Javascript https://wiki.selfhtml.org/wiki/JavaScript
BUT I just noticed that it seems to be in German only.

2 Likes

Well, folks, time to learn German. :slight_smile:

1 Like

Adding to all the excellent advice you’ve got already:

Try to use books or resources that teach you the post-2015 Javascript language (also known as ES6 or JS2015 and a number of other names). For instance, I don’t think Crockford’s excellent book has been updated to the new standard.
The Javascript specs were revised substantially in 2015 and the language was brought closer to other higher level interpreted languages (like. e.g. Python). Pre-2015 Javascript has some, let’s say unorthodox ways of dealing with classes and modules that will make it harder to transfer your knowledge to other languages.
Also, I would recommend building a couple of Lego houses before venturing into physics… :wink:

4 Likes

One other thing worth mentioning: the authoratative API documentation is MDN. The link is here: https://developer.mozilla.org/en-US/

More pedantically, the ES6 changes in 2015 didn’t fundamentally alter the way Javascript works. Classes are just a re-skinning of the function based way things worked before. Javascript is still prototype-based, and is still kind of a weird language. ES6 is awesome, and added some really useful functionality, but it didn’t fundamentally change anything.

If you’re venturing into OGS coding, OGS is all typescript, which is slightly different from Javascript. It’s basically Javascript for people that like Java and missed having types and classes. It also has more semicolons.

3 Likes

Plus some sobering advice.

3 Likes

Here’s another cautionary tale, specifically related to the widely used JavaScript go software “EidoGo”

2 Likes

Stay away from this book if you’re a beginner!

Despite the title, this is not a programming book (most of the book is about the mathematical properties of algorithms). It’s very advanced material, completely unsuitable for beginners, and it’s even less readable for modern audiences due to the fact that the examples in the book are written in an outdaded programming language invented by the author himself ~ 50 years ago that nobody else uses.

I highly suspect that smurph is trolling you here.

I personally think that ES6 fixed or improved most of the awful design decisions of older versions of Javascript. Sure, classes are just ‘synctatic sugar’, but they make the object system so much cleaner to use. Javascript with ES6 and “use strict” is actually a decent language.

4 Likes

I am a fan of codewars. It has a bunch of user submitted ‘kata’ in several languages. They are also ranked like go problems (i.e. 25k, 12k, 1d, etc…). It’s almost like tesuji problems for programmers.

When you submit your solution, you also get to see how others solved the same problem and can tag solutions with things like ‘clever’ or ‘best practices.’

Lots to learn there.

3 Likes

You know, I think you’re right. Instead of reading the book and forming an opinion of his own, he should follow your advice and not worry his pretty little head about it .

1 Like

Yeah, that is not a book for beginners. Or programmers, even. It is a book for computer scientists, which is a different beast entirely.

4 Likes

You’re telling a 9th grader who just wants to learn some basic coding to read Knuth.

4 Likes

If you read closely, you’ll find that I’m not telling OP anything. I wrote

I’d recommend you also learn about what a computer is and how it works. One of the most fundamental sources on that would be Donald Knuth’s “The Art of Computer Programming” or Charles Petzold’s “Code”.

To reiterate what I just quoted, just in case you missed it again: I currently cannot think of any sources, books or otherwise, which are more fundamental and therefore explain the process in any more detail than these. If you do, go right ahead and suggest them, I’m certainly not stopping you. I’m not saying it’s the most accessible book, I’m also not saying these were the most fun to read or whatever. In fact there are many more things I didn’t say, so please just stick with what I did say.

The person who “told” OP what (not) to read, actually, is BronzeV. I’m very much against trying to keep people from exploring sources for themselves. Mostly because that’s a terrible way of doing things if you want to foster competent, self-sufficient learners.

1 Like

It depends on who is learning and what the goal is.

For some learning the more technical – and for some, boring – parts about computing (such as memory allocation, pointers, etc) early on will certainly help them understand what’s happening faster. If you want to really get what you’re doing, then JavaScript or other high-level languages will obscure a lot of the details. For these kind of people it might also be helpful to start programming in Basic or C or something.

On the other hand, if you’re someone who just wants to build something cool that can do what you want, even though half of what it does is basically a “black magic box” for you, then it is advisable to start with JavaScript and learn from a Youtube video.

Of course there’s gradations in between these two. :slight_smile:

4 Likes

I think your self quote has removed a quite important piece of context, by omitting the first clause:

If your aim was not to suggest that he read Knuth, then what were you trying to accomplish?

1 Like

Suggesting that someone learn the fundamentals of how computers works before, or even while, learning to code strikes me as akin to suggesting that someone learn the fundamentals of number theory before or while learning basic math.

Learning the underlying theory, in either case, is certainly illuminating for understanding how everything else works, but also unnecessary, and likely intractable. Learn how to code, get familiar with the basics, and then learn the theory behind those basics. You won’t be able to implement any of the exercises, anyways, if you don’t know what a ‘for’ loop is.

4 Likes

As you see in this thread, programmers are an opinionated bunch. You will encounter lots of conflicting advice. Do not get discouraged by it - there is more than one way to do things, and as you gain experience you will develop your own taste. Programming (and debugging) develops your sense of skepticism: a good programmer needs to be open to new ideas, but he also knows that 90% of all advice is crap.

I can’t help you much with JavaScript - I’ve done a couple medium sized projects with it, but do not consider myself a skilled programmer in that language.

My favorite language currently is Go. I use it for most of my new projects, and have found it very easy to maintain over time. Give it a try sometime.

Hope this helps. Programming can be great fun, so hope you will enjoy it!

4 Likes
2 Likes

Again, I appreciate all of the advice I have continued to receive. While I see that some feel like @smurph’s recommendation is not the best, I was serious when I said I will carefully consider all options. It is really important to realize that I love learning just about anything. Mind you I am still very young so many of my conclusions may not be too well formed. However, in my experience many children around my age seem to have a poor motivation for learning and seem to not be very self-driven. I think we need more people in the world like @smurph who want to give that issue a little kick. In other words, smurph’s recommendation may or may not target my objective straight on but he did clearly indicate that that had more to do with computers in general (which, quite realistically, would be a good idea considering I don’t know much about a computer in general). Maybe that book would be a little complicated for me, but in my experience, along the lines of learning, there is never anything that isn’t worth trying. @smurph is trying to be helpful, and everyone, especially myself, needs to be grateful of that fact, so there is no need to get hot. Instead of denying his suggestion, I will take his advice, and surely I will come out having learned something. Let’s all try to follow his example and approach learning the way he does!

9 Likes

I just heard about this site. I haven’t tried it (being a 30+ year veteran of programming,) but you could check it out and let me know how it goes.

2 Likes

Say something ridiculous, try to claim it wasn’t ridiculous, attack people who still see ridiculous as ridiculous.

2 Likes