Startups Stack Exchange Archive

Better to learn programming, or hire a programmer?

My potential company would be a website and a mobile app.

That means web (php, SQL, AJAX, etc.) and mobile (Android, iOS, etc.) programming.

I only have light programming experience. HTML, Batch (for Windows), Microsoft Access Databases, and Powershell (barely). That’s it. I’m starting to understand basic programming and database concepts as I use them more.

I feel I have enough knowledge to be able to talk to programmers and explain what I want, however for me to build it myself would require a significant amount of time to learn all the intricate details of a specific language before I could do what I want. (2-3 years)

To me, this is akin to what a real-estate investor once told me: “Don’t wait 30 years to save up enough to do your one first deal. Find somebody who’s already done that for 30 years, and use their money.”

I really would like to learn programming. I would like to make this my pet project, have complete ownership, understand its complete underworkings, and know what it is possible to do. I would love to bring on another coder much later in the project’s development, bounce ideas off him, and together make sure the code is beautiful.

I just don’t think it’s economical. The business-side of me keeps telling me that’s too long to wait.

Answer 265

Coding takes a lot of brain juice and energy that you should rather be investing in business strategy, marketing, making connections, hiring people, writing business plans, pitching etc.

As a programmer for 7 years and entrepreneur of 3 years, my advice to you is:

Don’t bother to learn programming. This rabbit hole is too deep. You’ll never stop learning and this is not your focus.

Your focus and target should be to make profit & hustling in all ways possible. You target should not be to hunker down in front of a laptop and make a pixel perfect products etc. That’s what engineers are for.

Hire engineers, learn the overview of everything and get your hands dirty, but do not spend time actually coding.

Answer 261

Learning programming, especially if it is simultaneous to having a business idea, is not an easy feat.

I just graduated with a B.S. in Computer Science, and I took a couple great internships over my 4 years. I immediately started a start-up in the middle of my junior year, and now I work at it full time.

If I hadn’t had at least those 4 years to learn and establish a basis, there’s no way I could’ve caught up in time to make deadlines. I still learn so much every day. Note - I don’t program very much. I mostly manage and design (because other programmers are incredibly more skilled than I am - I just try to keep up).

But as to the core of your question is it economical? Here’s a few points which should clearly point you in a certain direction –

To me, I’d consider one or the other. Perhaps spend a year or two focusing on programming, but if you try to really divide your vision, you’ll just end up with a lot of half-cool, half-done products.

Lastly, web and mobile are two totally different tech industries that technically have little in common. That’s putting aside QA, Design, Architecture, Infrastructure, Product Management and Leadership which are all essential skills that are verticals on top of each technology (think multiplication, not division).

I guess my point is that there’s only so many ways you can split your time without getting little to nothing done at the end of the day.

Answer 276

Alright, I am experiencing almost the same thing, and I am feeling comfortable with what I chose: learn.

My Reasons here were:

Learning it won’t go to waste.

If you are learning to code today AND your startup has a lot to do with code, you are collecting another great precious gift for yourself! It gives wonderful joy, really very wonderful one, when you successfully make something, and use it! You made your own tool! Wow that’s such a great deal! And also, even if you hire a programmer, you will find it a lot easier to work with him if you know code. I had time = Really this is important, I had time, the time to learn code. And that is all you need. It’s not that hard = Some answers here describe that programming is hard, but ain’t it fun to do hard things? Ain’t that what entrepreneurs love to do? Take challenges?! And anyway, there are hell lotta expert programmers in almost every language on Stack-overflow and their chat rooms to lift you when you fell. It is free! = Yes, learning to code is free! You can learn every programming language online for free, we have a lot of open-source resources out there. Codecademy, MDN, MSDN, etc.


Personally, I would go with time as the deciding factor. Go out, do some research. Here are some things to help you find out:

  1. What kind of thing do you have to develop?
  1. How big is it?
  1. Do you find it interesting to do?

Honestly, this question is a bit too broad, but I wanted to pour in my thoughts. Hope that helps :)

Hire a programmer too when your service scales up.

Answer 289

I’m a bit late to the party answering this, I know, and there are certainly already some great answers, but I’ve thought about this question a bit over the last couple days and I figured I’d share my input.

Imagine you want to build a new house. Do you hire an architect, contractor, plumber, et cetera, or do you learn how to do all those things yourself? Clearly you could learn, anyone can learn anything, for the most part, but those professionals have years and years of experience that you just plainly don’t, so chances are you’d end up with a worse end-product (house, in our case) if you built it on your own.

Working off the same principle, how many successful companies do you know that have a bunch of people, all with the exact same skillsets? I’ll bet zero. There are virtually always various management positions, various technical positions, various sales positions, and all sorts of other kinds. You never see a company that’s built entirely of pure developers, or entirely of pure managers, or sales people, take off. You need a variety of people and skills. That way, you can work off of each other, and people don’t get caught around each other trying to conclude minor disagreements over how things should be done.

