How can I know if I have talent for programming?

A place to discuss the science of computers and programs, from algorithms to computability.

Formal proofs preferred.

Moderators: phlip, Moderators General, Prelates

MrPotatoJunior
Posts: 4
Joined: Tue Jun 11, 2013 2:58 pm UTC
Location: Barcelona, Spain

How can I know if I have talent for programming?

Postby MrPotatoJunior » Tue Jun 11, 2013 3:15 pm UTC

(This is my first post. If this topic doesn't fit here: sorry. I'll delete my post ASAP)

I'm a youngster who is choosing a major, and I'm considering CS. The truth is, that I don't know if I'm suited for this. I have interest in technology (specially robotics) but I assume that it requires logic, knowledge of algebra and algorithms, and noticing details. I don't know if I have any of those characteristics. I don't want to be one of those incompetent people who graduate with the lowest grade possible, don't even know how to do a fizzbuzz, etc... I don't even know if studying this as a university degree would kill my curiosity for programming!

If anyone would have any kind of advice that would be great.

User avatar
notzeb
Without Warning
Posts: 629
Joined: Thu Mar 08, 2007 5:44 am UTC
Location: a series of tubes

Re: How can I know if I have talent for programming?

Postby notzeb » Wed Jun 12, 2013 10:02 am UTC

Do you code in your spare time? Have you tried coding in assembly?

Are you willing to stick with the degree when it becomes apparent that CS, at the university level, is considered a subfield of math? How comfortable are you with discrete math, linear algebra, formal logic, and statistics?

Have you ever written a quine? Have you ever written a quine in Unlambda?

Have you ever read an RFC? Do you know, off the top of your head, what type of simulation robotfindskitten is?

Disclaimer: I am not a CS major. I do not know what "talent for programming" means.
Zµ«V­jÕ«ZµjÖ­Zµ«VµjÕ­ZµkV­ZÕ«VµjÖ­Zµ«V­jÕ«ZµjÖ­ZÕ«VµjÕ­ZµkV­ZÕ«VµjÖ­Zµ«V­jÕ«ZµjÖ­ZÕ«VµjÕ­ZµkV­ZÕ«ZµjÖ­Zµ«V­jÕ«ZµjÖ­ZÕ«VµjÕ­Z

User avatar
Xenomortis
Not actually a special flower.
Posts: 1421
Joined: Thu Oct 11, 2012 8:47 am UTC

Re: How can I know if I have talent for programming?

Postby Xenomortis » Wed Jun 12, 2013 10:04 am UTC

Do you have any experience programming?
Image

User avatar
Cleverbeans
Posts: 1378
Joined: Wed Mar 26, 2008 1:16 pm UTC

Re: How can I know if I have talent for programming?

Postby Cleverbeans » Wed Jun 12, 2013 2:18 pm UTC

Talent is a myth, if you want to become skilled at programming it simply requires your time and dedication. If you enjoy problem solving I recommend you try it, see if you enjoy it and make the decision from there.
"Labor is prior to, and independent of, capital. Capital is only the fruit of labor, and could never have existed if labor had not first existed. Labor is the superior of capital, and deserves much the higher consideration." - Abraham Lincoln

MrPotatoJunior
Posts: 4
Joined: Tue Jun 11, 2013 2:58 pm UTC
Location: Barcelona, Spain

Re: How can I know if I have talent for programming?

Postby MrPotatoJunior » Wed Jun 12, 2013 7:37 pm UTC

>Do you code in your spare time?
>Do you have any experience with programming?
Yes... right now doing Arduino language. It's apparently a language similar to C/C++. This is for the Arduino microprocessor, which seems the best way for a hobbyist to do robotics. Learning programming is a bit hard for me if there is no one explaining verbally... luckily there are Youtube tutorials.

>Have you tried assembly?
Yes, 6502 and I dropped it in a few hours. I couldn't find much documentation on the internet... specially verbal.

