5 Tips To Learn Python For Beginners (IMHO)
Tags: python, codenewbie
Published: 2020-10-14 15:17:58

In this post, I will go over some of the python courses that are both fun and a great learning experience. Nothing for the seasoned professionals. 

Also a disclaimer. I am getting into coding predominantly for fun and just for my personal experience. I have no education in computer sciences neither did I worked in programming professionally. 

I am sure there are many other great ways and approaches to coding, so do not take the "noob" stuff that you see here personally :) 

## Why Python?  
After realizing that I can not turn back the time and get into CS in uni, I decided to do my own research for the best language that I could quickly get into. 

After brief research Python, Java and JavaScript were appearing again and again. So the search was narrowed down. But how to choose? 

I decided to go at it pragmatically. Google, Spotify, Netflix, Uber, Dropbox, Pinterest all use Python on their backend. And if it is good for them, it is definitely good for me.

So in the next step it was time to start looking through <a href="https://costofincome.com/best-online-course-platforms/">online course platforms</a> and just start somewhere. 

##1. <a href="https://codeacademy.com">CodeAcademy</a>
Hands down the best starting course for me was CodeAcademy. Even the free version will get the real basics in your head. 

It has nice gamification elements with points and such to keep you going. And, don't want to sound too silly - it will make you feel like a programmer. 

##2. <a href="https://online-learning.harvard.edu/course/cs50-introduction-computer-science?delta=0">CS50: Introduction to Computer Science</a>
This.Is.A.Must. Let me explain. When you will be playing around with Python, sooner or later questions will pop up in your head "Why and how does it all work?" 
First of all, CS50 is incredibly entertaining and interesting. All the lectors (and David Malan in particular) are engaging and great to listen to. 

Most importantly - you will get a bit of that CS knowledge in your head. Many programmers will tell you that language is a secondary and efficient algorithmic and an objective way of thinking is primary for a good coder. 

This course will be like an awakening, it is an official Harvard course and it is free! No brainer.  

##3. Don't Do Tutorials Again and Again...
Most of the online courses that you will find cover the basics of the language. They are tailored for those that are starting so they are not really pushing the envelope fast enough.

Do not do these courses again and again. You will have the feeling that you are a pro-coder when you will be able to make a Hello World app in 19 seconds - but that does not really move you anywhere. 

Search for more challenging lessons, get on a <a href="https://costofincome.com/best-webinar-software/">webinar software</a> platform that will take your learning to the next level, or ...check the next tip.

##4. <a href="https://python.org">Python Official Tutorial</a>
Who would have thought that the most shadow is right under the candle? Python official pages have a detailed guide on...drumroll...Python.

I must admit it is quite difficult to digest and it might be a good idea to give a shot to few first chapters that cover the basics before trying to crunch through the more advanced part of the manual. 

It is all about the reason why you are trying to learn Python in the first place...

##5. Start a Project - The ultimate tip. 
The only way to really learn Python is to start using it. Choose a goal, a thing you want to automate, or anything else that comes to your mind...and try to do it. 

Get on GitHub, StackOverflow, and get going. Fail, asked questions, reply to questions of those more junior than you are, etc. That is the only way to progress. 

If you are looking for employment in IT, you will need to show your own projects. 

In case you are just learning for yourself, it is always more fun to work on something and see the result. Rather than just keep learning for the learning process itself. 

Make sure to choose a cool project. Yeah, sounds dumb but stay with me. You want a project that you can show to friends or just play with yourself. Make a simple front-end, or if you want to really tune it up, use a <a href="https://costofincome.com/landing-page-builder/">landing page builder</a>, but you will cut yourself short of some cool HTML/CSS knowledge - so make sure you know why you are doing it.

That page will be online and will send requests to the Python backend that you will do your magic on. See, already making your first steps to become a full-stack developer. 

Here are a couple of cool projects to consider:
- Content Aggregator - crawl websites, share themed content.  
- Mp3 Converter - convert video/audio to mp3
- URL Shortener - flood the web with your nickname in URL?
- Expense Tracker - online, on the go..
- Build a Chatbot Builder - you can actually sell those... 
- Speed Typing Test - gamification approach 
- Youtube Video Downloader - just a nice tool to have

The best part? You can actually make a profit from these projects of yours.  

<a href="https://www.timesofisrael.com/updated-every-minute-17-year-old-whiz-kids-coronavirus-site-used-by-millions/">Avi Schiffmann</a> created a page that scrapes info from other pages and compiles it into one of the most visited sources for COVID numbers, that updates every minute. He was offered several millions of dollars for an ad on that page, but he declines it. 

Sure, this is a very specific project that was in the right time at the right place...just saying that things are possible. 

Bonus Tip: the most important, as in everything, is to be consistent and have fun while you are solving the problems. If you like puzzles that you will be right at home - because programming is a never-ending puzzle that you improve over and over again.