Skip to content

Repository for collaboration on the project for the Javascript Allonge group 2014

License

Notifications You must be signed in to change notification settings

austinstorm/js-allonge

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

js-allonge

Repository for collaboration on the project for the Javascript Allonge group 2014

The aim of the group

To gain a better understanding for two things - javascript and functional programming. I don't really like to call this a 'class' or a 'course', although it'll be structured somewhat like that. The main reason is that I'm in it for my own education, too. I want to learn from you guys, as much as I want to share what I have.

Javascript has a reputation for being all kinds of things. It's a badly written, inconsistent language (watch the first video. It's the best), but also universally supported as the language of the web. That's great, since that gives you a universal runtime for your programs, and you only have to worry a little bit about cross-browser compatibility. Javascript is super valuable to know well. If you can write good vanilla js, you can write lightweight and performant websites, prototype and code quickly, write your own tools, dig into other people's websites regardless of what library/framework they use, and a whole bunch of other things. Useful.

The thing that makes me even more excited about this group is functional programming. There are a whole bunch of nifty programming paradigms, among which procedural is probably the one most new programmers are familiar with - and is generally easiest to follow, and Object-Oriented is pretty popular and very powerful. Every paradigm breaks down at some point, though (including functional) - large procedural programs become very complex very quickly if not mixed with other paradigms; the object-oriented paradigm can't gracefully handle some types of data structures, and functional programming has problems, largely having to do with not handling side-effects well. But that's what this is all about! Many expert programmers/popular bloggers suggest that you're not a 'real' programmer if you don't know how to write functional programs. Who knows what that really means, but it is true that functional programming trains you to think differently about problems, and gives you a lot of great tools to write elegant, performant solutions to those problems. From my amateurish dabbling in the paradigm (I wrote a lisp-ish interpreter in javascript last year), I've developed quite a liking for it.

A big part of my motivation for starting this group is that I want to have fun with programming. I've always loved coding, but the beautiful world of algorithms and paradigms does tend to get gummed up with ugly things like low-level computational problems and business logic. The realm of computers I work in is a place that attempts to unify the number churning of computers with the high-level abstractions people talk in. There's always going to be tension there. It's easy to get lost in your failing unit tests and dying server processes and changing requirements. I want to take some time out of my week to just do the fun stuff. And I want to come back to my work with more enthusiasm and creativity to solve those problems. I hope this group does the same for you!

Getting started

There are a couple things you'll need to do to get going with the project.

  • Set up a new ssh key
  • Get the source code
  • Set up your development environment

If that sounds hard, it's not. Here's a walkthrough:

Set up a new ssh key

  • We'll be using ssh to interact with git repositories, and you'll need a public/private key pair to do that.
  • Follow the directions here. If they don't work for windows, follow the directions just below.

If you're on windows:

  • you'll have to install putty and puttygen
  • Follow the directions here to create your ssh keys.

Get the source code

  • Sign up for a GitHub account if you don't have one.
  • Install git on your computer
  • Set up you ssh key with github if you haven't already
  • Clone the repository by opening your terminal (ctrl+t or run+cmd on windows), navigating to the directory where you want to store the code, and running git clone [email protected]:staab/js-allonge.git.
  • Send me an email with your github username so I can add you as a collaborator to the project.

Set up your development environment

  • Install Node (Windows/mac, linux)
  • Install a text editor if you haven't. I use sublime text 3. Other good options are laid out here.
  • cd into your js-allonge directory. Test everything out by running node test.js. If "Hello World!" was printed to your console, you're in business!

The course

Over the next 7 weeks, we'll be building either a javascript library or application (or both!). What we build is something we'll decide on at the first meeting. Also, during the first 6 weeks, we'll be working through Javascript Allonge. We'll read a section, do some exercises, and then meet to talk about it. I'll probably come up with some extra exercises to center our discussion of core concepts around. Here's the reading schedule:

We'll meet at 7-8:30 PM every Thursday night October 9th - November 20th. We'll be meeting at the MosCoWork space on 3rd Street. Admission to the group is free, but you won't be admitted if you don't sign up before the second meeting. Check out the official page here.

About

Repository for collaboration on the project for the Javascript Allonge group 2014

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%