27 ways to learn how to code on the cheap (or free)

27 ways to learn how to code on the cheap (or free)
  • 6,512
    SHARES

Whether you are looking to switch careers and become a full-time programmer, want to try to build a website or app on the side, or are just looking to round out your skill set, learning to code has certainly been something a lot of people have started to do lately. And while being a programmer might not be for everyone, there is a lot to be said about gaining a better, more educated view of how all those pixels get moved around all those screens.

Before we delve into our list of learning resources sites, we wanted to share some advice from Marissa Louie, a self-taught product designer for Ness Computing. A former startup founder, Louie told TNW that the hardest part of being self-taught – whether it’s design, programming, or any other discipline is, “gathering the courage. The most important barrier is just to overcome your fears” (she also said having the ability to follow instructions helps as well).

Louie said that once you attain the basic skills, the best thing to do is just jump in and try to give yourself custom tasks, and build experience on your own through lots of trial and error.

So with that sound advice in mind, let’s move to our in-no-particular-order list of learning resources (if you have more suggestions, PLEASE list them in the comments!).

1. MIT Open Courseware

MIT’s Open Courseware offers 2100 courses in a variety of topics, including Electrical Engineering and Computer Science. The free resources include online textbooks, exams, multimedia content, assignments and projects and examples – all from actual MIT courses from the last decade or so.

2. Coursera

Coursera launched in April and already has hit the 1 million student mark, and has expanded to include 0ver 200 courses from 33 universities. If you haven’t heard of Coursera, it is the Stanford-learning-idea-turned-mega-startup that basically lets you take a full university course online taught by a real professor at one of the world’s best schools – for free

3. Udacity

Udacity is a free service currently with 14 classes where, “You learn by solving challenging problems… with world-renowned university instructors.” The classes cover topics that seemed geared to not only teaching you to code, but also giving you a solid grounding in math, physics and even, “How to Build a Startup”.

4. Google Code University

It’s Google and it’s code, so yeah, it’s a pretty solid free resource, and obviously a good one if you are interested in Android development. Has some more advanced topics as well including distributed systems and web security.

5. Mozilla Developer Network

Mozilla knows a thing or two about what makes a good website run, and it’s put together a free learning center that includes work written by the the network and also by other sites, like…

6. HTML5 Rocks

Just in case you were wondering, it kind of does. The site has a lot of free info on HTML5, including blog posts, and tutorials.

7. The Code Player

The Code Player is a great way to get a real sense of the ebbs and flows of coding (while learning stuff too). It’s kind of like being able to look over the shoulder of a programmer while she works.

8. Codecademy

Codecademy was made extra famous at the beginning of this year when NYC Mayor Michael Bloomberg tweeted out that he was going to use the site to learn to code in 2012 (wonder how he’s doing?). Regardless, Codecademy is a popular and free site that adds gamification to the learning process if you want to learn with friends. Codecademy also runs CodeYear.

9. Khan Academy

Another “academy”, Khan Academy offers lots of courses beyond programming if you are looking to be a Renaissance man/woman – but if you’re just looking to code, it has that too.

10. General Assembly

General Assembly takes a different approach by offering livestream (paid) sessions on topics like “Rapid Prototyping: From Wireframes to HMTL” – you buy an e-ticket on Eventbrite, get a password, and tune into the livestream when it happens.

11. PeepCode

PeepCode covers a lot of programming languages, providing downloadable (paid) screencast lessons.

12. Eloquent JavaScript

Eloquent JavaScript is actually a book that is completely online for free (or you can buy the ebook on Amazon). From the author’s intro: “JavaScript is the language that is, at the moment, mostly being used to do all kinds of clever and horrible things with pages on the World Wide Web.”

13. Ruby Koans

If learning Ruby (and this is Ruby, not Ruby-on-Rails) is what you’re looking for, Ruby Koans has a free tutorial, promising to “walk you along the path to enlightenment in order to learn Ruby.”

14. Learn Code The Hard Way

Learn Code The Hard Way started with the book (free online) Learn Python The Hard Way and has branched to add other languages including Ruby and C.

15. Stack Overflow

