The only way you can learn programming is programming a lot. Teachers, books, videos etc are only tools/helpers. The only way is learning-by-doing.
Now it is time to review three things:
- why you should learn programming
- what you have learned
- what are the next to learn.
Different people have different answers. For example, Steve Jobs once said, "Everybody in this country should learn how to program a computer... because it teaches you how to think." This could be one important reason to learn programming, but there are many benefits, both for fun and for profit.
The article Why Should I Learn to Code? 17 Reasons to Learn Programming gives some good reasons that you can read it to get the full details. Following is a partial list of reasons and you can develop your reasons to learn programming:
- Programming careers have great earning potential: 2019 median annual salary is above $80,000.
- Demand remains strong for coding-related jobs, still growing.
- Coding ability gives new perspective to problem-solving.
- Learning to code offers career flexibility: digital economy becomes bigger everyday and coding is critical for any kind of business. You can choose the kind of business you like.
- Build something cool: you have a powerful tool that beyond human imagination just 50 years ago. It let you experss your creativity.
- There is an abundance for free online high quality resources.
Upon completion of this course, each student will be able to build a programmer’s mindset and master the following concepts/skill.
- You should understand the requirement/questions before you work on it.
- You should design a solution before you write code.
- You should code incrementally — always have a runnable program without syntax errors.
- You know how to think logically and carefully, one simple typo can crash the whole program, one logic error can cause big damage.
- You should follow the best practices in writing code: naming, format etc.
- Read input
- Print output with f-string
- Use if-elif-else
- Use for and while loop
- Define and call functions
- Read/write files: line by line, fields in a line, ‘with’ to free resources
- Data types, their methods and applications: String, List, Tuple, Dictionary, Set
- Commonly used functions/methods
- Random number
- Turtle graphics
- Plot digrams
- Math module
- Advanced topics (no test/exam, but nice to know)
- Exceptions and error handling
- Class and Object
- Anonymous function
Python Crash Course It is a well-organized book you can read and try all the projects in this book.
Python for Everybody:This web site has a set of free materials, lectures, book and assignments to help students learn how to program in Python. You can take this course and receive a certificate at
- Courera: Python for Everybody Specialization,
- edX: Python for Everybody
- FutureLearn: Programming for Everybody
- Grokking Algorithms: An Illustrated Guide for Programmers and Other Curious People: This is a very simple and intuitive introduction to algorithms. Strong recommend if you want a simple and easy start.
- Algorithms Illuminated: Please start from the Part1. These are the best entry-level algorithm books if you want to be a professional programmer. They are simple, clear and very useful in jobs or job-interview. They come with free online videos (mostly are the same content as the book).
- The Linux Command Line, 2nd Edition: A Complete Introduction: to become a power computer uers.
- Operating Systems: Three Easy Pieces: Free online book and cheap paper copy.