Category Archives: Learning Lists

Learning Lists, Uncategorized

Learn Machine Learning With These Six Great Resources

Learn Machine Learning 

A friend of code(love), Matt Fogel is doing awesome things with machine learning at He’s shared this valuable list of resources to learn machine learning that he usually gives his friends who ask him for more information.

You’ll see his original post here:

Learn machine learning with code(love)

Learn machine learning with code(love)

Great blog posts, podcasts and online courses to help you get started

It seems like machine learning and artificial intelligence are topics at the top of everyone’s mind in tech. Be it autonomous cars, robots, or machine intelligence in general, everyone’s talking about machines getting smarter and being able to do more.

Yet for many developers, machine learning and artificial intelligence are dense terms representing complex problems they just don’t have time to learn.

I’ve spoken with lots of developers and CTOs about and our mission to make it easy for developers to start bringing intelligent decision-making to their software without needing huge amounts of data or AI expertise. A lot of them were curious to learn more about the greater landscape of machine learning.

You can describe machine learning as using techniques to help computers learn new ways of uncovering insights from data. This deep dive into the topic will explore many elements outside of this short guide if you’re interested in learning more.

What you need to understand before you learn machine learning is that it’s not a magic buzzword that will help solve every problem with you. Machine learning is a practical way to get more data insights with less work. Nothing more, nothing less. 

To quote a professor in the field, “Machine learning is not magic; it can’t get something from nothing. What it does is get more from less. Programming, like all engineering, is a lot of work: we have to build everything from scratch. Learning is more like farming, which lets nature do most of the work. Farmers combine seeds with nutrients to grow crops. Learners combine knowledge with data to grow programs.”

If that excites you, here are some of the links to articles, podcasts and courses about machine learning that I’ve shared with my friends who were eager to learn more. I hope you enjoy!

Learn machine learning with code(love)

Learn machine learning with code(love)

1A Gentle Guide to Machine Learning

This guide, written by the awesome Raul Garreta of MonkeyLearn, is perhaps one of the best I’ve read. In one easy-to-read article, he describes a number of applications of machine learning, the types of algorithms that exist, and how to choose which algorithm to use.

2A Visual Introduction to Machine Learning

This piece by Stephanie Yee and Tony Chu of the R2D3 project gives a great visual overview of the creation of a machine learning model that determines whether an apartment is located in San Francisco or New York based on the traits they hold. It’s a great look into how machine learning models are created and how they work in practice.


3Data Skeptic

A great starting point on some of the basics of data science and machine learning. Every other week, they release a 10–15 minute episode where the hosts (Kyle and Linhda Polich) give a short primer on topics like k-means clustering, natural language processing and decision tree learning. They often use analogies related to their pet parrot, Yoshi. This is the only place where you’ll learn about k-means clustering via placement of parrot droppings.

4Linear Digressions

This weekly podcast, hosted by Katie Malone and Ben Jaffe, covers diverse topics in data science and machine learning. They teach specific advanced concepts like Hidden Markov Models and how they apply to real-world problems and datasets. They make complex topics extremely accessible, and teach you new words like clbuttic.

Online Courses

5Intro to Artificial Intelligence

Plan for this online course to take several months, but you’d be hard-pressed to find better teachers than Peter Norvig and Sebastian Thrun. Norvig quite literally wrote the book on AI, having co-authored Artificial Intelligence: A Modern Approach, the most popular AI textbook in the world. Thrun’s no slouch either. He previously led the Google driverless car initiative.

6Machine Learning

This 11-week long Stanford course is available online via Coursera. Its instructor is Andrew Ng, Chief Scientist at Chinese internet giant Baidu and one of the pioneers of online education. 

This list is really only scratching some of the complex and multifaceted topic that is machine learning.  If you have your own favorite resource, please suggest it in the comments and start a discussion around it!


Learning Lists

11 Great Resources to Learn and Work in Python

Python is one of our favorite languages at code(love). Versatile, and yet easy to grasp, it’s one of the best languages at expressing the logic behind code with a simplicity that is sometimes breathtaking in its elegance.

If you happen to be more practical, Python always ranks among one of the programming languages that draws the highest median annual salaries, hovering around the magic $100,000 USD mark.

Despite how simple it is, Python is also surprisingly powerful. It can help introduce you to the basics of machine learning, it can slice and dice relatively big datasets for you, and it can even help you build entire web platforms. Pinterest often uses Python to serve millions of images around the world.

The language itself grows ever more versatile with its community. If you want to join this healthy, vibrant network of builders and learn how to do awesome things with Python, you’ve come to the right place. Here are eleven places you should start.

Python is poetry

Python is poetry

1-Read about Python

Learn Python the Hard Way was my first introduction to Python and several programming concepts. Author Zed A. Shaw made the book accessible online for free, but he has a special place in his heart and inbox for people who pay the small sum of $29.95. The practical exercises within are well worth going through. Make sure you write out as much of the code as possible: it’s only through mastery of the basics that you can become an expert.

2-Watch Python Videos

If you’re more of a visual learner, you can learn about the fundamentals of using Python for the web with this excellent free Udacity course. Of course, there’s more where that came from, with a variety of courses from everything to data fundamentals in Python to machine learning. I went through the series myself, and though it’s a bit long (and there are a lot of exercises that I didn’t think added that much value), the end result was that I came out of the tutorial with a deeper understanding of how data moves across the web.

You can also catch plenty of Python videos on Coursera, Treehouse and Udemy.

Udacity with code(love)

Udacity with code(love)

3- Look through lists of Python Learning Resources

This might be a little bit meta, but I love lists of resources. One of the hidden secrets to finding those great resources are going through Github repositories. Github is the Google Docs of code, a great collection of “repositories” where coders can “commit” their code to a shared codebase. It’s also a place where people love compiling great collections of programming resources.

This particular link above is a favorite collection of mine. I hope you enjoy it as much as I do.

4- Anaconda and iPython Notebook

