A good place to learn

A good place to learn
0

#1

Hello dear campers.
A friend told me he’d had an open position in his company that is totally fit for me apart from one thing :
I need to have a decent level in Python.

This position sounds really intersting, and will be open 3 mounths for know, so I decided to some hard work to know as much python as possible before applying, but was looking for a good place to do so.

I already completed the (somehow boring) tutorial on codecademy, but was looking for something more advanced : so I was wondering if some of you could help me figure it out.

Does anyone know a good place to learn python ? Free of charge or not, as long as it is not deadly expensive. I actually looked a bit into udemy but there is so much choice i’m afraid i’d spend a lot of money for nothing.

I was also intersted in the “pro” course of codecademy, but wanted some feedback before buying it, since the free tutorials were a bit monotonous…

Thanks a lot for your help !


#2

I would recommend UDEMY courses . It is a good resource to learn about anything. The content is good and the price is also very considerable.

Before taking any course look for the ratings and review and go through some demo videos of the course.
Moreover courses are also refundable but with some conditions attached.

Good Luck.


#3

Thanks for your anwser ! As I said, I’m a bit frightened by udemy as there are a lot of “Begginer Courses”. But since python is my 3rd programming language, I feel like beginner lessons advance to slowly for me. So if you have a course to suggest, please let me know :slight_smile:


#4
  • Go through the Python tutorials on the Python website, they’re really clear.
  • Use exercism.io; do the exercises in the language you’re familiar with, then work through the Python ones, so you can compare approaches.
  • Then I was going to say read Fluent Python, which is aimed at non-beginners

#5

I’m a Python developer and I use Python a lot for backend work.

  1. Learn Python the Hard Way is a good introduction. People crap all over this book, it seems to be a love-it/hate-it thing but I recommend it. You can get through it in a week if you just crank through at and you’ll end up with a basic familiarity with most of the things you’ll need to know.
  2. After that, go through the Flask Mega Tutorial by Miguel Grinberg. This guy is awesome, his tutorials are well written and exhaustive, he follows best practices for the most part. Flask is a good starting point because you can get a feel for web development with Python really easily, but it doesn’t have all of the “magic” that Django or other similar frameworks have. When you’re learning, I feel it’s important to avoid “magical” tools and frameworks that obscure what Python is really doing.
  3. While working through the Flask stuff, take a few minutes every day to read through the Flask source code. It’s an extremely well-written and organized codebase and a good example of “Pythonic” code - Python written in the accepted style. Also, this code is pretty straightforward and easy to understand.

You can get through all of this in month or two if you’re pretty well disciplined. Try not to get caught up in chasing your own tail, sampling a bunch of different courses, etc.

Good luck!


#6

I think it would also be good to have an idea of what kind of work this position does, because once you get over the initial beginner Python syntax, you’ll want to be more focused on learning concepts and tools that would actually help you be a better candidate for the job. It might go without saying, but always good to remember! Good luck and have fun!


#7

My recommendation would be dependent based on what you already know. If you’re not currently familiar with OOP (Object-Oriented Programming), that’s much more fundamental and important to learn before delving too much into Python, as it’s one of the major languages that follows the OOP paradigm. Udacity provides a free course on this with respect to Python: https://www.udacity.com/course/programming-foundations-with-python--ud036

After learning OOP principles, you should also learn data structures & algorithms, if you’re not familiar with those. This free Coursera specialization is a very basic intro to data structures: https://www.coursera.org/learn/python

If you already have basic knowledge of data structures though, and want to get into something more advanced and comprehensive, this is one of the best resources through which you can learn all of the data structure and algorithm-related topics that you’ll need to know for any kind of software engineering position (not just web development): http://interactivepython.org/courselib/static/pythonds/index.html

I recommend doing the previously-mentioned resources first, because you should learn the higher-level concepts first, before going into Python proper. Once you learn the concepts that apply to every language, and especially every object-oriented language, it’ll accelerate your learning of Python.

