Best resources for beginners to start coding in Python and building apps in Flutter (2022 edition)

There’s so much going on in the world of computer science that if you’re new, it can be a bit overwhelming. Here’s a few resources to get you on your way…

Raffy Halim
6 min readJan 4, 2022
Photo by Tai Bui on Unsplash

It seems as though everything major advancement has an element of computer programming associated with it. New medical breakthrough? Probably related to AI. New app? Probably developed using Flutter. New space telescope launched? Python probably being used to analyse data.

In this rapidly shifting world, it can be hard for someone that’s not already in the field to even get started in their journey. Fortunately, I was in exactly this predicament about 6 months ago and had a friend guide me some of the way. This short article will hopefully pay the advice forward so that you can get started on your journey too. These resources will help with learning Python and Flutter specifically.

Before we begin…

For context, I’m a medical doctor involved in clinical care that has very little to do with programming on the day to day. My only experience in coding was in primary school using Logowriter to “program” the turtle to draw some paintings. I did some web development in high school and built websites for fun using HTML and Dreamweaver. CSS had only just been invented. So in essence, while I had SOME experience, I was essentially a beginner.

One thing I would suggest before starting is to understand WHY you’re doing so. For me, it was because of all the low hanging fruit in healthcare. We are required to be “on call” for emergencies in our hospital and the way these were allocated was being manually done using an Excel spreadsheet. While it didn’t take long, I wanted to see if I could cut this down to seconds.

This is all to say that before you begin, have a project in mind. While I didn’t understand this to begin with, the importance of this cannot be over stated. The world of computer science is vast and expanding. Any field like this is pretty daunting to begin with and there’s no way of “learning it all” before you begin. Having a project allows you to draw some boundaries on what you need to know and to get some early wins.

Free resources

freeCodeCamp.org — Python (and Javascript)

This is possibly one of the best free resources out there for learning Python (and also Javascript). You can pick your flavour of Python from Data science, Machine Learning or Scientific Computing and do the modules. At the end, there are projects to complete and certification that can be added to LinkedIn/Professional CV.

They also have a 4 hour YouTube course going through the basics. It doesn’t get better than this for free! Python Youtube video course— https://youtu.be/rfscVS0vtbw

Pro: totally free, very detailed, certification

Cons: not really project based learning, found I learnt at a slower pace than Udemy courses

The Net Ninja — Flutter

Want to make your own cross platform/web-app? Flutter is the language for you! I haven’t dabbled widely in this space but from what I can see, Flutter gets you up and running with the app making process in no time at all.

The Net Ninja series goes through a series of apps so that you learn the basics while following along.

Pro: FREE, project based, great for beginners

Cons: pacing is a bit varied, no certification, depends how much the UK accent bothers you

Socratica — Python (and SQL & general maths)

This one’s for those who have already started dabbling but want to get bite sized projects and tips that make the whole field a bit easier to understand. Socratica has these ~5–10min videos that does just that to explore and elaborate on a concept.

It’s also quite funny (in a nerdy kinda way). Think social media educational procrastination for nerds and you’re on the money.

Pros: short videos, good explanations, nerd humour

Cons: only makes sense after you’ve gotten started, can’t use it as a sole resource (as of the videos in early 2022)

Automate the Boring Stuff — Python

This is one of the OG textbooks/courses on Python. This tackles the core concepts in little projects which can actually be useful for day to day things like automating looking up addresses, web scraping or even programming macros etc.

The only problem I have is that it was written a while ago and some of the things are out of date.

Pros: simple to start, free/can pay to support, text based in case you don’t learn well from videos

Cons: seems out of date

Paid courses

100 days of code — Python (frequently on sale ~$17)

This is the current course I’m doing. I’m not sure if the instructor Dr Angela Yu, is also a medical doctor or not, but by and far this course was the easiest to understand and structured in a way to be challenging but not overwhelming. The great thing is that everything is doable in about an hour or so in a day and the course goes out of it’s way to make you self sufficient in looking up and finding solutions for yourself.

Pros: simply my favourite Python course, good if you have limited time in a day

Cons: can be expensive when not on sale (but totally worth the money in my opinion!), later lessons are a bit barebones/unfinished

Complete Python Bootcamp — Python (frequently on sale ~$17)

This again is a similar overall design to the course above, but since it’s simply project based rather than broken into 1 hour blocks, the projects can be a bit more complex. I have only done the beginning lessons of this one, but I think having the previous one and this one will make you a more well rounded programmer

Pros: project based, more complex projects

Cons: again, expensive when not on sale, but worth it. Explanations not as simple as other courses

Complete 2021 Flutter Bootcamp — Flutter (frequently on sale ~$25)

Another one by Angela Yu which focusses on creating mobile apps. Given how much work is going into Flutter to expand the capabilities into web apps and cross platform deployment, I wouldn’t be surprised if this becomes a core pillar programming language in the future.

The projects are fun and I found them simple enough to follow along. This was the first course I took when I re-started my journey into programming and like the other ones by her, the structure was just so good that after going through Net Ninja for a few lessons, I was glad I bit the bullet and paid for this course instead.

Pros: Quality course, well structured, project based

Cons: Expensive when not on sale, given Flutter moves so quickly may get outdated soon.

Some final thoughts

Which ever resource you start on, including Googling for info, you’ll notice that the same stuff gets taught in the basic sections over and over again with slight tweaks here and there. In the more advanced sections, I found have 2 courses to compare against was valuable to see how people tackle the same-ish problems differently.

Now, without having a project of your own, you can get stuck in course info only mode, where you know how to make the projects in the course, but haven’t thought through how that helps YOU in the real world.

Because I had an idea in my head, every module that I thought I’d use in the future stuck in my memory a whole lot more than not. Given each of these courses themselves is a beginners guide, having your own project means you can gauge an idea of when you know enough to get started. Otherwise, the sheer amount of knowledge out there is overwhelming and you’ll never start!

Which ever resource you start on, I hope this was useful and I can’t wait to see your projects!

Hi I’m Dr Raffy Halim, an anaesthetist, photographer and podcaster. If you like articles like this, you may also like my weekly newsletter, the Sunday Surprise. For more, check out my website raffyhalim.com

--

--

Raffy Halim
Raffy Halim

Written by Raffy Halim

Interested in healthcare, tech, photography and all things random...

No responses yet