Anaconda and iPython Notebook are what I commonly refer to as the “Excel” of Python. It can be hard to work with the Python interpreter (the command line prompt where you enter Python code if you install it from as is. You can’t really refer back to the work that you’ve done before very easily without saving a whole variety of Python files, and it can be pretty hard to share your code with the web at large in HTML form, especially with different charts and graphs and a structured flow you want to convey that goes beyond just one Python script.

iPython Notebooks allow you to write your code in Notebook form.

iPython Notebook with Python

This is what Notebook form looks like.

Python Interpreter with code(love)

This is what the Python interpreter looks like. Source:

Anaconda and iPython Notebook make it intuitive and visually appealing to organize different Python software modules, and bring them together so that you can work and show your results as easily as possible with nbviewer, which generates a HTML version of your Notebooks that you can share on Github. A lot of popular modules we talk about like Pandas are pre-installed, saving you some time. When you click on the next link, you’ll see exactly what it looks like using iPython Notebook.

5-Slice and dice data with Pandas

Built on the aforementioned iPython Notebook, Julia Evans has created a “cookbook” for the Pandas module, a collection of Python code that can help you handle relatively large data sets with ease.

Python can only help you process what you can fit in memory on your computer, but that’s more than enough for most of your data needs. Pandas will help you efficiently process that data: you’ll be able to read from very large CSVs and clean them up so you can find great data insights and visualize them (more on that in point #10!)

6-Build something small with Flask

Flask is what is termed as a micro-framework, a set of code that you can lean on to build small web projects. It has a bunch of reuseable components that help you build interactive websites that can both receive and transmit data. Give it a try: in a few lines of codes, you can get something interactive going on the web!

7-Build something big with Django

If you’re tired of the word micro, and want to go with a full web framework, build something with Django! Django is used to this day to build very large websites including Pinterest, and Instagram.

django with code(love)

Take a bite out of the web with Django!

8-Play around with Python APIs and even more!

We had a list of learning resources before on Github, now we can explore a list of the things that make Python awesome! I especially love using Python to play with Application Programming Interfaces or APIs. APIs are a set of rules for servers to communicate data with one another: what this means is that with Python, you can scrape your personal fitness information from your Fitbit or work with Google Sheets automation easily. You can do anything that involves getting data from a server willing to give it to you.

You’ll find a list of really cool APIs above that will allow you to play with all sorts of cool data!

9-Do some machine learning with Python

Have you heard of machine learning? It’s all the rage today and the reason why is because it allows you to do more with less. By having machines learn patterns in your data and by being able to infer conclusions from smaller data sets to larger populations with their insights, machine learning lets you know more about the world around you with less data points.

This Github repository offers a fantastic dive into the fundamentals of machine learning, and gets you to practically embark on your machine learning adventure with sample code sets.

10-Tell data stories with Plotly

Data doesn’t mean anything unless you can storytell with it. You can throw all the numbers in the world at people but it won’t mean they’re any closer to understanding your point. You really have to break down your data into meaningful chunks for it to go anywhere.

Thankfully, can help with that. With a few lines of Python, you’ll be well on your way to doing bar graphs, charts, and figures of all kinds.

Plotly with code(love)

An example of what you can do with Plotly!

11-Do coding challenges in Python

Now that you’re done learning all of the fun stuff in Python, it’s time to put yourself up to the test! Use HackerRank challenges to test your skills: you could even get a job out of it!

HackerRank allows you to complete problems in the coding language of your choice and allows you to demonstrate your skill with clean code that solves problems in a short amount of time.

Python is a wonderful language for programming beginners, and powerful enough to explore multiple areas of data, machine learning, artificial intelligence and other advanced computer science concepts. It’s the perfect mix for anybody who is getting into programming or who wants to develop their skills further. With these resources you’ll be able to learn and work in Python!

Share this list of resources if it can help somebody–and let me know what else could be added to this list in the comments :)

Source for featured image:

Learning Lists

Nine free, brilliant resources to learn data mining

I’m a big fan of playing with data.

In my earlier corporate life, I often used Excel to look through thousands of lines of spreadsheet goodness. I assumed what I was doing was “big data”, and I prided myself on my association with a trendy buzzword.

I know better now. A lot better.

If you’ve ventured here, you’re probably looking into data science, the mysterious science that seems to verge on mysticism in the press. The virtues of data are constantly praised as innovative and disruptive. They seem like the domain of an exclusive few practitioners lifting numbers into actionable insight.

Harvard Business Review went as far as to saying that the data scientist was the sexiest job of the 21st century.

It seems that data scientists create many of the most exciting projects at the cutting-edge of technology. The people you may know on LinkedIn appear thanks to data mining. Amazon’s book recommendations rely on computers to mine your book preferences and select the one book that is most likely to appeal to you. Facebook finds what posts you like, and serves you more of the same. Google finds out who you are, and filters search results and ads for you.

If I like computers, the search term Python will return me the programming language. If I like snakes, it will return me a whole bunch of snakes.

This is all down to the magic of data mining. You’re here because you want to look behind the veil and learn how to do all this.

It’s hard, but not as hard as you think. Data science, at its’ core, is all about using computing power to parse through huge data sets.

Learn Data Mining with code(love)

Learn Data Mining with code(love)

Here are nine free, brilliant resources to do just that.

1- Coursera’s Specialization in Data Mining (level: beginner)

Coursera brings the best from the University of Illinois at Urbana-Champaign, ranked in the top 5 for computer science schools in America. It’s a useful introduction to data mining–the application of data science and computing power to find patterns in large collections of data.

2- A UCLA professor’s overview of data mining (level: beginner)

This blogpost delves deep into the specifics of data mining. It provides an overview and a set of definitions that will help bring you up to scratch.

3-Introduction to R (level: beginner)

The coding language R is the workhorse of scientific data analysis and visualization. Codeschool offers an interactive and gamified approach to learn it, similar to Codecademy. Working with R will give you insight into how to move and dance with digital data, a skill that is the foundation of data science.

4- Kaggle’s Wiki on Python (level: beginner)

Kaggle is a platform for crowdsourced data challenges. The website has a ton of resources on how to get started with data science. This particular link leads to their guide on Python, one of the most versatile programming languages for data analysis.

5- Data Science 101 (level: beginner)

This blog knows how to describe itself: “Data Science 101 is about learning to become a data scientist.” Simple, clear and to the point.

6- W3’s Tutorial on SQL (level: beginner)

W3 hosts a bunch of interactive tutorials on the basics of programming. This set of tutorials goes through SQL, a language that allows you to access data from most web databases. The tutorials will give you a glimpse into how data is structured for many websites and they will give you enough knowledge so that you would know how to play with data.

7-Horton’s Hadoop Sandbox (level: intermediate)

Have you ever wanted to play with big data? Learn the basics here and experiment with them. Hadoop helps distribute data across multiple servers, helping to process large amounts of data as seemlessly as possible.

8- Machine Learning on Coursera with Andrew Ng (level: intermediate)

Learn about data mining and the algorithms you can create to make your data analysis job so much easier from a master in the field: the founder of Coursera Andrew Ng, a Stanford professor who has recently become Baidu’s chief scientist.

9- A Programmer’s Guide to Data Mining (level: advanced)

If you can work with Python at a proficient level, this book will help you implement different algorithms that will sort, filter, and manipulate your data for you. A must-read for people looking into the practical applications of data mining.

I hoped that helped get you set on the path to data mining. What resources do you think I’m missing? Comment below. :)