While it technically doesn’t have “tutorials” there is a ton of (easily searchable) info on Stack Overflow that can be of great help once you get going. Also, if you ever get stuck on something (and the answer isn’t already there) the community is very good at answering questions.

16. Coder Dojo

Coder Dojos are places were young people can get together to learn to code, so if you’re a parent that’s thinking of setting your kid on the Path to Instagramum, you might want to see if there is one in your area. The site also has a knowledge base put together by  its instructors/volunteers, but it is relatively limited.

17. O’Reilly

Beyond the many many books that O’Reilly publishes, the company also offers (paid) online courses on many different programming languages.

18. Scratch

Again, if you are a parent, Scratch is a free downloadable program developed by the MIT Media Lab that helps young kids build interactive stories.

19. Apple Developer

If you’re interested in developing for Apple products, it’s a great idea to head over to to Apple’s developer site to see what all the fuss is about and learn from the resources Apple has made available online.

20. Android Developer

Google’s Android developer site continues to improve, and includes videos from Google i/o as well as section that goes over best practices for designing apps.

21. Mobiletuts+

Mobiletuts+ has free tutorials/blog posts on Android and iOS as well as other mobile-centric needs such as design and also has a premium (paid) service as well.

22. Udemy

Udemy offers courses (some free, some paid) on a wide range of subjects, and boasts instructors including Mark Zuckerberg and Marissa Mayer.

23. Code School

Code School offers courses and screencasts for a monthly no-contract subscription, and also has a few free courses as well.

24. Bloc

Bloc promises to teach you to “become a web developer in 12 weeks.” For a hefty fee, Bloc will team you with a programmer mentor that acts like a personal fitness trainer throughout your learning. For the price tag, it probably makes sense to make this your full-time job for three months if you go this route.

25. Treehouse

Treehouse has over 600 videos that you can watch for a monthly fee, as well as a premium subscription that offers more features.

26. Programr

Programr takes a different line to learning code: you build stuff until it works. Check out our in-depth interview with Programr creator Rajesh Moorjani.

27. Processing

While it has taken on an open source life of its own for visuals, Processing started out as a way for people to learn programming (in fact, Programr above has integrated it as well).

Well, hopefully this list will get you started in the right direction towards achieving your coding goals, but we’ll leave you with one more word of advice from Marissa Louie to give you a kickstart: “Don’t settle for anything less than exceptional.

27 Places to Learn iOS

1. Apple documentation — Swift Overview

Official Apple documentation has always outstanding quality — no difference here. If you are newbie who wants to become an iOS developer, here you will find a great introduction to the programming language used in iOS programming — Swift. Also you will get familiar with accompanied tools — Xcode, Playgrounds and REPL.

If you had to choose only one learning resource from this post, pick this — and dive into a massive, official Swift documentation provided by Apple.

2. Ry’s Objective-C Tutorial

If you want to learn Objective-C (and as an iOS developer you should know at least basics), this is the best place to do it.

It covers some pre-Objective-C required knowledge (basics of C), friendly introduction to the iOS programming as a whole (frameworks, philosophy, Xcode etc) and to the language itself — functions, classes, properties, methods, protocols, blocks, memory management and many, many more.

Even if don’t want to learn Objective-C and go 100% the Swift way, learn this short course — it’s a very good starting point and knowing these topics should be enough for a Swift developer to not drown in the Objective-C sea.

3. Stanford iTunes video course

Prefer video content over text? Check Developing iOS 8 Apps with Swift by Stanford University — it totally rocks!

Paul Hegarty will tour you from the beginning — iOS overview, basics of Xcode, MVC pattern and Swift — to advanced topics — protocols, segues, Core Location, camera, internationalization and many more. He’s a brilliant teacher and Stanford is a great university publishing this content for free for everyone. Definitely watch this course.

Developing iOS 8 Apps with Swift by Stanford.

4. AppCoda

This is by far my favorite site with step-by-step iOS programming tutorials. You will find there guides for many topics — making Apple Watch apps, notifications, widgets, language tips and tricks, In-App Purchases, Core Data basics and many, many more. All of this shown step by step using understanable language, ideal for beginners.

