6 Comments »Posted on Tuesday 13 September 2011 at 7:14 pm by Jacob Aron
In Inventions & Technology, Musings

I’ve been thinking about learning to program and thought I’d blog about it in the hope of soliciting some tips or advice.

First off, why do you want to learn programming?

Almost every day I write about people doing cool things with computers. I’d like to do some of those cool things. I also don’t get to do very much abstract problem-solving during my day job, of the type I did during my maths degree. Writing programs seems like a good way to come up with puzzles to solve.

There are also some practical reasons – I often get annoyed that software can’t do exactly what I want it to do. If I learn to program, I could maybe write software that meets my needs. And finally, I’ve got this vague idea that journalists of the future should know much more about making a computer do things than I currently do.

So what DO you know?

I’m not coming at this as a complete novice. I played with BASIC as a child, took courses in Python during university and dabbled with SQL in a former job, so I know about a bunch of the building blocks of programming such as variables and loops. I’m a bit more fuzzy on other concepts – I’ve heard of object-oriented programming, for example, but I don’t really know what it is.

How can I help you?

There are so many resources out there that I don’t really know where to begin. Ideally I’d like a single solid resource I can come back to, be it a website or a book. I had fun playing with Codecademy, an interactive Javascript tutorial, but as a start-up it’s fairly limited – are there more established alternatives out there?

I also don’t know if I should pick a particular programming language, and if so, which one? I’ve got a vague idea that I’d like to learn Java, with the aim of one day writing an Android app, but perhaps I should learn to crawl before I sprint.

Any and all advice would be appreciated. Also, if anyone else is in the same position and fancies learning to program together, perhaps we could berate/encourage each other – just let me know in the comments.

  1. 6 Comments

  2. the internet is a giant content management system, i would say keep generating content and help give this computer meaning.

    the computer is utterly meaningless unless you place content in it, so keep making content and delivering insightful commentary and knowledge and you will be serving a better purpose than developing new software.

    By Nicholas on Tuesday 13 September, 2011 at 11:31 pm

  3. Hey Jacob. Only just stumbled across this, and it’s late, and I have deadlines, but I thought a couple of minutes wouldn’t hurt.

    Personally, the kind of coding you (we) right about is, for someone learning in their (little) spare time, fairly unattainable. I guess you’d get a flavour, but little more.

    If you want to just be able to code a little, as more of a problem-solving tool, then my suggestion would be to start using linux – maybe you do already? – but also start making it fit what you do. That way, you’ll pick up some basic coding skill, in very much a problem-solving, you-oriented way.

    By Jamie Condliffe on Thursday 22 September, 2011 at 11:11 pm

  4. Hi Jacob,

    If you want to do some programming in the area of technical calculations/mathematical modelling of physical systems etc. then I recommend you either buy Matlab (expensive!) or download Scilab (http://www.scilab.org/) an open source Matlab lookalike. Alternatively get Mathcad (also costly and no open-source equivalent as far as I’m aware). If you want to do “mathsy” things then get Maple (you can get a home-use only version for around £200 from Adept Scientific).


    By Alan Stevens on Friday 30 September, 2011 at 9:33 am

  5. Hi Jacob! Paul showed me your post. Totally disagree with the other commenters. :) Matlab!?! Horrors. Content? Great, but you obviously have that covered. Just using Linux isn’t programming — it’s not hard to start coding, zillions of people have, after all.

    My 2p: find a project that you want/need to do. I need a program that plans my laundry cycle! I need to predict the lottery numbers. I need a web app that tracks every oil-carrying ship currently at sea. Or something! I think one needs a real end goal to stay motivated.

    Java — yes! A great start and not too hard-core. Sometime web-based is nice because you can share it, plus it will be handy for lots of people. Java IS crawl, IMHO, you will have no problem learning it.

    Make that Android app now. Why wait? Buy a book if you like dead trees, or just use Google’s free online documentation. Can’t wait to see it!

    :) Flora

    By Flora on Wednesday 5 October, 2011 at 1:16 pm

  6. Thanks for the advice everyone. So far I’ve managed to download and install the Java SDK, but I’ve only opened it once and am yet to write a line of code.

    I think Flora is right, I’ve got to come up with a project rather than just setting out to learn to code. Thankfully I’ve got some holiday coming up, so perhaps I’ll give it a go then…

    By Jacob Aron on Saturday 8 October, 2011 at 7:38 am

  7. Hi Jacob. I asked my older brother this question once. His is a computer scientist who used to write java (and many other languages) and head project coder teams for a huge corporation (as in “three times as many employees as Microsoft” huge). So he used to write code and design projects with huge (as in 10′s of millions of entries) databases. In addition to referring me to the Java SDK he recommended SAM’s Learn Java in 24 hours series. I was able to write extremely simple java programs (that worked even!) by chap 7 in the book.

    It’s baby steps to be sure, but it will get you over the initial hump from non-coder to coder. And you’ll have a much better idea of what an ‘object’ is in computer terms.

    But I think putting yourself in an environment where you work with others who are learning is better. Many community colleges offer excellent course and have night classes so that people who are already professionals in other fields can make it work. Nothing like community support to help you get more into it.

    Finally, be aware that coding is a lot like music: you can learn basics quickly if you apply yourself, but there’s no other way to become “good” than doing A LOT of it.

    If you want to “dabble” in a way that helps you to be a better technical writer, that’s a good thing, no doubt. But actual good coders are generally not hobbyists, and there’s a reason for that.

    By yogi-one on Sunday 9 October, 2011 at 9:33 pm

Sorry, comments for this entry are closed at this time.