Learning Lists

Learning Artificial Intelligence

Last year, my partner and I designed Gump, a Voice-Commanded Bipedal Robot for our Engineering Graduation Project. Gump won first place in the Engineering Faculty for Best Project and is currently featured in Engineering News Magazine at Concordia.

The moment we saw our robot walk on two legs for the first time and respond to the sound of our voice was miraculous.

That moment is when we knew we wanted to work on artificial intelligence for the rest of our lives.

Learning Artificial Intelligence with code(love)

Learning Artificial Intelligence with code(love)

That moment is when we knew we wanted to work on artificial intelligence for the rest of our lives.

As technology grows, so does the information that is available to us.

We began working on artificial intelligence in the NLP (Natural Language Processing) domain, something that allowed machines to understand and process human language patterns. We worked on speech recognition and now we are doing text analysis using artificial intelligence.

We’ve learned that the possibilities of using artificial intelligence are endless. Learning artificial intelligence is crucial to understanding how the 21st century will unroll—Chris Dixon, a prominent venture capitalist, argues that the next 10,000 startup ideas are clear: take x and add artificial intelligence to it.

With artificial intelligence, you can get unlimited insights from Big Data. Imagine measuring the mood of iPhone Users on Twitter after Apple’s latest product launch, gauging the world’s opinion on a major event like Russia’s invasion of the Ukraine, or predicting a company’s performance based on previous financial data, without any need for a human to relay that information to us.

Imagine a world where machines can automatically process information, and present it to use in a relatable and relevant form. This is what artificial intelligence proposes.

Artificial intelligence can help us all be more informed in less time, allowing us to make quicker decisions by getting the insights and analytics we need from Big Data.

Learning Artificial Intelligence

Learning Artificial Intelligence

Because of all this, I’m excited about artificial intelligence. I want you to be as excited as I am, so I’ve decided to highlight some ways to get started with artificial intelligence using resources available online

1-NLTK with Python

NLTK stands for Natural Language Tool Kit, an open source library with lot’s of functions to help you use NLP and artificial intelligence. to solve a problem or work on a project. You must know Python to get started with NLTK. To begin your path, I recommend the Coursera class offered by Stanford University. You might want to brush up on your Python skills with this great book for Python and NLTK beginners and then level up and learn more about Natural Language Processing by looking at this book.

2- IBM Watson Sandbox

Watson is IBM’s artificial intelligence., famous for defeating two human contestants on Jeopardy by having only the Wikipedia database to answer questions. It is considered the gold standard for artificial intelligence nowadays. IBM released a sandbox version for using Watson’s APIs for 30 days, which allows you to hack away and create a cognitive application.

If you want to use Watson for your next big thing, you won’t be able to unless you’re a Series B Funded startup, but that will change in the future. The access IBM has given to Watson now bodes well for the future. The ecosystem is still evolving, but it is the gold standard of artificial intelligence, and IBM is working to make it more accessible.

3- Udacity Courses

Sign up for the free courses on Udacity for Introduction to Artificial Intelligence, and the three Machine Learning Courses offered there. There are tons of resources and a community there to answer all your questions. We personally believe that Machine Learning should be a mandatory course for every Software Engineer and Computer Science Major.

Check out the forums as well, they’re very insightful and they will help guide you step by step.

4- MATLAB’s Neural Network Toolbox

This one is costly, but if you can get a MATLAB license with Neural Network Toolbox license as an add on, you have a very powerful system to play with. NNT is an Artificial Neural Network that has amazing capabilities for your project like speech recognition, image recognition, and object detection. We loved playing with NNT for our robot, Gump.

With a few lines of code, you can create artificial “neurons” in your program. The neurons can be assigned to do several things. We created eight neurons with MATLAB, each one assigned to a specific voice command. After that, we trained the neurons by recording over 5,000 voice samples from every person we could find on campus. The more voice recordings each neuron had per voice command, the more it grew in knowledge. When we tested it, the response was just perfect! MATLAB is immensely powerful.

Those resources will help you get started with learning artificial intelligence.

Leave comments below if you found this helpful, or know of other resources!

This post was written by Yaz Khoury, the founder of an A.I startup called Summarit that uses artificial intelligence to summarize articles for students.

Learning Lists

Ten curated resources for you to learn code and entrepreneurship.

Imagine a world where you could access information as easily as you could breathe.

You can stop imagining: this is the world we live in.

With Google, almost everything can be a finger tap away. With the right keywords, you can access the right information.

The challenge now isn’t a lack of information—it’s how to access that information in a curated fashion.

In that sense, Github, the hub for open source software has become a good way to organize information. By modifying the README files typically used to document how software is used into a list or a resource itself, the open source movement is applying yet another twist to how it can leverage existing resources in new ways to solve old problems.

