I'm self taught!
Started when I was 13, went to College, and then University, got bored (AKA dropped out), then worked as an accountant..
Then decided to start my own software business, which has been fairly successful over the last two years.
I think the best moment of the last two years was when I managed to poach a client from a company who I had interviewed for about 2 and a bit years ago. It was only a small support contract, I think about £150 a month, but if felt pretty good
After leaving university, it was insane how hard it is to get any kind of software work without the degree. I would literally have worked for nothing, and yet larger companies are taking on Univeristy leavers at £15,000 - £22,000 per year.
At any rate, I've decided to use a mix of people. We have one experienced developer, my self (half sales, half server programming), and a 17 year old apprentice.
I tell you what though, the apprentice works twice as hard. I don't think any medium to large companies in the UK are taking on younger kids to program, and I think it's the best way. Their cheaper, they work harder and they respond positively the more responsibility they get.
If you can harness that drive at 16/17/18, I think my company can make some amazing software engineers.
They say it take 10 years to master something, and fairly often you see amazing 17 year old dancers/pianists etc. but programming isn't seen in the same light. Most of the people who applied for the apprenticeship had no experience on the CV, but were 5/6 years into programming.
I'd encourage any other software houses on here to have a think about it!
To get back to the question:
I think when you first start learning computer programming, it's very difficult to extrapolate into other languages. It takes a while before you can spend half a day with a new framework/language and just start writing code. That's one challenge.
The second, and most important is the Business side. It's so much more important. You can be the greatest programmer alive, but without any business sense, or knowledge your doomed to stay on the lowest levels. If you can't speak to a client and know business jargon, make business suggestions etc. you really can't progress beyond being intelligent labor.
I know many computer programmers, those that are successful, are good communicators. As much as we spend a lot of time translating our thoughts into programming language, that code has to be translated again to English/French/German to explain the concept to customers/players/users or else it's pointless.
It's like anything, if you can't communicate your ideas, there's little point having them.
Edited by anttoo, 27 March 2014 - 04:07 AM.