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:
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)
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:
One of the most important reasons from a business perspective to get into coding is the understanding of technology.
This might include learning about:
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.
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)
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.).
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
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
Also some good advice regarding HTML & CSS covered in this Quora-discussion.
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.
Getting into the “Hacker-Stage” will enable you to:
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…”.
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.
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)
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.
Stanford’s OpenClass and Harvard have a tremendous amount of video covering all the discussed languages (and far more):
- Additional: Version-control
For continous progress here is a really good list of technical-stuff you can learn once a day, every day.
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.