I’ve learnt a ton of knowledge from this site and 8500 fans on Facebook cannot be wrong.

5. Ray Wenderlich

A classic one! It’s probably the most known tutorial site in the iOS developers community and I know why — because it’s great. It’s bigger than AppCoda and has more authors, more content and use more Internet memes in it’s articles!

If you want to invest in yourself, then be sure to check out their premium videos and eBooks — they are definitely worth recommending too.

6. NSScreencast

Do you like weekly-delivered medium-sized portions of video content and by the way you want to learn some iOS development? Then I got something for you — it’s NSScreencast! It costs a few dollars per month (there are some free videos too, but not too many), so calculate if it’s worth your money.

7. Cocoa Dev Central

This site can be a little outdated and I’m not sure if there is someone still working on it, but some topics aren’t changing too often — and one of that topics is Objective-C. If you want to learn this language, you’ll find there really great tutorials for it (just be careful — Objective-C was/is evolving too).

8. NSHipster

Amazing place for in-depth learning specific Cocoa topics. Want to know about method swizzling, Swift literal convertibles, NSFileManager, iCloud or Clang diagnostics? Go and read all the archives, this is the site for you.

9. Coding Explorer

GREAT blog for learning iOS development, especially Swift — you will be learning together with the author, as he’s currently learning too. Blog is new and updated regularly, definitely add it to your RSS reader. A ton of interesting topics around Swift.

10. iOS Dev Weekly

Weekly newletter (probably the most popular one) about iOS development — hot news, dev tutorials, tools, design and marketing articles — everything that every iOS programmer needs. 200th issue went live last Friday and it seems that nothing can stop it! Just subscribe.

11. objc

Objc is a monthly periodical about best practices and advanced techniques for iOS and OS X development. Every issue is focused on a one, specific topic like audio, Swift or Core Data. It’s probably not a good fit for true beginners, but if you already know the basics of iOS development, go there and learn some intermediate and advanced topics too.

12. Cocoa Is My Girlfriend

One of the best iOS programming blogs on the Internet. The author is a truly passionate developer and a really good teacher — this combination makes his blog a very, very good resource for new developers.

13. A Better Way to Learn Swift

If you want to learn Swift from scratch and also you like structured, step by step tutorials with progress tracking — here you have one. You will walk through the full Swift course — from basic syntax and variables to closures, enums, classes, initializers and functional programming concepts. Pair this course up with the official Apple docs and you’ll become an advanced Swift programmer very fast.

14. iCode blog

A place where you will find more advanced tutorials, but not only them— there is a room for beginners too.

15. ManiacDev

ManiacDev is a very well known website in the iOS developers community. It provides not only tutorials and courses, but also links to the new open source libraries, tools or UI controls. It’s updated very often and with very good content. Add to your RSS reader.

16. Tutorials Point

Tutorials Point provides iOS programming tutorials broken into single, specific categories like camera management, accelerometer, location handling or storyboards. It’s good if you want to learn some specific programming niche.

17. Natasha The Robot

Natasha writes mostly on Swift and WatchKit — and if you are interested in these topics (who wouldn’t?), you should read her blog.

18. Tuts+

Tuts+ is a great place for beginners, not only because of the easy to read tutorials, but also because of selected topics. They cover real basics of iOS development — creating first app, first steps into Foundation and UIKit, how table view works and many, many more.

19. Code School

If you don’t mind paying for learning, here you have a nice video course — good for leveling from beginner to intermediate.

20. Udemy

Another paid course, but this is focused strictly on Swift. 13 hours of content divided into 194 lessons will teach you A LOT about the iOS programming language of choice.

21. NSCookbook

NSCookbook provides recipies for solving some concrete problems for iOS developers. Want to know how to skin a UIButton? Maybe you want to know how to use property lists? Or maybe you want to know how to use blocks (hello Objective-C) in real life situations? Say hello to NSCookbook, your best new friend.

22. iOS-Blog

Another great iOS programming blog covering subjects like Swift, integration of external libraries, sending emails, asynchronous programming and many more. Definitely check it out, especially if you are a fan of beautiful, flat graphic design.

