Skip to content

Instantly share code, notes, and snippets.

@rnicholus
Last active August 29, 2015 14:01
Show Gist options
  • Save rnicholus/9c02b2da9351923e4782 to your computer and use it in GitHub Desktop.
Save rnicholus/9c02b2da9351923e4782 to your computer and use it in GitHub Desktop.
JavaScript 101

Why?

More and more of our application code will live in the browser over time as JavaScript, and perhaps our server code will utilize the same language as well. Luckily, it's pretty easy to learn JavaScript. JavaScript is becoming more central to web applications.

With this in mind, it will be beneficial for non-developers to gain a better understanding of this language, and how it is used in the browser and on the server. We can start out simple, and work up to the level of proficiency required to aid in debugging web app issues, writing automated end-to-end tests. Perhaps you will find yourself developing a web application of your own.

Course Outline

I hope to hold 1 - 1.5 hour sessions every 2-3 weeks, depending on my schedule. Perhaps other developers can assist as well, schedule permitting.

Week 1: "Hello, Widen": Basic Concepts

  • What is JavaScript?
  • Why is it important?
  • Objects, Functions, and primitives

Week 2: JavaScript & the Browser

  • HTML tags and their JavaScript counterparts
  • Browsers and JavaScript (implementation differences)

Week 3: Extending Objects & What is this?

  • What am I? Type determination & speculation
  • Inheritence
  • Scope
  • Context

Learning/Session Tools

All tools should be web-based, simple to use but powerful, useful for collaboration and after-session reference, and demonstrative of the power of JavaScript.

  • GitHub: to hold/serve code (in a public repo) from sessions for reference, and for participants to ask questions and request future topics
  • codio.com: real-time collaborative coding, no-nonsense web-based IDE, and because it's cool
  • slid.es: for (public) slides to drive the session content
@feltnerm
Copy link

Suggestion:

Events

  • What are events? What events are possible?
  • How to deal with events
  • Event bubbling

Asynchronous APIs

  • XMLHttpRequest
  • Handling Failure
  • Promises

@feltnerm
Copy link

Double vs. Triple Equals

Browser Quirks

Talk about the major differences between the browsers, and things to keep in mind.

  • IE8
  • IE9
  • Mobile
  • ... ?

@rnicholus
Copy link
Author

Good stuff. Events and Async APIs are topics with some overlapping concepts. I'm finding that I actually have less time to plan all of this out than I imagined. So, I'll probably just plan one session at a time. I'm going to start putting together details for Week 1 shortly. If you have any suggestions for week 1 that aren't already addressed, let me know.

I'll probably use a public slides.com for the sessions. The slides, as per usual with my presentations, will contain cues, and I'll fill in the details via speaker notes and on-the-spot train of thought.

@rnicholus
Copy link
Author

Slides will be here

@rnicholus
Copy link
Author

Per @feltnerm's suggestion, I think I'll create a Github repo to host the session notes, code (,etc?). It can also be used for the participants to ask questions regarding the topics and suggest upcoming topics.

@rnicholus
Copy link
Author

I'd like to move all of this over to the repo I created for these sessions. I'll continue to port stuff over from here, but I'd like any further collaboration/planning to happen in the repo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment