I’m a developer, and you can too!

2331054.jpg

How Meteor.js Made Me a God

I’m a huge fan of Meteor.js. I’m a start-up guy who’s pretty good at almost everything, which means I’m not the best at anything. I’ve been building websites for years (mostly Wordpress), but custom web apps were well above my knowledge. In fact, less than a year ago, really messy around with a database at all was incredibly intimidating. Which as an entrepreneur sucks. It means testing ideas is a huge undertaking, and instant loss of control, since I would need someone else to do it for me and be captive to their schedule.

Today I code almost every day. I’m building a sophisticated sales behavior app, my wedding registry app (I’m engaged!), and a number of prototypes for other start-ups.

Everyday I’m learning and applying something new. I am standing on the shoulders of thousands of amazing developers, and accomplishing very impressive (to me) things very quickly, thanks to them. Most importantly I am able to truly rapidly prototype and iterate. I have real sales people using my app daily and giving me constant feedback (both consciously and unconsciously), allowing me to build, measure, learn in days, all by myself. It’s freaking fantastic.

Here is a list of Meteor resources I’ve used and use

So here is how I got here

About a year ago I really focused up and started improving my JavaScript, and last summer I found Meteor.js - the answer to my prayers.

Simply, Meteor lets me prototype pretty awesome web apps in nothing but JavaScript. The web apps, are responsive, which makes building sweet user interfaces crazy easy, and the entire thing is in the language I know and am comfortable with. And there is an amazing community for Meteor, which means adding components like Bootstrap, jQuery, or Facebook connect is crazy easy.

So here I thought I’d put down what resources I used to get to where I am today, and what resource I still use daily.

Learning The Basics of JavaScript

I had a two-fold approach to really learning JavaScript. [Codecademy](codecademy.com) + building my own project.

Codecademy

Codecademy is a great starting point. They have terrfic, entertaining, and gamified lessons on everything under the sun. It does take hours, but it’s worth just getting through it.

My key to getting through them was time blocking. I would look at my calendar and schedule out when I would work on Codecademy. I would actually make an appointment, and commit to it. I wasn’t perfect about it, but even if I neglected to work on it one night, I’d at least feel bad about it - it was in my consciousness, so I was more likely to pick it up again soon, maybe even put in some extra time.

Ultimately I went through every JavaScript lesson and jQuery lesson. If you don’t have a good grasp on HTML or CSS, do them, too.

My Own Project

To be honest, I didn’t retain that much from Codecademy, but it did give me a great understanding of how JavaScript works - how to think within the language. This is just how my brain works - I’m terrible at memorizing things, but pretty good at understanding concepts, and now I just outsource my memory to Google, until I use something so much it is ingrained.

So to really start ingraining this stuff, I found a project worked great. I started building a neat little client side app. That just means that there was no database or back-end - everything that was happening was powered by the users computer. It was a great learning experience, since it was a somewhat sophisticated program that let you write on digital paper and fold it and so on.

The process for making your own project is fairly straight forward.

  1. Think of an idea
  2. Break it down into smaller components (be like the squirrel, girl)
  3. Take a component and start coding. Just open up notepad++ or sublime text editor or whatever you like to code in, and create a blank webpage. Slowly, but surely, start adding in divs and words and images - then your javascript.
  4. User chrome and chrome inspector tools, both to try out styling and stuff (how I learned, and still learn, CSS) and for the console, to troubleshoot why your JavaScript is not working.
  5. When you get stuck (and you will get stuck right away), just Google it. You’ll find a solution in no time.
  6. Repeat 3-6.

For example, I would want the user to be able to drag the paper around, so I Google “how to make div draggable in javascript” and I’m quickly lead to jQuery UI, and plenty of tutorials. I just start reading, and if I get to something I don’t understand, I Google again.

Through this process I learned ( and retained) loads. I was no longer just doing exercises somewhat mindlessly, I was solving problems I really wanted to solve, so I was really invested in finding and understanding the answers.

Getting into Web Apps

So now I was making pretty and functional web apps, but you couldn’t save anything - you couldn’t even log in.

I started looking for a platform that would allow me to dip my toes in the waters. First I came across Parse, which was pretty neat. Parse let me do all my front-end magic freely, and they would take care of all the backend stuff. Not bad. But quickly Facebook bought them and that makes me a little uncomfortable. Facebook knows enough about me already.

Then I stumbled upon Meteor. I started reading through and watching all the videos on Meteor.com, and pretty quickly I was sold. I was a very experienced Windows user (build computers, started a tech support company…) and had zero experience with Linux. I still had some residual Dos knowledge, but that was it for Terminal experience.

I like Windows. I’m just putting it out there. It’s a good mix between functional and open for me. Ubuntu is too limited, and I don’t really love the UX/UI, and Macs are too closed - they just rub me the wrong way.

But for Meteor, Windows was going to be too unstable, too much of a hassle. Instead I just downloaded VMWare Player and installed a virtual Ubuntu machine. It was surprisingly easy and worked fantastic. It’s also nice to have my development environment separate from all my other projects, but still easily accessible.

Once setup in Ubuntu, I Googled some instructions on getting set up, and I was off. Got Meteor installed, created my first demo project, and started poking around,

I applied my same project methodology to Meteor.

  1. Think of an idea
  2. Break it down
  3. Start building
  4. Get stuck
  5. Google solution
  6. Repeat 3-6 until done or dead

And months later I am well versed (or at least functionally versed) in: JavaScript, Bootstrap, jQuery, jQuery UI, Handlebars, Underscore.js, D3.js, Facebook/Twitter Connect, MongoDB, Ubuntu, Git, Fontawesome, web fonts, Responsive Design, reactive data, and of course Meteor.

Again, here is the list of meteor resources I have, and still use daily, to get me where I am.

 
138
Kudos
 
138
Kudos

Now read this

Your Early Stage Startup Should Not Suck at Sales

The purpose of this article is to get the wheels turning for start-ups. Hopefully it will at least get you and your team to begin considering what you can do to become more effective communicators. We have found strong selling and... Continue →