Live data from Hacker News

Ask HN: How can I self-evaluate my programming skills?

news.ycombinator.com

31–40 of 45 posts

Re: Ask HN: How can I self-evaluate my programming skills?

#31
post #10

How should I be evaluating myself? The only metric that matters is the delta between what you know and what you need to know to build what you have to build. How do you find out what this is? By building that which must be built. When you get stuck, you will have to find a way to get unstuck: by getting educated, by consulting others, by finding others' solutions, or just by old fashioned figuring it out. How often?…

Ed, you're an odd cookie.

You always give the obvious, common sense answer. But you always give it in a way that provokes thought and reflection, even if we already know the answer. So, thanks. :)

Re: Ask HN: How can I self-evaluate my programming skills?

#32
post #23
post #10

How should I be evaluating myself? The only metric that matters is the delta between what you know and what you need to know to build what you have to build. How do you find out what this is? By building that which must be built. When you get stuck, you will have to find a way to get unstuck: by getting educated, by consulting others, by finding others' solutions, or just by old fashioned figuring it out. How often?…

Lets say someone is just starting their tennis training. They like the game, but they want to learn how to play well. Would you tell them that all that matters is whether they manage to beat their next opponent, and to focus on that? Or might you say "Dont worry about whether you win or lose for a while, instead focus on improving your fundamental skills"? The first strategy, where you only learn whatever you need to…

Tennis and programming = bad analogy. When you program you have to know far more than just how to make the code work. You're usually learning at least 3 languages to get one program working, you have to understand the interactions between your program and the server or the OS and the hardware that your software will run on, then you get into maybe learning how certain compilers work, your IDE and other tools, frameworks, object oriented or functional style, etc. On top of that everything is constantly changing on you.

In tennis you have a set of unchanging rules. The equipment may advance slightly over the years but they're basically the same. So you really in tennis you learn the rules, strategies, equipment, and you're good. You could program all your life and not even scratch the surface of it all. That's why I think edw's advice is totally perfect. Learning by finding out how to get a task done is the way to go because you could learn all sorts of programming related stuff all day that you never use. In tennis you're far more likely to get an opportunity to use all you've learned.

Nice try with the tennis, it's a good argument but it doesn't work out in the end.

Re: Ask HN: How can I self-evaluate my programming skills?

#33
post #10

How should I be evaluating myself? The only metric that matters is the delta between what you know and what you need to know to build what you have to build. How do you find out what this is? By building that which must be built. When you get stuck, you will have to find a way to get unstuck: by getting educated, by consulting others, by finding others' solutions, or just by old fashioned figuring it out. How often?…

This is slightly off topic but may be of value. When I solve a particularly difficult problem, I stop and ask myself a couple of questions that help me grow as a developer.

* If I created the problem, How could I have avoided creating this problem? Was it a design error, was I careless or sloppy, did I fail to test or understand something?

* How did I solve the problem? What steps did I take to solve it? How can I optimize my problem solving skills to solve problems quicker. Does this apply to a broad range of problems or is likely a unique problem?

Re: Ask HN: How can I self-evaluate my programming skills?

#35
Developer here.

I check back with the competency matrix semi-annually to re-evaluate where I'm at. Anything that I'm unfamiliar/unskilled with is fare game for the next 6 months.

If I were focused solely on global supremacy, I would check the matrix weekly, but alas, I have work to do, and I'm competent enough to do it now.

READ. It's the best way to discover the unknown unknowns.

Your ability compared to others only matters only when framed in the context of "What do I want?" What skills do you need for the career path you want? What skills do your future employer(s) need from you. What are the non-academic PhD guys working on, and does that interest you enough to wake up at 3am for?

Re: Ask HN: How can I self-evaluate my programming skills?

#36
post #23

Earlier quoted context omitted.

Lets say someone is just starting their tennis training. They like the game, but they want to learn how to play well. Would you tell them that all that matters is whether they manage to beat their next opponent, and to focus on that? Or might you say "Dont worry about whether you win or lose for a while, instead focus on improving your fundamental skills"? The first strategy, where you only learn whatever you need to…

