Slashdot Mirror


How To Get Into Programming?

writermike asks: "Like many on Slashdot, I practically grew up with computers. I've had one or more since 1978. However, unlike a lot of people here, I simply never learned how to program. Twenty-seven years later, I still know nothing about 'programming.' I'm a fairly successful technology troubleshooter, having been in that role for 15 years, and I find as I delve deeper into why programs fail, my interest in programming rises, and I feel that not knowing the principles is a hole in my knowledge that hampers me a bit. There are so many books and courses out there that seem to focus less on principles and more on specific languages and/or the 'career-track'. I don't really want to code the next great web service. I want to learn principles, then begin to learn a language. Where can I begin the adventure I should have started back in 1978?"

3 of 195 comments (clear)

  1. Re:To steal a line from the sneaker company by fm6 · · Score: 5, Interesting
    ...just start programing.
    I'm reminded of the joke: "How can I make money in the stock market?" "Easy: buy stock at a low price, sell it at a high price." Strictly true, but not very useful. Exactly how do you "just start"?

    The answer to that depends on what you hope to learn. Programming is a big topic and there are a lot of ways to approach it.

    Probably most Slashdotters will answer this question with something practical and job-oriented. "Get a copy of Kernighan and Ritchie, C is a language everybody should know." "Download Perl." "Download the Java SDK." "Use the VBA engine in Word to write macros." Etc. All worth doing if you're looking for a career as a programmer. But I sense that this guy is motivated more by intellectual curiousity than by career development. (As he should be — the developer job market is a tad oversupplied.) He's used computers most of his life, but has an unsatisified curiousity about how the suckers work.

    One good way to satisfy that curiousity would be with the very basics: machine language and assembly language. These are not useful skills for most programmers, who only need to know the high-level abstractions of the systems they work with. (Some people would disagree with me on that.) But for satisfying your curiousity about just what computers do, it's a nice exercise.

    Or instead of going very low level, you can go very high level, and learn some basic computer science while you're at it. That the route if you read the classic Structure and Interpretation of Computer Programs and work its Scheme programming exercises.

    Then again, learning programming on your own is not for everybody. If somebody has managed to be around computers for a long time, but has never go around to learning programming, he probably is the sort of person who needs some initial handholding. Community colleges often have good classes.

  2. Re:Don't. But if you must, try this method by egomaniac · · Score: 3, Interesting

    Don't. Or at least, not as resume fodder or in an attempt to make a living. Coders are a dime a dozen these days.

    Sure. My team is trying to hire a couple of Java programmers right now. We're talking about a very well-known company (hint: there's a Slashdot category for us), a Silicon Valley office, and a six-figure income.

    And we're desperate. We finally (after much searching) managed to find a really great candidate for one of the positions, but the other one remains unfilled. I'd rather leave the position empty than lower my standards enough to pick some of the people we've talked to.

    So, I suppose I agree that coders are a dime a dozen if you're looking for an idiot that doesn't even understand the difference between "a == b" and "a.equals(b)", but if you're looking for competent programmers, they're tough to find at any price.

    --
    ZFS: because love is never having to say fsck
  3. 0, REDUNDANT by FireFlie · · Score: 3, Interesting
    "Oh, a couple more things. First, I'm not really suggesting that the grandparent post be modded down! I'm just disagreeing with it! It's a good post in and of itself. And totally intended to be helpful to the questioner, so please don't mod down the poster who first suggested perl!"
    Looks like it's a little too late for that, buddy. Thanks anyway, though.

    To one of your main points, however, yes perl doesn't exactly force you to use good programming habbits, but certainly C does not abide by your "there's one way to do it" philosophy. Plus, I try not to suggest new programmers to use C right out of the box because of it's uncanny ability to allow you to shoot yourself in the foot. I am not saying that C is bad, I have done a lot of C programming and as a language I absolutely love it, but dispite it's power, speed, and ease of use it may not be a great choice for a beginner who is not in a classroom setting (I would suggest it to either someone who has a little experience or someone who has a teacher to show them when they are doing something that is incredibly stupid). It is not always easy for someone to learn to program by themself, even someone that is experienced as a user.

    Perl may not be the best choice, but as I said, it sounds like it would probably be a great choice for someone in his specific shoes. He didn't sound like he wanted to change careers to become a programmer for a living, so many other languages may be quite unnecessary for him. Yes, perl doesn't exactly force you to program by the book, but it is something that he could get his feet wet with and possibly create something that could be of use to himself relatively quickly. Sorry, don't mean to rant, it just pisses me off sometimes that there are so many mods that don't understand the moderation system. I also would have modded my original post redundant if it would have read "ME TOO!!!!! PERL IS UBER L33T!!! LOLOLOL!!!", or something to that effect. I may not have added much info to the post before it, but I don't think modding it down was unnecessary.