Online Sources to Learn Programming

Online Sources to Learn Programming

I learned to program mostly myself. My major at the university was mathematics, and I didn't attend any in-person programming courses, except for the one I did when I was 13. So, what resources did I use to learn to program?

Language Docs

Back then I was coding in C, using Borland Turbo C++ 3 IDE. There was extensive documentation for C's standard library already bundled into the IDE that I was using on a daily basis. Nowadays standard library documentations are available online.

Borland Turbo C++ 3

Books

Books are still, like always, the best sources of learning. Some online books that I use every day are the following:

Pro Git

This book changed the meaning of the word "book" for me. Just pay its homepage a visit:

Screenshot from 2022-08-27 11-40-56.png

The book is available as HTML, PDF, ePub, and Mobi. So,

  • You can click through it, and even find its pages on Google (HTML, web-hosted),
  • You can print it and read it on the train (PDF, with fixed page sizes, appropriate for printing),
  • You can read It on your phone, offline (ePub, with liquid page sizes), or
  • You can read it on your Kindle device (Mobi, the Amazon format).

Offline Books

When I started to code, back in 2004, the online sources were very limited, and so was our access to the Internet. My first resources were mostly offline. I will still include them here, as pretty much everything is available online these days:

  • K&R: Brian Kernighan and Dennis Ritchie, The C Programming Language.
  • CLRS: Thomas H. Cormen, Charles E. Leiserson, Ronald Rivest, Clifford Stein, Introduction to Algorithms.
  • Michael Tischer, PC System Programming.

W3Schools

I learned PHP using W3Schools, and I learned it well enough to make money from it the next month. I just hope people won't need to learn PHP anymore.

Coursera

Coursera was the beginning of a new era. I learned Python through Coursera, and pretty much that was the only learning resource I used for Python. I also learned Scala from its creator, learned about Functional Reactive Programming, learned ML (the language, also called SML), and did a Java course in French.

Some of the courses that I would definitely recommend:

The first course is the on that I learned Python with. The second is Scala by Scala's creator; it made me fall in love with Scala. And the last one is something for (future) functional programming lovers.

LinkedIn Learning

Coursera imitates the university curriculum. That's awesome, but if you want to learn something lighter, or you don't want to pass a whole course on a topic, I would suggest LinkedIn Learning. There are even 30-minute courses on specific topics, and even book summaries and podcasts.

Some of the courses I finished on LinkedIn Learning are the following:

The first one is a Learning Path in that I learned a lot about Docker. The second one is another Learning Path, but about Scrum. The last one is a 30-minute course on Gemba Kaizen, a Japanese work methodology. This last introduced Blinkist to me.

Blinkist

Blinkist is a platform that creates summaries of books. The free plan gives you access to a new free book every day. I was listening to these books as I was going out for a walk, going to a supermarket, or going to sleep.

Final Words

This piece was the second article in a 4-er writeathon. The other articles are as follows: