Hacker News new | past | comments | ask | show | jobs | submit login
How Good Are You At Programming (poss.name)
24 points by krat0sprakhar on July 14, 2014 | hide | past | favorite | 30 comments



Been programming for 30+ years, [can solve any problem] in computing, have saved companies millions and invented new ways of doing entire processes for thousands and thousand of people

-> I have no idea what most of those matrices were on about. I think I'm a shit programmer.

Edit: [have never come across a problem I couldn't solve given time (as I think is the case for most of us)] - fair enough jafaku


I read five or six of those boxes and then just snorted in disgust. It looks like a great slide to show suckers if you're a productivity consultant. A sane chart would be less verbose, and more depressing. You can code your whole life, and still have struggles with pointers, threads, algorithms, new languages, etc. The majority of coders wouldn't even rank in the first column. I'm not a complete dummy but it took me a year before I could instinctively avoid "off-by-one" errors in loops, and almost ten years just to learn to name variables in a relatively self-documenting fashion.


Haha - the older I get the more I agree with the catchphrase about variable naming being one of the hard problems of programming. Get that right and so many other problems never even arise


I would agree with you if you are talking about halfway decent programmers. I have seen some really poor code that naming conventions wouldn't save.


I remember I figured out 'interfaces' about 5 years after starting to deal with them. I'm not proud of that. I had no books, so... still. I also occasionally double-take on an 'off-by-one', and happily will spend 2 hours tracking down a rookie mistake I've made. Half the crap they ask you at an interview (thankfully haven't had to do one in 15 years) I wouldn't recognise, but would have probably done IRL about 1000 times.

Cliche as it is - the better you get, the more you realise how little you know.


I paused before I wrote "instinctively avoid" actually, because I didn't want to imply that I never get caught out anymore. But I was thinking back to my early days - I vividly remember complaining to myself "why didn't they make the first element 1!" Hey, maybe I was right, I don't have the perspective anymore. Like all of you, I've internalized counting up from 0 to the point where it seems like the only sane thing to do.


Yes, I never thought of that way. I remember once feeling a moment of confusion IRL: "Please go to window 2 sir.." -> "*but there's only 2 .. ahh ..ok.." - just that ever so slight moment of brain fail.

It was similar to the feeling of needing to weave left and right when you walk down the street after playing 20 hours of games that have a good sniper class.


> can solve any problem in computing

Maybe you should have phrased that differently, because it's obviously false.


I was thinking along the same lines.

I can code to the standards described on the right, but a lot of the time it ends up being closer to the stuff on the left, as it is a quick script to update the database once, and won't be used again.


My stuff is a combination of the left column, and other times hugely overly flexible / elegant stuff that ends up never getting fully utilised (and me thinking I should have stuck to the left column)


How long would it take you to solve world hunger?


42


How about the halting problem?


I'm not going to Google it, I don't know what you're talking about. I assume it's some 'thing' that's impossible/hard to solve. I'm sure someone will solve it if it's possible. It won't be me.


Hmm, if the claim of being able to solve everything by yourself (just "given time") wasn't dubious enough in itself, not knowing the "halting problem" (something very well established, at the very core of computer science, quite famous even as a trivia, and with several implications), would surely cast some doubts on it...

You might be perfectly able to solve most of the regular problems programmers encounter in everyday IT (e.g CRUD apps, a fault tolerant service, etc), but without CS fundamentals including detailed domain knowledge of several area solving a lot of problems (much less "most of them") is nigh impossible.

A lot of problems (advanced DSP, GUI library design, advanced compiler/GC design, speech recognition, database engine, etc) require large teams and specialists to do properly. Except if by "enough time" you mean "enough time to read the literature, become an expert, and devote many lifetimes worth of man-months to each project". In which case, duh, we're talking about a god-like premise anyway...


Well I've been programming since I was 6 years old, and i'm 38 now. I am what I am, I have yet to encounter any issue I couldn't solve. I don't deal with those sort of things though, so no idea if I could or not.

When I started there wasn't CS readily available, and I was a child - so I don't have your background. It would have saved me a lot of time if I did.

I guess I'm from a different type of crew than you - we probably work very differently -> To each his/her own.

Obviously my original statement wasn't to be taken so literally, it was meant to be glib and careless. I didn't make that clear I guess. My apologies.

Edit: Out of respect I looked it up - I've thought about that before, didn't know it had a name. It's impossible to determine (quite obviously - though you could establish a rough probability). I will make an effort to remember the name for next time.


This one is much better: http://sijinjoseph.com/programmer-competency-matrix/

It provided me with practical, straight-forward and helpful advice on where to focus to improve my programming skills.


These kinds of checklists tend to reveal the bias of their authors.

If I were authoring one I'd have a bunch of stuff in there about understanding the hardware, performance, caching, power consumption. How the compiler produces the instructions that actually run on the machine. A bunch of the how's and whys of the various OS designs and how that affects the problem in front of you might go well in there too. And so I reveal my bias and I'm probably overlooking something quite important that's your particular strength that makes you really great in your programming niche. At least I'm aware of it, which neither of these guys seem to be.


I agree. I should have said: "This checklist helped me a lot, after getting a masters degree, as a starting point listing the general aspects to get to know in the particular professional path that I'm currently following". If CS was my world, that checklist would be a map of the country I'm living in at the moment (or even better: a travel guide).


That's a good matrix for early-to-mid stage programmers. My only issue with it would be that it doesn't go high enough. I'm a level 3 in probably half of those categories, and I don't feel that I'm anywhere close to being a master programmer. I have a long way to go before I'll consider myself even a decent programmer. I think someone could be a 3 in nearly all of these categories without being particularly extraordinary.


You're more than likely a decent programmer if you are 3 in half of those.


Agreed, but there are some issues there as well. (The "database" row could easily be labeled "postgres" for example).


I read it and thought that must be written by an academic. Searched for the "about" page and wasn't disappointed. So as a fair warning for non-academic programmers: Read it with a grain of salt. That being said, I don't know how well the matrix applies to academic programmers.


Odd that there's nothing about writing tests in the troubleshooting section


You can test without writing automated tests.

I generally find this far more efficient use of my time, though my work is an in house app, with a user base of around 50. I get informed about errors very quickly.


How many Project Euler problems can you solve?


As great as Project Euler is for learning programming, it's definitely not a good measure of most aspects of programming. It measures a very small subset of the required skills. This chart gives a more complete and nuanced way of evaluating one's skills.


I agree, its like the "algorithms and data structures" stuff I was taught at University. In real life, organization of large code bases, picking an appropriate abstraction, and general knowledge of OS's are far more important for most jobs. Never had to implement a linked list in 11+ years of coding.


Yea, just because you aren't familiar with combinerics or number theory doesn't mean you aren't good.


Such nerd link-bait.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: