“If you’re not at the leading edge of some rapidly changing field, you can get to one. For example, anyone reasonably smart can probably get to an edge of programming (e.g. building mobile apps) in a year.”—Paul Graham in http://www.paulgraham.com/startupideas.html
I’d love to hear some actual programmers’ opinions about this claim.
I think it depends a lot on what you mean with “being at the leading edge” of mobile app development.
Programming an Android app that works isn’t that hard. On the other hand that doesn’t mean that you understand everything there to know about Android app development.
I remember from my informatic A lectures at university which were in Haskell that at the end of a semester some of the students still didn’t understand the concept of recursion.
Someone without a math background or computer science background is probably not going to use recursion for problems that are neatly solved with it when designing his app after learning Android programming with the standard tutorials. For a programmer that simply considers principles like recursion common sense it can be very hard to estimate how much time someone without a background needs to learn the concept.
You can program in Android without knowing exactly when a given object will be garbage collected. Multithreading can be complicated. Someone with years of experience in developing Android apps will likely outperform a nonprogrammer who spends a year learning Android but that doesn’t mean that the second person can’t find work as an Android developer.
I would estimate that to be good at programming in general, you need 10+ years of practice. After that, to become good at something new, e.g. building mobile apps, 1 year should be enough.
But it depends on how much time can you spend learning. Can you spend all your days learning? Or does your daily job take most of your energy and time, and then you have to split the remaining time between learning the new thing and having a social life? The 1 year estimate is for the best case.
For example, when I started learning programming as a teenager, I had a lot of free time, and I spent a lot of it programming. Later, when I worked as a programmer, I kept practicing my skills almost every day. However, when I am learning something new now, I must do it in evenings and weekends (but I would also like to spend that time with my girlfriend), so it goes rather slowly.
I think that is Paul Graham’s point, that a new field may be easier than an old field, especially that it has problems that are easily solved.
But that article is a couple years old and mobile apps are much more mature. It is much more difficult to achieve the standard of polish now than then, although much of that difficulty is not about programming.
Starting from zero programming knowledge, I think you can probably get a programming job in a hot subfield in a year if you’re reasonably smart and dedicated, if you grok abstraction (probable if you did well in high school calculus, or if you read Less Wrong), and if you can successfully work around the guild rituals involved. You won’t be an expert in anything, but you’ll be able to do decent work and make decent money.
Being at the leading edge isn’t hard; all that takes is buzzword compliance. Pushing it forward is hard, and unless you’re exceptionally talented and hard-working I think that’d take significantly more than a year.
Of all the smart and dedicated programmers I know, I’m confident not one would claim to have been any good in under five years of practice.
If you pick a tiny area of expertise, say coding modifications of existing apps using one particular API using two or three particular libraries, you could probably be producing publishable results in a year. But you won’t be as efficient, and won’t have the same job security (because the market changes so quickly) as the guys who put in the years to learn to think like a programmer.
“If you’re not at the leading edge of some rapidly changing field, you can get to one. For example, anyone reasonably smart can probably get to an edge of programming (e.g. building mobile apps) in a year.”—Paul Graham in http://www.paulgraham.com/startupideas.html
I’d love to hear some actual programmers’ opinions about this claim.
Not exactly about that claim but addressing stronger and less plausible versions of it: Teach Yourself Programming in Ten Years by Peter Norvig.
First, Paul Graham’s idea of “anyone reasonably smart” probably involves not more that the top 5% of the population and likely even less X-)
Second, while it’s not hard to get to the “edge”, it’s less trivial to do something useful while being there—such as advancing that edge.
I think it depends a lot on what you mean with “being at the leading edge” of mobile app development.
Programming an Android app that works isn’t that hard. On the other hand that doesn’t mean that you understand everything there to know about Android app development.
I remember from my informatic A lectures at university which were in Haskell that at the end of a semester some of the students still didn’t understand the concept of recursion.
Someone without a math background or computer science background is probably not going to use recursion for problems that are neatly solved with it when designing his app after learning Android programming with the standard tutorials. For a programmer that simply considers principles like recursion common sense it can be very hard to estimate how much time someone without a background needs to learn the concept.
You can program in Android without knowing exactly when a given object will be garbage collected. Multithreading can be complicated. Someone with years of experience in developing Android apps will likely outperform a nonprogrammer who spends a year learning Android but that doesn’t mean that the second person can’t find work as an Android developer.
I would estimate that to be good at programming in general, you need 10+ years of practice. After that, to become good at something new, e.g. building mobile apps, 1 year should be enough.
But it depends on how much time can you spend learning. Can you spend all your days learning? Or does your daily job take most of your energy and time, and then you have to split the remaining time between learning the new thing and having a social life? The 1 year estimate is for the best case.
For example, when I started learning programming as a teenager, I had a lot of free time, and I spent a lot of it programming. Later, when I worked as a programmer, I kept practicing my skills almost every day. However, when I am learning something new now, I must do it in evenings and weekends (but I would also like to spend that time with my girlfriend), so it goes rather slowly.
If you want to make great/lucrative aps, how hard is the programming compared to other sorts of programming?
I think that is Paul Graham’s point, that a new field may be easier than an old field, especially that it has problems that are easily solved.
But that article is a couple years old and mobile apps are much more mature. It is much more difficult to achieve the standard of polish now than then, although much of that difficulty is not about programming.
Starting from zero programming knowledge, I think you can probably get a programming job in a hot subfield in a year if you’re reasonably smart and dedicated, if you grok abstraction (probable if you did well in high school calculus, or if you read Less Wrong), and if you can successfully work around the guild rituals involved. You won’t be an expert in anything, but you’ll be able to do decent work and make decent money.
Being at the leading edge isn’t hard; all that takes is buzzword compliance. Pushing it forward is hard, and unless you’re exceptionally talented and hard-working I think that’d take significantly more than a year.
Of all the smart and dedicated programmers I know, I’m confident not one would claim to have been any good in under five years of practice.
If you pick a tiny area of expertise, say coding modifications of existing apps using one particular API using two or three particular libraries, you could probably be producing publishable results in a year. But you won’t be as efficient, and won’t have the same job security (because the market changes so quickly) as the guys who put in the years to learn to think like a programmer.