Are you willing to stick with the degree when it becomes apparent that CS, at the university level, is considered a subfield of math? How comfortable are you with discrete math, linear algebra, formal logic, and statistics?
I honestly don't know how good I am at discrete math, linear algebra, formal logic and statistics. The only thing I can tell is that I'm not outstandingly good at them. But if I have to do an extra effort to learn these for CS, I will. I don't know really. I'm in (if I recall correctly) the American equivalent of... first year of high school, I think? I have done up to second degree equations (I assume that's how they call it in english), I have done functions and topics on a similar level. I didn't have big trouble with those. I think equations are fun.
>Have you ever written a quine? Have you ever written a quine in Unlambda?
>Have you ever read an RFC? Do you know, off the top of your head, what type of simulation robotfindskitten is?
No. ;_;
Seems like a long way to go...

korona
Posts: 495
Joined: Sun Jul 04, 2010 8:40 pm UTC

Re: How can I know if I have talent for programming?

Postby korona » Wed Jun 12, 2013 11:15 pm UTC

I have a degree in math and computer science and I have never heard of robotfindskitten and have never written a quine in any language. RFCs often deal with implementation details computer scientists don't care about (in contrast to software engineers).

If programming is fun to you that is definitely a good starting point. Much of the introductory CS stuff will not focus on programming itself but on algorithms for classical programs, e.g. sorting algorithms, searching algorithms, shortest distance in graphs etc.

CS always uses a bit of math, especially discrete math but you don't have to be an expert in discrete math (or any other mathematical field) to study CS. However studying CS will require working with mathematical proofs and you should not feel TOO uncomfortable when looking at one.

User avatar
notzeb
Without Warning
Posts: 629
Joined: Thu Mar 08, 2007 5:44 am UTC
Location: a series of tubes

Re: How can I know if I have talent for programming?

Postby notzeb » Thu Jun 13, 2013 1:43 am UTC

Sounds like you'll be fine. My first question was the only one that mattered.
Zµ«V­jÕ«ZµjÖ­Zµ«VµjÕ­ZµkV­ZÕ«VµjÖ­Zµ«V­jÕ«ZµjÖ­ZÕ«VµjÕ­ZµkV­ZÕ«VµjÖ­Zµ«V­jÕ«ZµjÖ­ZÕ«VµjÕ­ZµkV­ZÕ«ZµjÖ­Zµ«V­jÕ«ZµjÖ­ZÕ«VµjÕ­Z

HungryHobo
Posts: 1708
Joined: Wed Oct 20, 2010 9:01 am UTC

Re: How can I know if I have talent for programming?

Postby HungryHobo » Tue Jun 18, 2013 1:11 pm UTC

MrPotatoJunior wrote:
Do you code in your spare time?
Do you have any experience with programming?

Yes... right now doing Arduino language. It's apparently a language similar to C/C++. This is for the Arduino microprocessor, which seems the best way for a hobbyist to do robotics. Learning programming is a bit hard for me if there is no one explaining verbally... luckily there are Youtube tutorials.


Forget all the rest.
this is the important one.
You'll be fine.

you'll probably find a lot of your class can't answer yes to that much.

Though if it's robots you're interested in you might like electronic engineering more.
Give a man a fish, he owes you one fish. Teach a man to fish, you give up your monopoly on fisheries.

User avatar
Moose Anus
Posts: 395
Joined: Fri Oct 14, 2011 10:12 pm UTC

Re: How can I know if I have talent for programming?

Postby Moose Anus » Fri Jun 21, 2013 9:27 pm UTC

Do you know anything about hackers?

Can you jam with the console cowboys in cyberspace?

Never experienced the new wave? Next wave? Dream wave? OR cyberpunk?
Lemonade? ...Aww, ok.

korona
Posts: 495
Joined: Sun Jul 04, 2010 8:40 pm UTC

Re: How can I know if I have talent for programming?

Postby korona » Sun Jun 23, 2013 10:16 am UTC

I don't see how any of that is relevant for deciding if you should study CS.

User avatar
Xanthir
My HERO!!!
Posts: 5321
Joined: Tue Feb 20, 2007 12:49 am UTC
Location: The Googleplex
Contact:

Re: How can I know if I have talent for programming?

Postby Xanthir » Mon Jun 24, 2013 6:27 pm UTC

It was a joke from the 90's kids show Ghostwriter, about a ghost who helped children solved mysteries. It was also an early appearance of Julia Stiles as an actor (age 14).
(defun fibs (n &optional (a 1) (b 1)) (take n (unfold '+ a b)))

User avatar
PM 2Ring
Posts: 3650
Joined: Mon Jan 26, 2009 3:19 pm UTC
Location: Mid north coast, NSW, Australia

Re: How can I know if I have talent for programming?

Postby PM 2Ring » Tue Jun 25, 2013 8:09 am UTC


Nem
Posts: 335
Joined: Fri Aug 14, 2009 12:19 pm UTC

Re: How can I know if I have talent for programming?

Postby Nem » Wed Jul 03, 2013 2:16 am UTC

MrPotatoJunior wrote:(This is my first post. If this topic doesn't fit here: sorry. I'll delete my post ASAP)

I'm a youngster who is choosing a major, and I'm considering CS. The truth is, that I don't know if I'm suited for this. I have interest in technology (specially robotics) but I assume that it requires logic, knowledge of algebra and algorithms, and noticing details. I don't know if I have any of those characteristics. I don't want to be one of those incompetent people who graduate with the lowest grade possible, don't even know how to do a fizzbuzz, etc... I don't even know if studying this as a university degree would kill my curiosity for programming!

If anyone would have any kind of advice that would be great.


Well, the level of talent required to learn to program, and even to make a living at it, isn't high. If you can do linear algebra reasonably well - balance equations, that sort of thing - you'll probably be okay.

That said, I find one way to measure talent to be to see how easily you get answers that you don't already know. And programming is still one of those areas where the answers to trivial yet interesting problems aren't general knowledge for most of the people who'll be starting. So, I suggest you see how you do on simple problems as compared to others. Look up a lecture on something like sorting algorithms from a run of the mill uni (youtube it) and see whether you get the answers before the lecturer gives them away/before others in the class stick their hands up.

User avatar
skeptical scientist
closed-minded spiritualist
Posts: 6142
Joined: Tue Nov 28, 2006 6:09 am UTC
Location: San Francisco

Re: How can I know if I have talent for programming?

Postby skeptical scientist » Sat Jul 06, 2013 3:45 pm UTC

The easiest way to tell is just to take some classes and see how you do. I'm assuming you won't be declaring CS as a major without having taken and CS classes, right?

Other than that, I'd say there are two good indicators to determine whether you have a talent at programming:
1) Be an above-average math student. You don't have to be a top student, but if you're below average you're probably going to find programming and some of the required math (linear algebra, discrete math) tough going. I wouldn't say this is an insurmountable disadvantage if you aren't, but you'll have to work a lot harder.
2) Enjoy it. If you enjoy programming enough to do it in your spare time, that already gives you a very good chance of success. If you don't, maybe you should consider doing something else anyways?

One thing I would suggest if you do decide to major in CS: pick a useful minor (or second major). As more and more people major in CS and look for programming jobs, the determining factor in what kind of job you end up with will be what other skills you bring to the table. Having a strong math or physics background will be really useful for programming jobs dealing with computer graphics (which is all physics and linear algebra). A strong math or economics background will be big data (which uses a ton of linear algebra, probability and statistics, and econometrics) and/or finance (all of the above, plus an understanding of financial markets). Basically any sort of science/technical area will be useful for domain-specific programming jobs—if you want to build medical technology, having a chemistry/biology second major or minor will make you stand out from the pack.

Disclaimer: this post is based on my familiarity with the American education system and job market. I assume things are similar in Spain, but I don't really know.
I'm looking forward to the day when the SNES emulator on my computer works by emulating the elementary particles in an actual, physical box with Nintendo stamped on the side.

"With math, all things are possible." —Rebecca Watson

User avatar
Jplus
Posts: 1711
Joined: Wed Apr 21, 2010 12:29 pm UTC
Location: Netherlands

Re: How can I know if I have talent for programming?

Postby Jplus » Sat Jul 06, 2013 7:13 pm UTC

Some people are researching how to detect in advance whether somebody's got the right potential to be good at programming (because honestly, it isn't for everyone). If you're worried that it might not be your thing even though you're already doing it, you could try their test: word document.

After taking the test, you can read all about background and scoring here: web page.
"There are only two hard problems in computer science: cache coherence, naming things, and off-by-one errors." (Phil Karlton and Leon Bambrick)

coding and xkcd combined

(Julian/Julian's)

User avatar
skeptical scientist
closed-minded spiritualist
Posts: 6142
Joined: Tue Nov 28, 2006 6:09 am UTC
Location: San Francisco

Re: How can I know if I have talent for programming?

Postby skeptical scientist » Sat Jul 06, 2013 11:26 pm UTC

Jplus wrote:Some people are researching how to detect in advance whether somebody's got the right potential to be good at programming (because honestly, it isn't for everyone). If you're worried that it might not be your thing even though you're already doing it, you could try their test: word document.

This test is trivial if are capable of writing a simple program. It is not a useful predictor of whether you will be good at programming. What it does (and what it is designed to do) is predict whether you are the kind of person who can learn to program at all.
I'm looking forward to the day when the SNES emulator on my computer works by emulating the elementary particles in an actual, physical box with Nintendo stamped on the side.

"With math, all things are possible." —Rebecca Watson

User avatar
Jplus
Posts: 1711
Joined: Wed Apr 21, 2010 12:29 pm UTC
Location: Netherlands

Re: How can I know if I have talent for programming?

Postby Jplus » Sun Jul 07, 2013 11:53 am UTC

Well, sure. By "good at programming" I just meant "beyond suck level". Given that most people probably wouldn't be able to get beyond that level, it seemed fair to me to call that "good". Of course there's a large spread in goodness and as you said, this test doesn't measure that.

That said, people who received training in a programming language (even a language with C-like syntax) don't necessarily perform better could still perform worse at this test than people who didn't. This is one of the results that the researchers found.
"There are only two hard problems in computer science: cache coherence, naming things, and off-by-one errors." (Phil Karlton and Leon Bambrick)

coding and xkcd combined

(Julian/Julian's)

User avatar
RihhanaNZ
Posts: 1
Joined: Wed May 22, 2013 7:02 am UTC
Location: 445 Mount Eden Road, Mount Eden, Auckland

Re: How can I know if I have talent for programming?

Postby RihhanaNZ » Tue Jul 16, 2013 10:49 am UTC

Try to reduce the code written by other programmers in your style of writing. If anyone has written a program to calculate prime no. in 6 lines, try yourself of writing it with optimal code with less lines.
Cheers, happy coding!!!

User avatar
WarDaft
Posts: 1583
Joined: Thu Jul 30, 2009 3:16 pm UTC

Re: How can I know if I have talent for programming?

Postby WarDaft » Wed Jul 17, 2013 4:33 pm UTC

In my fist year, there was a sharp divide between people who couldn't get pointers, now matter how much you explained it to them, and people who barely batted an eye.

There were 6 other people in that one class in my residence (not kidding). 3 of them would keep running into the same problems over and over. Literally the exact same set of problems. I hate to admit it, but by the end of the term I ended up kinda dragging my feet when they asked for help. The other 3 always had much more interesting problems.

Programming really, really isn't for some people.

But if you're playing with an Arduino already, you've got the right mindset. However, CS is also very theory heavy. As skep said, it's almost a math degree, which means you constantly have to be learning to think better to do well.
All Shadow priest spells that deal Fire damage now appear green.
Big freaky cereal boxes of death.

User avatar
freakish777
Posts: 354
Joined: Wed Jul 13, 2011 2:14 pm UTC

Re: How can I know if I have talent for programming?

Postby freakish777 » Fri Jul 19, 2013 8:09 pm UTC

WarDaft wrote:In my fist year, there was a sharp divide between people who couldn't get pointers, now matter how much you explained it to them, and people who barely batted an eye.


The big problem, there are people who understand technical explanations and think of things with a technical mindset to begin with (those who get pointers immediately), and people who relate some prior experience to what they're learning (they're trying to make sense of what's being explained in the context of their experiences), for them an analogy is incredibly useful.

I've had the most luck using the analogy of a mailbox (for people who don't get it after you try the technical approach, which is very important to start with the technical approach):

Each variable/byte of memory is like a mailbox (in that it can hold something, in particular a numerical value), and a pointer is like an address (in that it refers to a mailbox, and can be used to put something there, change the contents, and can be used to get what's being held there).

Sorta similar to the Client/Server analogy (bartender in a busy bar full of patrons), with the processor being a Mailman, a variable being a mailbox, and a pointer being an address (with some extra instructions as to whether they're picking up the mail, or dropping it off).

lgw
Posts: 436
Joined: Mon Apr 12, 2010 10:52 pm UTC

Re: How can I know if I have talent for programming?

Postby lgw » Sat Jul 27, 2013 1:57 am UTC

To the OP's question, here's my answer:

Stand up right now at your computer. Without looking it up: face North. Did you succeed?

Sounds like a joke, I know, but that's the best indicator of programming talent I've seen. Can you sketch a map of the nearby streets? Do you have a map in your head when you go to someplace new, or do you do better following a set of turns-and-landmarks? Do you find it more sporting to solve a disentanglement puzzle without touching it?

If you naturally solve problems by first making an abstract model of the problem, then mentally manipulating the model (or wait for your subconscious to do the work) until you seem to have an answer, then trying it in the real world to see if it works, then refining your abstraction if it didn't, then you can probably learn to program well. If you are naturally good at memorizing and following a set of rules, and you're more of a hands-on kind of person when it comes to problems, then your talents lie elsewhere.

Programming is design engineering - you design processes to solve problems. There's no set of rules you can learn that will make you a good programmer (though there are plenty of rules that if you break you are probably a bad programmer). It takes self-discipline to overcome the frustration inherent in solving hard problems, and if you don't really enjoy doing that, you're not going to enjoy programming ever if you do have the talent.

It's been said for ages: "a writer writes". Well, it's just as true that a programmer programs. Just start doing it. If you're like me, you can't learn much by passively reading books about programming, you have to have a problem to solve, so find one! Find some simple thing that it would be interesting to have a computer do for you, and learn what you need to solve that problem - then find something harder. (An astonishing number of "first programs" in my generation were D&D die rollers, where you could type in "3d20 + d77" and get a random answer - because that's a fun and vaguely useful thing to do if you're an old-school gamer.)
"In no set of physics laws do you get two cats." - doogly

User avatar
Yakk
Poster with most posts but no title.
Posts: 11083
Joined: Sat Jan 27, 2007 7:27 pm UTC
Location: E pur si muove

Re: How can I know if I have talent for programming?

Postby Yakk » Sun Jul 28, 2013 12:42 am UTC

The short answer is we do not know.

The longer answer is that there are a few well know walls to learning programming.

Some of them are:
Subprocedures and flow control.
Recursion and loops.
Threading and concurrency.
Pointers and indirection.

There has been some work in predicting who will fail at each wall, but we basically throw the programmer in the water and see if the drown.
One of the painful things about our time is that those who feel certainty are stupid, and those with any imagination and understanding are filled with doubt and indecision - BR

Last edited by JHVH on Fri Oct 23, 4004 BCE 6:17 pm, edited 6 times in total.


Return to “Computer Science”

Who is online

Users browsing this forum: No registered users and 7 guests