Message Systems in Programming: Part 2 of 7 – Callbacks

Callbacks

Callbacks are a way be notified of an event and not have to care if it’s synchronous or asynchronous. This could happen immediately or some time later. It’s the “don’t call me, I’ll call you” of programming. It also gives the receiver the power to dictate where they message goes and usually in what scope. In languages that do not natively support blocking, asynchronous programming needs some mechanism to tell you when “things are done”.

Continue reading “Message Systems in Programming: Part 2 of 7 – Callbacks”

Message Systems in Programming: Part 1 of 7 – Introduction

Introduction

Messaging systems are used to communicate in larger code bases by helping decouple classes that need to know about changes or happenings in certain areas of the code. One of Object Oriented Programming‘s core concepts is encapsulation. How you decide to allow objects to talk to each other has pro’s and con’s for each method and it’s good to know your options as you can use many together in effective hybrid approaches.

Continue reading “Message Systems in Programming: Part 1 of 7 – Introduction”

Node, Bower, Grunt n00b Cheat Sheet

Automated dependency management and build systems are often something you spend a lot of time on up front, and never touch again. As such, you sometimes have a harder time remembering the commands + their relevant options since you don’t do it every day. I wanted all 3, npm, Bower, and Grunt printed out on my office wall so I could refer to both for myself, and for others who need a quick start. Specifically for front-end JavaScript developers either inheriting a project, or starting to setup the basics of a build & deployment system for their own project who have no experience with the above 3. Obviously moot point for you Yeoman slingers. In a subsequent post I’ll go over a crash course in setting up your own project.

Download the Node, Bower, Grunt Cheat Sheet

Continue reading “Node, Bower, Grunt n00b Cheat Sheet”

Thoughts on Teaching Object Oriented Programming in JavaScript

I’ve been doing a series of JavaScript videos on YouTube as part of a larger effort teaching Software Development. I find that I create a video 2 to 4 times before actually recording the real one. When describing something, when I find I have to reference a basic concept, I instead stop, and record a video around that basic concept first. This has worked well, and similar to blogging/writing books, it forces you to plug all holes no matter how minute in your knowledge of a subject so you can succinctly describe it in a way that makes sense.

From a programming perspective, teaching advanced JavaScript is quite challenging because it wasn’t designed for traditional OOP concepts and large application design. Many of the more popular languages today are either built on, or support and promote OOP usage. On the same token, once you know OOP you better appreciate Functional languages, parametric polymorphism, and other dynamic language features.

Continue reading “Thoughts on Teaching Object Oriented Programming in JavaScript”