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.
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.
- What is JavaScript?
- Why is it important?
- Objects, Functions, and primitives
- HTML tags and their JavaScript counterparts
- Browsers and JavaScript (implementation differences)
- What am I? Type determination & speculation
- Inheritence
- Scope
- Context
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
I really want to focus on JavaScript in the browser. I think it will be important for those attending the sessions to be most comfortable with this environment. I plan to keep it simple and primarily use the snippets tab in Chrome dev tools for all code written during the sessions.
I'll probably just start with something simple like
console.log("hi")
and break down what is going on when this command is invoked. For example, what isconsole
? What islog
? Where didconsole
come from? What are two other ways to render output via JavaScript? Each of these questions can easily evolve into many sub-topics that will allow basic concepts to be covered.It's important to keep in mind that these are sessions for non-developers. It would be nice if some of those attending were able to write their own non-trivial web apps after the sessions, but this is likely not a very realistic goal. The primary goals are to make those attending more comfortable with JavaScript, and the dev tools to aid in troubleshooting bugs and perhaps write some E2E or even unit tests using jasmine. It may be useful to cover dev tools in all major browsers as well.
I really think it's important to go slow in these sessions and set realistic goals based on the background of those attending.