Rather than devoting your time to trying to learn to program, devote your time to learning to talk, understand, and trust programmers. I’ll admit, sure, that I’ve been programming for, well, forever. Longer than I can remember, anyway. So I say this a tad cautiously because I have worked with people who felt they knew the technical ends more than they actually did. So be wary of that. But if you can read some blog posts or books, or even just listen to some podcasts, to try and get a bit more familiarized with the available technologies and the terms that a professional will use, you’ll be more ready to be productive once you do find someone. I’m certainly in no position to speak on behalf of other developers, but I’m pretty sure most would much rather work with someone who understands what we’re saying and consequently doesn’t require constant status updates on irrelevant factoids. So if you can build up even just a working proficiency in terminology (and, I say this in the nicest way, a taste for what you may not know going in), that will greatly help everyone’s productivity.

That all said, and I know a few people have said this already, it’s just a balance of time and money. Can you afford to hire someone? Can you afford to take a couple years to learn the elementary aspects of writing what you want? That’s when it becomes a case-by-case basis that’s a little less difficult to answer in generics.

Answer 262

I have 12 years experience as a developer. I started .NET in 2002, straight out of high school. I had a bit of programming skill behind me before then but it wasn’t until 02 I started full time.

I am still learning today. Each new project I start gets setup and coded differently due to things I learnt in the last project. Architecture is something you learn over a long period of time, programming speed increases drastically over time as well due to knowing all the ins and out of a framework and IDE.

My opinion however is if you are bootstrapping, learn yourself and get an MVP out and try to get some traction. The problem in the beginning of start-up isn’t how well or fast you code but getting your idea out and seeing if people will buy or use your application. If you get traction, then get a senior developer (5+ yrs) to come in and take over the coding before your code gets too big, otherwise you might be looking at a total rewrite in 2 years.

Also it is always good to learn programming if that is your business model, so just keep learning programming anyway, even if you do bring on a senior developer. Having someone to teach you will also help greatly.

Answer 263

If you are starting a tech company there are essentially two skills that are needed:

1. Awesome IT Skill Set

2. Awesome Marketing Skill Set

Of these two, the latter is more valuable in my opinion, because it is also the more flexible of the two. IT Skill sets have the nasty habit of being outdated every few years or so.

If you don’t have one or the other, then it will be tremendously hard to start a company in the IT / Web world.

I learned VBA Programming in about a year (I realize this is a programming language that many ‘real’ programmers don’t even consider a full language) and have been doing some freelance work during that time. I think it helped me tremendously in understanding what goes into developing a software or web application. However, I know that I would never consider being the lead programmer for a serious software company.

Better to take your vision and invest a bit of money (rather than too much of your time) in making it a reality. People are scared of wasting money, when time is really the non renewable resource!

As was suggested allready… the real key to the kingdom is knowing whether your idea has legs. Create an MVP and see if you get customers!

Answer 296

Implementation is just one of many aspects of startup success. Better to keep a firm grip on the overall picture: vision, finance, communication, market …

Alone a preliminary reconnaisance of the current app landscape, competitors, funding possibilies, IDEs, tools, languages, libraries, domain experts, gateways and hosting alternatives can -to the uninitiated- take many months. Coding (which lies even further down the tree) is nice to bring to a project, not (generally) something to learn in parallel. An advantage yes, a precondition, no. There are simply more important things..

Nevertheless, no coding, no product, right? Not all of us have angel investors shoveling silver under our pillows every night. We make do, we improvise.

A prized coder can, in the US, already earn up to 1M dollars a year. Nevertheless, the only justification I see for learning to program for a specific startup endeavour is the communication, with close to zero resources, of a potential solution to other’s problems.

Perhaps you see something never successfully implemented before, an approach long overlooked, or are reliant on a technology so new that the right expertise is in critically short supply.

If so, be consequent in limiting the scope. Start by pushing aside areas irrelevant to convincing backers. Depending on the target environment, for example, a wholly convincing mockup or demo is possible with no communication or backend: simply read all data from file..

Even where your idea is complex but you yourself buoyed by irrepressible optimism (read “technical naiivity”): discretion, strong motivation, time and determination may reward you with a breakthrough where others have given up.

Finally, all of us have to balance our aspirations with personal health. What we feel lies under personal control may seem not to stress us so much, but pursuing any startup idea is at heart a form of gambling. Initial independence, freedom to play and make mistakes are strong arguments in favour of own, exploratory programming: creativity has free rein, risk is held low. For the sake of those around you, though, match your confidence with hard time limits, and beware compulsion.

Answer 281

What I recommend is this:

