JavaScript Training
JavaScript Workshop : Fundamentals in Action
The text used for the workshop will be JavaScript Enlightenment, by Cody Lindley (based on JavaScript 1.5, ECMA-262, Edition 3). Participants should purchase their own copy of the book from http://www.javascriptenlightenment.com/
This text was selected since it both fits well into a four week course and also concisely covers the fundamentals of JavaScript. The book gives clear and simple examples of key features and nuances of the language, including scope, closures, prototypal inheritance, functions, constructors and objects. The presentation of precepts do build upon one another and provide pragmatic view of concepts needed for object-oriented programming with JavaScript.
This is not an online course or video instruction, but a hands-on training series of workshops. We will meet in Santa Ana, CA right of the 5 freeway. Participants are expected to read the chapters in the text that will be covered prior to each session, and show up with questions in hand. Participants will need to bring a laptop to write code during the workshop.
To completely grok the concepts Cody presents in his book, the workshop will include some pragmatic development of a module using test-driven programming techniques (writing unit tests which are based on the fundamentals in the book). Cody provides plenty of working code examples using jsfiddle.net which demonstrate concepts in the text, so the workshop will emphasize putting these concepts into action. AJAX is not covered in the text, and commonly used. So, our pragmatic study of the concepts will tackle using AJAX as part of implementing a JavaScript module.
The workshop will span four (4) weeks, each meeting will include four (4) hours of training, each meeting covers two (2) sessions with 10 minute break in-between. To keep the learning environment small enough for personal instruction, no more than six (6) participants will be enrolled per workshop. The total training time is 16 hours. The cost is $889 and the training comes with a full guarantee. If a participant both reads the text and attends all 8 sessions yet still lacks fundament understanding of JavaScript then he/she may enroll in a second workshop at no additional cost.
To summarize the workshop objectives, the primary focus is in comprehension of key JavaScript fundamentals, hence the use of the text, JavaScript Enlightenment. To exercise the fundamentals the workshop will include plenty of coding; specifically writing unit tests. And to put the the fundamentals in action, using an unobtrusive style of coding, participants will program behaviors encapsulated into a module (which is a common design pattern).
Who Should Attend?
Participants who have used some JavaScript techniques; e.g. using a library like jQuery to add behavior to the HTML/CSS pages. Participants will benefit by learning and exercising the fundamentals of JavaScript in this workshop series. Ideally, anyone looking to move from a beginning level to an intermediate level JavaScript programmer. Some understanding of programming is needed with respect to object-oriented concepts.
This workshop series targets anyone doing the work of a web developer who would like program with JavaScript, and do more than just adding behaviors or plugins to HTML/CSS pages with jQuery. Understanding of HTML and CSS is expected as well as some background using JavaScript. This is not a workshop for intermediate/advanced JavaScript programmers. For intermediate programmers, I would recommend a quick read of Cody’s book. This workshop is for developers who would like to learn to author their own modules and also to learn QUnit, adding a test-driven development workflow to their skill-set (see slides from talk on using QUnit - http://skript.co/talks/qunit/).
Reasons to Attend:
- Solo developer pounding head on desk.
- Would like to learn in a group instead of Google search results on stackoverflow.com
- Work for an organization embracing HTML5 and leaving flash behind
- Transitioning from Web design to development.
- You use open source code for projects and need to customize/enhance the behaviors
- √ All of the above
Workshop / Course Schedule
- 4 weeks, meeting on Wednesday evenings from 6:30 pm to 10:30 pm.
- Meeting dates in 2011 : Sept. 14th, 21th, 28th, and Oct. 5th
Cost of the Training
The course of workshops is designed for a small group or even private tutoring. The price of the 16 hours of personal training is $889.00 USD. A deposit of %50 is required to register and the remaining 50% due at the second workshop. As a bonus for participants who register a friend - the cost for two participants is $1,334.00 (buy one get one half-off). Also as bonus to participants who spread the word and the result is a sold-out workshop (6 total registered participants)… when teh workshop has all 6 seats filled, all registered participants will get 30% off their remaining tuition that is due at the second workshop. For registering groups of 3-6 please inquire for pricing. The tution fees are not refundable after the first workshop, cancellations prior to first workshop will be refunded with the exception of small cancellation fee of $29.00 USD.
TO REGISTER - Call Bill at 714-512-2215; or email to bill at skript dot co (hint: bill [@] this domain) You will be sent in invoice to pay course tuition with PayPal payment or credit/debit card.
About the Instructor:
Bill Heaton works as a senior web developer in the business of ecommerce. During his career, he transitioned from print to the web, and also from design to development. For the past 6 years Bill has focussed on front end development, primarily Web standards, HTML, CSS, and JavaScript. He has worked on projects ranging from volunteer budgets to hundreds of thousands of dollars. He is a technologist with a passion for learning and experimenting with emerging standards, e.g. HTML5.
Some of the projects Bill currently works on:
Projects Bill has previously worked on:
- http://www.microsoft.com/mac/trial (global trial for software downloads)
- https://www1.downloadoffice2010.microsoft.com/usa/registerkey.aspx?ref=backup (OEM tools for MS Office 14 software)
- http://windows7.digitalriver.com/store/mswpus/en_US/DisplayHomePage (student promotion to buy Windows7 for $30, and is expired)
Bill’s personal blog - http://pixelhandler.com
Course breakdown
Reading Plan by Session
- Chapter 1 JavaScript Objects
- Chapter 1 JavaScript Objects
- Chapter 2 Working with Objects and Properties,
Chapter 3 Object() - Chapter 4 Function()
- Chapter 5 The Head/Global Object,
Chapter 6 The this Keyword - Chapter 7 Scope & Closures,
Chapter 8 Function Prototype Property - Chapter 9 Array(),
Chapter 10 String() - Chapter 11 Number(),
Chapter 12 Boolean(),
Chapter 13 Null,
Chapter 14 Undefined,
Chapter 15 Math Function
(see table of contents at : http://www.javascriptenlightenment.com/)
Coding Objectives by Session
- Introduce module pattern, write unit tests.
- Add constructor to module, code to pass unit tests.
- Add object’s methods and properties to module, write unit tests.
instantiate module’s objects and write unit tests. - Add some utility functions for use in the module, improve module’s constructor and write unit tests.
- Add namespace to module and utilities to reduce potential conflicts, write unit tests.
update the module to be surethisis what it is meant to be, write unit tests. - Wrap module and utility methods in closures to protect scope, write unit tests.
Extend the module’s prototype for additional functionality - Cache snippets of HTML generated by module in array, write unit tests.
Update unit tests to enforce use of string primitive values not string objects. - Update unit tests to enforce numbers used in module.
Based on unit tests add enforcement of primitive values to module.
Update unit tests for null use.
Update unit tests for undefined use, finish module be adding custom errors using try/catch.
Add some randomness to a method in the module using Math functions.
Screencast: Introduction to Workshop
References
Text
Online learning
- http://eloquentjavascript.net/contents.html
- https://developer.mozilla.org/en-US/learn/javascript
- http://en.wikibooks.org/wiki/JavaScript
- http://code.google.com/edu/submissions/html-css-javascript/
- http://bonsaiden.github.com/JavaScript-Garden/
- http://javascript.crockford.com/
Learning Tools
JavaScript / ECMA-262 Reference