My story in point form:

-I'm 33 and have the brain of an engineer/math/programming person, but my experiences and education are more business related. I have ambitions to build software.
-Undergrad in business.
-Worked corporate for 2 years as Business Analyst.
-Went back to school, did a masters in operations research (math stuff).
-Never pursued career in that, instead worked and eventually ran the family (small) business for 6 years.
-In Nov 2011, I left the family business, and started a web development company called ET.
-I started off thinking I'd outsource/hire developers and I'd do all the biz stuff, but in the spring realized, its hard if you don't know the tech yourself. I started learning how to code myself, and I like it.
-I feel like I'm learning way too slowly. I basically work on my own on client projects (my own or from a friend), sometimes I can get help from this friend, but he's way too busy to really teach me. And the internet is great, but I find its only surface learning. Not the deep understanding I need to accelerate the learing process.

I have lots of questions, but I'll stick to the main one. How can I accelerate my learning?

These are the options I"m aware of and what I think of them right now.

University/college courses - Great deep learning, but too much irrelevant stuff. It would be nice to work with people on assignments and stuff, but not sure if people still do this like the "old days"!

Full-time job as a Junior Developr - I'm afraid I'll get stuck with doing too much grunt work and not really learn what I need to learn. Plus, all the other things like having a boss, politics, etc. Also, it may be hard to find such a job with my experience.

Work on my own, but in a shared space with other developers - not sure if this exists, and if I'd bug them too much!

Do my own "assignments" - I think I'll learn but, still, no interaction, just Google.

Your insights would be greatly appreciated.

If I interpret what you're saying, you want to run a successful web development business but to do that you feel that you need more hands-on technical knowledge. You feel that you can't successfully hire and manage others to do the work without it. Even though you might enjoy doing this sort of work yourself, managing it successfully is your primary goal, not doing it. That's my interpretation so if that's not what you meant, please clarify.

It would seem that you are now dependent on this business to make a living so unless you have a large bank account that can keep you afloat for an extended period, you have to put some priority on getting work and somehow getting projects completed. That makes the learning a part-time activity at best. With IT projects, everyone wants it yesterday so that can result in long hours and pretty intensive work so it may not leave that much time to learn. The learning part itself takes time even in the best of circumstances. It's measured in months and years so it depends to some degree on the level of expertise that you need to acquire. If you want to be the lead designer and developer then it's a long path to have the expertise to do major projects.

The first thing that came to mind when I read your post is that you need a partner/employee who already has the technical knowledge but maybe not the business expertise. That would kill two birds with one stone. It would allow your business to get on with actually doing projects and it would provide you with a first-hand source that you could learn from on-the-job. You could act as a part-time apprentice to this person in terms of development skills while still leaving time to find new business and manage the business overall. If I understand your position correctly, that seems to be more practical than taking time out to go to school (which only gives you a starting point) or to develop these skills on your own.

Obviously, finding the right person is key to this working. Initially, you would have to provide that person with a lot of freedom on technical topics but if you are a good judge of people and a good manager, then you will still be able to hold him (or her) accountable. If you have enough business that you need more resources, you can jointly manage other people to fill the gap. This may not be quite the answer that you were expecting but it seems like the most practical one.

Thanks chrishea for the insights. You're accurate on your interpretation. The only thing I'd add is that, I want to get to the point where I can build a product, and turn that into a business. I'd prefer that over contract work.

My wife works, but we barely get by on her income, and expecting a baby soon, so my income needs to be there.

I had thought about seeking out a senior dev in the same way you had mentioned. I didn't want to hire someone because I can't really afford to pay a senior dev. When I started, I quickly realized that the project work you get is directly related to your past projects. With no real portfolio, its challenging even to get small projects. As for finding a partner, I really didn't put energy into that. I'm sure its not easy and I'm wary of how partnerships can turn out. But it is stil an option, if I meet the right person.

If I don't have an employee/partner developer to learn from, what are my other ways to speed up learning? I feel I can spend at most 10 hours/week on this.

How much do you think I need to learn where I'd be able to hire a dev(s) to build a software for small businesses? How long might it take?

Is there a point where I can say - "I know enough and I should start focusing on business again" ?

It all depends how advanced your knowledge of computers's not all about the programming language, to be able to program well you need to understand what the computer is doing with the data.

For an real beginner, I would recommend going to your local book store/amazon and finding a few books about programming in your chosen language. Once you have the basics you can then start developing projects and furthering your knowledge with practice.

If your already at that point then have a look at some courses either online or evening courses just to develop your understanding further.

I have found that from 2 books and the internet I can program fairly easily. Your at an advantage because of your higher level of education and mathematical brain.

Hope this helps

Before you put your family's future on the line, you need to take a very hard look at the software business, your competition and the potential for success.

The reality is that there are many, many, many developers (in the millions) and many of them are experienced and very good. Quite a few have developed some sort of software product but I doubt that a high percentage are making a living from their product. Many of these products are open source. Developers have tried to make money on open source products by selling support and other add-ons but other than a small % at the top end, I don't think many are making money on open source. On the web side of the business, many people have come up with ideas for web services, some have had some successes, found venture capital and/or managed to sell the business for big $. For every person who has achieved this, there are many who have tried and failed. The other thing to consider is that the software business is now relatively mature. There are applications available for almost every conceivable need and in most cases, there are many choices. The buzz around Silicon Valley and the release of new exciting applications is mostly in the past. There is still some buzz around some new web services and some Iphone or Android apps but again the number that become successful and make good money is still a small percentage.