Hire a developer for your first site and app, an app for Android requires Java and trust me it’s an infuriating language to self-teach. HTML and CSS are pretty darn easy to self-teach, same goes with PHP and MYSQL (I recommend going to codecademy or w3schools). But for an app just hire a developer.

For your site, you could learn it. AJAX is a pain and so is optimizing your website for mobile/tablet surfing but with dedication you could do it, but given you’re running the business, time may not be a luxury you have, so hire a developer whilst learning to code adequately (again I can’t stress how much codecademy and w3schools helped me a bunch!) and when you’re good enough you can re-brand/re-design it to your exact vision :)

Answer 282

If you're interested in learning to code, then this is a good opportunity since you have an idea and that's sometimes the most difficult part.

However, having said that, don't become the sole developer of your product. You will be better off getting an experienced developer who is prepared to work with you and help you build the product whilst helping you become a better developer.

There's always mundane tasks for an experienced developer which could be handed off to you, that will give you valuable experience. For example, writing classes, building DB tables, writing unit tests. These are things that become repetitive, but will give you a better understanding.

The experience the developer will bring to the table will be when to use certain architectures, OO concepts, db design etc...things that you learn with time.

I know an experienced designer that decided to learn some ASP.NET, they learned the basics and managed to get a web site up and running pretty quickly. The site was hacked, simply because they didn't secure the queries and allowed for a SQL Injection Attack, which an experienced developer would have catered for.

Answer 436

I am a programmer owing development company. 15 years of experience on my back. So here are my advises.

First question you should ask yourself “Are you a worker in your company or a person who brings projects”? I have started as both and ended up at dead end because either programming would take too much time or talking to clients. Either way, one side was suffering. Many colleagues of mine dropped programming and became managers only, while I kept programming (I like it) and hired a person to find jobs for me.

Then ask yourself “How well do you know the programming services you are selling and can you ultimately trust your guys”? What if your coder tells your client that something can be done in 100 men days and it ends up in 500 men days - client will be furious. So you have to be expert in things you sell and you must have 1 highly experiences (and highly paid) developer who will give you proper estimations of costs and time.

Then ask yourself “Do I have enough money to have developers”? Coding is IN and coding is expensive. If you find a good guy today for $50 per hour, tomorrow he may ask $75 or $100 because large company will offer him so much. So you should either have good fund for one good developer or offer him cut in your company from start. There is nothing worse than being left in the most critical moment of development cycle. And do believe me, if you find a good programmer, everyone will wants to steal it from you. Good approach to avoid stealing would be not to start your own business before you get a gooood project which will support your for multiple years.

If you still want to learn programming, do it. It won’t be bad. But you should know that it takes years and dozens of projects before you become expert in one field. If this is your passion, go ahead with it.

One more thing, you do not have to learn programming. You can also learn database development or design, an still be able to contribute to your team. A friend of mine codes databases only while his coders do the coding.

Answer 273

Dude, don't be fooled: programming is hard. Programming well, at least.

We live in a ecosystem where programming is turning into a commodity, you actually need to have a good programmer(s) to actually build your product since it mostly common sticks to being an app.

If I were you, my best shot would be to find a good match for your company, working with sweat equity only. CofoundersLab is a really good place to find a partner for free. Also take a look at my profile there. If you feel comfortable, don't hesitate, send me a message. I'm actually looking for good ideas to join with my expertise.

Answer 377

There are a lot of pros to learning programming. It’s nearly impossible to learn from almost nothing in a year since there are so many technologies you need to understand…but

By at least understanding how applications are designed, you will be able to have more productive conversations with programmers and can assist in technical decisions. Its a frustrating working environment for a programmer to be part of a company where managers do not understand the basics of coding or app design.

Hire a programmer, but learn enough to understand their job. You mentioned web and mobile and those are 2 very different worlds. You will need 3 programming language with 3 different frameworks. I suggest you start small and only do an app or a website to launch.

Answer 4027

How about both learn and hire at the same time? ;-)

You

So by all means go and have fun! Learn SOLID principles, OOP best practices, read the fantastic Joel Spolsky's blog, read the Bob Martin (aka Uncle Bob) book "Clean Code" and enjoy his videos:

Robert C Martin(Uncle Bob) -Clean Architecture and Design... - Video

Ruby Midwest 2011 - Keynote: Architecture the Lost Years... - Video

You will get much better idea about programming and about how to find, approach, evaluate and attract a good programmer.


Are you still enjoying it?

Then -- by all means do try to work on your prototype. Once you try it yourself, it'll be so much easier for you to understand the work needs to be done and appreciate the effort (or absence of those) by your future programmer.

Learning programming as you go is a great and much more efficient way than learning "academically" without a purpose. And should you ever find problem or get stuck - your know your friends:

Disclaimer. I am (unfortunately) not affiliated to any of the services and get (again, unfortunately :-) no benefits from mentioning them here.


And now comes the questions - are you happy with your progress?

