Archives For programming

Jacques Mattheij posted a great article today that orders the complexity of ‘programming’ tasks by least difficult (0) to most difficult (27).  Can see from this list that most people can really only get up to 4, professionals that deal with complex systems every day can typically get up to 8 or 9 and anything past 11 requires intimate knowledge of coding.

What I found particularly interesting in this post is that the author ranked ‘spreadsheets with simple formulas’ as being more difficult than ‘static websites, html & basic css’.  I guess that means all of us business folks really don’t have an excuse for not knowing how to make a basic website.  There are some really great resources available these days to learn the basics of web design from CodecademyTeamTreeHouse, and others.

Learning To Code

July 15, 2012 — 2 Comments

If you’ve never coded before, have no fear.  While it’s possible to start a tech business without any coding / web development background, putting some effort into learning the basics will pay dividends in getting your engineers to respect and follow you.  One of the easiest ways to get started is to take an online course, such as the one offered by Codecademy.  This will teach you web programming basics such as HTML, JavaScript and CSS to help you build interactive websites.  This is an amazing tool to get you on your feet quickly, especially if you have no programming experience.

Back-end Frameworks: Once you’re done with Codecademy, you’ll have the basics of front-end web development.  At this point you may want to learn a bit about back-end frameworks like Ruby on Rails or Django (Python).  The debate between whether to learn Python or Ruby is a heated one and you really can’t go wrong with either.  There’s a great thread on this topic on Quora.  At this point in your coding career, I would stay away from languages like PHP and Java given the time required to get up to speed and develop anything useful.

If you elect to learn Ruby, TryRuby is a great introduction to the Ruby programming language and can be accessed from your web browser (doesn’t require any installation).  This is pretty lightweight and will give you a sense for how the Ruby language functions.  Once you’ve gotten through TryRuby, you’re likely ready to dive deeper by following a Ruby on Rails tutorial.  Getting the Ruby on Rails framework up-and-running on your computer will be one of your hardest tasks and is easier on a Mac.  A great tutorial is Michael Hartl’s Ruby on Rails Tutorial.  Whenever you get stuck, you’ll be able to find solutions to your problems using Google since Ruby has one of the most active communities of any programming language.

For those that elect to go with Django, many tutorials exist.  Python has been popular for longer than Ruby and, as a result, there is a ton of information out there.  Most of the computer science departments at major universities teach Python, so taking an online class like the one currently being offered by Udacity, is a great option.  There are so many online course options available that I’ll post a separate dedicated thread later.

Mobile

When you want to begin building mobile applications (i.e. for the iPhone), this is easiest with a Mac and can be done using the iOS development tool Xcode.  There’s a great post on this on Udemy, so I won’t go into it here.  To program a native mobile app (as opposed to a web-based mobile website), you’ll have to dabble in Objective-C (Cocoa) or something similar (like RubyMotion).

Conclusion

If you want to be in the startup world, but think of yourself as a business cofounder, you’ll have to know something about programming to command any respect from your engineers.  You’re unlikely to get much traction with the tech community or in finding a technical cofounder if you have no technical knowledge.  The best way to learn to code is to do some of the tutorials suggested above and then create something for yourself.  It’ll be painful, but building yourself a tool will increase your credibility and give you confidence in your ability to understand the technical side of things.