Advertisement

We need your help now

Support from readers like you keeps The Journal open.

You are visiting us because we have something you value. Independent, unbiased news that tells the truth. Advertising revenue goes some way to support our mission, but this year it has not been enough.

If you've seen value in our reporting, please contribute what you can, so we can continue to produce accurate and meaningful journalism. For everyone who needs it.

AP/Press Association Images

Want to learn to write code? Here's how...

Understanding how software is made is increasingly important (but it needn’t cost you the earth to learn).

ON THE EIGHTH of December last year Barack Obama wore a Code.org hat and wrote a line of Javascript. The hat didn’t particularly suit him and the code he wrote wasn’t particularly meaningful, but I suspect the symbolism of POTUS being taught to write code by kids wasn’t lost on many.

From minors to ministers, the explosion of programming initiatives in Ireland has caught the attention of the nation; those evangelising the art point to the benefits of understanding how software is made, whether or not you build it for a living.

There’s a lot of discussion about the best way to learn to write code. One theory is that it should be geared towards highly visual and graphical feedback as early as possible; another is that a friendly language makes more sense. The former would lead you towards learning some HTML and CSS or possibly Javascript to create something visual, the latter would introduce you to a friendly language that best introduces the core concepts of programming. Both approaches have their merits so I’ve picked two resources below that take one approach each, both are free and extremely accessible for beginners.

What’s the right approach?

There are so many online resources geared toward teaching programming that the problem no longer lies in finding them but in filtering down to the most appropriate ones.

Khan Academy is an excellent online tool that allows you to work your way through courses with constant feedback and help. The videos are excellent and you can go from beginner to a reasonably advanced coder using the tutorials. The most appropriate course here is the ‘Computer Programming’ one, as ‘Computer Science’ is a more theory based approach to algorithms which isn’t the best introduction to programming generally.

One of the great features of Khan academy is that you can do the ‘Hour of Code’ or ‘Hour of Databases’ which give a quick, one hour introduction to a topic. The interaction is hugely impressive as you can just work in your web browser without downloading or installing any other software. The programming here is all done in Javascript, which is an extremely popular and powerful language that controls most interactions you have with a web page. Khan academy is completely free, though they do appreciate donations; I used Khan Academy extensively during my masters and it was a huge asset.

If you want to push yourself…

Another of my favourite resources is Coursera. Coursera has a much bigger catalogue of courses than Khan Academy and they’re from actual universities. They tend to last a number of weeks and have set amount of work to do per week. This is a higher commitment option but that does push you to put in more time to get a higher reward.

Coursera have beginner Python courses specific to both adults and children. Python is a well-established, multi-purpose language that used in many areas from web development to data analysis and scientific computing. Coursera tend to offer good follow on courses that allow you to progress as far as you wish. Coursera is completely free, though you can pay for a certificate of accomplishment for the courses. I’ve completed a few software development courses on Coursera and they were all extremely well organised and more educational than I expected.

There are other great resources too such as Lynda.com, but I’ve found that you need to pay to get the most out of it which can turn people off.

The best advice: just start

Given the extreme accessibility of Khan Academy it’s probably a good place to start, but for a 2-4 hour per week commitment I think the Coursera course probably offers more motivation. You also have the added advantage with Coursera of thousands of other students doing the course at the same time, and some forums that allow you to discuss the class content and exercises.

Overall the best advice, as with most things, is just to start. While there’s no ‘right’ language or technology to get you started there’s no ‘wrong’ one either. Once you begin doing tutorials you’ll be learning the basics of variables, conditions, loops, and functions which are essential no matter what language you choose.

Of course I’ve aimed these suggestions at everyone, but if you or someone you know is under 17 they should seriously consider going to a Coder Dojo, they exist in almost every town in Ireland and are volunteer led get-togethers for children to learn how to code. You can find the nearest one to you on their website, CoderDojo.com.

Mark Lambe is a Dublin-based software developer who works in scientific and high-performance computing. He tweets about this and much more as @AnTweetseach

Jordan Casey is expanding his tech start-up – right after he does his Junior Cert

12 beautiful maths-inspired GIFs that are dizzying to watch

Readers like you are keeping these stories free for everyone...
A mix of advertising and supporting contributions helps keep paywalls away from valuable information like this article. Over 5,000 readers like you have already stepped up and support us with a monthly payment or a once-off donation.

