Educational resources

What should Non-Technical Founders do to improve technical skill sets?

Ryan Rigterink Midwest Manager at Hematogenix Laboratory

September 23rd, 2014

I'm a Non-technical founder who has realized I need to improve my technical knowledge for effectively managing the development process as well as for the future growth of the organization.  I've been on a steep learning curve the last month(s).  I'm looking for resources, sites, events, ideas others have found helpful to accelerate technical learning.  I've looked at programming boot camps, but I can't dedicate that volume of time (full-time for 6 - 12 weeks) currently.  Any recommendations?

John Shiple

September 26th, 2014

The knee-jerk "learn to code" feedback given to a significant number (the majority?) of non-technical people does not really work. In reality, this is not all that practical, but it can work if you have a strong guide to assist you. For me, "learning to code" was 4 years at MIT plus 20-years in the field at this point. You do not want to do that just to build your business.

What I have found, instead, is that it's better to raise the "Technology IQ" of the business side or the non-technical side rather than throwing them deep into coding. A fully functioning company is more than just writing code. It's designing the new features, architecting the system properly, building the back-end and front-end, testing, DevOps, and so much more. A top-down, comprehensive perspective is far more valuable than a bottom up nuts-and-bolts approach. It is not simply "code" - that is too simplistic and naive a perspective.

Raising your Technical IQ also comes down to your best method for learning. Just like some people aren't meant to be painters, not everybody is meant to be a coder. But that does not mean not to try. Rather, you need to find the optimal way for you to learn and digest just "the right amount" of tech so that you can be truly effective.

You will note the large number of people telling you to study a specific platform (like PHP, Ruby, Ruby on Rails, or WordPress). Do not listen to these people. They do not know your business or your product, and you will waste a lot of time learning something that won't really help you all that much.

So what do you do? If you have tech on your team, leverage them. Make sure that your team can train you, rather than you learning on your own. Make sure everything is clear, concise, and transparent. Keep asking questions until you understand. If you do not have a tech team, get an Adviser to guide your education until you have the right tech team in place. The Adviser will be able to help you focus on the real topics to understand and can help you debug or clarify what outside technical people are telling you.

I do encourage you to try, but if you want to minimize pain and resource drain, leverage your team or get an outside Adviser to educate you.

+=John

Laura Fredericks

September 23rd, 2014

I've found Treehouse to be really helpful - there's a free trial so you can see if you like it. I'm taking the html/css course and then will move on to the Wordpress, PHP, and Java courses after (because that is what my site is built on). If you set a goal for when you want to be done with the course it will tell you how long you need to spend each day, and there are lots of practical "code challenges" throughout. It's pretty cool. Laura Fredericks Founder and CEO, Describli.com facebook.com/describli @describli Head to http://describli.com to sign up for the Beta waitlist

Sridhar Rajagopal

September 23rd, 2014

There's no better way than getting your hands dirty, and the only way you can do that is by following along and working on the example problems of a class.

There are plenty of interactive courses that you can take at your own pace - Udacity, Coursera, Code Academy, Udemy are but a few.

You don't have to do it full time, but you should be prepared to consistently spend a good chunk of time on it.

-Sridhar

David Doran-Marshall Level Designer at Egowall.com

September 23rd, 2014

Check out 'python the hard way' or sign up for cs50x. These are self-driven, highly time consuming classes but they'll get you going. Technical skills surely take time to build, even on an accelerated course. The truth is that it's pandora's box. There are literally dozens of technical fields that you might be able to spend decades diving into. 

My ultimate advice is to find a mentor figure that's able to not only teach you "technical stuff", but choose topics that relate directly to what you are doing in your current role. In this way you create an efficient model for learning, and later you can expand into side topics which will inevitably catch your eye. -ddm

Art Yerkes Computer Software Professional

September 23rd, 2014