It is innovation in action. The best part of it is that you can contribute even if you’re non-technical by getting an account, and making pull requests that change the text: you update the text how you will, and then you can push the changes to moderators who will look over your proposed changes, or reject them.

Here’s a guide on how to go about doing that:

Now to take a look at the resources that have been assembled for you to learn code and entrepreneurship.

Entrepreneurship A list of startup resources that’ll help you get your feet set to build something. A list of digital business models, along with a comparision to a company or startup known to be using that strategy.

Code An overarching framework of most of the coding resources on Github, including a bunch of resources on technical topics. A special list for HTML/CSS/JS resources. A comprehensive overview of all things Javascript. A list of the Python frameworks you can use. A similar list as awesome-python, this time for Java frameworks. An awesome curated list of free programming books. A list of the videos you have to watch to really get Javascript. A list of resources a front-end developer has bookmarked over many years.

What are some awesome resources you’ve seen on Github? If I’m missing any, let me know in the comments below :)

If learning lists are your thing, check out the rest of them on code(love)!

Learning Lists

Seven Free Resources You Need to Learn Javascript

Last time I wrote about learning code, I talked at length about what the best coding language to learn for you was, going through the pros and cons of a few languages, and giving use cases of each one. Without delving into too many spoilers—you should read the piece for all of the insights—Javascript was mentioned heavily.

Javascript has been really big, especially because of the evolution of the MEAN stack, which has allowed for Javascript to control how users view your site’s information (Angular), how you host your site (Node), how your site communicates information (Express) and how it stores it (Mongo). It’s become really popular with startups—in fact as you can see from CB Insights, 81% of billion-dollar startups use Javascript in their technology. It is the top coding language used by successful startups.

Learn Javascript with code(love)

It’s a language that can get you hired, and help you build great new ventures.

I’ve recently been really big on wanting to learn Javascript, so I’ve unleashed these resources. They’re a diverse group, suited to all types of people who want to learn Javascript in different ways.

One cautionary note: as useful as Javascript can be, it may not be the best first programming language to learn. It has a lot of little traps in it that can trip even veteran programmers. If you are an absolute beginner, you may want to check out some more general resources oriented around other languages rather than trying to learn Javascript, such as these.

1- Codecadamy Javascript Track (type: interactive, level: beginner)

What’s not to like about learning by doing? By following the Javascript track of Codecadamy’s interactive courses, you can get the basics of Javascript by working out how to create functions, and build things with it. It’s a great sandbox to learn in—in fact, it was how I first picked up coding.

2-Eloquent Javascript (Type: book, level: beginner)

Still can’t get over learning through books? I can’t blame you. I was never the biggest fan of school, but there is something comforting about having a lot of pages devoted to something.

Eloquent Javascript is a free book that has been converted into HTML format for easy reading. It goes through everything you need to learn Javascript from beginning to end. It’s quite well-written, and has a lot of relevant examples and images to break the text up—it’s a book that really gets at you and challenges you to learn Javascript.

3-LearnJS (type: interactive, level: intermediate)

More learning by doing. I really like resources like this that get at you and challenge you to do stuff. In this case, LearnJS features interactive modules where you are challenged to finish incomplete code so that it matches a desired output. In doing so, you can learn how to use Javascript to do what you want it to do. (type: blog, level: advanced)

I picked up on when I was looking for resources on how to build single-page web applications. The place is a hive of how-tos and resources on how to build with Javascript and its frameworks. (type: video, level: advanced)

I’ve been following the Egghead video series on Angular to learn the framework: they’ve been a breath of fresh air for my learning. Angular.JS is a Javascript framework that allows you to control a lot of what a website visitor would see, from filtering information, to allowing buttons to toggle settings on and off. It’s the framework I’ve been focused on learning. Having so much content organized about it in a coherent and sequential fashion warms my heart—and it will warm yours as well.

6-JSFiddle (type: sandbox, level: beginner)

Whenever you feel the need to play around to learn Javascript, JSFiddle is the easiest way. Plug your code into the module, and watch it come to life with no limits!  I use it to test what some websites will look and feel like without the need of hosting and uploading changes. It’s a great experimental space to see what your code would look like live.

7-Plunker (type: sandbox, level: intermediate)

Similar to JSFiddle, except now you can manage separate pages, which has made it really useful for testing more complex frameworks for Javascript such as Angular.JS. My go-to learning tool these days as I combine that with Egghead for maximum learning.

There you go. The choice is in your hands to build something great now with Javascript. These resources will help along the way.

If you want more resources to learn, check out our other learning lists!


Learning Lists

The best coding language for you to learn.

A few people have asked me what would be the most useful or best coding language to learn.

Skipping aside HTML/CSS—I think the answer rests on what you want to do with code.

Javascript and its frameworks are really useful for building something with just one language.

Angular.js can control the front side of the website that displays to your users, Node.js will act as a web server that can host all of your content, Express.js runs in the middle directing where information goes, and MongoDB acts as the storage center for data you accumulate from your users—the MEAN (Mongo/Express/Angular/Node) technology stack—an organizing framework that helps build everything you’d need for a web application—is the one favoured by a whole lot of startups these days. It’s a whole component of technologies that can build everything web-wise based on one language.

I’ve been using and to catch up on my Angular and MEAN stack skills.  Egghead is focused on video tutorials that are structured sequentially, Scotch has some great graphics about the whole process of building web apps, including the following explaining the MEAN stack.

MEAN Stack from with code(love)

MEAN Stack from with code(love)

They’ve got great tutorials on how you can go about building nifty applications such as basic search engines, and new ways to validate forms (making sure that when you create input forms, people are actually putting in valid criterion). With Angular itself, you can animate a website and make it move, with not too much in terms of setup, which is pretty nifty.

Python is very readable and legible, and has recently become the introductory language of choice for universities teaching computer science majors. It’s fantastic for playing around with data, and doing all sorts of nifty things you wouldn’t have thought possible with its various community modules, such as scraping web pages in their entirety, and doing advanced scientific data analysis. I started out with Learn Python, which suited my fashion of learning by doing.

Java and lower-level languages (languages that are closer to interacting with computer hardware) that are a bit more difficult to interpret for human eyes are wonderful for understanding more of how code actually works—and how you’re interacting with the computer. Java is also something that is used for mobile development on the Android ecosystem, which is something that will always be in demand.

If we want to switch briefly from knowledge to money, I’ve seen a lot of demand for iOS developers, and Objective-C and SWIFT aren’t that hard to pick up. Ruby, especially when used in conjunction with Rails, is also something a lot of startups are building on for which the learning curve isn’t that high (in fact, there was a children’s book for Ruby).

I myself am personally learning Python for playing with data, Javascript and the MEAN stack for building web applications, and Java for a deeper understanding of computer science, and building things for mobile, which I think is a well-balanced set of languages carrying forward. I’ve got together a bunch of learning lists, and resources to help me and you learn what we need to build great things. But none of these are the best coding language to learn.

The best coding language to learn—and how to go about doing it.

The absolute best thing to learn is to learn how to think like a programmer—learn how to solve problems mathematically, with clean and concise code. Coding languages evolve, they change, they fall in and out of favor. One community might morph into another. The great web applications of the present might be obsolete in a few decades. What won’t change is the need for people to think logically, and solve problems—and make it an automated and easier process with machines.

You can bank on the fact that going forward, if you practice your problem solving skills, you’ll be able to find your best language, and get the knowledge and money you need to build great ventures.

I’ve been opening up Project Euler, a set of programming math and logic problems, and using the Codecademy workspace in Python to try to create clean code to solve these problems. This was something a Google recruiter mentioned as being a great training step to learning code—and I don’t doubt it. I feel sharper and more confident in my ability not only to code—but to think.

The best language to learn is ultimately the language of logic, math, and problem-solving that is at the core of code. What are your thoughts?

Learning Lists

Five things you should know before you learn code.

Download / By Kamil Lehmann


I wish I knew that there should be an organized way to approach learning code, and that learning code wasn’t just about learning in isolation—it is about building knowledge upon knowledge.

I wouldn’t have tried to learn more complex languages like Python before learning about HTML/CSS, the foundation of the web.

You should know about sites like Codeacademy which organize code learning in a structured, and fun fashion. You should know about Bentobox, something that offers you a structured plan to approach learning code.

2-Free resources

I wish I knew just how many free resources were out there to learn code. It would have helped me get a sense of what learning could be done, and where I could go.

You should take a look at things like reSRC, an online directory of free resources to learn code, and this list of 31 free resources to learn how to code.


I wish I knew that a lot of coding was built around frameworks, coding templates which set the foundation for easier coding. I wish I knew that one of the cardinal rules of coding was “Don’t Repeat Yourself”—and that means that if someone has built a solution already, go ahead and use it.

Frameworks make coding easier. They build a foundation that you can wrap around your code and play with—invaluable if you’re just beginning to learn how to code.

You should take a look at frameworks such as JQuery, which simplifies interactive elements of a website, and Bootstrap, which simplifies how you style a website.


I wish I knew just how valuable it was having somebody around who knew what they were doing. When I got stuck, I finally approached some programmers I knew, and they helped me immensely.

You should look for mentors or programs like Ladies Learning Code where you are connected with some.

5-Learning by doing

I wish I knew just how much easier learning code would be if I thought about building projects, and getting my code to fit those practical applications.

Nothing beats struggling through Q and A forums like StackOverflow, looking desperately for the right answer and finding it. The learning you’ll get will flow naturally.

You should look for a great idea, and try to build something to learn code. You’ll be adding to the foundation of the Internet, while learning at the same time.


These are the things I wish I knew about learning code before I embarked on my journey. It’s far from complete, but looking back, any one of these steps would have helped me learn faster, and would’ve gotten me to be where I want to be in the future—now.

Getting the learning right allows you to build the future you envision, giving you a voice in the participatory process that is the modern digital economy. It empowers you to build what you can: getting it right can mean the difference between the ideas you see through to fruition , to those you have seen languish behind. Don’t hesitate to start now.


Learning Lists

31 Free, Brilliant Resources to Learn Code

This was written by Mufaddal, and was originally posted on LearnRev

At code(love), we’re all about compiling resources like this, so it was our pleasure to help spread this great content. If you have content like this don’t hesitate to contact us at [email protected] We have a weekly newsletter centred around the best resource to learn code.

If that sounds awesome, join our mailing list.


Software is eating up the world’ , Marc Andreessen wrote this article in 2011, almost 3 years on and this statement is still relevant, and will probably be relevant for the foreseeable future. From Jack Dorsey to Bill Gates to Mark Zuckerberg, everyone is encouraging people to learn how to code. The software industry is growing, every single industry is affected by it. There could not be a better time to learn how to code.

Learning how to code is difficult but its not impossible. It’s never been easier to dive right into it. There are countless resources available to help you learn how to code. From simple tutorials to full-fledged courses with tasks and projects. In this post I’ll list the free resources that I think are the best places to dive right in and get started.

Different people learn in different ways, some prefer to read a book first, others like to start coding straight away. There is something for everyone here. I’ve divided the resources into different sections, with number of resources in each section. The below categories are not set in stone, as you will notice that a number of the blogs have courses, and one of the books is interactive.

None of the following are in any particular order, they all have different strengths and weaknesses.

Mainly for Kids

The following five options are great for kids. From JavaScript to simple block-based languages that can teach logic, moving on to Ruby, which is a widely used language in Web Development right now.

1. Khan Academy

Khan Academy-smallSal Khan is Bill Gates’ favourite teacher. Khan Academy has grown from a guy with a graphic tablet putting videos on YouTube, to an education institute. The computer programming section in Khan Academy goes through the basics and is great for kids or grownups to get an idea about how a computer works to what programming is. If you’re just looking to understand the basics of computers and programming, then this is the best place to start.

The focus of the programming course is on JavaScript. Concepts are taught through coding talk-throughs. In these talk throughs, the teacher writes the code and explains what she is doing and the results show up straight away. After the talk-through you can play around with the code that the teacher wrote and modify it.

Once you get a a good hang of how JavaScript works. You can create your own program and publish it to Khan Academy. Other people can see what you’ve build and if they like it, they can modify it and create a spin-off. You can browse the programs that other people have built and create Spin-offs as well!

2. Hour of Code - Hour of Code

Founded by Hadi and Ali Partovi, had the goal to make programming accessible to everyone. They launched the Hour of Code challenge in December 2013, to entice students to give coding a shot. Having partnered with different companies(Khan Academy, Tynker etc), they have developed coding challenges. Starting from some of the simpler ones such as this blocks based drag and dropchallenge. Moving on to this challenge, that will allow you build flappy bird on the iPhone in your Browser!

You can also learn about Python from Grok learning and how to draw using code from Processing Foundation.

3. Scratch


A product of MIT Media Lab, Scratch was developed for kids, but even adults can use it to learn the basics of programming. It has an easy to use drag and drop interface, that focuses on teaching logic, which is essential to learning any programming language.

Besides the block-based drag and drop components, the Scratch interface also allows you to import your own images and creating your own images inside the browser using their built in drawing program. Like Khan Academy, you can explore what others have created and remix them or come up with your own projects that others can remix as well.

4. Alice

Alice_ProgrammingAlice is another software program that uses a drag and drop environment. Its focus is towards computer animations using 3D models. Initially produced at University of Virginia and  then at Carnegie Mellon after 1998. You can place objects from Alice’s gallery into the virtual world, and program them by dragging and dropping tiles that represent logical structures. Additionally, you can manipulate Alice’s camera and lighting to make further enhancements.

5. Hackety Hack (Ruby)

Hackety_HackThis is a great little tool to learn about Ruby. It has a built in Integrated Development Environment(IDE) which allows you to run a piece of code that you have written. The learning is structured around going through a series of lessons that are accompanied by programming assignments that can be attempted in the IDE.

Unlike Khan Academy and Scratch, you can download the Hackety Hack software, and learn while offline as well. Once you have accustomed to the Ruby programming language, you can create your own programs from scratch and upload them to the Hackety Hack website. You can also check out what others have created although the community isn’t active like Khan Academy or Scratch and it looks like nothing has been uploaded onto the website since 2011.

University level Courses

If you are looking to learn from professors teaching at some of the top Universities in the world, then the following options are the best for you. The Courses found here range from ‘Introduction to Computer Science’ to some of the advanced Machine Learning and A.I. courses that you can take at Stanford or MIT. I have also included the MongoDB University courses in this section, as they follow the same curriculum and timeline as a normal University course.

6. MIT OpenCourseWare

MIT-OpenCourseWare-smallMIT started the OpenCourseWare movement about a decade ago, since then online courses have evolved and have a completely different look. If you are looking to get your foundation and basics strong, then there is no better place to start then the Introduction to Computer Science and Programming course. It will start from the basics and give you a good understanding of how computers work. Once you have gotten your basics strong, you can jump into some of the other courses found in the Electrical Engineering and Computer Science section.

7. Coursera


Founded by Andrew Ng and Daphne Koller, Coursera is the largest MOOC (Massive Open Online Courses) provider in the world right now. With courses from over 108 institutions(at current count) from all over the world. The courses have a start and end date, although once enrolled you can view the content at your own pace if you don’t wish to follow the course schedule.

The only problem with Coursera is that you have to join the course at the right time. You can enrol into a course after it has started, but with that you will not be able to earn a course certficate for most of the courses. But like most MOOCs, you can view the content at your own pace at any time, even after the course gets done. I would recommend that you try out Machine Learning, the course that started it all. At the time of posting this blog post, they are already halfway through the current session, but you can enrol and get access to the course content.

Besides that there are over 100+ courses on Computer Engineering at Coursera. All of them available for free.

8. Udacity (Python + others)


Another startup founded by an ex-Stanford professor. 160,000 students enrolled into the ‘Introduction to Artificial Intelligence‘ course  by Sebastian Thrun that started it all. That course is for advanced students. If you’re a beginner, then the ’Intro to Computer Engineering‘ course is the place to start. Udacity offers courses focused towards specific fields in computer science such as ‘Web Development‘, ‘Data Science‘ and ‘Machine Learning(coming soon)’. Most of the courseware on Udacity is accessible for free and you can learn at your own pace. If you pay for the monthly subscription you get access to your own personal tutor that will guide you through the course.

9. MongoDB University (NoSQL, MongoDB)


NoSQL databases are all the rage right now. Databases have remained the same since Oracle came up with the Relational databases in the late 70′s. Hard disks have become cheaper since those days. Internet and networking speeds have increased. This has lead to innovations in databases. MongoDB inc. (Formerly 10gen) has been at the forefront of this innovation.

What better place to learn about these new databases then MongoDB University. Powered by the edx platform, they have 7 different courses targeting different languages and use cases. Two of the courses lead to certifications.

Interactive Browser-based

The following websites, offer an interactive browser based IDE to teach how to code. You can learn by doing a number of projects and exercises in the browser. The advantage to using the examples below is that you would not need to setup anything on your computer, and can learn everything through the browser. Eventually when you’re more comfortable you can always download the right software and get your development environment ready.

10. Codecademy (HTML, CSS, Python, Ruby, PHP, JavaScript)


Founded in NYC by Zach Sims and Ryan Bubinski. Codecademy was one of the first startups to focus on teaching you how to code with project-based assignments that taught you simple concepts through a browser based editor. They started with just JavaScript, and now offer a number of server side languages that you can learn as well.

Once you have mastered a skill, you can create your own lessons and teach.

Check out the Projects page, which contains 10 web-based projects. You can build a Blackjack game or Animate your name using HTML, CSS & JavaScript. The lessons are brief and engaging, and keep you coming back for more.

11. Code Racer (By Team Treehouse) (HTML, CSS)


Code Racer adds a competitive element to learning how to code. It is aimed towards teaching you basic HTML and CSS.  Beginners can learn at their own pace and advanced users can test their coding speed and agility. Players race against each other and the clock to complete coding challenges, unlocking weapons and rewards along the way. Built by Team Treehouse it offers video tutorials with the same production values found on their main website. The challenges are easy to start with but become harder as you progress.