As long as the answer is yes - continue by all means. But as soon as you feel, you'd rather get help and being on your own holds you back - then it is right time to look for help. Which you now can both evaluate and appreciate.

Answer 8320

There are two sides to this coin:

a) If you don’t know programming then chances are that programmers will try to dupe you and bill you 8 hours for a 1 hour task. They’ll make it more confusing for you if you try to intervene and twist the truth around until you are compelled to agree with them. So if you are not inclined towards programming then hire a decent programmer / team that gets the job done and be prepared to shell out some dough.

b) You can learn programming but it’s going to be an uphill task since you will have a thousand things running through your head and chances are you will not be able to concentrate effectively on learning programming.

Each choice has it’s own drawbacks. It’s for you to manage and choose.

Answer 7359

You don’t need to have an amazing scalable company right away. Just like learning programming. It is not that kind of easy and fast thing. Teaching yourself will really consume time. The pros can be a full control over your destiny/business. You’ll have the skill for your future use. Just for the cons is that their will be a “waiting” happening. It will really take time. But if you wish to hire a programmer then it’s good also. You will have someone working on your project right away. Though it cost you money, there are possibilities that you can’t manage them correctly. Remember to keep on track in hiring a better programmer that fits your needs.

Answer 9222

Joel Spolsky and Jeff Atwood, who created this site, have an interesting take on this:

Jeff says “don’t learn to code:” http://blog.codinghorror.com/please-dont-learn-to-code/

…but they both agree that “if If it’s a core business function – do it yourself, no matter what”:

Joel’s article: http://www.joelonsoftware.com/articles/fog0000000007.html

Jeff’s article: http://blog.codinghorror.com/programming-is-hard-lets-go-shopping/

How “core” to your business is good programming? Read those and decide for yourself.

Answer 9350

Answer 12717

I faced this question a few years back … Well, actually now it’s several years back. I tried to team up with developers, but they were in such high demand that I couldn’t get anyone to join me. I didn’t know many in my own network / circle, and I tried to meet some by networking. I have a lot of ideas and I’m actually very thoughtful about them - these are deeply thought out technical ideas, and I also had a willingness to do a lot of the customer development, hustle to attract various stakeholders, make deals, etc. I’m also a very technical person (just not a strong software developer / programmer). In spite of this, I found that no matter how interesting one’s ideas are, how motivated of a person s/he is, etc., it’s hard to get a developer to join, and this is because when developers have spare time, they’d rather take jobs for pay or work on their own ideas. That’s not to say it’s impossible to find people willing to join you. I just found it incredibly difficult (that was roughly 2011-2013, and maybe it’s different now. Also, I was not in an entrepreneurial city …). So, I tried to improve my programming skills (I already knew a little bit, though I was never very strong as a programmer). I did improve a bit, but had little to no time to build out a product. Eventually, I got too busy to continue to pursue it. Improving my programming skills helped a bit, but in the end, if I want to build out one of those products, I’d still want to team up with a developer. Only now I know it would take a huge amount of time and effort to connect up with a good one. In other words, if I want to embark on this kind of project a couple of years from now, I need to be networking and building relationships with developers over the next couple of years starting from now.

Answer 9329

Do you have a college degree?

If the answer is not then you should get a college degree and learn how to code for the next 4 or 5 years.

If you learn how to code and your startup fails then you can still get a job at Apple, Google, Microsoft, Facebook Twitter.

You could be investing two or three years of your life in a startup that crashes and burns in the end and you are not going to have enough money to start another one.

If you have a college degree then you can easily get a six-figure job anywhere and save every penny for a year or two and then you can start over.

If you are only a high school dropout then you can only drive for Uber and Lyft or similar blu-coller job and it would take you at least three to six years to save enough to start over.

At this rate, you can only start a few companies in your lifetime and you could die peniless.

I suggets you to get a college degree.

On the other hand, if you already have a college degree unrelated to software development then I suggest you to get an MBA from an Ivy League school and then get a job at a Forbes 2000 company and work hard and save every penny.

You will be a millioniare in a few years and you can use your massive wealth to hire as many software developers as you need to build your ideas.

Answer 13116

Elon Musk spends most of his time on design and engineering. A good product will sell itself and the customer will do the marketing for you. He coded the product of his first startup!

I code on my own for my startup, and you can go a myriad ways in solving a problem. By now the time it would take to write up a job description, or even a statement of work, I solve the issue via code in the same or shorter amount of time. Automate everything.

I also work in an 8 hour job for a multinational, and there I see how hired developers will code literally anything you tell them to! Even if the result is crap, because you could not imagine beforehand the outcome exactly… They are motivated to bill you as many hours as they can because they are paid for the time they work for you. If you want end results then you must cut them in on the profit.

Coding is the new wild west, so grab your land while you can.


All content is licensed under CC BY-SA 3.0.