Hacker, Painter & Understander – a guide to coding as a biz-guy

Hacker, Painter & Understander - a guide to coding as a biz-guy

Starting to get into coding for a person with a business background (or other backgrounds) is kind of a big thing.

Typical points before making a choice include:

  • why can’t I outsource “this“?
  • why don’t I find a cofounder to do “this“?
  • is it worth putting in the hours for “this“?
  • how do I learn “this” anyway?

Looking back at my decision to get into coding:

I’ve always been into tech (pc-hardware, consoles, software, blogs, etc.) but never really started coding. I played around with JAVA and C++ before (a little frustrating back then) and wrote quite a lot of “widgets” in Javascript when there was a software for the Mac called “Konfabulator” around 2003 (they sold to Yahoo in 2005). But I never really had the “aha” moment.

So at my previous startup, while in need for more developers, I jumped on Ruby-on-Rails fulltime and did some frontend development with Backbone.js which I truly enjoyed. Never regretted it.

 

So before you start you should ask yourself two things:

1.) Pros / Cons

weigh the pros and cons, e.g. cost / value (for example your time vs. coding-skills)

2.) Goal 

have a clear goal of what you want to achieve with your skills, e.g. “I want to be able to ship a prototype myself in order to find a technical-co-founder”

 

You should also keep in mind that your day has only 24 hours no matter how you spend them. If you spend more time coding (once you acquired the skills) you spend less time on other things you might be good at (e.g. acquiring new customers, designing, etc.).

The following is a more goal-oriented approach to getting into coding and focused on web-development with multiple “stages” along the way. The graphic sums this up:

 Hacker/Painter/Understander - how to start coding

 

The Understander

One of the most important reasons from a business perspective to get into coding is the understanding of technology.

This might include learning about:

  • APIs
  • databases
  • algorithms
  • development-styles
  • version-control-systems
  • cloud-storage
  • security-systems
  • split-testing
  • programming-languages
  • software-frameworks
  • etc.

Learning about technology will have a tremendous effect on the communication with others about technology, e.g. developers. You can be a lot more specific in what you envision your product to be, what tools to build it with, the amount of time to schedule in order to get to a specific development-stage.

The other really important thing from my experience is the domain-clash of business (e.g. marketing, business-models/monetization) with technology. I think it is phenomenal to enter this world that gives you a huge opportunity in terms of new ideas and ways to build businesses that are simply not possible without knowing about certain technologies in detail.

 

Two different goals may bring you to the “understander-stage”:

1.) You are a manager / consultant / growth-hacker

Serial-Entrepreneur Dan Martell from clarity.fm put it like this:

“Growth Hacking is the process and mindset of searching for ways for your product to grow. It’s kind of like a mix between engineering and marketing.”

If you have developers / co-founder and want to broaden your skills for growing your product and better communication with your developers, learning about technology is a great start.

2.) Coding

For everyone who wants to get their hands on coding this “understander-stage” will come naturally along the way so I wouldn’t worry to much about it at this point.

 Tips for getting started with this stage:

Focus on the interaction between business (or other disciplines if you don’t have a business-background) and technology. Numerous examples are described above. It is also really helpful to look at technology-startups to see how they leverage technology to build a business, for example:

  • GoodData (Analytics/Data to drive sales)
  • Pusher (API for push-notifications)
  • Spotify (streaming content, API for developers to extend the platform)
  • Salesforce (Software-as-a-Service pioneer)
  • etc.

In general I think quora.com can be pretty helpful for the “understander-stage” as there are tons of questions like “What is an API?” and high-quality answers. Wikipedia also has some great articles to get an overview for a topic and then dig deeper from there (references, etc.).

 

The Painter

The next step is getting into coding. A good choice is starting with HTML & CSS and working your way up to using Javascript. In order to jump-start your learning-curve you can then jump on frameworks like jQuery and Bootstrap.

 This will allow you to do the following:

  • Landing-pages (Lean-Startup)
  • E-Commerce – customize the look & feel of your store
  • Websites – build a static-website for your company
  • Blogs – style & customize your blog

For anyone who wants to do more than simple styling of e.g. Online-Shops I would suggest digging a little into theory of Javascript. It will be a bit dry in the beginning but pay for itself along the way when getting onto the next stage.

Tips for getting started:

You can either start developing locally or simply sign up at a web-hoster and buy some web-space to test your creation in the real world. Get started with one of the tutorials below:

  • HTML & CSS

http://www.htmldog.com/

http://learn.shayhowe.com/html-css/

http://learn.shayhowe.com/advanced-html-css/

http://www.codecademy.com/de/tracks/web

Also some good advice regarding HTML & CSS covered in this Quora-discussion.

  • Javascript / jQuery

https://developer.mozilla.org/en-US/learn/javascript

http://www.codecademy.com/de/tracks/javascript

http://docs.jquery.com/Tutorials

  • Twitter Bootstrap (HTML, CSS & Javascript)

http://twitter.github.com/bootstrap/

For any programming related question, Stackoverflow is the place to go. I have basically gotten answers to all my questions, no matter how specific they were, an amazing community with really nice people. Take some time to formulate your question as specific as possible and highlight your code correctly.

 

The Hacker

Getting into the “Hacker-Stage” will enable you to:

  • Prototyping

Sometimes it takes more than a landing-page. Especially if you want to find (good) people for your team.

