Learning Programming: My unconventional recommendations of Programming Language, Tools, Resources and Strategy
Imroze Aslam Malik
Pr. Data Scientist / DS Team Lead at FiveRivers Technologies | DS/AI/ML/CV/NLP Expert | 12yrs in AI | 125+ AI projects | 125+ AI courses | 33+ industries | MS CS(AI) Georgia Tech | 10+ Awards | Kaggle Competitions Expert
"What programming language should I learn first?" and "How should I learn programming?" are very common questions asked by a lot of students and beginners who want to get into software development and Computer Science.?
My opinion and recommendation regarding that is a little unconventional. It's how I would begin programming if I could go back in time. I didn't start with them but they were very helpful during my journey of becoming a good programmer.??
Often Python is recommended as the first language due to being easy and sometimes due to being used for AI and Data Science. It's a decent choice but still I recommend something else.
My top recommendation for learning programming is through a tool named Processing, which uses Java Programming, but adds some simplifications and functionality that makes it fun and simple. Processing makes it very easy to create programs with graphics and interactivity, like games and simulations e.g. you can draw shapes, text and images on given locations on screen through one line of code and define what happens on mouse clicks and key presses. You can learn more about Processing and projects developed in it here:
Why Processing-Java?
Following are my five reasons for having this opinion:
Tips for learning programming
Following are my five tips related to learning programming:
Learning Resources for Processing-Java
Following are some learning resources for learning Processing-Java:
You can watch TheCodingTrain playlists for Programming with Processing, starting from this one?
You can also check official Processing tutorials on its website
To learn more about Java syntax, check these tutorials
You can check Processing documentation here:
For learning Processing you can use following book:
You can also use this book for learning Java in depth and using as reference:
For learning Data Structures & Algorithms in Java you can use this book:
For learning more about Algorithm design you can use following books:
You can also check this book for programming problems and interview preparation.
领英推荐
Other options for learning programming
There are a couple of alternatives that I also recommend, if you don’t want to use Processing-Java.
P5.JS
Following are some resources for learning it:
You can learn p5.js, which is like a JavaScript version of Processing. JavaScript is the most popular programming language nowadays, and very common in web development. P5.js allows using JavaScript code in a simple way with Processing’s easy graphical visualizations, without getting into advanced web development frameworks. It can be nice if you want to pursue web development later after becoming a good programmer.
For learning p5.js, you can check Daniel Shiffman’s TheCodingTrain’s lessons on p5.js using his playlists on it. You can also check his other tutorial playlists. Following are the links
You can also check these other P5.js tutorials:
To learn more about JavaScript syntax, check these tutorials
You can also go through this course for making some fun stuff with P5.js involving mathematics.
Python
Python is also nice if you want to learn an easy language quickly or want to get into AI and Data Science soon.? Following are some resources for learning it:
You can do this Python crash course specialization
If you have good programming experience in other languages and want to learn quickly then you can use "The Quick Python Book" or w3schools as reference for syntax. Make sure to practice. LearnPython allows interactive learning, running code online and practicing, which can be very useful. DataCamp Python courses also have a nice way to run code online and practice through tests.
w3schools:
LearnPython:?
DataCamp:?
You can also develop games and visual stuff in Python using the PyGame library, once you have good familiarity with Python.
I’m also developing a library which acts as a wrapper for PyGame and allows easily creating graphical programs in Python using code structure very similar to Processing. You can check that here:
Processing also has a Python mode but it has some limitations. It can also be used for learning programming and Python fundamentals with graphical programs. You can install that mode and check its examples.
Software Engineer | Game Developer | CUI Grad 25'
2 年Amazing! You covered the whole thing in one article. It was worth reading. Although I learned java, Javafx, swing but didn't know about Processing. Quite helpful...