Tell me more ×
Answers OnStartups is a question and answer site for entrepreneurs looking to start or run a new business. It's 100% free, no registration required.

I'm one of those dreaded people in the entrepreneurship world - an MBA!...ahhhhh

It wouldn't be surprising to many of you to know that I wouldn't know how to code my way out of a paper bag.

But how do I at least attain a working knowledge of coding?

I don't know what Ruby, Java, .Net or anything else web development related is. What's a platform and what's the difference? Why do some love one language while others hate it?

Is there a book or blog I can read to get up to speed?

Please take pity on me....

share|improve this question

7 Answers

From the additional info you've given I can tell you this:

It would be much better if you find a third person, an expert, not involved in delivering any of your projects. This person would supervise the work being done for you. It is extremely easy to lie to you and mislead you, simply because you do not know what to look for, nor do you know what a good answer is to a question (and for that matter, you do not even know what question to ask). All the contractor needs to do is give you a complex answer to your question and that will get you off his back for a while. If you ask for a clarification, he can give and even more complex-sounding answer and send you to do homework for another while. It's a game you cannot win in short term, even if you devote all your time to it (shouldn't you use that time to start a business?).

There are many things in technology that are even a matter of personal preference, so if you manage to ask the right questions, you have to be able to discern between a good answer and a BS answer. The field is so complex, that you cannot hope to catch up.

Here are some more reasons you need a third party to be an interim CTO:

  • You do not know what a system architecture is. You ask the question "How can I get a working knowledge of coding." Do you realize that building computer software for a company is analogous to designing an automobile from scratch? You are here asking how to be a mechanic. What you need done is way above and beyond simple coding.

  • You cannot judge what a good deliverable looks like. How do you know a project you just got delivered will not blow up after you have 100 users/connections/records? 1000? 10,000? Does the design of your system lend itself to be updated with minimal trouble later? Did you receive complete source code for your delivered project? You do not have the know-how to judge, yet being able to know this is vital for you.

  • You may have the best business plan in the world, but you have no set vision for the technical aspects of your business. Do you know where your architecture is headed within one year of projected growth? Three years? How will it scale? What will you need to buy? What will you need to rewrite? You have no idea, and the contractors you are hiring don't care.

  • You have no idea what to do in an emergency. Would you even know where to start if the system had downtime? What if you call one of your contractors and he shifts the blame to another system/component? What if one contractor does not respond in time? What of one does not respond at all?

There are many other things that come to mind. All of these I mention above are things that take years of experience to acquire; you cannot learn this in any one book.

The fact that you are using several contractors makes the problem even worse, since there is no shared vision in what you are doing.

You are at the mercy of your contractors, hopefully you are not giving your projects to the lowest bidder every time because everyone will cut corners and deliver half-done time-bombs that will explode long after you have paid their bill.

Hopefully you will get a CTO-type on board either as a consultant (it cannot be one of your contractors) or as a partner. You should not be trying to learn coding, the problem you have is not even coding-related.

EDIT: This is not all to reflect badly on you, you just don't have the skill set required for this aspect of your project/business, so you need to find it somewhere else, that's all.

share|improve this answer
Very well articulated. – Oleg Barshay Nov 24 '09 at 22:27

You need to get a good high-level view of how everything works, but digging in and trying to code is not the right way to gain this knowledge. You need to work on a project and ask questions. Lots and lots of questions.

As an example, over the past year, I've completely rehabed a house. And I mean completely: tore down walls, put up new walls, new plumbing, new electric, new heat, insulation, drywall, etc. Throughout the process, I've learned a whole lot about construction, from jack studs to shiplapping to drywalling. I have absolutely no skills in construction, but I "get" how a lot of it works now.

You should be able to "get" software development in the same way. A high-level overview will allow you to understand a statement like "we'll develop the UI in ruby on rails, an keep our back-end processing in .NET webservices" at the same level of understanding as "I recommend cantilevering the deck because knows how deep you would have needed to run caissons?"

share|improve this answer

My question back at you would be, why do you want to learn coding? You're an MBA, I think you should be focusing on building a business and hiring a team to do the coding. You want to spend your time utilizing your MBA working on a business, thinking big picture, not spending time as a code monkey (there are tons of people out there who can do that).

Are you trying to build a project and looking for the right tool? Hmm. To really "get up to speed" requires you invest a lot of time... and even then, to master that, would take years (to do it the right way).

share|improve this answer

I agree with Matt, focus your skills on finding the right product for the right market and then find people how will be willing to support you financially.

share|improve this answer

Thanks guys! I completely understand what you're saying. I think it's good 10,000 feet advice.

But I'm bootstrapping my business and working with development contractors all the time. They are throwing around terms and using language that I don't completely understand. I'm dealing with a large database, should I worry about scaling issues down the road? At the same time, immersing myself in the world of coding has sparked a bit of an interest on my part. So much so, that I've thought about trying to code something up just for fun.

share|improve this answer
In that case find a friend or mentor you trust and ask that person specific questions. – TimJ Nov 24 '09 at 1:55

If you are looking for a basic grasp of fundamentals, you can try taking an evening course at a local college or try writing some code in your spare time.

To fully understand and solve complex architectural problems (such as scalability, database design, etc) it takes many years of experience and a degree of skill/talent. For such decisions you need to have trust in the competence of your employees or contractors (just as you would have to trust a lawyer for complex legal advice).

Nothing wrong with getting a second or third opinion though.

share|improve this answer

For starting completely from scratch, the problem is that you don't know what you don't know. I think the best way to learn what you don't know is to just try to program something.

I recently started learning Ruby on Rails using advice from this stackoverflow question. I've been going through Agile Web Development with Rails, and have learned a ton since then, like what the UNIX command line is on my mac, and how to use it.

Stuff like that will become apparent pretty quick, and specific questions like that can be found on Google.

It will definitely be hard as hell to start from scratch like this, but plenty of people have done it. Many programmers are self-taught. You just need the tenacity to not get frustrated and learn to search around online for tips and answers.

Good luck, and let us know how it goes!

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.