Tennis and programming = bad analogy. When you program you have to know far more than just how to make the code work. You're usually learning at least 3 languages to get one program working, you have to understand the interactions between your program and the server or the OS and the hardware that your software will run on, then you get into maybe learning how certain compilers work, your IDE and other tools, framewo…

Lets not get bogged down in the tennis; I don't even play tennis, I just chose it because almost everyone recognises that investing time in fundamental skills is important in sports.

I spent some time, last August, playing with Haskell. This didn't help me build the next thing I needed to. I didn't need Haskell to help me solve any immediate problem either then, or since.

I spent that time because I believe that the experience will make me a better programmer, in the long run, and give me a bigger toolbox with which to conceptualize problems. I thought that, in the long run, in some sense, it would improve my fundamentals.

You seem to be arguing that things are so dynamic, that there's no point making long term investments like that.

If things were so dynamic that I thought there was a good chance I'd be making sandwiches for a living next week, I'd agree.

But things do not change that fast in programming. There's a copy of SICP on my desk that I'm reading; its the 2nd Edition from 1996, of a 1984 book, and the code is in Scheme.

And I don't feel like I'm wasting my time reading it, at all!

Re: Ask HN: How can I self-evaluate my programming skills?

#37

Never stop coding. Look back each 3/6/12 months at code you wrote back then. If it looks as cool as it was 3/6/12 months ago - you stuck. If it looks like shit - you are on a right track and right speed.

Occasionally, I take 2-4wk coding breaks to re-evaluate something that's been nagging me each time I code. Is OO working for me? Do I like functional languages (I don't)? How's that PHP treating you (unstable buggy broken)?

I've discovered that PHP makes me angry. Functional is good for small stuff. I need [much] more practice with OO. I don't know anything about ... a lot.

The next 2-4 wks are spent reading and comparing alternatives to doing whatever it was that was nagging me. These time blocks do actually include small coding problems (1-2hrs), but I can't really call it coding. I then begin with new optimism about the new language/skill/feature/paradigm that I've now incorporated into my daily programming.

Re: Ask HN: How can I self-evaluate my programming skills?

#38
post #6

The funny thing is that it's nearly impossible to evaluate where you stand before you've reached the next level or even the level after that. You think your solution is clever? Wait 6 months and you think it stinks. You think you have a nice abstraction? Wait until you need to do something you didn't think of and you find it's useless/too complex/unnecessary and so on. I find that the best way to evaluate yourself is…

Your book selection is among the best.

Re: Ask HN: How can I self-evaluate my programming skills?

#39
I don't know if this question can be adequately answered. There's enough to say about this as there is to learn about programming as a whole! In my experience I've found that the best thing to do is to just keep making things, challenge yourself, be humble, and remember that you will never be as good as you want to be. Someone out there will always be better and measuring against someone else is usually the best way to take the wind right out of your sails. Don't do it. Just be better than you were yesterday.

I measure myself like this: I ask, "would I have been able to build this a month ago"? If yes then it's time to start challenging myself.

Re: Ask HN: How can I self-evaluate my programming skills?

#40
post #36

Earlier quoted context omitted.

Tennis and programming = bad analogy. When you program you have to know far more than just how to make the code work. You're usually learning at least 3 languages to get one program working, you have to understand the interactions between your program and the server or the OS and the hardware that your software will run on, then you get into maybe learning how certain compilers work, your IDE and other tools, framewo…

Lets not get bogged down in the tennis; I don't even play tennis, I just chose it because almost everyone recognises that investing time in fundamental skills is important in sports. I spent some time, last August, playing with Haskell. This didn't help me build the next thing I needed to. I didn't need Haskell to help me solve any immediate problem either then, or since. I spent that time because I believe that the…

Yeah, you're right. Enough with the tennis. I think there's equal merit with what you're saying and what Ed is saying. We're trying to answer a question that doesn't really have a right answer. Add to that the fact that there are so many ways to evaluate how much youve improved or how you stack up that maybe we should focus instead on how not to measure these things.

I've been so tired that I'm prone to losing my train of though half way through writing so hopefully my last comment wasn't totally incomprehensible.

Post reply on HN