I usually don’t recommend MOOCs, especially the ones on Udemy, because they’re not very fast-paced, and it can be a major time investment to get through them. I’m much more inclined to recommend printed or e-books, because it’s possible to get through a book much faster than a MOOC, and the average book is much more comprehensive than the best MOOC. That said, once you learn the high-level concepts (OOP and data structures/algorithms), these are what I’d recommend:

MOOC route: Jose Portilla’s Complete Python Bootcamp on Udemy if you have to go this route (I’ve done part of this course and he’s definitely one of the better instructors on Udemy—the only reason I haven’t done the whole course is because I haven’t focused any time on Python in recent years)

Book route: I recommend doing these in order, based on your level of knowledge

  1. Think Python (relative beginner level) (free): http://greenteapress.com/thinkpython/thinkpython.pdf

This book covers all the Python syntax and data structures that every Python programmer should know, and how to use them. If there’s only book that you do, make it this one—it’s not too long and covers only the most essential Python concepts that you should know.

  1. The Quick Python Book (intermediate) ($25): https://www.amazon.com/dp/193518220X/

Some of this book will be review of material in the prior book, but it goes into more depth and is a natural progression to level up.

  1. Python Crash Course (intermediate) ($27): https://www.amazon.com/Python-Crash-Course-Hands-Project-Based/dp/1593276036/

You can skip (or skim) Part 1 of this book because it’ll be re-hashing the material in the previous two books. At this point you should be coding in Python as much as possible, and this book provides a few projects that will help out in that aspect—the 3rd project is a web application that uses Django, which will be using an obselete version now, but may still be useful regardless.

  1. Fluent Python ($36) and Effective Python ($14) (both advanced): https://www.amazon.com/dp/1491946008/ and https://www.amazon.com/dp/0134034287/

Once you’ve been coding in Python for a while (for at least 6 months, but more realistically a year), it’ll be time to start mastering Python and learning the advanced concepts that are part of the language. Both of these books really get into the deep stuff that you should learn once you’re a professional Python developer.

One thing you should keep in mind is that while it is possible to use Python for web development (with Flask or Django), most jobs using Python won’t be in web development, but rather will be in some form of AI (Artificial Intelligence), ML (machine learning), or data science. So if your goal is to do web development, you may want to consider going the JavaScript route instead, as it’s far more prevalent for that application. But if your goal is AI, ML, or data science, then yeah you should probably get further into Python since that would make more sense.


#8

@astv99
Thank you for posting Python Crash Course because I read the book and it is amazing since it teaches you basic concepts and helps you apply it right away to your projects.


#9

Udemy really is an amazing place to look. I’d also ask what frameworks the job might use so you can learn them, such as Pandas or NumPy.


#10

Which course on Udemy is the best?


#11

I sort of answered that in my previous post.


#12

Jose Portilla you say? 6months to 1 year to be intermediate? Too long no?


#13

Yes that’s the one, and 6 months to 1 year is how long I’d expect most people to take to become proficient enough with Python before taking on a book like Fluent Python or Effective Python. It’d be different for some people, of course, depending on experience and background in programming. Those are both pretty advanced books, and require extensive experience with Python to even begin to understand them.


#14

I see there is a ton of basic stuff in the curriculum. Would you still advice it to someone like me who’s already into programming ? I mean I found the course on codecademy really boring, and I’m kind of afraid i’d spend 10$ to learn stuff I already know.


#15

Are you referring to Jose Portilla’s Python course on Udemy? If that course is too basic for you, I’d suggest skipping Udemy entirely, and going through the books that I listed above. Or if you prefer online courses, both Lynda and Pluralsight have a lot of intermediate-level courses. If you’re in the US, you might be able to get free access to Lynda through your local public library. For Pluralsight, Microsoft’s Visual Studio Dev Essentials offers a 3-month trial.


#17

I would also recommend Learn Python the Hard Way.

Codeacademy has a decent introduction

Corey Schafer and Sentdex on youtube have amazing resources. Sentdex has some great tutorial series that would really help if you are motivated by projects (for example a tutorial to building an AI for Starcraft II)

I can also vouch for Udemy courses, especially Tim Buchanan’s series. Find it here!!


#18

Your link is now