23. Bloc — Build your first iOS game

Interested in game programming on iOS? Bloc provides a free tutorial on creating 2D puzzle game in SpriteKit, Apple’s 2D game engine/framework. Build a Tetris clone, step by step. Recommended.

24. Use Your Loaf

Great programming blog run by an iOS, Mac and Ruby on Rails developer. How to create a CocoaPod, how to read QR codes, how to write effective Objective-C 2.0 and more. A lot of practical, real-life examples.

25. Stack Overflow

Stack Overflow isn’t a blog or website with tutorials like majority of the sites above. Stack Overflow is a Q&A (questions and answers) community focused on programming in general, not only on iOS.

On Stack Overflow you can ask your questions and get great answers, you can comment and help other people with their code, you can also just browse some code snippets and solutions for popular programming problems.

Really recommended site, especially if you have a specific problem for which you cannot find some kind of tutorial or how-to guide.

26. GitHub

GitHub is a social platform for developers focused on code sharing and programming together with other developers. On GitHub you can create your repositories (public or private ones), share them and watch other dev’s repos. This is one of the best way to learn fast — see what other programmers do, read their code and inhale good practicies from them.

Btw if you are looking for some great open source iOS libraries on GitHub, check out my other post about them.

27. ASCIIwwdc

And for the end I have some very special for you. ASCIIwwdc is a searchable database of full-text transcripts from all Apple WWDC sessions. If you don’t have time to buffer and watch lasting at least an hour WWDC videos, you can just simply screen text transcriptions and find topics you are interested in. A huge timesaver.

The 9 Most In-Demand Programming Languages of 2017

Do a simple web search and you’ll find there are hundreds of programming languages in existence. Do another search for the most popular ones and again, you’ll come up with a head-spinning list. To be as objective as possible, we’re examining the top programming languages from a career perspective.

There are many ways to rank programming languages, like the number of websites built with them, Google search results, GitHub projects or StackOverflow questions. We pored through data from job search engine Indeed.com for the number of job postings that contained the name of a programming language.

We did the same analysis for the top coding languages of 2016 and found some interesting changes in 2017, which are explained below. So without further ado, here are the nine most in-demand programming languages of 2017.

Indeed Job Postings

1. SQL

The number of Indeed job descriptions including SQL (Structured Query Language) increased by nearly 50,000 this year over last year, giving SQL a dramatic lead over the other languages. It’s unclear if this is entirely due to more SQL jobs in the market or a change in how Indeed works. Either way, SQL is still the clear leader in our analysis. SQL is used to communicate with and manipulate databases. It is extremely common, with many variations like MySQL and Microsoft SQL. Microsoft released SQL Server 2016 in the past year, which proved to be surprisingly popular and introduced several new features to make the language more open-source like integration with R, the popular data analysis programming language, and a Linux version.

 

2. Java

The number of Java positions available on Indeed went up by almost 30,000 in 2017 compared to 2016. This is possibly due to the rise in Android users in the market, the steady growth of its developer community, and some of the inherit characteristics of Java that make it worthwhile to learn. After all, Java is a simple, readable programming language used by millions of developers and billions of devices worldwide. All native Android apps are built in Java and 90 percent of Fortune 500 companies use Java as a server-side language for backend development. User have been getting excited about the upcoming Java 9 launch in July 2017, although Java Enterprise Edition declined in popularity in 2016.

 

3. Python

Python continued to grow in popularity in 2016 and moved up two places in our rankings to be the third-most common language by job posting. Furthermore, as highlighted in our most recent guide to learning Python, it’s also a general purpose programming language that emphasizes code readability and increasing developer productivity, used for desktop apps, web apps and data mining. In October 2016, Microsoft launched the beta version 2.0 of its Cognitive Toolkit open source deep-learning framework, which includes support for Python.

 

4. JavaScript

