Where to learn more advanced Javascript?

javascript

#1

So I've just completed the JavaScript course, and I understand all of it, but I know that there is more to JavaScript then just what is in the course. Where is it that I can learn intermediate or advanced JavaScript? For example, I know that JavaScript can be used in Unity 3D, but I don't know how. Any help would be appreciated, thanks.


#2

"more advanced" can be expressed as 'more finely tuned' in a sense. All of JavaScript is present in the browser, but we can focus our attention on one area or another and drill down into the language usage around that area. Are we building behavior into webpages? Or building interactive web apps? Or building web API's? Or building complex graphical interfaces?

For many 'advanced' implementations there are libraries designed to support their needs specifically, and these are in depth subjects in their own right. To advance yourself in your studies, pick a topic and drill into it. Each step along the way you will be adding to your tool kit. In the learning phase, this is probably the better approach for a self-learner. Remember to keep up your review of concepts and constructs. This stuff never gets old, but it does get forgotten.


#3

Hmm... interesting. My main problem is that I have a lack of information about what I want. I know that Unity 3D can use JavaScript to write games, but I am not sure how. I know that JavaScript works with strings, integers and boolians, and I also understand how OOP works, but what I don't understand is how to make interfaces and work with other forms of media like images and videos and graphics and how to present them. I know that JavaScript is mainly used on the web, and I know how to make simple word based programs, but I don't really plan to work on the web too much, though it would be a good skill to learn. I know about the AngularJS course on Codeacademy, however, it requires an intermediate skill level, and although I've done the JavaScript course and apparently the AngularJS course is JavaScript based, I'm pretty sure it requires more than just JavaScript since I got stuck on the second lesson. The problem is, it doesn't specify what I need to know to do the course. Is it a good idea to learn HTML and JQuery, since I mainly want to design games on Unity 3D using JavaScript at the beginning and then C# afterwards. I also want to learn Java and generally design programs, not so much as working on the web. I guess I could look up Unity JavaScript tutorials to learn more in depth JavaScript, but it would help if I came to the table knowing how to use JavaScript the way I want to. Also, I don't know what to do with my code. Say I write some JavaScript code in notepad, what would I do with it then? How would I convert it into a program or upload it to use on the net. I want to become skilled at all sorts of coding, and any help along the way would be appreciated. Thanks.


#4

It would be helpful if you were to throw yourself at HTML and CSS, then a get a feel for writing JavaScript that works in a web page. As you progress, add in jQuery once you are more comfortable with HTML and CSS, especially CSS. Learn to master form controls, input validation and data manipulation. The browser is a perfect environment to explore these concepts.

I personally don't think it is a good idea to jump all over the map if you are still fledgling in any of the above. Keep exploring ways to incorporate what you learn and build upon that until you feel confident across the board. More opinion, anyway.


#5

Good idea. I'll learn HTML & CSS, and then Java to work with more difficult languages. Oh, and what will learning JQuery help me with? Since on the Codeacademy page it claims to teach how to make a website interactive. Maybe it will help on teaching me user input and interactivity? Remember, my main aim is to learning how to make games and programs. In fact, the only reason I actually started the JavaScript course was before I did my proper research, I was mistaken between JavaScript and Java, which was a very, VERY nooby mistake. When I did learn, I was already half-way through the course and decided to finish it. Then I learnt of how Unity 3D used "UnityScript", basically JavaScript, to make games. Of course, C# is a much better language to use to make games, but I only intend to learn a more complex language like that later. Instead, I only intend to learn more webpage based languages to brush up on my coding skills. However, since I learned that you actually can make games with JavaScript, my only question is how. I want to make basic games on Unity while I learn the rest of the coding languages, so as to learn how to use my coding in real world situations. What I don't know is how to work with anything other then what I learnt of the course. I do not know how to make anything that is not text based. Where can I learn this, because I do not know where I can without having to go through the basics again. I will do HTML & CSS, and Java, but I do want to learn how to use JavaScript with images, graphics, interfaces, a 3D realm filled with polygons because I have no idea what so ever. Also, to repeat an earlier question, say I am writing a program from scratch, what can I do with the code when I've written it. Thanks.


#6

Once you have a better idea of how a document is structured (HTML) and styled (CSS) you'll be better equipped to take on DOM manipulation, which is where script comes in. Take the time to drill into the basics and do lots of research and reading, and experimenting. Set up a sandbox somewhere, but also use your own local machine as well so you can establish a pseudo-server environment off line. Again, with confidence growing as you progress, we can visit this question some more a little later.

I've invited Zeke to the conversation in the hopes he will shed better light on the gaming side of things (being much younger than me, and I suspect more experienced in this area).


#7

Thanks for inviting me into the conversation @mtf.

@huzman45 Re:

C# is a much better language to use to make games

