Skip to content

Learning materials for self-paced introduction to basics of Python programming; for those who have no to very little experience with programming, but what to see what the fuss is all about.

License

Notifications You must be signed in to change notification settings

akaszowska/Painless-Introduction-to-Python-course

Repository files navigation

Painless Introduction to Python: a course

Hi all! Welcome to the Painless Introduction to Python, a basic course for those who have no to very little experience with programming, but what to see what the fuss is all about.

The course focuses on Python 3.5+, and relies on Jupyter Notebook. Python is one of the most popular programming languages. A programming language is any set of rules and instructions forcomputers to complete tasks and manipulate information. Different programming languages have different applications and fit different needs. Weare focusing on Python, because it is versatile, very widely used, and has a large library of functionalities as well as a huge online supportcommunity, which makes it a great first programming language to learn. Programming languages are somewhat separate from IDEs (Integrated Development Environments), which are software applications that are used for writing, editing, and debugging code.

If you've never worked with Jupyter Notebook before, there are many excellent guides online, for example here at realpython.com, or you can go straight to user documentation here.

This course is fully self-paced: there are no audio recordings or videos, no submissions, no deadlines of any kind. You can easily follow along with written explanations and code examples at your own speed. This course is also designed for beginners and assumes no previous knowledge of programming or any relevant concepts.

Course structure

The course is structured as lessons intertwined with exercises or challenges to support your learning. For complete beginners, I recommend following the files in order provided, since they build on each other. For those with some previous experience, you can skip around depending on the topics you're interested in.

Each lesson consists of a Jupyter Notebook file with code examples and explanations. For some lessons, there are additional .pdf files with extra notes, diagrams, and explanations. Some lessons come with exercises as well, and those consists of several files: Jupyter Notebook files which contain the exercise prompts, and additional Jupyter Notebook files with solutions and answers (and sometimes .pdf files with additional explanations).

Advice for learning

1. Stay motivated

Remember the wise words of Jake the Dog:

fd3d970c53aa6ae1dfdda0c2aa7c344c883bf5455bf924fdb6e3d8b1f4983385

You are trying to learn a new language, so obviously the beginnings will be bumpy. Everyone starts without knowing anything, so do not get discouraged because the beginnings are difficult.

2. Practice a little bit every day, it is much better than doing a lot once a month

Cramming is not your friend when learning a new skill. Intensive studying over a short period of time deceives you into thinking that you remember everything right away, and since it is tiring, you fall for the "no pain, no gain" fallacy: I'm in pain, therefore I am truly gaining. You are setting yourself up for long-term retention failure: you might remember the concepts now, but in couple weeks they will have disappeared from your memory. Instead, try the less painful approach: do a little bit, but regularly. Small bites of new information, repeated and practiced over time, lead to a much better long-term retention of information. And since you do not exhaust yourself in the process, you will be less frustrated and overall have a more positive attitude towards the things you're learning. Trust me, I'm a scientist!

3. Remember about ergonomics

I am a big fan of setting up a proper workstation: external monitor (or two), keyboard, and mouse. Laptops are great and portable, but they also have small screens and uncomfortable touchpads. I find that when I work, switching between multiple windows - code, notes, internet browser - is a significant distraction, and sometimes I forget what I am looking for as I search around for the correct program or app. If you can, limit those unnecessary distractions: put your notes, cheat sheets, and code side-by-side on a larger monitor, use a mouse so that you don't accidentally tap somewhere and close a window, sit up straight in a chair so that your back doesn't get too sore. It helps!

4. Use cheat sheets

You do not need to memorize every single function or parameter. Use reference sheets instead! https://www.pythoncheatsheet.org/ or https://www.datacamp.com/cheat-sheet/getting-started-with-python-cheat-sheet/ or any other reference sheet you can find or make yourself. Print it! Laminate it! Use it!

5. Get a rubber duck

Rubber duck debugging is a method where, whenever you encounter a problem with your code, you explain it line-by-line to a rubber duck (because other humans don't really want to listen to that, at least not as often as you would need them to). The simple act of explaining something in everyday words forces you to rethink the problem, and helps you find an error. So get a rubber duck, or a teddy bear, or grab your pet - anything with eyes that will look at you as you talk at them. Any time you are trying to understand something or something is not working - talk it out with them. It really works.

About

Learning materials for self-paced introduction to basics of Python programming; for those who have no to very little experience with programming, but what to see what the fuss is all about.

Topics

Resources

License

Stars

Watchers

Forks