JavaScript (different from Java and mean stack development) moved down one place in our ranking compared to 2016, but otherwise the number of job postings stayed roughly the same. It’s a mainly client-side, dynamic scripting language used for front-end development. JavaScript is compatible across all browsers, used in over 90 percent of all web pages and is the most popular language on StackOverflow. Compatibility and adoption of JavaScript 6 continued to grow in 2016 and Progressive Web Apps became more usable, allowing offline-first functionality for web apps.

 

#5 C++

C++ grew by about 20,000 job postings over 2016 and passed pori to take fifth place. Built on C, the grandfather of all programming languages, C++ is a powerful, high-performance language used to build system software, games engines and desktop and web apps. Many beginners find C++ harder to learn than dynamically typed languages like Python or JavaScript.

 

6. C#

“C Sharp” saw a small increase in popularity in 2017, but not enough to keep it from falling behind C++. The language was developed for Microsoft’s .NET software framework and can now be used on non-Windows machines since the release of the new .NET Core open-source development platform in June 2016. Its main use is building Microsoft enterprise software. Most of the features in C# 7.0 were released last year, including language support for Tuples, local functions, pattern matching and many more.

For more info, check-out our beginner’s guide to .NET Core!

 

7. Perl

Perl made a big jump in popularity this year to move ahead of iOS and PHP and knock Ruby off of our list. Perl, or “the duct tape that holds the Internet together,” as it’s been named, is actually two languages now; Perl 5 and Perl 6, which launched in Dec. 2015. Both of them are general-purpose dynamic programming languages that see a lot of use in CGI, graphics, network, and finance programming. Some think the growth of DevOps triggered this popularity surge because Perl is versatile and works well with other languages, making it a good DevOps tool.

 

8. iOS Family

Most developers writing for the iOS operating system use Objective-C, C, or Apple’s new Swift programming language. We counted any job postings that included “iOS” in our ranking and saw little change from 2016. Swift launched in 2014 and it rose quickly in popularity due to its scalability, speed, ease of use and strong demand from the mobile app marketplace. Apple released Swift 3.0 in Sept 2016 with new features including better translation of Objective-C APIs, modernizations of debugging identifiers and a new model for collections and indices. Apple plans to release Swift 3.1 and Swift 4 in 2017.

 

9. PHP

PHP stayed in the same place in our rankings from 2016 to 2017 with little change in popularity. It’s a server-side programming language used on more than 80 percent of websites today including Facebook, Wikipedia, Tumblr and WordPress. It wasn’t the buzziest language in 2016, but the sheer number of websites still built with it ensure it’s still a useful skill for developers, especially when paired with Javascript and SQL.

 

But Where’s Ruby?

Ruby on Rails, which was number nine on our list last year, dropped down several spots to number seventeen. This may be caused by Ruby losing some of its market share to increasingly popular alternatives like Node.js and Go. But that doesn’t mean there aren’t any jobs for it, or any reasons to learn Ruby on Rails in general. It’s still a popular language, just not as hot as it used to be.

If there’s one thing to take away from our analysis, it’s that no programming language can accomplish every task and the job market changes quickly from year to year. To be a successful developer, it’s important to master multiple languages and train yourself to pick up new languages quickly so you can adapt to changing job opportunities.

What does innovation mean in today’s world?

 

Each and every generation must contend with profound political, economic, social and above all, technological transformations. They not only change long-held assumptions about our future economic prospects but also create new expectations about human advancement and social progress. Yet the breadth and velocity of technological innovation appears equally inspiring and empowering as well as disruptive and ominous. Context, culture and circumstance all play a role in creating a positive or negative reaction.

For example, on one hand, a new era of industry advances in data analytics, nanotechnology, artificial intelligence, neuroscience and unconventional energy is transforming business, industries and economies. On the other, societal concerns such as structural unemployment, income inequality, skills training and national competitiveness are being framed in the context of technological innovation. The challenge is to arrive at a shared understanding of innovation and an awareness of how it can generate greater value for all for the people we serve, the organizations we lead and the societies to which we belong.