That's pretty debatable :)
Webapps/games are pretty much cross-platform. C, C#, C++, etc., need to be compiled different ways for different OSes. And phones have their own languages, not just special compilers. So JS does have advantages to C# :)

However, since I learned that you actually can make games with JavaScript, my only question is how.

Looking at some of the options here, then searching "[game engine] beginner guide" should be a good start.
And also, familiarizing yourself with <canvas> first would be a good idea, if you're going to be making games with JS.

I've never done any game developing myself, so I'll only be able to help you so much.


#8

Cool, HTML and CSS first, then everything else, got it! BTW, I've only read up a very general article on DOM, what actually is it? Oh and everything else you said... yeah I have no idea what it means, how to do it and what to do with it. Remember, I am starting from the bottom. A quick explanation would be helpful, thanks!


#9

Yeah, I know what you're saying. When I said C# was better for video game making, I didn't actually mean it. I kinda just shot my mouth of there. :stuck_out_tongue:

For a game engine I've already chosen Unity 3D, which can use JavaScript and C#. See, the main thing I asked was that because I only knew basic JavaScript from the Codeacademy course, I have no idea how to use JavaScript to make anything other then a text based program, like a calculator or a word processor (and even then, only basic ones that I could only run on Codeacademy since I have no idea how to make an interface, add buttons, and export my code as the program itself). In fact, only now have I even heard of the tool! What I'm asking is where is it that I can learn this from, so that I can start making basic games on Unity. I'll also learn other languages along the way, like HTML, Java and C# (C# so that I can make even more games on Unity) while I'm at it, but I want to these two side by side. Links and redirection to different tutorials, and info would be much appreciated! :blush:


#10

DOM means Document Object Model. Everything revolves around the document object, which in memory is a tree like structure consisting of array like element nodes. The tree is constructed by the browser as the document is parsed and read in. It is this structure that we are able to traverse with node selectors in CSS and JavaScript.

A selector is another term for element node. Manipulation is all carried out by selecting (targeting) nodes in the tree and once collected, carrying out the change. These changes are instant since they are written directly to the DOM.

It is imperative that you get a real good grip on HTML, and then CSS, and finally JS. Work toward combining all three in your projects. Once you can do this successfully (takes lots and lots of practice to make it second nature) then you will be ready to embark on the larger mission of learning the CANVAS, SVG and all the coding methods centered around the graphical interface. Take the time, and put Unity3D on hold, for the moment. There is a lot to cover and it will take time, rest assured.

If you work hard you could be looking at all of this from a very different perspective come the new year. Happy coding!


#11

I did a fair share of "game developing" in high school using C#, and C++. I can say honestly there are perks to using the system, and while you can manipulate it to incorporate XNA (Xbox / Zune programming) which can be utilized through things such as visual studio. I cannot stress how important "platform utilization" matters. JavaScript is so much more open to browser based apps. While most Mobile devices are unable to run JavaScript based apps this language is very easily usable for most computer systems including PC, Mac, and Linux, since the language can be programmed right into the webpage of a site.

HTML is the backbone or the skeleton.
CSS is the Flesh and outside beauty.
But JavaScript is all of the organs, and brain of the site.

This can be switched with many other languages such as PHP, Ruby, Python, and so on. Each having their own distinguishing characteristic making each a viable resource based on what kind of website you're shooting for.


#12

Thanks for all the help! So does the AngularJS course combine different code? Is that why I was confused? It makes sense now! So I am currently doing the HTML & CSS course. Following your advice, what is the next course I should do? Should I take the AngularJS code, or should I learn another language? I am prepared to put Unity on hold and work hard on HTML but I need the right guidance of where to go after I've done the basic course. I don't have enough knowledge to know which courses to do, so I need some basic guidance. Thanks!


#13

Makes sense, but as I'm not really shooting for web design it isn't of much importance to me. I'm only learning web skills and how to build websites, web apps and web games so as to further my knowledge on how to work with offline projects such as programs and video games. I don't intend to start making games on Unity until I've learned the basics and how to actually make games on Unity. But I do need to know where to find the courses to learn, and where to get the resources I need. Thanks for the help! :smile:


#14

There is a smorgasbord of application programming languages and plug-ins out there, and it all looks so tempting, especially the good bits. However, this is not the time to run madly off in all directions, else nothing gets learned, and more importantly, nothing becomes second nature. If we learn by rote, we live in a black and white world; if we learn by exploring and experimenting, we live in a very colorful and vibrant one.

Patience, diligence and hard work, and especially focus are the virtues of learning anything well. There will be plenty of time later for spreading your wings. This does not preclude gathering resources and learning materials on the whole range of subjects so we have them when the time comes. Just stay rooted in the basics until they become integrated in your thought process.


#15

Okay, good plan. I plan to come back to this topic soon, but for now I will do as you say.

Thanks for the help and Happy Coding!