Outpost Universe Forums

Off Topic => Computers & Programming General => Topic started by: Hooman on October 21, 2017, 05:19:50 PM

Title: Online JavaScript Course
Post by: Hooman on October 21, 2017, 05:19:50 PM
There is a free Intro to JavaScript (https://www.udacity.com/course/intro-to-javascript--ud803) course on Udacity, in case anyone is interested.

It's a beginner course, for those with no experience programming. I've noticed from time to time there are people on the forums that want to get a start in programming. Maybe some people will find it useful. The syllabus seems to cover all the programming basics.


Disclaimer: I haven't actually done this course myself. I only read the syllabus and skimmed through a few sections. I've done some of the more advanced JavaScript courses on Udacity though, and found the quality of those courses to be excellent.
Title: Re: Online JavaScript Course
Post by: leeor_net on October 22, 2017, 05:22:53 PM
I like the idea of learning more about javascript. There was a time when it was basically bullshit, and I still have that feeling about it but I admit that it's an old way of thinking and harkens back to the days of the early internet and internet browsers.

That stated, I've been wanting to learn more about closures... it's apparently JS's way of emulating encapsulation which is interesting to me. Plus I'd like to learn more about web scripting/development and JS/PHP/HTML5 seem to be the big three not including the various API's like AJAX, NodeJS, etc.
Title: Re: Online JavaScript Course
Post by: Hooman on October 23, 2017, 05:11:38 PM
Quote
There was a time when it was basically bullshit, and I still have that feeling about it but I admit that it's an old way of thinking and harkens back to the days of the early internet and internet browsers.

Hah! Yes. I feel you. I still get a bit of that at times.

JavaScript really has developed over the years. Especially with all the work done on web standards. There have been lots of new useful core APIs added to browsers.

More so, if you learn about the new ES6 features, they've really buffed up the language. It's really starting to feel like a full and proper modern language now. Things that felt fundamental, but were missing for years, have finally been added. Like a proper module system. They've also added a class keyword, so you can design classes much like in other programming languages now. Granted, the language supported similar before, using objects, prototypes, and closures, though it looked much different.

JavaScript is definitely the way to go for modern web games, or even office style apps within the browser. Think Gmail and Google Docs. Heck, you can even build offline web applications now. Bookmark the page, and return to it, even if you're not connected to the internet. Very useful for programming documentation.



Indeed, closures (https://en.wikipedia.org/wiki/Closure_(computer_programming)) are very interesting.

C can't have closures, since C doesn't allow nested functions. It allows nested structs and classes, and you can nest those within a function, but you can't nest a function within a function.

Pascal has nested functions. The inner function has access to the local variables of the enclosing function. I had to implement such behaviour in a compiler course before. Very neat, and although not hard, was a bit strange to reason about. Each stack frame has two parent pointers, the dynamic scope and the static scope. That's how you keep track of the enclosing function, even in the case of recursion. However, Pascal does not support calling a nested function after the enclosing function has exited. Hence Pascal also doesn't have closures. Essentially, Pascal still used a stack for the function's activation records (stack frames).

One way to support closures is to make activation records dynamic by storing them on the heap. Less efficient, but more flexible, and allows a function's variables to live past the point at which it returns, allowing any nested functions (perhaps returned to the caller or passed to a global data structure) to still be called and access those variables.
Title: Re: Online JavaScript Course
Post by: lordpalandus on October 23, 2017, 05:18:17 PM
Just a quick chime in:

You could bookmark a page and return to it, offline, for a long time now. I remember that being a feature of Netscape Navigator back in the late 90s.
Title: Re: Online JavaScript Course
Post by: Hooman on October 23, 2017, 05:33:09 PM
Err yes, I suppose so, now that I think about it.

Well, now there's new technology to do it! :D