Approaching the issue innovation in such a way requires stepping back and examining the how the global economy itself is transforming.  For example, the McKinsey Global Institute conducted extensive research on how increasing global flows are contributing to GDP growth, and in particular new flows of data and communication.  Their latest report, published in April 2014, makes a strongest case to date that this is not a cyclical trend but a secular one:

  •         “By 2012, the combined value of goods and services plus financial flows reached $26 trillion [USD], or 36 percent of global GDP, compared with just $5 trillion, or 23 percent of world GDP in 1990.”
  •         “Global online traffic has grown from 84 petabytes a month in 2000 to more than 40,000 petabytes a month in 2012 – a 500-fold increase.”

The report also forecasts that global flows of goods, services and finance could reach between $54 trillion USD and $85 trillion USD by 2025 (or 38 percent to 49 percent of global GDP).  The inference to draw from the interconnection and dispersion of global flows and their networks is that ours is indeed an interconnected and interdependent world economy that is still evolving.  Although the study cautions that traditional companies will “need to brace themselves for new wave of competition propelled by the low cost of starting up a business in a digital era,” [1]the tone overall remains optimistic as “this era of new global is unfolding new opportunities for globally minded entrepreneurs to disrupt established business models by operating as micromultinationals within global value chains.”

Another interpretation of the impact of multidimensional global flows and their expanding network effects is more critical and cautionary.  It too recognizes global connectivity as “the defining characteristic of our age” but links its growth first to the concept of complexity whereupon complexity inherently generates various forms of instability.  In their recent book, The Butterfly Defect: How Globalization Creates Systemic Risk and What to Do About It economists Ian Goldin and Mike Mariathasan contend that increased connectivity both enables and creates systems that are globally integrated but also inherently complex.  They go one step further conceptually to state that “as a result of globalization, the world today should be defined as a complex system” and therefore argue for “reforms to promote a more transparent and a more resilient globalization.”

Distinguishing between complicated and complex systems becomes all the more important when looking at the future of innovation from the vantage of a globally competitive company. In their new book, Tackling Complexity, management experts Gilbert Probst and Andrea Bassi contend that such differentiation is critical and that complexity is relevant for the private sector as “the patterns of demand and supply from emerging countries are evolving, technology is developing rapidly, and energy and natural resource prices are highly volatile.” They also warn that such a spiral of complexity “may frighten decision makers, or they may be unable to appreciate and understand it,” which in term may slow or even hinder innovation, particularly in larger companies. Countering such a reaction requires emphasizing and reminding the aspirational and inspirational impact that the quest for innovation provides for an organization.

Professor Klaus Schwab, the Founder and Executive Chairman of the World Economic Forum, has long argued that companies will now depend on global development for their future growth as existing markets mature therefore it is in their strategic business interest to help improve the state of the world.  In his 2008 article in Foreign Affairs, Schwab put forth a new imperative for business which he described as “Global Corporate Citizenship”. In his view “international business leaders must fully commit to sustainable development and address paramount global challenges, including climate change, the provision of public health care, energy conservation, and the management of resources, particularly water. Because these global issues increasingly impact business, not to engage with them can hurt the bottom line. Because global citizenship is in a corporation’s enlightened self-interest, it is sustainable. Addressing global issues can be good both for the corporation and for society at a time of increasing globalization and diminishing state influence.”

Reframed in the context of innovation, Global Corporate Citizenship reflects the notion that value creation is undergoing a transformation in the 21st Century. Over the past three decades, value creation has shifted from the efficient production of goods and services globally to generating greater shareholder returns financially – both approaches are proving to be outdated and unsustainable. Today long-term success rests on two pillars: Creativity and Society. Creativity drives companies to identify unmet needs and to fulfil them in truly innovative ways. Society rewards those companies that today create economic value that is inclusive and sustainable. This is the design context for the 8th Annual Meeting of the New Champions which is organized under the theme “Creating Value Through Innovation.” The aim in Tianjin is to bring together the vanguard communities of the World Economic Forum that are committed to creating value through innovation that benefits all stakeholders for the long-run.

Author: W. Lee Howell, Managing Director, Member of the Managing Board, World Economic Forum

This article is also published on Harvard Business Review’s Chinese edition

Image: An employee works at a Chinese automobile factory in Hefei, Anhui province, March 15, 2014. REUTERS/Stringer