Thus, I don't think that developing programming expertise is your only challenge and maybe not the biggest one. You seem to have already settled on building software for small businesses and that seems to be a good starting point since you have applicable experience. I think that you need to do some research and determine if there are unsatisfied small business needs that you could potentially address. You might find that there are good applications already available for virtually all of the small business needs. Many small businesses may not be taking advantage of what is available however; because they aren't technically savvy and/or they just haven't done the research themselves to find out what is available and how it can be applied to their business. That might actually be a business opportunity for you if you do the research, become familiar with installing and using applications for small business and can then connect with a lot of small businesses who are potential users / customers. That way, you could potentially provide a wide variety of good software relatively quickly instead of spending one or two years to develop version 1 of a single system. In terms of credibility, it would then be reliant on your business experience, your research (and ability to apply it) and the reputation of the systems in the marketplace.

If you are dead-set on programming and building things from scratch (and having the knowledge to hire/lead/evaluate others who are doing it for you), then you need to do as much programming as you can. There is no substitute for actually doing it. People learn in different ways so you have to find an approach that works for you. I don't like to spend a lot of time studying something before I try it so as quickly as possible, I dive in and try some sample code. If it doesn't work, then I go to the help file and online sources to try to figure out why it isn't working. That approach works for me but it isn't for everyone. I also suggest that you download some (good!) open-source systems and study how they are structured and try to understand the code and what it is doing. You can then try to make some changes or additions and get those to work. If you are going to write a serious system, then you need to understand how to segment your code into modules and how to share data between them. You will probably need to use a database. You also need to consider an object-oriented approach and possibly the use of a framework that implements MVC. If you are potentially going to have multiple people writing code for the system, then will also need to understand and use a source management system like Subversion. There is quite a bit to know and experiment with. Expect that your first attempts won't be very good so whatever you do at the start will probably not have any lasting value. It will be a while before you have enough knowledge and skill to develop anything with commercial value. From what you've said, I don't think that you can afford the time (and the risk) that it will take to do this.

ObSys: Thanks for the insights, and I never thought of reading a book, I think I'll try that.

chrisea: You raise several good points/tips. I have several more questions, but right now, the main one I have is how long? If I put in 40hrs/week as a full time developer, how long would it take to get to the point where I could start building a small business order management web/mobile app. I have about 4 months experience with front end, and a tiny bit of experience with PHP.

I had many years of programming experience (but no real web experience) and it probably took me about a year before I started to feel reasonably comfortable working with PHP and everything that goes with it. I spent quite a bit of time working on it (but not full time). I wasn't an expert by any means at the end of the first year.

I think that you still need to consider your direction. I have provided examples below of a few open source systems (ie free) that provide order entry (and in two out of the three, a lot more). If you do a bit of searching, you'll probably find others as well. Once you get enough skill and experience, then you would have to build something as good or better than these and find a market for it in competition with free options. Unless all of the existing options are really deficient, does the world need another order entry system? You can have these systems (and others) for free today. That's more of an opportunity than a problem since you can save yourself the extended time it would take to build one of these and start flogging it to potential customers almost immediately. Not only does that save you (most of) the learning and development time but it also allows you to find out relatively quickly if there really is really a business opportunity doing this or not. Obviously, there would still be some start-up time to learn the system and how to install it, use it and support it but this would be much much less than building a new one.

SugarCRM - Click Here
Contrack - Click Here
Opentaps - Click Here

If it took you 1 year to become comfortable with PHP related technology, I should probably double or triple that, since I'm not already a programmer.

I see what you're saying about the business side and I agree to some extent. I still think there are niche areas where product can fit, but whether they'd turn a good profit is a question mark. I'm attracted to the idea of building a product, partly because I like to build and see things develop over time. Also because in my previous industry (B2B trade), I was never really happy with the software offerings for us, and thought I could build something better.

As for your idea of consulting on installation/customization/support of existing software, I think that can work. I could see someone like me becoming familiar with a suite of software, and doing what you say. I'll consider this more. Building my own software may be something I do on the side if I go down this road. You've given me a lot to think about.

hi, well i can say i am like you sungod000. i also have the mind of a programmer by the experance of a teacher. the thing about learing how to programme is programme is like humane language. you need to be able to follow it before you can understand it. i am agraphic designer not becuase some one taught me but becuase i decided to do it my self. i needed a sign board so i downloaded coreldraw and started doing it it took me about a week but i did it. i have learnt some many things not by starting to read but by trying to complising a task. for example i was there on day and i decided to print a design in my tee shirt. so read some tutorals on it and i started experementing it cost me 20 tee shirt but i was able to do it and i now do it for institutions. i have just funished learning html and i an currently learning javascript but i can do websites and i have started doing some for people. you learn best when you want to achive some thing. if you are realy intered in making money you can come to my cuntry Ghana here the technical men are few and you can make it esaly