Advice on learning programming - free or paid courses?

Starting to learn how to code, hoping I can pick it up as a second skill since I'm too povo to afford another degree.

Thinking of starting with Python, some front end stuff like HTML5 and CSS, and GoLang.
But not sure where to start, or wondering if paying $$$$ for a course means getting better instructors or will the free ones do?

Which sites do you currently use, and why? Vote for your favourite in the Poll.

Poll Options

  • 0
    Stack Social courses
  • 0
    Dummies Guide books
  • 0
    Other
  • 1
    Free Code Camp
  • 1
    Code.org
  • 3
    Just go to university, you plebeian.
  • 4
    Code Academy
  • 5
    Udemy
  • 8
    Youtube videos

Comments

  • +1

    Not Udemy, I viewed a few security courses and they were pathetic.
    Just use Google.

    For Python:

    http://learnpythonthehardway.org/

    • +2

      Yeah, I get the feeling that many of the instructors on Udemy are just looking to make a quick buck, they don't seem to have any teaching experience, credentials etc. Half of the ones I signed up just turned out to be crappy instructors who can't even speak proper english, have really heavy Indian accents or are just reading off a script.

      • +1

        Or the ones that type into Notepad instead of speaking.

        • +1

          yeah, those. I've even seen ones with "Unregistered Hypercam" watermark on the video. Unprofessional as heck, using shareware to record lectures? Have people not heard of open source SW?

          Todd McLeod though on Golang is the real deal. He's just recording his stuff in his basement, not really professionally edited but he is a genuine lecturer with 15 yrs experience. This is the only Udemy course that I'm actually thinking of completing.

  • Consider R as well. Learn it from datacamp, they have nice free training with exercise.

  • Used Code Academy when I started. It's really good, unfortunately if you get stuck on a problem there isn't much help (talking about the free version, not sure about paid). Now I'm using Grok Learning. It's paid but it's really good. I've used Lynda for Excel so you might want to check out there Python courses. thenewboston on Youtube has videos on python, they're pretty good but I didn't like the structure of his videos. That's pretty much it.

    • Grok huh… how much is that costing you a year? $30 or $100? Sorry, I'm tight.

      • $30 xD

  • Paid courses are a waste of money imo - self study and free online courses are the way to go as there is a plethora of information available online (and via torrents). While Python is a great language, I don't see it used much in large companies in Aus. If you are looking for employment, better to go for something mainstream like Java or C#. Maybe think about where you would like to work, find out the technologies they employ and focus your efforts in that direction.

    • +1

      While Python is a great language, I don't see it used much in large companies in Aus

      Depends on the industry. Most data and analytics companies/departments use Python quite a bit.

      It's also a good language to start with as it helps you grabs the fundamentals of programming without getting too caught up on semantics. It also forces pretty coding with whitespaces.

      If you have strong fundamentals of programming down pat switching languages is fairly trivial in the end.

  • +9

    Programming is like cooking. You can read a hundred cookbooks but 99% of your skills will be learned by cooking. Burn the eggs, overcook the lamb, spoil the sauce. That's how you learn!

    Want to learn to program? Think of a simple tool you'd like to build, and build it. You'll end up google for ages, you'll rewrite it a heap of times before it works, but you'll learn so much.

    Then rinse and repeat on a larger project. Alongside this practical learning, read some of the books on programming fundamentals and patterns. If you read them before you've built anything you'll die of boredom, but with a bit of experience under your belt you'll recognise where you could've used Pattern X, revisit your code and rewrite it.

    Programming is such a practical skill, best way to learn is by doing!

    Also, check this out https://www.reddit.com/r/learnprogramming - no such thing as a dumb question there. Much more newbie friendly than something like StackOverflow.

    • Thanks for the advice!

  • If you want to learn programming, it depends on your intention/motivation. If you want to see tangible results, pick something web based or where you can generate a website. Alternatively if it's academic, I'd suggest going with something like Java to get the concepts.

    Also keep in mind there's two parts to programming. One, design and two, implementation. You can learn the latter pretty quick, but it takes years to learn the former.

    This is all from my own perspective. I'm a software developer with 12 years experience. I focus on Java, but quite proficient in other languages.

    Pick anything for a start. As @the-mal says, you pick up more with experience. Also I've learned a lot from more experienced mentors.

  • Try Lynda.com, you can get a free trial subscription to check it out or better still QLD library membership gives you free access to their stuff. Probably works with other states too.

  • I did this short course that was free on Stacksocial. It was good for my purposes (making some changes to existing JS and CSS web stuff, not programming from scratch).
    https://stacksocial.com/sales/the-5-hour-developer-freebie-b…

    I have (old) past experience doing some light web design/programming so it wasn't all new to me, but I think would be easy to follow for a beginner. And the presentation was high quality.

  • Maybe start off on a framework like Django? It'll provide quick visible results and probably has lots of tutorials. You can dig deeper into the framework to see how things are done.

    That said, many others prefer acquiring language proficiency before touching any framework.

    Have fun ( and some frustrations too ).

    • +1

      That said, many others prefer acquiring language proficiency before touching any framework.

      I can't agree with this enough. Frameworks teach you frameworks, not programming.

      It's like trying to learn how to make furniture by putting together Ikea flat packs. Sure, you'll have furniture. And you'll be great at flat packs. But when it comes to building a table from scratch you'll be woefully unprepared.

      Learn to program via fundamentals, and have some fun with frameworks on the side, but don't learn via only frameworks. Add to that the fact that Django has so much baked in magic it's next to impossible for even a seasoned programmer to understand exactly what's happening under the hood.

  • I am currently learning some front end languages and I use Free Code Camp. I did try Code Academy, but prefer the instant support offered by FCC's "chatroom".

    Whilst I haven't progressed to the required level yet, there appears to be scope to do pro-bono work for one of a small list of charities once you get through all the courses. I cannot determine if this is a gimmick or not, but the idea of doing some charity work whilst building a portfolio is intriguing.

  • Why go to university or pay when knowledge is free? Learning IT is one of the best disciplines to learn on your own.

    • +1

      University for programming has been bad in my experience anyway. Attended 2 and both cared more about theory than actual programming.

      • Depends on many factors… I had my fair share of head-in-the-cloud academics. But we did have this one lecturer that actually had his own software development business and taught practical programming with a commercial focus

        • What course or university was this learning experience in?

          To further the point of the OP, why can't this merely be learned freely?

        • @lovepeoplenotmoney: Charles Sturt / IT… My comments were directed more to Clear on about how lecturers are more interested in the theory than practice, and mine is more YMMV. This statement can be applied to any teacher in any discipline.

          However I would challenge the thinking that you can learn to develop without understanding the theory. Here's a for loop.. for (int i = 0; i < 10; i++ ); Make it count to 10. Then make it count from 10 to 1. Then do the same in visual basic, python, perl, c#. And now i is encapsulated in object o. Do the same.

          What is a stack, and why would you use it over a queue? How does a stack trace fit in, and why not a queue trace? Design a stack to take class o. Actually what is the difference between an object and a class? And what is an int for that matter, and why would you use an integer over a double? And where does a long integer fit in, and what is signed vs unsigned?

          Whether you can find someone to teach the theory for free is one thing. But to try and learn development without at least a modicum of conceptual theory is a path to mediocrity.

  • Python is a very good choice to learn proper structured programming and style. To be a decent coder you need to learn proper programming and you'll get that with Python. In time it will then be easy to apply the techniques to other languages.

    Stay away from 'Frameworks' for now or you won't learn the raw skills. Frameworks will come in handy and save a ton of time later, once you know how to code.

    I'd suggest to also include Javascript (not Java) and some point. Javascript is extremely common and handy and goes hand in hand with web development (and other things).

    My number 1 tip - regardless of language, the initial instruction in proper programming techniques, structure and style is much more important than the language itself. Learning on your own it is not too hard to learn the language syntax, but not even realise you aren't learning how to program properly and slip into bad techniques that carry over to every language you try. So I hope you find good instruction.

    Sometimes Universities offer short courses (like 2 full days, or a number of weeks a couple hours a week in the evening) in coding for about $500 or so, but results can vary, so be cautious if you happen to consider that path as an alternative to on-line.

    I'm a professional software developer (20+ years).

  • There are some really good "(language) in x minutes" videos on YouTube that are great if you're picking up a new language but already have a foundation in code concepts else I'd recommend step by step tutorial series. Understand that the language is only a means to work APIs and manipulate data. You'll need to learn how each front-end/back-end API works also.

  • UNSW has a free online course which is similar to their COMP1917 course. They have a structured course and various exercises to compliment the video lectures. The lecturer is really funny too so it makes it more engaging, although some jokes are redundant.

    Link: https://www.openlearning.com/courses/unsw/computing1

  • I found the MIT course library excellent for physics and just had a quick look at their Comp Sci stuff and it seems pretty comprehensive.

    http://ocw.mit.edu/courses/electrical-engineering-and-comput…

    not just programming though. but if you want a thorough approach it might be useful.

Login or Join to leave a comment