JavaScript: Difference between revisions

From Noisebridge
Jump to navigation Jump to search
No edit summary
No edit summary
 
(24 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= JavaScript Class =
= JavaScript Class =
By [[User:Garrett|Garrett Smith]]
'''Teacher:''' [[User:Garrett|Garrett Smith]]  
Held Wed and Friday, 7-9pm, Sunday 9:30 AM
[https://twitter.com/xkit @xkit] (follow & mention).
'''LinkedIn:''' [http://www.linkedin.com/profile/view?id=3600638&goback=.nmp_*1_*1_*1_*1_*1_*1_*1_*1_*1_*1&trk=spm_pic Garrett Smith] (endorsements welcome)
'''Web:''' http://dhtmlkitchen.com/
'''email:''' dhtmlkitchen at gmail.com


'''Twitter:''' [https://twitter.com/ @xkit] (follow & mention).
'''When:''' Friday: 7-9pm, Sunday: 10-11:30 AM


'''LinkedIn:''' [http://www.linkedin.com/profile/view?id=3600638&goback=.nmp_*1_*1_*1_*1_*1_*1_*1_*1_*1_*1&trk=spm_pic Garrett Smith] (endorsements welcome)
'''Where:''' Noisebridge, [[Getting_Here| 2169 Mission St, San Francisco]]


'''Web:''' http://dhtmlkitchen.com/


dhtmlkitchen at gmail.com


===Course Overview===
===Course Overview===
This course covers the fundamentals of the EcmaScript programming language ([http://ecma-international.org/ecma-262/5.1/ ECMAScript spec]), the DOM ([http://www.w3.org/TR/DOM-Level-3-Core/ DOM 3 spec]), and object-oriented design. It is intended for experienced web developers and programmers of other languages, however all are welcome.
This course covers the fundamentals of the EcmaScript programming language ([http://ecma-international.org/ecma-262/5.1/ ECMAScript spec]), the DOM ([http://www.w3.org/TR/DOM-Level-3-Core/ DOM 3 spec]), and object-oriented design. It is intended for experienced web developers and programmers of other languages, however all are welcome.


<h4>List of Classes</h4>
<h4>List of Classes</h4>
Please read the [[JavaScript/Notes/|list of classes]] and each lesson's linked notes to decide what you want to study.
Please read the <b style="background-color:#ffffcc;padding: 2px">[[JavaScript/Notes/| list of classes ]] </b> and each lesson's linked notes to decide what you want to study.
 


=== Resources ===
=== Resources ===
Reference specifications are used extensively. These are linked from the [[Web Development Resources#JavaScript|JavaScript resources]] page. Read them daily.
Reference specifications are used extensively. These are linked from the [[Web Development Resources#JavaScript|JavaScript resources]] page. Read them daily.


== Behavior ==  
== Behavior ==  
Ask Questions. Interact.  
Ask Questions. Interact.  


Read the [[JavaScript/Notes/|individual classes]]. Each class lesson is chosen by students at the start of class and will adjusted to meet the students' needs. Get involved! Noisebridge is a [[Do-ocracy]].
Read the <b style="background-color:#ffffcc;padding: 2px">[[JavaScript/Notes/| individual classes]]</b>. Each class lesson is chosen by students at the start of class and will adjusted to meet the students' needs. Get involved! Noisebridge is a [[Do-ocracy]].
 
 
== Motivation ==
 
While there might be many reasons to come to JavaScript class, the most common reason is to learn. And generally, that driven by the potential to increase earning potential.  


== EcmaScript Programming Language ==
Programming is neither healthy nor enjoyable. So students of casual interest will probably not see much advancement is this class. However students who direct sufficient anger to the task of learning JavaScript may excel enough to attain an increase in professional level of skill.
* Property accessors, <code>[]</code> and <code>.</code> <nowiki>[[Get]], [[Put]]</nowiki> and the Reference type.
* Prototypal inheritance
* typeof operator
* Arrays
* Primitive types
* Functions, callbacks, "I'm done", Event Notification System
* Scope chain and identifier resolution, Closures
* Entering an execution context (this)
* <code>call</code>, <code>apply</code>)
* <nowiki>[[Construct]], [[Call]]</nowiki>
* Literal syntax [], {}, /a/i RegularExpression literal


===Patterns and Object Oriented JavaScript===
Front End Engineering is not difficult, but it is hard.
* Decorator pattern
* Custom Events
* EventRegistry
* Factory, Abstract Factory
* Strategy/delegation - Example: APE StyleTransition object.


=== Resources ===
[[Web_Development_Resources#JavaScript|JavaScript Development Resources}]


== Projects ==
== Projects ==
We learn by doing. Get involved!
We learn by doing. Get involved!
* Porting the FAQ to Github [https://github.com/comp-lang-javascript/ Get involved]!
* Porting the FAQ to Github [https://github.com/comp-lang-javascript/ Get involved]!

Latest revision as of 14:57, 10 June 2014

JavaScript Class[edit]

Teacher: Garrett Smith   @xkit (follow & mention). LinkedIn: Garrett Smith (endorsements welcome) Web: http://dhtmlkitchen.com/ email: dhtmlkitchen at gmail.com

When: Friday: 7-9pm, Sunday: 10-11:30 AM

Where: Noisebridge, 2169 Mission St, San Francisco


Course Overview[edit]

This course covers the fundamentals of the EcmaScript programming language (ECMAScript spec), the DOM (DOM 3 spec), and object-oriented design. It is intended for experienced web developers and programmers of other languages, however all are welcome.


List of Classes

Please read the list of classes and each lesson's linked notes to decide what you want to study.


Resources[edit]

Reference specifications are used extensively. These are linked from the JavaScript resources page. Read them daily.


Behavior[edit]

Ask Questions. Interact.

Read the individual classes. Each class lesson is chosen by students at the start of class and will adjusted to meet the students' needs. Get involved! Noisebridge is a Do-ocracy.


Motivation[edit]

While there might be many reasons to come to JavaScript class, the most common reason is to learn. And generally, that driven by the potential to increase earning potential.

Programming is neither healthy nor enjoyable. So students of casual interest will probably not see much advancement is this class. However students who direct sufficient anger to the task of learning JavaScript may excel enough to attain an increase in professional level of skill.

Front End Engineering is not difficult, but it is hard.


Projects[edit]

We learn by doing. Get involved!