Slashdot Mirror


Ask Slashdot: How To Get Started With Programming? [2017 Edition]

Reader joshtops writes: I know this is a question that must have been asked -- and answered -- on Slashdot several times, but I am hoping to listen from the community again (fresh perspective, if you will). I'm in my 20s, and have a day job that doesn't require any programming skills. But I want to learn it nonetheless. I have done some research but people have varied opinions. Essentially my question is: What is perhaps the best way to learn programming for my use case? I am looking for best possible resources -- perhaps tutorials on the internet, the right books and the order in which I should read/watch them. Some people have advised me to start with C language, but I was wondering if I could kickstart things with other languages such as perhaps Apple's Swift as well?

8 of 312 comments (clear)

  1. Several answers by Anonymous Coward · · Score: 3, Interesting

    First I must wonder what your existing background is with respect to computing. Depending on this I would have different answers. If you have never programmed so much as an Excel spreadsheet or "Hello, world!" in BASIC, I would then ask what is your objective? The language you want to learn will be dictated by this more than anything, as there exist "total beginner" tutorials for any language imaginable and they're all pretty easy (and don't apply to any real problem solving beyond that).

    If you are interested in programming for its own sake, I would recommend something like The Structure and Interpretation of Computer Programs by Abelson and Sussman (https://mitpress.mit.edu/sicp/full-text/book/book.html). For something that covers a lot of bases top-to-bottom very quickly, the book Thinking In Java by Eckel can be very informative (even if you never make it more than 1/3 of the way through it). If you like the logical and linguistic side of things, you may be interested in ANSI Common Lisp by Graham.

    I would only recommend starting in C if you have a significant breadth of computer knowledge but want to understand more of how things work "under the hood". Be warned, this journey is not trivial.

  2. Re:Tradition by TWX · · Score: 4, Interesting

    At this point I would skip on BASIC simply because there are so many fewer real-world applications for it. I would start with a conventional shell scripting language. On a Windows box that would be batch files, on a Linux box, probably bash. Both have direct applications in addition to being functional for rudimentary understanding of programming.

    In my own case I grew up with a computer with MS-DOS 3.3 and GW Basic 3.22, and I spent a lot more time in MS-DOS batch files than I ever spent in Basic. Granted, my application for them in setting variables and then launching programs doesn't apply a whole lot these days, but some file processing can be handled with it.

    I am not going to express an opinion about Power Shell from Microsoft because I have no experience with it other than coworkers raving how great some new feature to them is, when we've had that feature in bash for almost 30 years, so my judgement is admittedly tainted for the negative.

    --
    Do not look into laser with remaining eye.
  3. Python by kaur · · Score: 4, Interesting

    My language of choice would be Python.
    Dead easy, powerful, interactive, fun.

    1) Get some kids' coding books (on paper) and read through them to get the basics.
    2) Get python - the plain IDLE from python.org will do, no need for pycharm or other fancy environments.
    3) Code some simple stuff to get the basics. Try out graphics (tkinter if in python) - you will get immediate rewards by nice visuals. Bounce balls around the screen, draw gradients or simple animations.
    4) Connect coding with your hobby or work and figure out a more serious project to go deeper into the language with a real goal.

  4. Re:Tradition by Anonymous Coward · · Score: 2, Interesting

    > If you don't mind being Microsoft's biatch C# has the nicer IDE to get developing against- but you're pretty much guaranteed to be doing purely windows based stuff.

    Did you miss Visual Studio Code altogether? No, not the full-blown Visual Studio, but Visual Studio Code. The IDE runs on Windows, Linux and Mac, as well as the apps you write with it.

    https://code.visualstudio.com/

  5. Re:Coffee by Oswald+McWeany · · Score: 3, Interesting

    Same Here in Rio de Janeiro!

    Are we programmers all procrastinators?

    I can't remember where I read it, but I read that the same qualities that make many people procrastinate are the same qualities that make people better programmers. People that don't rush into things and pause and mull over "what is the best way to do this" end up being better programmers.

    Despite my morning ritual, and constantly getting side-tracked, I've always been one of the more productive people everywhere I've worked.

    --
    "That's the way to do it" - Punch
  6. C is the right place to start. by lq_x_pl · · Score: 3, Interesting

    Start with C. Learn how to compile / link without the help of an IDE. Two birds with one stone here, you'll learn important concepts about how resources are used, and you'll avoid being vendorlocked into a single IDE.

    --
    An internal system operation returned the error "The operation completed successfully.".
  7. Re:Find a way to make it relevant by Anonymous Coward · · Score: 2, Interesting

    I would concur.

    Obligatory anecdotal evidence: I've had an interest in programming for many years, and so I would get thick books on C++ or Java or whatever else, read them, then be left with the problem of "now what?" Fast forward to the last couple of years, where I have a job dealing with large amounts of data, usually performing the same operations on different sets of data. Not only do I hate that kind of repetition, there's just no way I could possibly hope to keep up if I did everything by hand. So I've created a number of VBA macros, ranging from very simple to around 2,000 lines (I know, I know, but VBA is the only option available, since the IT department would probably say something I can knock out in a week would take 6-months and cost $50,000, and they can schedule it in sometime in late 2025).

    Finding something you're interested in and going from there is probably the best option.

  8. Community College. by Anonymous Coward · · Score: 0, Interesting

    Night classes,knowledgeable instructors, focused curriculum.

    Don't fall for this learn yourself bullshit. People who "learned it by themselves" always turn out to be arrogant pricks who think they are the only ones with the answer. The spend their days arguing over what the best language is, what the fastest algorithm is, and going into forums and posting, "Why do you want to do that?" or " have you tried doing this?" instead of just giving you a straight answer to your question or admitting they don't know.

    Programming is a tool. It's used in managing a business. As you change jobs you will learn more than one language and you will probably never master it.

    "They" come up with new languages constantly and the morons in HR suddenly find they need people with 5 years experience in a technology that's been around for three. And the "new" language is never really new, it's just rearranged. Kind of like Microsoft Office when they just rearrange the menus.

    In fact, fuck learning to program. Go into management. Management is what makes the company run. Then you will be the one telling the arrogant pricks what they need to be doing (and that pisses them off no no end). You don't even need to know programming for that. Management is about resources and schedules. If they don't meet the schedule,fire them. if they don't have the resources, that's on you.