Nowadays I find it quite funny to attend tech-events and talk to other business-people at those events that “look for someone to write their code”. Been there. Awkward. Bad impression.

If you can put a first version of a product into someones hand it is a totally different thing than trying to convince them with “yeah, well, I have this idea…”.

  • Web-Apps

If you want to be able to build your own web-applications or are a single-founder, you need to do a lot of the development on your own.

  • Specific-Platforms

If you are working with a specific software-platform it might be helpful to learn some platform-specific code.

I did an E-Commerce-Store with Magento recently and haven’t had too much experience with PHP and Magento before. Due to my other programming experience (and as Magento is pretty self-explaining) I was able to quickly learn the specific-skills in order to setup a proper custom-store.

Before starting out with the “Hacker-Stage” I would strongly advise you to learn some theory. This will be a bit language-specific but in general this includes:

A good way to achieve this is to go to a university-website and look for PDFs that cover “Introduction to programming” for Computer-Science-students, usually at the beginning of their studies.

Here are some from my former university and a class I have attended: (German though)

Link 1 – University MunichLink 2 – University Munich

Tips on how to getting started with the hacker-stage:

As I have experience with Ruby-on-Rails, the following sums up good sources to get started with this language.

I’d say that Ruby and Ruby-on-Rails have a really good ecosystem with tons of extensions (so called “gems”) you can use to extend your own applications. There are also thousands of tutorials around, screencasts, and answers on forums.

In the end the choice of the language is a rather personal one. Choose one you feel comfortable using and/or that is in line with your goal. You can find an overview for some web-programming languages here.

  • Ruby

http://www.ruby-lang.org/en/documentation/quickstart/

http://www.codecademy.com/de/tracks/ruby

http://shop.oreilly.com/product/9780596516178.do (Book)

http://pragprog.com/book/ruby3/programming-ruby-1-9 (Book)

http://www.manning.com/black2/ (Book)

  • Rails

http://guides.rubyonrails.org/

http://ruby.railstutorial.org/ruby-on-rails-tutorial-book

http://railsforzombies.org/

http://railscasts.com/

Stanford’s OpenClass and Harvard have a tremendous amount of video covering all the discussed languages (and far more):

http://openclassroom.stanford.edu/MainFolder/CoursePage.php?course=WebApplications

http://www.stanford.edu/class/cs193p/cgi-bin/drupal/

http://see.stanford.edu/see/courses.aspx

http://cs50.tv/2011/fall/

  • Additional: Version-control

http://git-scm.com/

For continous progress here is a really good list of technical-stuff you can learn once a day, every day.

 

Advice

Looking back at learning to code, just as every other discipline, it takes a lot of effort. There is no steep learning curve. Ultimately how far you dig into coding will also be defined by the joy programming brings to you.

I really enjoy hacking on a problem even if it drives me crazy sometimes because something does not work. (hint: always when you are 100% sure that it is the systems’ fault – be well advised: it’s yours)

Coding is a continous learning process. Even while you get a deeper understanding of the theory over time as all the little pieces of knowledge add up, you will need to practice it regularly to be able to build something.

On the upside it gives you a great new perspective on generating a variety of new ideas as well as a more structured way to solving problems and communicating well with other technical people. On top of that you will be able to build or prototype your own ideas. And most importantly it brings an insane amount of fun and satisfaction!

This is a topic I really care about. I’d love to hear your thoughts on this. About your progress, the stage you are at and what you are struggling with! Also what you are interested in for future posts.

Enjoyed the article? Follow me here on Twitter or with RSS.
More updates on getting-started?
  • Paul

    Nice article thanks, I like the way you’ve broken the ‘journey’ down into Understander, Painter, Hacker. I’ve moved through the understander and painter stages now staring down the barrel of hacker for the reason you’ve outlined – to put a working example into a proper hacker’s hand rather than say ‘hey, I have this idea’ -

    • http://franzisk.us/ Phil

      Hey Paul,
      thanks so much! Good to hear you’re putting together a working example. Would be great to hear back once you think you are ready.

      I’ve found that it is also really valuable in the learning process to write your learnings down (for yourself or on a blog) and publish/open-source “little projects”, for example on GitHub. Give it a try and let me know if I can help!
      Best, Phil

      • Paul

        Cheers thanks, I’ve coded up a fair chunk of the site in HTML using zurb.foundation so I know how it needs to look like and the user journey, I’ve found this rails app –> http://railsapps.github.com/rails-stripe-membership-saas/ if I can mash the two together I should have an MVP. I’ll yell back when it becomes something :P

        • http://franzisk.us/ Phil

          Hehe looking forward to it! Good luck & happy coding!

  • http://twitter.com/tonyboy_ph Antonio O. Carvajal

    Nice blog. Very informative :D

    • http://franzisk.us/ Phil

      Thanks a lot Antonio!

  • Ben Toscher

    Great post, Phil. I find the metaphors in your taxonomy really illustrative!

    • http://franzisk.us/ Phil

      Thanks Ben!
      I think a little structure really helps to visualize and outline all this information available on the internet when starting to code.

Subscribe via E-Mail


About me

Philipp Franziskus, 24, a business-guy who loves to code.
Here I share lessons I learned regarding business, technology and getting-started from companies, projects and products I have started and worked on!

Currently in Berlin, Germany.

As seen in



Selling products online?

Check out my super-awesome Convertbar to skyrocket your conversions!