Live data from Hacker News

Ask HN: How can I tell if I have programming aptitude?

news.ycombinator.com

71–80 of 102 posts

Re: Ask HN: How can I tell if I have programming aptitude?

#71
post #69

Earlier quoted context omitted.

> I see a lot of people that can do things much better, and faster than me. It's intimidating. I think there is a mindset issue at play here. Instead of thinking "Wow, that person is such an elite hacker, I wish I had been born with that talent." think of it as "Wow, it was amazing how they came up with that solution. I want to learn how they did it so I can do the same.". Stated different, ask people their process.…

It feels like cheating though. Once you ask someone for help, the problem is dead. You haven't solved it yourself, and now even if you do solve it, it won't count. Someone told you how to do it. Your interviewer isn't going to help you with technical questions.

Asking for the solution, and asking about the process they've used to solve a problem is not the same. Learn the process so you can solve similar problems in the future. I wouldn't consider it cheating or "not counting", they've had to learn how to solve those types of problems somewhere.

Re: Ask HN: How can I tell if I have programming aptitude?

#72
post #69

Earlier quoted context omitted.

> I see a lot of people that can do things much better, and faster than me. It's intimidating. I think there is a mindset issue at play here. Instead of thinking "Wow, that person is such an elite hacker, I wish I had been born with that talent." think of it as "Wow, it was amazing how they came up with that solution. I want to learn how they did it so I can do the same.". Stated different, ask people their process.…

It feels like cheating though. Once you ask someone for help, the problem is dead. You haven't solved it yourself, and now even if you do solve it, it won't count. Someone told you how to do it. Your interviewer isn't going to help you with technical questions.

There's no shame in reaching out to others when problem solving, that's part of (and should be part of!) the problem solving process. In my experience, Interviewers love when you ask intelligent questions.

Re: Ask HN: How can I tell if I have programming aptitude?

#74

Go build a simple web app. Right now. Pick a programming language out of a hat, set up a database, wire up a few buttons, add some logic, and shove it all up in some cloud. If you haven't given up in a month, you're cut out for it. Persistence and a willingness to constantly learn are more important than your ability to do mental gymnastics.

Web apps are boring. Build tetris.

Re: Ask HN: How can I tell if I have programming aptitude?

#76
post #69

Earlier quoted context omitted.

> I see a lot of people that can do things much better, and faster than me. It's intimidating. I think there is a mindset issue at play here. Instead of thinking "Wow, that person is such an elite hacker, I wish I had been born with that talent." think of it as "Wow, it was amazing how they came up with that solution. I want to learn how they did it so I can do the same.". Stated different, ask people their process.…

It feels like cheating though. Once you ask someone for help, the problem is dead. You haven't solved it yourself, and now even if you do solve it, it won't count. Someone told you how to do it. Your interviewer isn't going to help you with technical questions.

You're looking at this the wrong way. It doesn't work this way for any profession. Do you think that doctors are created by taking a sick person, sticking them in front of an untrained 'doctor-want-to-be', and seeing if they somehow miraculously manage to correctly diagnose and treat an ailment they've never heard of?

No. They train. They study symptoms, and causes, and treatments. They learn about how symptom X is caused by disease Y, and is usually treated by medicine Z.

But medicine Z doesn't work in all cases, it's only 75% effective. So you might need to try medicine Z2 instead. etc.

And they they do this, over and over and over, adding in new knowledge of symptoms, treatments, effectiveness, etc. They do this on paper, and they do this in a controlled, supervised environments until they can demonstrate enough mastery to be able to demonstrate that they know enough of this body of knowledge of problems and solutions to be trusted to apply it on their own.

Programming is no different. Answers don't magically spring, unbidden, from some secret programming organ in your brain - you need to learn the established patterns for solving different types of problems. Then, you need to apply them to different situations.

Right now, you're frustrated because you don't have a very big 'bag of tricks' yet. You've only learned a couple of 'solution patterns'. You said that some problems are easy - right? Well, they're easy because you've already added those to your 'bag of tricks'. You've learned the patterns that solve those particular problems.

The ones that are hard? That's because you haven't learned those patterns yet. Once you do, they'll be easy too.

So, looking up solutions for how to solve these 'hard' problems isn't cheating - it's learning. You're learning new solutions.

As time goes by, your library of problem->solutions will get bigger and bigger, allowing you to solve more types of problems.

So, don't think of it 'ZOMG - I'm so dumb! I can't magically come up with the solution to this type of problem that I haven't encountered before!'

Instead, think of it as 'Hmm. That's interesting. Here's a new category of problem that I haven't solved before. The existing solutions that I have in my toolkit aren't solving it, so let's go learn a new solution pattern. Then I can add it to my toolkit for future problems.'

Re: Ask HN: How can I tell if I have programming aptitude?

