TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

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

49 pointsby canicodeover 9 years ago
aptitude: a natural ability to do something.<p>What&#x27;s the fastest way to tell if I&#x27;m cut out for, and should pursue programming?<p>I know a tiny bit of Java, and I can do FizzBuzz, basic recursion, logic exercises, etc. Can anyone suggest a few problems with max completion times for each that will let me know for sure?<p>Thanks!

34 comments

welandover 9 years ago
Here&#x27;s a little story that I tell to anyone who asks me this question. It&#x27;s how I got it answered for me a long time ago.<p>&gt; How can I tell if I have programming aptitude?<p>I have a friend who&#x27;s a painter. She&#x27;s a visual artist with a fair deal of success; she can actually live out of her art (and by that I mean she actually sells her paintings for a living, she doesn&#x27;t just design logos to buy her a little time for her <i>real</i> occupation on Friday evenings).<p>We were gathered at her house for a gig and waiting for the guitarist to show up (as usual), and while we were each rehearsing various bits and pieces, she sat on an armchair across from me and casually picked up a piece she had almost finished, and began applying some finishing touches. I&#x27;d never seen her painting before, so after I picked up my jaw from the floor, I passingly remarked that I&#x27;m a little envious on anyone who has a talent for drawing.<p>(Background: my depth perception is basically shit because of a limp eye. The only reasonable drawings I ever made where in Geometry classes).<p>Her reply was along the lines of dude, look, the ones who have a <i>talent</i> for this are the likes of Picasso and el Greco. Everyone else, even those of us who paint a lot better than anyone else you can find on the street, just practiced a lot.<p>She then proceeded to show me a couple of things she had drawn when she was a kid, long before she decided she wanted to do that for a living. Surely enough, they looked much like any other kid&#x27;s drawings. They were a little less &quot;hurried&quot;, as she obviously loved doing it and spent more time on a drawing, but were otherwise indistinguishable from other childrens&#x27; drawings. Even later ones, from around the time when she had decided she <i>really</i> liked this, weren&#x27;t exactly breathtaking.<p>tl;dr: You have the &quot;programmer aptitude&quot; if:<p>a) You&#x27;re a frickin&#x27; genius who can talk to computers as if they were kindred spirits, but then I guess you wouldn&#x27;t be asking this if you were, or b) You like programming enough that you can do a lot of it, and can tolerate spending that time looking at your programs with a critical eye and seeing where you failed and what you can improve.<p>The pitfall in b) is that it will consistently make you feel like a failure, but hey, that&#x27;s life man.
评论 #10437512 未加载
评论 #10441189 未加载
评论 #10439378 未加载
alexcasonover 9 years ago
Do you enjoy programming?<p>If so, you will be good at programming. If not, you most likely won&#x27;t.
评论 #10437178 未加载
评论 #10437346 未加载
评论 #10437162 未加载
评论 #10437158 未加载
评论 #10438187 未加载
评论 #10437367 未加载
评论 #10443444 未加载
jeffmouldover 9 years ago
I don&#x27;t think there is a test that is going to tell you that you should &quot;pursue programming&quot;. It comes down to whether you enjoy programming or not, and if you can see yourself personally doing it as a career. I have seen people who are excellent coders and analytical thinkers, yet have no interest in programming as a career. They are much happier in project management and other roles. On the flip side, I have seen people that have a strong desire to be programmers, yet have little &quot;aptitude&quot; (as you define it above). However, they have found niches where they excel at programming by working hard and overcoming their own obstacles.<p>With that said, there are many coding sites out there where you can compete against others. TopCoder and HackerRank are two that come to mind off the top of my head.
unimpressiveover 9 years ago
Lots of people have said that you need to like programming.<p>You don&#x27;t necessarily need to enjoy programming. But if you&#x27;re also not particularly interested in the <i>results</i> of programming, or the ways that you might get better results, it&#x27;s probably not for you.<p>I don&#x27;t know of any particularly good tests for aptitude, I suspect general intelligence is probably more predictive than anything else.
bootheadover 9 years ago
You will almost certainly feel like you&#x27;re not cut out for programming when you start. Failing is a necessary part of the process, which will make you feel inadequate.<p>My advice would be: don&#x27;t compare yourself to external measures or compare your skill with other people. Focus on and enjoy the process of learning (because there&#x27;s always more to learn).
bradcompover 9 years ago
I think aptitude is overrated compared to overall drive &#x2F; obsession. You should pursue programming if it&#x27;s something you want to pursue.<p>Do you like solving problems? How stoked are you when you figure out the cause of your bug? Would you pursue it even if it wasn&#x27;t lucrative?<p>Project Euler has some good puzzles, they are somewhat math related but cover a lot of interesting concepts and can be fun to work through.
评论 #10437171 未加载
评论 #10439285 未加载
msraviover 9 years ago
Algebra.<p><a href="http:&#x2F;&#x2F;codeup.com&#x2F;can-a-simple-algebra-test-predict-programming-aptitude&#x2F;" rel="nofollow">http:&#x2F;&#x2F;codeup.com&#x2F;can-a-simple-algebra-test-predict-programm...</a><p>Previous hn discussion: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=8741868" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=8741868</a>
nulagrithomover 9 years ago
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.<p>If you haven&#x27;t given up in a month, you&#x27;re cut out for it. Persistence and a willingness to constantly learn are more important than your ability to do mental gymnastics.
评论 #10439968 未加载
Jachover 9 years ago
The quickest way: get your IQ tested. If you&#x27;re north of 115 and have the desire for programming, you&#x27;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&#x27;re unlikely to be a top tier programming god. If you don&#x27;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&#x27;re just ok at it or don&#x27;t like it that much.<p>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&#x27; 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. (<a href="http:&#x2F;&#x2F;ridiculousfish.com&#x2F;blog&#x2F;posts&#x2F;old-age-and-treachery.html" rel="nofollow">http:&#x2F;&#x2F;ridiculousfish.com&#x2F;blog&#x2F;posts&#x2F;old-age-and-treachery.h...</a>) I don&#x27;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.<p>So if you&#x27;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&#x27;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&#x2F;bad runs simply due to having or not having a piece of knowledge. Another thing to try is a friendly &#x27;competition&#x27; like Ludum Dare a few times. Your goal is to make the best game you can make in 48 hours. <a href="http:&#x2F;&#x2F;ludumdare.com&#x2F;compo&#x2F;" rel="nofollow">http:&#x2F;&#x2F;ludumdare.com&#x2F;compo&#x2F;</a> When it&#x27;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.).
评论 #10441067 未加载
kansfaceover 9 years ago
I read a study a while ago that addressed this exact problem - a CS professor gave an intro class a test on CS. The students who had a consistent view of how a computer works (no matter if it was wrong or not) turned into programmers. Everyone else failed. There was essentially no movement between the groups.
评论 #10437341 未加载
评论 #10437285 未加载
评论 #10437279 未加载
greenyodaover 9 years ago
<i>&quot;Can anyone suggest a few problems with max completion times for each that will let me know for sure?&quot;</i><p>I&#x27;m not sure if timed problems are a good way to assess yourself. Being able to solve programming problems quickly comes from (1) experience from having solved lots of problems before and (2) experience with your languages and environments. If you have a lot of aptitude but little experience, you may not be able to solve problems quickly.<p><i>&quot;What&#x27;s the fastest way to tell if I&#x27;m cut out for, and should pursue programming?&quot;</i><p>I don&#x27;t know if there&#x27;s a fast way that can give you a meaningful answer. I&#x27;d suggest spending some time (at least several months) learning more about programming, working on some problems you&#x27;re interested in, and seeing whether you become a better programmer over time.
audlemanover 9 years ago
Something to look for: what gives you that feeling of total bliss?<p>I know I am a good programmer because when I finally solve the problem it feels good! My brain just releases all these bliss feelings and I go &quot;oh my God, I nailed it!&quot;<p>That feeling only comes once every several hundred hours of programming. I am routinely faced with technical problems to solve that are completely overwhelming, and that means I have to slog through confusion for weeks on end. If I didn&#x27;t have that desire to get to the end goal I would probably give up.<p>I think you should look for what has given you that feeling in the past. If it&#x27;s building something that works, lining up all the numbers (to 5 decimal places), or cracking a tough problem programming might be very fulfilling to you.
评论 #10443539 未加载
sleepychuover 9 years ago
Forget trying to work out if you have any &#x27;natural&#x27; ability (though since programming is a man made invention you can work out if you have any natural ability in the field by testing your problem solving abilities).<p>Get going with it. Find an open source project that interests you and contribute. There are a few things that are bad about github but as a platform it really allows you to find issues in software you&#x27;re interested in, fix it and then submit that fix.<p>If you work for someone that&#x27;s ideally the situation you&#x27;re in, you&#x27;re working on a software problem that interests you implementing new features or fixing bugs and submitting them.<p>HTH
marak830over 9 years ago
Well a lot of these answers helped me feel better thanks guys.<p>To op: for me i find sheer stubborness is how i code. Im not sure if that makes me a good programmer (i have only released one piece of software, took me 4 months to get to where i am, and a long way to go).<p>I started out loving the results: in my softwares case, the computer understanding what i said and doing that action, then i began to really enjoy how i did it: i just finished expanding it internally to be able to listen to multiple things and perform those actions at the same time.<p>For me, once i figured out what i wanted todo, not just exercises, that really drove me. I think ive learnt more in the last 4 months, than the previous 8 years of tinkering.<p>I know your not asking how to code, but this is what is convincing me that i should be programming. Alas i an English teacher, but it pays the bills, and lets me program after work.
jrapdx3over 9 years ago
I agree with all the comments saying there&#x27;s no short cut to finding out if you have &quot;aptitude&quot; for programming (or anything else). The only way to know is to try it, assessing its suitability is very much an internal matter, really a judgement call.<p>To cut through the noise, here&#x27;s a suggestion: pick up a copy of &quot;The Little Schemer&quot;, perhaps you&#x27;ll find it at a library, or possibly on-line. It&#x27;s a very easy and fun book to get into. Start answering the questions, if you&#x27;re still at it past page 60 or so, you just might <i>be</i> a programmer. Get all the way through the book, then you definitely have the interest and ability.<p>As a bonus, if you do pursue programming you will have learned some very useful things, and if you decide to do something else, you saved yourself a fair bit of anguish.
segmondyover 9 years ago
Do you like puzzles?<p>Do you like putting things together and taking them apart?<p>Are you disciplined enough to organize lots of tiny little things into something big over a long period of time without getting bored and giving up?<p>Can you see the forest and the leaves all at the same time?<p>If you answered yes to all of this, then you have what it takes. I say this to anyone else that answered yes, I don&#x27;t care if you know 0 programming, but if you can do the above, you have what it takes to become a very good programmer. Programming is about putting little things together, organizing them, and at the same time seeing the big picture (forest) while seeing the small pictures (leaf on a tree). It&#x27;s not magic or difficult.
rayalezover 9 years ago
Just ignore this question and don&#x27;t worry about it.<p>If you like it, and are ready to put in the effort - just keep learning and you will become a good programmer.<p>There&#x27;s no magical mysterious &quot;talent&quot;, there&#x27;s just intelligence, work ethics, and skill.
dmichulkeover 9 years ago
There&#x27;s not really a way of measuring it but I used some different proxies such as<p>1. <a href="https:&#x2F;&#x2F;projecteuler.net&#x2F;" rel="nofollow">https:&#x2F;&#x2F;projecteuler.net&#x2F;</a><p>Math-heavy but interesting<p>2. Clojure koans (<a href="http:&#x2F;&#x2F;www.4clojure.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.4clojure.com&#x2F;</a>)<p>Here you&#x27;re good if your solutions are close to the best solution - which is often short and readable (= elegant?)<p>There are probably similar koans for other languages and I&#x27;d also strongly recommend a functional language (because it frees yourself from the shackles of imperative and OO thinking, but YMMV)
gregjwildover 9 years ago
I think it&#x27;s probably something that&#x27;s hard to assess like that. I&#x27;ve been learning to program on-and-off for about 2 years. It&#x27;s only through sheer bloody-minded persistence that it is starting to see the pieces fall into place.<p>There&#x27;s plenty of different types of software development too; some require a stronger programming ability than others. If you enjoy solving problems, and making life easier for other people, then it&#x27;s something you&#x27;ll get to eventually with enough persistence.
haugetover 9 years ago
&quot;Can anyone suggest a few problems with max completion times for each that will let me know for sure?&quot;<p>I think how &quot;good&quot; you are at something is a very subjective thing... That said, have you tried programming competitions and projects like HackerRank, TopCoder, the ACM-ICPC, and Google&#x27;s Code Jam?<p>PS: if money is not your main motivation, I&#x27;d worry more about finding interesting questions&#x2F;problems that you enjoy solving rather than questioning your aptitude for it.
omarishover 9 years ago
Aptitude is very overrated. I think if you&#x27;re curious enough to wonder if you&#x27;re good enough &#x2F; have natural &quot;aptitude&quot;, you more than likely have enough &quot;aptitude&quot; to go with it and can pursue programming.<p>I think pg has a quote online somewhere to the weight of &quot;if you&#x27;re spending time thinking about whether you&#x27;re smart enough, you&#x27;re most likely smart enough.&quot;
readmeover 9 years ago
There are a lot of sites out there that offer programming challenges you can try, but actually developing software and programming are two different things. If you can do all of what you said, then it doesn&#x27;t matter how well you can solve a programming puzzle. You&#x27;ve got what it takes and what you need is time developing real software and mentors to help you grow.
mkorfmannover 9 years ago
Do you check the stove 3,4 times when leaving the house? Are you sometimes anxious, that you didn&#x27;t properly shut the door after haveng left the house?<p>I have this theory where people who do these things are good programmers, since they will check their commit a lot of times until it is perfect to push. But maybe this is more about mastery than having an aptitude for it. :)
评论 #10437368 未加载
评论 #10437386 未加载
评论 #10437331 未加载
Delmaniaover 9 years ago
You&#x27;re asking on HN. That tells me that you have the interest. The question becomes if you&#x27;re willing to do the work. Are you willing to put in daily practice to learn coding? Even when the &quot;passion&quot; is gone? If so, you&#x27;re cut out to be a programmer. Aptitude does not apply.
wrpover 9 years ago
Among psychologists studying the development of expertise, it is considered well established that outside of some rare and obvious cases, there is no such thing as aptitude. Skill is just a function of practice. It all depends on your willingness to put in the time.
galfarragemover 9 years ago
As an architect (houses) and an hobbyist programmer I see a lot of similarities between these activities: they are theoretically creative work but normally is not your creative aptitude that will land you a job. There are far less creative roles than boring ones..
ljkover 9 years ago
Pretty good reading on this topic - <a href="https:&#x2F;&#x2F;terrytao.wordpress.com&#x2F;career-advice&#x2F;does-one-have-to-be-a-genius-to-do-maths&#x2F;" rel="nofollow">https:&#x2F;&#x2F;terrytao.wordpress.com&#x2F;career-advice&#x2F;does-one-have-t...</a>
bjourneover 9 years ago
Do you think it is fun? If yes, you have it. If no, you don&#x27;t.
aepearsonover 9 years ago
I had never heard of FizzBuzz before this exact moment. What a weird &quot;test&quot;...
sharemywinover 9 years ago
Liked computer science in college because most of the grade was code not tests.
mazewayover 9 years ago
If you believe you have it, you&#x27;ll be much likely to have it.
tmalyover 9 years ago
programming like anything takes practice. You also have to enjoy problem solving. That&#x27;s my short take on it.
fleitzover 9 years ago
The longer you can exceed the max completion time the more aptitude you have for programming.<p>It&#x27;s a bit like zen... &quot;If I work very hard and diligent how long will it take for me to find Zen.&quot; The Master thought about this, then replied, &quot;Ten years.&quot; The student then said, &quot;But what if I work very, very hard and really apply myself to learn fast -- How long then ?&quot; Replied the Master, &quot;Well, twenty years.&quot; &quot;But, if I really, really work at it. How long then ?&quot; asked the student. &quot;Thirty years,&quot; replied the Master. &quot;But, I do not understand,&quot; said the disappointed student. &quot;At each time that I say I will work harder, you say it will take me longer. Why do you say that ?&quot; Replied the Master,&quot; When you have one eye on the goal, you only have one eye on the path.&quot;
venomsnakeover 9 years ago
If you can grasp pointers, recursion, asynchronous programming&#x2F;callbacks in less than a week (as a concepts, not apply-able skills) you have it.
评论 #10437234 未加载
评论 #10437388 未加载
评论 #10437280 未加载