Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

This is probably a very difficult question to answer, because of its subjectivity, but even a vague guess would help me out: Now that Khan Academy is beginning to offer Computer Science lectures I'm getting an itch to learn programming again. I maybe am a bit more technical than your average computer user, using Ubuntu as my OS, LaTeX for writing and I know some small tricks like regular expressions or boolean search for google. However from my previous attempts to learn programming, I realized I do not have a natural aptitude for it and I also don't seem to enjoy the process. But I am fairly certain that a basic proficiency in programming could prove to be very beneficial for me career wise; I also often get ideas for little scripts that I cannot implement.

My question is: Let's say you study programming 1 hour / day on average. At what point will you become good enough so that programming can be used for automating tasks and actually saving time? Do you think programming is worth picking up if you never have the ambition to make it your career or even your hobby, but use it strictly for utility purposes?

share

migration rejected from stackoverflow.com May 8 at 6:57

This question came from our site for professional and enthusiast programmers. Votes, comments, and answers are locked due to the question being closed here, but it may be eligible for editing and reopening on the site where it originated.

closed as primarily opinion-based by durron597, GlenH7, MichaelT, Snowman, gnat May 8 at 6:57

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

4  
What languages have you tried to learn? Different languages suit different people better; it may be that you haven't found one that fits the way you think. –  Larry Coleman Jun 30 '11 at 20:47
    
Elaborate on those previous attempts please. If they were just half-hearted attempts then you may have an aptitude but had lousy teachers while if you did really try thousands of different ways, you may well not really have the aptitude that you claim. –  JB King Jul 11 '11 at 22:34

6 Answers 6

I realized I do not have a natural aptitude for it and I also don't seem to enjoy the process.

Then don't do it! I see areas all the time where certain knowledge would be useful (accounting, plumbing, and carpentry come to mind) but I don't have the real interest to pursue them nor the ability to become very skilled. Focus on what you're good at and find a ways to integrate those skills into your career.

share
10  
+1 for "Then don't do it!" If you're not good at programming, and you don't enjoy it, please find something you do enjoy and that you are good at. You'll be happier, and so will the people who end up not having to use software produced by someone who's not good at it. Everyone wins. –  Mason Wheeler Jun 30 '11 at 20:35

I am going to say it should not take more than a couple weeks to begin to see the huge benefits from automating your repetetive work using scripting. Pick a language such as Python with plenty of documentation, and learn how to manipulate Exel files: I guarantee you will be drastically more productive in any office environment than 99% of you peers for the next 20 years. Think about how many desk jobs are simply glorified data entry positions (some of them even pay very well). In about a month I would be willing to bet that you could write a script in an hour that could permanently make one of those positions obsolete. Guess what, the people that can make other people obsolete are the most successful people around.

share

It seems like your real question is "when does programming become easy and enjoyable," for which there is no universal answer. For me, part of the pleasure of the programming is the process of solving problems. It's also frequently frustrating, especially when you're blocked by something for which it's unclear what information you'd need to solve the problem. I alternate between irritation and adrenaline highs anytime I'm working on a problem that's hard for me, and the outcome of making something new work the way I want to is in itself a reward.

While you need to do a certain kind of studying to understand programming, you must practice programming to make it an useful skill.

I'm not convinced there's a "natural aptitude" for programming; the closest thing to that is a combination of determination, persistence, and willingness to fiddle until you have a deep understanding of whatever your current problem is and how to translate that into a solution. Some people have better pattern matching skills and can immediately see a viable solution given a sufficient problem statement, but for most people, this skill is hard won and comes from trying to solve smaller, composeable problems.

When I was an 8 year old, I took great pleasure in getting the machine to animate background colors or print my name a thousand times or draw a spiral or a sine wave, or making the machine draw an animated explosion when two sprites collided with each other. Usefulness wasn't even a concern of mine at that time. Now I need quite a bit more to get that same kind of joy (although I still think I would take a little pleasure in making animated explosions), but the feeling of control that you have after you've solved whatever hurdles you had in solving problem X is what makes it worth it.

I never watched the clock when I was first learning to program; I doubt that I would have had the level of concentration needed to solve anything interesting if I only gave myself an hour a day. So throw away that as a metric. Attack some simple problem that has some measure of meaning to you, whether it's "useful" or not. Solve it, no matter how much time or research it takes. Move on to a bigger problem. Repeat. You will become good enough for it to be useful when your real-world problems match up to the abstractions and techniques that you've learned. That's it.

For some people, that takes weeks or months; for some people, it's years, for some people, it's never. For some people, usefulness doesn't even matter.

Is it a worthwhile hobby? It certainly was for the years that I wasn't doing it professionally, and it occasionally came in handy as a skill when I was working on something for school or for one of my few nontechnical employers.

share

I suggest you throw away the concept of aptitude. If programming is just a means to an end, then focus on the end and not the means. If you want a program to accomplish some task, then make it. Do research, ask questions, seek help, or pay someone else to do it.

Like every novice in every field, you will produce inferior work, and it will take you a long time. But you will remember the problems you have solved, and when they inevitably arise again, you will be ready; each program you make will be a little bit better and be done a little bit quicker. The initial time investment is worth it only if you keep at it.

share

depends on what language you are concentrating on.

If you learn c++ you'll get a fulltime job, but it won't help you to solve something at the afternoon. if you learn shell scripts, even a few commands can make your life easier.

share

At what point does riding a unicycle become a useful skill? When you can do it as easily as breathing. This is not a definitive answer but my opinion.

It's difficult question to answer, but the way I interpret it is: "How long and how much effort does it take to be an effective programmer and to program as easily as breathe?" and for best advice on both I highly recommend a blog post by Jeff Moser: What Does It Take To Become A Grandmaster Developer?.

share