If your intention is to start learning via front end development for the web, there are lots of tutorials about starting front end projects with yeoman and angularjs (such as https://www.youtube.com/watch?v=iUQ1fvdO9GY ).  

Using a framework and a predictable structure for your webapp will help others recognize what you're doing and be able to help.  In time, you'll form your own opinions about these things.

Hackability, and avoiding the blank screen problem are key to keeping up your motivation when you're working through programming problems, and yeoman's builtin webserver and updater address these problems to a great degree.

I don't recommend solving programming problems for their own sake to learn to program, instead choose some small projects you're interested in or curious about and work on one of them.  While alluring at first, games tend to require more programming experience that might be suggested for a novice, but if you're interested in trying one, a sliding block puzzle might be a good first one to try.

Something that makes this much easier is that you can keep your code online in several ways, which makes it very convenient to spend half an hour here and there writing code.  

If you don't already have one, you should make a github account and store your work there.  Learning git is a must if you're not already familiar with it.

One of the most complete and friendly is c9.io, a very comprehensive online IDE for web development.  You can serve your web apps directly from c9.io and connect up whenever and wherever you have the time and inclination.  You can work through most yeoman, bower and node tutorials on c9.io (just replacing port number and host name with the variables used by c9) without needing to configure anything locally.  This may be a time saver if you want to jump right in or are in doubt about your ability to get a programming environment working right away on your own computer.  c9 also interacts well with github.

Apart from that, atom.io and a github account provide a very easy and convenient way to get started, as atom's git integration is very deep and works well.  You can serve your client side apps from github (but not server infrastructure such as the live-reload features that come with yeoman), if you are more experienced and don't need quite as much hand holding.

Christian Perry Founder at SF Beta

September 26th, 2014

If you're a non-technical founder learning to code, treat it as a hobby rather than an extension of your professional skillset. You're better off spending time talking to developers, reading blogs, and staying on top of popular sites like HN. You don't need to be an engineer to communicate effectively with developers - but in a relatively short period of time, you can increase your literacy, stay on top of trends (which evolve oh-so-rapidly), and learn how to speak their language in a vernacular sense. 

All these things are worth doing, and you'll absorb exponentially more knowledge with a regular effort over time. Some of the things I like to do myself, in this regard, are going to tech talks (New Relic has a great series in Portland), attending developer-focused meetups, and chatting up my techie friends during more informal occasions.

Mark Lythgoe

September 26th, 2014

I agree with Peter and Troy, you are much better off getting a technical advisor if you are not at the stage to get a true CTO.  Good architecture and an understanding of everything that is needed to build a complete system takes years.  Sure you can learn how to make simple web page apps with 1-6 weeks of training, but they probably break 10 different ways from sunday, and probably cover about 10% of what you need to know at an executive level.  My keys would be;
1. Humility.  Anybody claiming they know even 50% of the tech out there is BS'ng.  They should be knowledgeable, but also know that there is a lot they don't know.
2. Experience.  Generally at least 10 years across multiple systems/technologies is best.  Someone who worked for Google/FB/Tw for 2 years is going to know one way of doing something, but it probably won't be effective for a team without their resources.
3. Flexibility.  Run away from anybody that says you can only do it in RoR/Python/.NET/Java/...  You can build the vast majority of systems with good architecture in just about any language, any database.


Alan Matthews Entrepreneur

September 30th, 2014

Forget learning more technically... LinkedIn is full of them, after all, and you're a founder not an employee. You need to spend your time on people, persuading them to engage with you to build a great company.

I spent 20 years learning my technical background but today would throw it away to spend time with the best people who know how to build businesses.

Safe, yes, but not productive because you're already behind and your ROE won't pay off.

Ben Littler Mobile & Software Product Manager

September 24th, 2014

A few suggestions:

1) Go through at least one guided development course. One of my favorites is one month rails. If you spend 10-15m on it a day you can get through the entire course in a month. Boot camps are great if you can do them, but unless you want to be a programmer, online courses will probably get you where you need to be. Don't fret about what technology stack you focus on - just pick one and do it (bonus of course if it's the same that your team is using - but what matters here is the principle and the process, not the specific technology)

2) Become best friends with your development manager or senior engineer. Take him/her to lunch once a week and just listen to what she/he is working on, challenges, and so on. Build the relationship.

3) Whenever you hear a word or phrase you don't understand, look it up and read about it until you do.

4) Regularly read a few technical blogs. There are many, but one recommendation would be Coding Horror. Also: list of recs on quora

5) Read some lean startup books. I would recommend 4 Steps, Lean Startup, and Running Lean. They are not technical books per se but will give you a ton of tools and ideas for managing your development process effectively.

Take it one day and one step at a time. But work on it every day and you'll be amazed at where you are in a few months.

Sridhar Rajagopal

September 24th, 2014

Essentially, you cannot drink from a fire hydrant. Some fast-tracking would definitely help you get up to speed, but you need to get into the habit of learning and keeping up with technology from a variety of sources - your development manager, technical presentations, online courses, technology news.

Good luck!