View 45 comments
Close
45 Comments
    Install the app to use these features.
    Mute Al Beebak
    Favourite Al Beebak
    Report
    Feb 17th 2015, 8:03 AM

    I’d rather be able to figure out code. That way at least I might be able to figure out what the jaysus the wife does be giving out to me about

    142
    Install the app to use these features.
    Mute Stef
    Favourite Stef
    Report
    Feb 17th 2015, 8:13 AM

    The coding world moves so fast, it’s hard to know what too learn next. But just learn something the core concepts on clean code and structure are much the same across most languages.

    109
    Install the app to use these features.
    Mute Jake Race
    Favourite Jake Race
    Report
    Feb 17th 2015, 9:24 AM

    That’s good advice.

    34
    Install the app to use these features.
    Mute Stephen Griffith
    Favourite Stephen Griffith
    Report
    Feb 17th 2015, 4:19 PM

    That’s not really true,.
    All software languages have very much the same structure, it’s not like learning a spoken language.

    If you’re good at one language you’re more than competent at most others.

    If you’re looking for a good place to start, it’s probably JavaScript due to the ease of set up.

    9
    See 4 more replies ▾
    Install the app to use these features.
    Mute Stef
    Favourite Stef
    Report
    Feb 17th 2015, 4:28 PM

    ?? Pretty sure that’s what I just said.

    33
    Install the app to use these features.
    Mute Stephen Griffith
    Favourite Stephen Griffith
    Report
    Feb 17th 2015, 4:46 PM

    It doesn’t change that much.

    1
    Install the app to use these features.
    Mute Wayne Kerr
    Favourite Wayne Kerr
    Report
    Feb 17th 2015, 10:33 PM

    Rubbish Stephen. Different programming languages have different syntax and semantics. There are language families which are similar in syntax such as (C++, Objective-C, Java, Perl, C#, JavaScript which are all from the C family of languages) and then you have the BASIC Family, Smalltalk family and a host of others. Some languages borrow concepts from languages in different families and nest under more than one family tree.

    If you are good in say PHP you are most certainly not, by default, good in Ruby or Python. If you are a stellar COBOL programmer you would certainly not be able to code a single line of a more modern language without learning it first.

    To become competent in programming takes dedication and hard work. I have seen many programmers who have been programming years and are still not what I would classify as competent based on some of the code they churn out. Only the very gifted can become masterful at a given language in a short period of time.

    8
    Install the app to use these features.
    Mute Stef
    Favourite Stef
    Report
    Feb 19th 2015, 7:25 AM

    Yea I know about languages and I know they’ve all different syntax, I’ve done most of the ones you mentioned and that’s why I said the core concepts are the same. A function is a function and a class is a class in most languages. An import is an import and to extend is to extend. Patterns in ruby are the same as JavaScript and php. Obviously the way it’s written is different and how it’s fun but the concept is the same. If you understand good programming in any language I believe you can move between languages very easily. I’ve been a ruby, rails, js, php, c, objective c, Python dev and more in my time and that all came from learning actionscript years ago.

    3
    Install the app to use these features.
    Mute Dylan
    Favourite Dylan
    Report
    Feb 17th 2015, 8:25 AM

    Id recommend learning a simple language like Haskell first and then moving on to more diverse languages like Python, Java or C++. Some lads in my college ran an intro to Haskell course and the structure and methodology of it is a good way to get used to programming as you write the code almost in the same way that you ‘think’ of the code. Java (from my own experience) can be a bit daunting if you can’t get your head around the pretty rigid structure of methods and classes etc. I’m using Khan Academy at the minute to learn HTML and CSS as well and couldn’t recommend it more (even though the peppy, overly positive American narrating the video is starting to grate on my cynical Irish sensibilities)

    101
    Install the app to use these features.
    Mute David Geraghty
    Favourite David Geraghty
    Report
    Feb 17th 2015, 10:57 AM

    I would recommend learning Java, C++ or C#. In college I found Haskell more daunting than the afformentioned. Also if you learn one of these languages you have pretty much learned 70% of any of the others.

    17
    Install the app to use these features.
    Mute Matthew Fitzpatrick
    Favourite Matthew Fitzpatrick
    Report
    Feb 17th 2015, 11:32 AM

    Agreed, Object Oriented languages are easier to grasp, then when you’re ready you can go impress the chicks with your mad Haskell skillz.

    17
    See 3 more replies ▾
    Install the app to use these features.
    Mute David Geraghty
    Favourite David Geraghty
    Report
    Feb 17th 2015, 12:20 PM

    Matthew, this is a good point, I had to give the postman a tip last saturday for all the valentines day cards my Haskell abilities got me.

    21
    Install the app to use these features.
    Mute Matthew Fitzpatrick
    Favourite Matthew Fitzpatrick
    Report
    Feb 17th 2015, 12:25 PM

    Glad you’re not taking it seriously or anything..

    1
    Install the app to use these features.
    Mute David Geraghty
    Favourite David Geraghty
    Report
    Feb 17th 2015, 1:33 PM

    Apologies Matthew for any offense caused

    9
    Install the app to use these features.
    Mute One Human Being
    Favourite One Human Being
    Report
    Feb 17th 2015, 8:08 AM

    So many codes these days I have only got use to the safe cross one now your telling me there is more.

    75
    Install the app to use these features.
    Mute Tony Canning
    Favourite Tony Canning
    Report
    Feb 17th 2015, 8:46 AM

    Buy an arduino starter kit and a raspberry pi and head over to instructables.com

    2 years ago I had no clue and now I’m pretty comfortable with having a go at a lot of physical computing type stuff.

    And it’s never too late either. I’m now 38.

    43
    Install the app to use these features.
    Mute David Evans
    Favourite David Evans
    Report
    Feb 17th 2015, 9:05 AM

    Or if you want to take it one step further, get a NerdKit (http://www.nerdkits.com/)

    +1 for Arduino though, personally I use mBed, if I want to knock something quickly up for work I always have an Arduino or mBed in my drawer in work.

    If you want to get into the likes of Arduino/mBed I would seriously consider getting familiar with the C language, it’s a great language to know and it’s used in anything embedded related.

    14
    Install the app to use these features.
    Mute Jake Race
    Favourite Jake Race
    Report
    Feb 17th 2015, 9:22 AM

    I guess these are the only options given that potential programmers are abandoned by the second level education system in this country.

    I learned Borland’s Pascal, Prolog and a 4GL called MicroSQL in highschool back in 1992-3.

    Since then I’ve covered these languages in order DBQ, DBase IV, MS Access (with strong VBA), VB6, TSQL, VB .Net, ASP .Net, JavaScript, C#, Java, Matlab, Octave, R.

    People recommending languages here are making assumptions about what you want to do. Different languages have very different purposes. Also, if you just focus too much on a specific language you will find yourself spending an inordinate amount of time learning things that suddenly become completely redundant.

    The only skill I learned in 1992 that is of any use to me today is SQL. It is important to ensure you develop the ability to quickly switch between languages and quickly learn new languages. That requires a fundamental understanding of programming itself and not getting too comfortable with a particular syntax.

    40
    Install the app to use these features.
    Mute Catherine Mill
    Favourite Catherine Mill
    Report
    Feb 17th 2015, 10:16 AM

    From my experience, my son was home schooled and learned it all by himself. He lost me at 11.

    Then I have to remember the nice HSE agent who wanted to use ECT on him to normalise him.

    Now that’s Ireland for you.

    His birthday is this week and he is in Forbes and living thousands of miles from Ireland where he is appreciated and valued.

    32
    Install the app to use these features.
    Mute Matthew Fitzpatrick
    Favourite Matthew Fitzpatrick
    Report
    Feb 17th 2015, 11:35 AM

    …Jesus.

    11
    Install the app to use these features.
    Mute Stephen Griffith
    Favourite Stephen Griffith
    Report
    Feb 17th 2015, 4:26 PM

    Good on him, but to be honest everyone has to learn it themselves.
    It’s near impossible to “teach” it to someone.

    2
    Install the app to use these features.
    Mute ƒR()§†H@X
    Favourite ƒR()§†H@X
    Report
    Feb 17th 2015, 8:52 AM

    Watch Bucky on the NewBoston on YouTube. He’s brilliant!

    25
    Install the app to use these features.
    Mute Gavin Scott
    Favourite Gavin Scott
    Report
    Feb 17th 2015, 1:16 PM

    Fact. Many an assignment was done watching these videos. He is a tad sleazy. In a good way.

    2
    Install the app to use these features.
    Mute Who's Yer Man
    Favourite Who's Yer Man
    Report
    Feb 17th 2015, 9:02 AM

    Am currently mentoring in a CoderDojo, teaching kids 6 and up. Once you learn fundamentals of if/else, loops, and functions, all you need is practice. Look at other peoples code. If you see something you like on a website, your browser has all the inbuilt development tools to help you figure out how they did it.

    http://www.codecademy.com/ is another free online learning tool.

    As for first programming languages. I started on C++, but would not recommend it for a beginner. I would try Python or Ruby.

    15
    Install the app to use these features.
    Mute Keith Gregg
    Favourite Keith Gregg
    Report
    Feb 17th 2015, 9:51 AM

    Apples swift is a nice alternative to c++ I’m told. It can be ported into html5, CSS and js afaik

    3
    Install the app to use these features.
    Mute Who's Yer Man
    Favourite Who's Yer Man
    Report
    Feb 17th 2015, 10:09 AM

    Ties you to Apple only really unfortunately, if you were going down the HTML5 app route, look at Ionic and Cordova, or something like PhoneGap (also built on Cordova).

    http://ionicframework.com/

    7
    See 1 more reply ▾
    Install the app to use these features.
    Mute ummm,
    Favourite ummm,
    Report
    Feb 17th 2015, 10:53 AM

    There’s a freely available Swift compiler called Silver, which you can install on both Mac and Windows PC. Probably not what Apple wanted, but now Swiftians can avoid the tie in if they prefer.

    http://elementscompiler.com/elements/silver/

    1
    Install the app to use these features.
    Mute little jim
    Favourite little jim
    Report
    Feb 17th 2015, 8:40 AM

    Excellent article, perhaps a bit daunting for a complete novice though.
    A more basic hands on approach to coding can be found through the Raspberry Pi foundation.
    A great starting point for parents and kids.

    14
    Install the app to use these features.
    Mute Katie Does
    Favourite Katie Does
    Report
    Feb 17th 2015, 11:32 AM

    So, everyone is advocating their own personal favourite code flavour as the one to learn first. This is starting in the wrong place.

    Code is a tool. Nothing more than that. It’s something that enables you to get things done. So, the logical place to begin is with something you want to do. Once you’ve established that, then, and only then, find out what the right tool is and learn how to use it by doing the thing you want to do. Sure, you’ll need to learn some basic principles, but after that just start making something.

    Now, it’ll probably be poor enough, this thing you make. And three years later you’ll look at the code you wrote and either laugh or cry (don’t be concerned about this, it happens everyone who codes anything, all the time, forever). But you’ll start learning, fast, and you’ll build not just on what works but what fails.

    11
    Install the app to use these features.
    Mute Dave Davis
    Favourite Dave Davis
    Report
    Feb 17th 2015, 2:45 PM

    I’ve been relearning to to code the past two years. I did C in college but hated it. However, I discovered something the past two years that has reignited my love of it.

    You can take the Harvard computer science course, for free. The course is called CS50 and you can do it on edex.org. I would encourage ANYONE who wants to learn how to code to do it. An absolutely INSANE amount of effort goes into its production. It’s very… American, but that’s part of its charm. The quality of the course makes you see why Harvard can charge so much in fees. I’ve done about 50 different programming courses in my day and this is by far the best. The content was exactly the same as the first year computer science course in DIT just presented in a much better way.

    I’d also recommend some of the basic courses on Lynda.com by a lecturer called Simon Allerdice. He’s Irish I believe (just from his accent) and he has a way to make things very VERY clear.

    If I was to do it all again, I’d do the CS50 course, the Lynda courses by Simon Allerdice and learn python.

    Python and Javascript were the languages that taught me object oriented programming. I tried learning Java first (after C) and it was a nightmare. Not because of the language, but because I didn’t understand OOP properly. Programmers often forget how difficult OOP is as a concept to understand because once you get it, it’s difficult to imagine programming another way. Especially in a shared library world.

    8
    Install the app to use these features.
    Mute The Dublin Cynic
    Favourite The Dublin Cynic
    Report
    Feb 17th 2015, 11:03 AM

    Why does everyone need to learn coding? It’s not that great and oversaturated around the world

    8
    Install the app to use these features.
    Mute Thomas Boyle
    Favourite Thomas Boyle
    Report
    Feb 17th 2015, 9:20 AM

    A lot of information on the internet can be useful. But it can also be very hit and miss. I love learning from videos and online resources. However for programming books are essential if you want to take it a step further.

    7
    Install the app to use these features.
    Mute Neuville-Kepler62F
    Favourite Neuville-Kepler62F
    Report
    Feb 17th 2015, 10:46 AM

    Lightbot is brill for kids … graphical and introduces “Procedures” … reusable code concept.
    Scratch is also good for kids. Some schools now using it.
    Unity for games … and its free
    Codecademy for Ruby : http://www.codecademy.com/learn … clear and concise
    Ruby on Rails for real world serious apps. http://rubyonrails.org/

    Some research suggests that it is teaching of Philosophy in secondary schools that makes the French the best software engineers in the world! Also nice side effect of No Financial Crashes … Philosophy provides a framework for good rational thinking, very useful in personal and work lives!!!!

    4
    Install the app to use these features.
    Mute Keith Gregg
    Favourite Keith Gregg
    Report
    Feb 17th 2015, 9:47 AM

    Actually only one in five are aware of coding initiatives, like coder dojo. Three quarters of parents are keen to get johnny and Jane into coding. According to amarach research for upc and coder dojo. Some schools reachbscratch. Which us a visual programming language to teach basic things Luke loops and functions so they can move more easily to more complex languages. With npm and node.js JavaScript, the once clunky beast is getting more use. Its great for RAD in the way Rails is. While HTML and CSS arent really coding they offer a soft entry to that world. And are complex enough in themselves now in html5 and css3,

    4
    Install the app to use these features.
    Mute Life in no motion
    Favourite Life in no motion
    Report
    Feb 17th 2015, 9:46 AM

    delete *.*

    4
    Install the app to use these features.
    Mute Barney Corleone
    Favourite Barney Corleone
    Report
    Feb 17th 2015, 1:25 PM

    Waste of time. By the time these kids grow up strong AI will be writing code from a users simple instructions.

    3
    Install the app to use these features.
    Mute ummm,
    Favourite ummm,
    Report
    Feb 17th 2015, 1:29 PM

    It will be AI written by people who learned to code as kids instead of listening to those who said it was a waste of time.

    25
    Install the app to use these features.
    Mute George Salter
    Favourite George Salter
    Report
    Feb 17th 2015, 1:51 PM

    In that case, you should program in machine code.

    3
    Install the app to use these features.
    Mute Dave O'Hanlon
    Favourite Dave O'Hanlon
    Report
    Feb 17th 2015, 10:18 AM

    The bandwagon rolls on, when’s this one going to blow up in everyone’s face

    3
    Install the app to use these features.
    Mute Jake Race
    Favourite Jake Race
    Report
    Feb 17th 2015, 10:58 AM

    Well, the IT skills shortage has already blown up in our faces. That’s why, despite the unemployment problem, we have to import a large proportion of our workforce. Think of that next time the Gov. announce they’ve created x number of jobs after bringing yet another tech company onto our shores.

    13
    Install the app to use these features.
    Mute Jane Alford
    Favourite Jane Alford
    Report
    Feb 17th 2015, 6:23 PM

    It would help if they actually employed very experienced coders. Unfortunately the young age of “managers” these days means they are intimidated by the very experienced and ignore the value these people can offer their company. It is the young and cheap that get the jobs. It doesn’t dawn on the hiring managers that if they pay for experience, the get better quality and get it faster.

    Someone do a survey of how many people over 50 who are unable to get work, despite having 30+ years experience as a programmer.

    3
    Install the app to use these features.
    Mute Jason Routledge
    Favourite Jason Routledge
    Report
    Feb 17th 2015, 10:24 PM

    It’s not that difficult and can be done within a year. I’m self taught in C++, java and python. I’m still being paid for what I helped build over 6 years ago. The world has always been divided by those who can manipulate their environment and those who can’t and this is the future. You should look into your local Coder Dojo if you have kids, it’s FREE or consider a Fab Lab.

    2
    Install the app to use these features.
    Mute John Collins
    Favourite John Collins
    Report
    Feb 17th 2015, 3:26 PM

    No thanks, we’re too advanced as it is. Technology is taking over the world unfortunately.

    2
    Install the app to use these features.
    Mute Michael Sands
    Favourite Michael Sands
    Report
    Feb 17th 2015, 6:46 PM

    People can learn code but can’t tell when the government is telling them porkies?

    1
    Install the app to use these features.
    Mute Jane Alford
    Favourite Jane Alford
    Report
    Feb 17th 2015, 6:14 PM

    More “cowboys” to join the ranks of amateur coders who think they are experts to fleece the gullible…

    1
Submit a report
Please help us understand how this comment violates our community guidelines.
Thank you for the feedback
Your feedback has been sent to our team for review.