#77
Aptitude is very overrated. I think if you're curious enough to wonder if you're good enough / have natural "aptitude", you more than likely have enough "aptitude" to go with it and can pursue programming.

I think pg has a quote online somewhere to the weight of "if you're spending time thinking about whether you're smart enough, you're most likely smart enough."

Re: Ask HN: How can I tell if I have programming aptitude?

#78

Earlier quoted context omitted.

It feels like cheating though. Once you ask someone for help, the problem is dead. You haven't solved it yourself, and now even if you do solve it, it won't count. Someone told you how to do it. Your interviewer isn't going to help you with technical questions.

You're looking at this the wrong way. It doesn't work this way for any profession. Do you think that doctors are created by taking a sick person, sticking them in front of an untrained 'doctor-want-to-be', and seeing if they somehow miraculously manage to correctly diagnose and treat an ailment they've never heard of? No. They train. They study symptoms, and causes, and treatments. They learn about how symptom X is c…

That makes sense. I do want to make sure I'm not just memorizing strategies though. I want to be able to figure things out independently, with my own logical thought.

I'll continue learning. Getting problems right and watching those tests light up green on Codingbat is a very nice feeling. I do get genuinely upset and frustrated when I can't figure out a problem, though. I'm not sure whether that means I hate coding or like it deep down.

Re: Ask HN: How can I tell if I have programming aptitude?

#79
The quickest way: get your IQ tested. If you're north of 115 and have the desire for programming, you'll be fine, though your 130+ peers will probably do better. If south, but you still have desire, you can still produce value, maybe even become a very rich person or internet-famous, but you're unlikely to be a top tier programming god. If you don't have the desire in either case, what are you going to do instead? Consider doing that, but note programming is a pretty good gig even if you're just ok at it or don't like it that much.

There are problem sets out there with time limits. You might even get some if you interview for jobs. But if they give a time limit of 2 hours and you solve it in 1, does that show aptitude? Maybe the average is 10 minutes! But then aptitude is more than just lines of code per hour, especially as the problems being solved become open ended and more complex. Maybe you too got the initial thing mostly working in ~10 minutes but spent the other 50 testing it and uncovering edge cases that would break your peers' quick solutions. So if you have a distribution of results you need to take them with a grain of salt, especially since experience can dominate aptitude so often. (http://ridiculousfish.com/blog/posts/old-age-and-treachery.h...) I don't care what your IQ is or how fast you can type, if you start writing a parser from scratch to solve some problem that is trivially solved with regular expressions, the regex user will beat you.

So if you're going to compare yourself to others, you need to try factoring out things like experience by comparing yourself to those with similar levels of experience. Programming competition prep at school is a great way to do it, since presumably you've all had about the same classes, are around the same age, and with many trial problems you can determine who is consistently doing well (aptitude) and who might have had good/bad runs simply due to having or not having a piece of knowledge. Another thing to try is a friendly 'competition' like Ludum Dare a few times. Your goal is to make the best game you can make in 48 hours. http://ludumdare.com/compo/ When it's done, you can compare with your peers, especially ones that look to have a similar level of experience and made similar decisions as you (language, libs, etc.).

Re: Ask HN: How can I tell if I have programming aptitude?

#80
post #12

Do you enjoy programming? If so, you will be good at programming. If not, you most likely won't.

Exactly, this is THE question! Even if you were somehow very good at programming but you hatted it, would you choose it as a job? I'd drop it immediately, don't waste your precious time on it. This leaves one other option: If you loved it more than any other job but you sucked at it, what would you do? I'd say: Do yourself a favor and find a job where you do what you love. If you prove my advice to be bad, you'd be t…

Even if you were somehow very good at programming but you hatted it, would you choose it as a job? I'd drop it immediately, don't waste your precious time on it.

I've seen plenty of people in the past (less so in the recent past) that did the job, weren't well-suited or it, didn't particularly like it, but they did it anyway. Why? Money. The kind of money that has you ordering stuff on Amazon and never once asking yourself if you have the money for it. You quit balancing your checkbook years ago. That kind of money. Not bathing in $100 bills kind of money, but enough coming in every year that you don't sweat small financial details. You don't do that on the median US income of $50K/year.

You claim if you hated it, you'd "drop it immediately". I don't know you, so maybe you would. But before you commit to that answer, recall that your annual pay might very well get cut in half or more. No more BMW leases for you. Now, maybe that's fine for you (and admittedly, if I could be a professional musician but only making half what I make, I'd take it in a heartbeat; don't need a BMW that badly).

But I knew plenty of folks in 80s (back when programming was the "hot new thing") that got into it because it paid well. They hated the job (probably because they weren't very good at it), but when the kids come and the spouse has become accustomed to a certain lifestyle, it's hard to give it up.

Post reply on HN