What do you mean? What percentage of the development time is spent actually writing code?
If that's the case, on average I spend around a third of the time testing, and 10% of the time fixing bugs I found during testing.
As you get better, you'll spend less time testing, and more time coding. Mostly because there are things you do so often, that eventually you don't even need to think to do them right. For instance, low-level string manipulation. You'll also produce increasingly weird and complex bugs, Schrödinger's Bug being the weirdest and hardest SOB of them all.
"Testing can only prove the presence of bugs, not their absence."
-Dijkstra
Actually, I was confused. I was using "Schrödinger's Bug" to refer to a whole spectrum of weird bugs, and specially one that's non-deterministic in nature.
how long [...] is there between when you start a project till you finish a project, on average.
Your question is ambiguous. There are many factors that influence how long a project will take, such as scope, complexity, whether you already know how to write every part of it or need to learn new things to complete it, etc.
I've taken as short as a few hours, and as long as months to finish projects. So if you really want an average, I'd say about three weeks.
Lol, awesome article! Yeah...it would completely depend on the project...you could be tasked with maintaining some badly written code, or just create a program to parse a file and display something.
Depends on the project. And the skill level. Let's see... On my current project at work I've spent... umm... give or take... I dunno... 500+ hours for sure.
Don't worry about development speed too much though, that comes with time and practice, just like everything else. Best thing to learn is that if you design your program right from the start (and that's a whole subject on its own...) you'll have a much easier (read: faster) time coding the thing. A better and more detailed design at the beginning allows you more time to just code an idea. This way you're not coding something while you're still creating how it works in your head.
Me:
My typing skill: 50-60wpm
My program size: 469 Kb.
Time spent: 6-8 hours.
Thats a long time, I know. Most of that time was spent looking things up and trying to fix my mistakes. I, just in the last 2 minutes, reached a point where I have a working, sort of, black jack game. I still need to adjust how it hands aces, add a betting system, and create AI players.
Is that source code size or executable size? Neither are accurate measurements. On one hand, source code may be encoded in something other than ASCII, which can, in some cases, double the size of the file. On the other, there's a lot of stuff in the executable that the programmer hasn't written himself. For example, if I wrote this:
and compiled it on MinGW, even though the program does nothing, the executable size would be around 200 KB.
Lines of code are a slightly better measurement, but only barely.
I can type ~30 words per minute (not it does much of a difference, anyway), and, on average, I'd say I can write 200-300 correct lines of code in 8-12 hours. I never timed myself, so this is just an estimate. Also, this figures only apply while coding proper, not while fixing my previous errors.
Wow ok I can see how that makes a difference. I was talking about the .exe for my program.
What do you mean, how many wpm you can type doesnt make a difference? In high school I dated a girl that could type up to 110wpm with 90% accuracy. She could finish a page b4 I had barely started.
Typing speed is a useful to a programmer as a machine gun to a sniper.
Programming is hard. Most people don't realize just how hard it is. It's not like copying, which is what typing was invented for. You're creating information as you write. Information that has to be consistent not only with itself, but also with the language it is being written in.
90% is very, very low for the purposes of programming. I've seen programs crumble to dust for misplaced commas, minuses, and barely wrong values. And those are single mistakes in pages and pages of code.
90% accuracy means that one in every ten characters is wrong. I'll emphasize that. One in every ten characters is wrong.
I've never known anybody who could think (unlike in typing, a vital skill in programming) as fast as they typed, and I doubt there's anybody who can program at 60 wpm.
However, typing does have use in other areas of software development, such as writing documentation.
I was thinking about an article I on the python language, written by a famous hacker whose name I have forgotten, that I read last year. He said something about being able to program at about his full typing speed. After adjusting for what he had to look up.
That is a very bad remembering of what he said, I will try to find that article again, so I can provide an exact quote.
That was easy. Here is an exact exact quote:
"That was my first surprise. My second came a couple of hours into the project, when I noticed (allowing for pauses needed to look up new features in Programming Python) I was generating working code nearly as fast as I could type. When I realized this, I was quite startled."
-Eric Raymond