57 Comments
- kodek, on 10/12/2007, -0/+38Well, obviously you're not an expert. That would require yet another year of training :-)
- BrainInAJar, on 10/12/2007, -1/+27Learning programming isn't the same as learning C or whatever...
Any sufficiently good programmer ought to be able to switch from one language to another well in a week, and become an expert in a month.
The particular language is unimportant as much as it is thinking in terms of algorithms (and knowing what works/doesn't work with programming) - green1152, on 10/12/2007, -2/+18Sounds about right. I've been skateboarding full-time for about 9 years now. I'm definitely not crazy and doing 20 stair sets or anything like that, but I do have a very well developed style.
- LordSkywalker, on 10/12/2007, -8/+22Teach Yourself Programming in Ten Years! And then have the skills to program for an outdated language that has been surpassed by the new latest-and-greatest code.
- redxii, on 10/12/2007, -0/+13You still need a degree. Employers need their toilet paper.
- inactive, on 10/12/2007, -2/+11right on, braininajar!
Every programming language has input, output, math operators, logic operators, conditionals, loops, data types, and a comment syntax. After you've picked up your first five languages, you'll pick up any language after that by fanning through the book, because you will have enough experience to ask the right quetions. - JustinThibault, on 10/12/2007, -0/+910 Years is about the amount of time it took me to realize I was NOT interested in programming
- DannySpace, on 10/12/2007, -1/+8Ten years doesn't earn you the right to proclaim yourself the "Master" of anything; there is always room for improvement and education.
"Always remember your own insignificance." - mt066, on 10/12/2007, -0/+6damn i wish i read this ten years ago. then i could totally kick ass at.....something right now.
- Prod1gy, on 10/12/2007, -6/+11I taught myself programming (in multiple languages) in about 7 years, so this is about right. I started learning BASIC in 1999 when I was 9, and now i'm fully at it with C++ developing DS games and such. About another 3 years sounds right to master programming.
- inactive, on 10/12/2007, -0/+5This is a golden oldie, but I dugg it anyway because it's such an insightful piece of wisdom. There is so much BS flying around about technology and so few cool head keeping touch with reality...
A point to aplify: If you use an "easy to learn" programming language, it will take you ten years to master programming. If you grab the latest, hottest, most-hyped, pointy-haired, buzzword-loving, new, improved, dynamic, extremely agile-development favoring, active-object-oriented programming language - IT WILL STILL TAKE TEN YEARS. No matter what language you pick, what platform you run on, or whether you use a cuddly IDE or peck your code in from a black terminal in vi, it will take ten years. - blackjack75, on 10/12/2007, -1/+6You could have been the new Mozart.
And you chose skateboarding.
Luckily, WAM didn't have the choice. - MikeyJW, on 10/12/2007, -0/+5
I was in the I-need-a-degree boat for a long time, and I often felt that it was absurd for my employer to underpay me and deny me promotions based on my lack of a degree. With programming, it is definitely possible to attain a fairly high degree of skill without getting a degree. However:
1) I can't say that employers are completely unjustified in insisting on a degree. Having a degree doesn't mean you're more skilled than someone without a degree, but it does (or at least should) mean that you do have some minimal amount of skill. Without a degree, an employer can only take your word for it.
2) I learned most of my programming skills by programming for hobby and (once I got my foot in the door) on-the-job. Having said that though, I do have to admit that a LOT of what I learned in college was very important stuff that I would not likely have been exposed to just by programming for hobby.
The difference between an okay programmer and a great programmer is often just a better understanding of the fundamentals. CS is not a shallow field. There've been a lot of genius-level people who've devoted decades of their lives to advancing the field. To dismiss all of that as unnecessary is folly. - Ikioi, on 10/12/2007, -0/+4Yeah, I tried that CS route. The first class they wanted to put me in was Intro to Computers - Ok, class, let's now learn how to copy and paste. Dropped it, and next semester moved on to Intro to CS - Ok, class, let's learn how to add to binary numbers together.
Sorry, I'm not going to pay a school for things I already know, especially things I was taught in middle school. Sure, some want the piece of paper. I wanted to get my hands dirty. Someone told me I just had to pay my dues like everyone else. Problem is, I already paid them.
My advice to anyone going for a CS degree who already has a head start... get to know the head of the department really well. Show them your work, demostrate your competence, and get a pass to more advanced classes. Otherwise, you'll be spending a full semester doing copy/paste into MS Word and another making binary counter programs in assembly on simulated processors. (I'll save you the tuition, find some of Fravia's tutorials, find an assembly editor, and start playing with it on copies of your existing programs... you'll also learn some neat tricks for dissassembling existing programs to see how they work.) - Urusai, on 10/12/2007, -1/+5Get a CS degree before you consider yourself a hotshot. The article gives short shrift to the benefits that a theoretical approach can give you in practice. I've known some do-it-yourself hackers and they may have the skill to crunch some code, but they are seriously limited in their potential scope. You WILL be a better programmer. However, I recommend you enter the curriculum with plenty of personal experience first so you can more easily weed out the educational cruft.
- etnu, on 10/12/2007, -0/+410 years, if you're actually predispositioned for programming in the first place. I know plenty of people who've been doing this for at least 10 years (not including school), who still can't code their way out of a wet paper segfault.
Programming isn't just the act of writing java or C or whatever. It's more about design and program architecture than the actual commands you tap out to make something happen. Any idiot can "program", but it takes something much more to "design an application".
You can hand a man a paintbrush and canvas, but that doesn't mean he's going to become Michelangelo in 10 years. EVERYONE (regardless of inherent talent and intelligence) needs training. Some people will never be good no matter how much they train and learn, whereas others will be able to do amazing things long before they really understand all the nitty-gritty details. Don't feel bad if you're not really all that great at programming, though -- the world doesn't need a million Michelangelo, because it would be a waste of his talent to be painting the floor when he should be focusing on the damned ceiling. - Takteek, on 10/12/2007, -0/+4I knew SAMS was lying!!
- deralte, on 10/12/2007, -0/+3argh. i started with music, graphics and coding when i was ten.
since i'm almost 30 now, does this mean i still have ten years to go before becoming cool?
I better cancel my subscription to meetic.com and match.com right away... - izzybomb, on 10/12/2007, -0/+3You can get counterstrike degrees?
I kid, I kid. Ill probably go into college as a CS major, hopefully find my niche while im there. - Markie1006, on 10/12/2007, -0/+3While this is very dependent on the position you're applying for, in general a degree is only useful until you get enough experience on your resume.
- BlackCow, on 10/12/2007, -2/+5Yeah building is totaly diffrent.
- Ikioi, on 10/12/2007, -0/+2Let me clarify seriously, though. There is a big shift when going from one type of language to another. If you move from non-OOP to OOP, you have a lot more to learn than syntax. If you move from a compile on run langauage to a compiled language, you will have more to learn. If you move from a high level language down to low level language, you will have more to learn.
You have an advantage on someone who knows nothing. But sometimes the difference is so great, it's like having a car mechanic work on a lawn mower (easy learning curve) or a jet engine (very high learning curve).
In other words, don't ask the guy doing your websites PHP+AJAX setup to also write your VB accounting software. ;) - avidlinuxuser, on 10/12/2007, -0/+2@Ikioi
Actually, most CS programs will start off with advanced class if you come in with AP credit. My first CS class in college was Digital Systems. It was a class where we learned how to design and implement computer hardware. The final lecture was how to design a modern processor such as the Athlon 64.
@etnu You know nothing of what the common CS curriculum is nor do you know the difficulty in later classes. You say most colleges teach Java these days. That is true for the CS1 and CS2 introductory courses. However, most courses do not mandate what
language you use after those classes except for special classes like Advanced Java, Advanced C++, etc. In our programming languages course at my university, we have to learn 8-10 languages and understand the different paradigms of programming along with their usages. In our Operating Systems class, we learn how to write programs that are scalable. Most importantly, one of the earlier CS classes, Discrete Mathematics, is known to many as the most difficult math class you will ever take. Unless you have created some new and revolutionary algorithm, you cannot claim anything. - izzybomb, on 10/12/2007, -1/+3Getting through college and getting a degree also shows that your dedicated and you can work through some of the harder parts of things. Most employers know that you learn most of your important information on the job, but its also reassuring knowing your not going to jump ship when things get hard.
- etnu, on 10/12/2007, -2/+4Not necessarily.
Other ways to get hired:
- Start a company, get bought
- Do something amazing in the FOSS world and get noticed
- Find someone willing to hire someone without a degree first.
The only job you need a degree to get is the first one...though, obviously, looking at the alternatives, getting a degree seems like the "safe" route. - Ikioi, on 10/12/2007, -0/+2The terminal is dead, long live the terminal!
I'm a simple pico/nano man myself. Never had a use for those "new fangled" editors like vi or emacs. Syntax highlighting makes you lazy! ;) - endersadvocate, on 10/12/2007, -0/+2there are definitely exceptions..
hell, at MIT you take many CS courses on Quantum Computing, Optical Computing Etc.
far outside the realm of what most schools teach.
(ex. my friend who goes to University of Central Florida, his class is nothing but java and basic concepts) - mindinhand, on 10/12/2007, -0/+2I'm shocked that I haven't read any comments about clients. For me ten years experience will provde you with knowledge about how different clients think, and how projects are formed, change over time and are completed. Every project I've been on has had a different approach to getting things done. The experience seeing what worked, what failed, and learning what to anticipate are my most valuable commidities as a programmer. Once I understood how to use them, then I could pick a suitable architectural approach to work with.
Writing lines of code, is like driving. I can do it for 8 hours without much thought. But planning a trip, and finding out the true goal of the project, that takes experience.
Sure multiple languages, and design patterns are nice to learn, but ulimately, the most useful skill is to learn how to work with different people. - MikeyJW, on 10/12/2007, -0/+2You can't judge a CS curruculum based on some bonehead intro classes. And to say that CS is only good for people who don't already know how to program is absolute rubbish. What school did you go to that gave you that impression? Arkansas State University, Podunkville?
Try making it through the CS program at Berkeley or MIT and then tell me the CS major is a waste of time if you already knew how to program. - Twango, on 10/12/2007, -0/+1Expertise is defined as expert skill OR knowledge in a field. These divvy up roughly as school, and after.
Expert -knowledge- might be learned in much less than 10 years. All of the syntax of a computer language, for example.
Skills OTOH are more closely linked with experience. Excellent programming requires a boatload of skills, developed by 'trial and error', reading other's code, etc. - jim99, on 10/12/2007, -0/+1I think ten years might be an accurate number for mastery, but certainly not proficiency. As many people have said, it's not the actual task of writing code but rather designing useful/interesting applications. Many intermediate programmers might know the C++ language very well, but could most likely not write the next Half-Life 2.
- endersadvocate, on 10/12/2007, -1/+2This Article was in New Scientist..
They leave out the part from the article about how almost all "masters" masters have a crucial mentor.
That and the 10 years is spent working your ass off - thomasprebble, on 10/12/2007, -1/+2I'm into my second year of a CS degree and I'd definately have to agree. There is a HECK of alot you can only really learn at University, logarithms, asymptotic notation, big-Oh notation. None of those topics are even touched on in "teach me to code in x days" and yet are fundamental to what we do. You wouldn't want to sort a list of a million customers using bubblesort afterall!
- inactive, on 10/12/2007, -0/+1@lkioi
"especially things I was taught in middle school"
Sheesh, where did you attend middle school? These days a kid is lucky to graduate high school and know how to SPELL 'binary'. - Jamie, on 10/12/2007, -0/+1It's about mastering programming as a skill (understanding algorithms and techniques) not earning money.
Dealing with clients should not be something the programmers should be doing in my opinion. - xtr3m, on 10/12/2007, -1/+1Expect a fewlaw suits from the publishers of the "in 24 hours" series.
- gd007, on 10/12/2007, -1/+1is it still valid in the internet age?
- deralte, on 10/12/2007, -0/+0thanks.. i appreciate when people put me down. it makes me remember who i am...
- vosill, on 10/12/2007, -0/+0Absolute bollocks.
At the end of the article, with the quotation "Everyone can be taught to sculpt: Michelangelo would have had to be taught how not to. So it is with the great programmers", he's invalidating what he said before: it doesn't matter how long you practice for, you have it or you don't.
Being a programmer isn't about knowing ten different programming languages, it's about being able to understand what the user requires, and putting that requirement into a form that the compiler understands. The rest is just fluff. If you speak one programming language you can learn to speak the others very quickly.
Following this ten year plan may make you a programming expert, whatever that is, but the rest of us will, and have, spent that ten years earning considerable amounts of money a day, and learning the most important part of any career: selling yourself and talking to people who matter.
I'd hire a C hacker with 3 years experience, an interesting portfolio and varied client list over anyone with 10 years closed experience and no client work. And so would most, which is why some graduates are ***** and freelancers with no formal qualifications are earning $500 a day.
(Most of my work is related to the videogame/new media industries in some way, including rapid prototyping, web dev, and game coding. I realise that other areas of programming require different skills, and likely have different requirements) - CharlesDarwin, on 10/12/2007, -2/+2Not completely invisible. Some of us (e.g., myself) have our threshold set at 'show all' because we don't want gay morons telling us which comments to read. If only digg could remember my preference...
- etnu, on 10/12/2007, -0/+0@avidlinuxuser:
I've been through the programs, and I see dozens of "engineers" every week who graduated and still know nothing about software development. You don't think you can learn Big O outside of university? You've got to be kidding me. Most graduates will never invent any new algorithm, nor will they be expected to. There's a huge gap between academics and the real world, and only someone who'd never experienced the real world of software development would make such ridiculous claims.
I have actually worked on OS kernels. I have actually built highly scalable systems. I have actually been awarded U.S. software patents.
CS curriculum is a joke. They spend 4 years trying to teach what any intelligent person should be able to grasp in a few months. - etnu, on 10/12/2007, -0/+0Writing the actual game engine can easily be done by one person. For most games, it usually is (just check the credits). What costs time and money (read: people) is artists (texture / mesh), level designers, music composers, etc. The typical game engine has 3 or 4 developers working on it:
- Graphics engine
- AI
- Physics (frequently purchased)
- Sound
The majority of the work that goes into games is NOT in creating the engine...it's in writing the AI scripts, creating the levels, play testing, etc.
One programmer can most certainly create a large system, and most of the time you're far better off having a single person build each discreet component. If a component is too large for a single person to do it, then you need to break the component into smaller pieces, or perhaps even rethink the component entirely as it's more likely than not overly complicated. - izmeh, on 10/12/2007, -3/+2I can't even get started...there have been several occasions were I try to scour the net without luck.
- thomasprebble, on 10/12/2007, -1/+0Nobody could. John Carmack couldn't have written Doom 3 on his own either. If he had a 100 years locked away in his basement with a continual supply of redbull and vodka he might have gotten somewhere but lets face reality: If you ever write anything big and significant it will most likely be in a team of other equally skilled coders (and in games, artists).
- Ikioi, on 10/12/2007, -3/+2@BrainInAJar
Tell that to someone going from Visual Basic to Perl. Note, I did not say from Perl to Visual Basic... nobody in their right mind would move to an inferior language. :P - Deranged, on 10/12/2007, -6/+5I began programming at the age of 9 with a C based language for a game I was playing. I'm far better now at the age of 19 than I was then. I don't think I really understood some of the concepts then, but now I completely understand object orientation and many other concepts of programming
- icdeadpeople, on 10/12/2007, -10/+8WOW. I better Get Started! lol
- monkeywizard, on 10/12/2007, -3/+1I became an expert at downloading porn in about 3 hours.
- etnu, on 10/12/2007, -6/+4Most of the best programmers don't have CS degrees. CS is good for people who don't know anything about programming to begin with. You're much better off getting a degree in something like physics, electrical engineering, or mathematics. Seems useless? You should see the CS curriculum.
The majority of what CS courses teach is stuff that's easier to pick up on your own if you're intelligent. If you're not intelligent, then you shouldn't be creating software anyway. It shouldn't take a month to learn basic data structures. It shouldn't take a semester to understand memory allocation. Schools teach at a glacially slow and painfully ignorant pace. It doesn't help much that they teach primarily in Java these days, either (exceptions for MIT and other similar caliber schools, of course). - CharlesDarwin, on 10/12/2007, -4/+1CS is just CE for pussies!
-
Show 51 - 55 of 55 discussions



What is Digg?
The Digg Toolbar for Firefox lets you Digg, submit content, and keep track of Digg even when you're not on the Digg site. Download the official