While learning to program I surfed the internet a lot and found many resources. I’ll put up a list of resources I found. These are things that I found useful or heard good things about.
For Beginners learning to code
Motivation, advice and how-to
- If you are trying to get someone to start with programming(including yourself) then you should try out Scratch The Cat from MIT. This is THE best introduction to programming that I have seen so far.
- Have a look at this video. A really great introduction to programming. Great for motivation.
- Read this page about how to teach yourself programming
Websites that you can start with
- Codecademy – Good for beginners. Use with stackoverflow and other resources for solving problems encountered when using it.
- Stackoverflow and related tech sites are really nice for asking specific questions. Be sure to check the tags’ info pages of the language that you are learning. They contain a lot of information and resources generally. e.g. The info page of Python and C.
- LearnPythonTheHardWay is nice. Starting to learn with Python is easy. Be sure to take their Command Line Course when they suggest it. It really helps to know how to use it.
- Ideone can help you if you don’t have a compiler installed. Just paste the code in it, choose the programming language and run it.
- Some useful computer skills that can be learned in a day
- Websites and books for learning programming
- 10 Puzzle websites to sharpen programming skills
Courses to learn programming
- Here is a link for Harvard’s CS50 course on edx. Really great introduction to computer science and programming. It changed my perspective about programming.
- For learning algorithms here is MIT’s OCW link. It can help in the long run but should be taken if you know a programming language. This book is the internationally used as the best textbook for introduction to algorithms. Find it and read it with the MIT course.
- Other related lists
For game programming
- Unity3D is a game engine with many tutorials, and resources for making 3D (as well as 2D) game programming much easier than pure programming. Here is a very big list of tutorials and a big list of resources.
- This is a list of game development tutorials. There are full-fledged tutorials for making games.
For practicing programming
- I found codechef easiest to start with. A lot of programming languages can be practiced and if you are having trouble then you can use their forum.
- Project Euler can also be very nice.
- There are many other websites also. Here are some lists. Some of the websites might be common in both.
For learning Python
- Python 2 Documentation has been helpful. The tutorial helped me get started. There is a similar one for Python 3 also.
- Codecademy’s Python track was helpful. It was simple and is easier to follow then official tutorial. But you will need to consult other material also.
- LearnPythonTheHardWay is an excellent resource for learning Python.
- Here are some Python performance Tips and how to style your Python code
- For discussing anything related to Python the google group comp.lang.Python is really good. It is actually a mailing list. If you don’t know what that is just ignore that it is some list and use it via google groups.
- These are some other lists of resources that can help:
For learning C/C++
- This article is a comprehensive introduction to C
- cplusplus is a good reference for C/C++ library with easy to follow examples.
- If you are looking for a book then this is a comprehensive list for all levels of C++
- I would recommend going through learncpp to get an introduction to C++
For Learning Java
- For learning about Design Patterns I found this series of lessons on tutorialspoint useful. In cases where their explanation wasn’t enough I found this to be useful. This has a lot of links for examples of design patterns.
- If you need to search for reference of Java classes then bookmark this for JavaSE API and this for JavaEE API
- These tutorials are very helpful for learning Java. The trails covering the basics need to be followed in sequence for the best learning.
For learning Haskell
- Start with Try Haskell to get a feel of Haskell’s syntax. Then start with Learn You a Haskell chapters
For learning Regular Expressions (Regex)
- Stackoverflow’s Regular expression reference is a good place to start. Remember you need to try examples when doing all this. Copy pasting regex is not learning it.
- This library is good for generating Strings which match given regular expressions.
- A huge list of project ideas