12. Code Avengers (HTML/CSS/Javascript)


Offering a browser based text editor, Code Avengers offers step by step task based interactive tutorials. The tutorials are there to help you learn how to code games, apps and websites with HTML, CSS and Javascript. The interface is easy to use and the tasks are easy to follow. If you need help you can also ask questions.

13. Code School (HTML, CSS, JavaScript, Ruby, iOS)


Code School has courses in a range of different languages. Most of the courses are not available unless you sign up for the monthly subscription service at $29 per month, you can end the subscription at any time. But all the different languages that they offer offer at least one free course. All the courses follow a theme, and you get a different user interface and look. This keeps things fresh as you’re learning. The courses is conducted through video screencasts with great production values. After every screencast you can attempt a coding exercise.

Some of the free courses that I recommend you to take are the  JavaScript Road Trip part 1Try JQueryTry RubyTry Objective-C & Try iOS. All of these are fairly basic courses that will teach you the fundamentals and will give you a good flavour of what to expect in each language.

14. The CodePlayer (HTML, CSS, JavaScript)


This is a slightly different concept, it doesn’t have a video player with a guy showing you whats being built. The player is similar to the Khan Academy JavaScript lessons, where you get to see how the code is written. Unlike the Khan Academy lessons, there isn’t any audio. The commented out portions in the code explains how a certain effect was achieved.

The great part is that you can increase the speed to watch it quicker, and just like Khan Academy you can play around with the code at any point by pausing the player or right at the end.

15. Ruby Koans


This is a different way of learning Ruby through unit testing. The word Koan, is used to represent story, dialogue, question, or statement, which is used in Zen-practice to provoke the “great doubt”, and test a student’s progress in Zen practice. This is the same philosophy that is used in Ruby Koans, by teaching a user about the Ruby programming language through testing.

Normally you would be required to install Ruby and download the Koans on to your computer to get you started, but a browser-based version has also been developed, so you can get started straight away.

16. Programmr (C++, Java, C#, Ruby, AJAX, HTML, CSS, Javascript, SQL, Flash and plenty more!)


Programmr has a broad catalogue of lessons teaching many languages. You can attempt exercises in their browser-based editor, and it gives you an answer straight away. The exercises start with the basics, teaching variables, operators, methods and strings and then moving on to some of the more advanced concepts. There are quite a few free courses, and a number of paid courses as well.

The thing that makes Programmr good is the ability to create your own projects, and attempt projects created by others. The projects range from simple games to iOS and Android apps. They also host contests through which you can win various prizes.

Video Screencasts

The below are screencasts recorded by experts showing you how to do a certain task. You would have to setup your development environment on your computer to get started with these.

17. NodeTuts (Node.js)


We’re using Node.js for our backend. When Zaid our co-founder/CTO was deciding to switch from Python, these were the tutorials he used to learn more about Node.js. The tutorials are developed by Pedro Teixeira, who has contributed a lot in the node.js open source community. These are video-based tutorials, but Pedro has a great teaching style and explains simple concepts in an easy to understand way.

We liked these so much that we combined these screencasts together and curated them into one place.

18. Stanford CS139P iPhone Development (iOS)


Follow the same curriculum and lectures that the students at Stanford are following to learn iOS development. The videos are recorded in the lecture theatre while the class is being conducted. You will get access to different course work ad exercises, but its fairly self-paced and you will need to take the initiative. You can download all the videos and then try to attempt the assignments at your own pace.

You also have the ability of downloading these on iTunes U.

Tutorials, Guides & Blogs

19. AppCoda iOS Programming (iOS)


AppCoda has 60+ tutorials to teach you how iOS development. You don’t require any previous programming experience to get started. The tutorials will help you get Setup and build your first Hello World! app in Xcode.

They are adding a new tutorial every week. So if you’re interested in learning iOS, have no programming experience and prefer reading to watching videos, then this is the best place to start.

They constantly update any old tutorials that are not relevant anymore with Xcode 5 and iOS7.

20. Tutsplus


Tutsplus has net a great network of blogs on various subjects, from Design to Music to Business. The three blogs that I recommend you to follow are the CodingGame Development and Web Design blogs.

Part of the Envato network, which also includes a number of marketplaces, Tutsplus also offers a number of Free Courses on various topics. They offer 2 free courses inWeb Design and 10 free courses on Coding. To get started in Front-end Web Development and Design, I recommend that you check out the 30 Days to learn HTML & CSS & 30 Days to learn JQuery. You should also check out either Let’s learn Emberor Hands-on Angular which allow you to augment Web Application with Modular-View-Controller(MVC) capabilities, allowing you to build single page applications. Deciding which one to use requires another blog post on its own!

21. CSS Tricks


While I was learning CSS, one of the best resources that I found to learn some cool tricks was here. There is a great community on the forums as well. Most of your CSS related questions will be answerd in no time. If you’re looking at a specific problem, this is the best place to look. Most CSS related issues and problems have been tackled on the forums and in the tutorials.

Like Tutsplus, this website also has a number of Video Screencasts.

Some of the text-based tutorials that I found really helpful, tackled specific CSS use cases, such as Pop HoversRibbons & Transition. Showing some of the cool things that can now be done with CSS.

22. Webmonkey


Part of Wired magazine, Webmonkey is a great blog to follow if you’re interested in anything to do with Web Development. They cover various topics from whats currently trending in User Interface(UI) Design to what the latest web frameworks are.

They offer a number of tutorials, a cheat sheet to help you with HTML & CSS and acolour chart to help you easily get the Hex code of a colour.

23. HTML5 Rocks


HTML5 is supposed to change everything in Web Development. Modern browsers have started to support most of the HTML5 web standards that W3C has finalised. With HTML5 browser based apps are finally able to compete with Native apps in terms of functionality and also User Interface and User Experience.

The best place to learn everything about HTML5 besides the W3C portal is HTML5 Rocks. There are a number of great blog posts that highlight some of the best features and functionality that are found in HTML5, and also show you how to implement them in the right way.


Not even the best programmer in the world will know about every obscure function or class. With practice you will get better at remembering them, but when starting out you need to have access to some good reference documents. Below I’ll list the ones that I think are great when starting out.

24.  Dash (Covering 148 different languages and API Docsets)

Dash  I discovered this only recently and can’t image going back to using web-based reference documents. Developed by Kapeli, this is an indispensable tool with support for 148 different API Docsets. You can download the ones that you require. You also have the ability to integrate it with a number of different IDEs(integrated development environment) such as Sublime Text EditorCoda and many more. Besides being a great reference tool, it also comes packed with a Code snipper manager, allowing you to easily store snippets of code that can be tagged and easily re-used in multiple projects. The free version for this app

25. iOS Developer Center


When it comes to developing apps for the iPhone, there is no where better to start the Apple’s own Developer center. This is where you will get the latest updates for any changes that apple has made to their API documentation. Its a good idea to register yourself as a developer  as you’ll get access to the discussion forums. The forums are a great place to ask questions about a specific issue you are having. Once you’re ready to distribute your app, you will have to join the iOS developer program. You will pay $99/year to join this program, and this is the only way you will be able to publish your app to the App Store.

The same goes for developing apps for OSX, you can join the Mac developer program for $99/year. You can access most of the other resources without having to pay anything.

26. Android Developer Center


Just like with iOS, when it comes to Android, the best place to start is the Android Developer center. Google has built this place to help out Android developers in any way possible. You can learn all about the right style and design patterns to use in the design section.

In the develop section you can go through the training to help you get started with the Android SDK. Once you have a good idea about what you are doing, you can check outreference when you’re not sure about something, or the API guide to help you connect your app with different Google services.

Finally you can check out the distribute section when you’re ready to publish your app.

27. w3schools (HTML, CSS, JavaScript, SQL, PHP, JQuery, ASP.NET)

w3SchoolsThis is where I started when it came to looking up anything to do with CSS or JavaScript. The great thing about w3schools is that it shows you browser support and also gives you a little example of how a certain property or function should be used. The browser based text editor allows you to play around with the example code and run any changes that you need to make; they call them ‘Try it Yourself’ examples. The focus is mainly towards web-based languages, so this would be a great place to start if you are looking to develop a browser-based application.

Online Books

28. Learn Code the Hard Way


If you still prefer learning by reading a book, then this is where you need to start. Written by Zed. A Shaw, who started with the ‘Learn Python the Hard Way‘ book. They are great for beginners and advanced users alike. The books themselves are free as long you view the online versions.

The books are structured like a course and you are advised to follow them and practice coding for 2 hours every day. The author has also developed a number of webcasts that can help you out as well.

He has also written books on RubyCRegexSQL & Command Line. Each of them structured in a similar way to the Python book.

29. Eloquent JavaScript


This is a great book for beginners to pick up to learn more about JavaScript or programming in general. Written by Marijn Haverbeke, the book starts from the basics and quickly get into the advanced topics.

Even if you have never written a computer program before, this is a great book to go through. You can try out the programs that the author has written in the books, which should also help you understand the basic concepts of a programming language. The HTML version of the book allows you to pull up a console at the bottom of the page (If you are using a modern browser). Allowing you to run a program and get a result straight away. To start learning, you will not need anything except for a modern browser.

30. Wikibooks


There are a number of relevant books listed on this page that you can use for free. From basic ones all the way to some of the advanced books. There are books on almost every subject in Computer Engineering. You can download the books in a printable or PDF format.

I recommend checking out the books on C Programming and Algorithms.

Great place for discussion

31. stackoverflow


This is the best place to ask questions about computer engineering. If you run into an issue or a problem, you can paste your code into a question and there is a great community of developers that will try and help you out. Best thing to do before asking a question is to try and see if someone has faced the same problem before. In most cases you will find the solution to your problem just by searching through questions that have been asked in the past. Some times you might have to ask a question, and if thats the case, as long as you follow the rules and have a detailed question, you will get an answer.


I hope you found this guide helpful. In this day and age, there are so many free resources to help you learn how to code, all it takes is the right mindset and habits to get started. Once you’ve picked the right language to focus on, its all about practice and trying to build something with what you have learned.

Learning Lists

Five Brilliant Resources to Learn Code by Doing

I’ve always been a kinetic learner. It’s something that comes naturally to me: I learn by doing, and making enough errors so that I can pick myself up and learn how to overcome in the future. It’s an attitude that lends itself to entrepreneurship.

For everybody here, here are five ways to learn code interactively—learning by doing rather than staring blankly at an endless array of pages.


Codingbat gives you a simple array of interactive problems so that you can apply your basic coding logic into action. It also offers a login feature so you can record your achievements. Codingbat offers nice warm-up problems that even beginners can get comfortable with to learn code, and they’re a great way to start executing code rather than just reading about it.

A godsend for me. features lessons in several languages (don’t be deceived by the name, Java, Javascript, PHP, and C are included as well) where you can read what you are supposed to do, and then work to put it into motion with interactive code modules placed within the text. You can learn code by playing around with different case studies.

The official site of the Python community not only features tons of useful documentation on the Python language and an introduction to the community, but also an interactive shell you can activate by clicking on the yellow button on the screen. Featuring PythonAnywhere, it allows you to play around with Python as you’re reading about it.


KhanAcademy is always a fun place to learn about a variety of subjects through gamification, but its coding module deserves special plaudits. It’s especially useful for children who want to have more visual feedback when they learn code, rather than the simple feel-good rush of not having any errors pop up in the module.


What is a list of coding resources without it? I learnt the foundations of my web knowledge there, and you can learn code there too. Book yourself some time at CodeAcademy: it will be time well-spent.

Learning coding shouldn’t have to be about poring over page after page of a book. One of the coolest things about building things in the digital sphere is that there is an instant feedback loop: you can literally see what you are building. These resources will ensure that you’ll be able to experience that loop while you’re learning to code.

For more resources, follow me on Twitter, and sign up for the mailing list.