
Learn Python—Fast! Python Crash Course is a fast-paced, thorough introduction to Python that will have you writing programs, solving problems, and making things that work in no time. In the first half of the book, you’ll learn about basic programming concepts, such as lists, dictionaries, classes, and loops, and practice writing clean and readable code with exercises for each topic. You’ll also learn how to make your programs interactive and how to test your code safely before adding it to a project. In the second half of the book, you’ll put your new knowledge into practice with three substantial projects: a Space Invaders–inspired arcade game, data visualizations with Python’s super-handy libraries, and a simple web app you can deploy online. As you work through Python Crash Course you’ll learn how to: *Use powerful Python libraries and tools, including matplotlib, NumPy, and Pygal *Make 2D games that respond to keypresses and mouse clicks, and that grow more difficult as the game progresses *Work with data to generate interactive visualizations *Create and customize Web apps and deploy them safely online *Deal with mistakes and errors so you can solve your own programming problems If you’ve been thinking seriously about digging into programming, Python Crash Course will get you up to speed and have you writing real programs fast. Why wait any longer? Start your engines and code! Uses Python 2 and 3
~ Yes, always do all the exercises. It's important how you do them. No copypasting. Enter all the code examples in your text editor of choice and run them if possible. Experiment liberally and don't be afraid of errors; instead, adjust the program in response to the errors. Create a directory and save all your files; don't just keep overwriting the same exercise. This is so you can go back and review if necessary.
~ If possible, always use the PDF formatted version of the book. EPUB and other formats too often don't look good and aren't formatted as the author(s) intended, and PDFs tend to be easier to follow because the page is formatted the same as the print version.
~ I use the Pomodoro technique of working intensely on the book for 25-30 minutes and then taking a short break before continuing. This tends to help me focus and retain more of the book.
Back when I was learning Python, I used two books in sequence, "Python Crash Course" by Matthes and "Think Python" by Downey. This turned out to be fortuitous, because until I started working through them I didn't know they are two completely different approaches: PCC teaches you how to program in Python and TP teaches you computer science using Python. Working through both books consecutively gave me a much better scope and understanding of the language to build on than using one book alone and stopping there.
Transitioning from a full-stack engineer to the AI field can be a fulfilling and exciting journey. To make the most of this transition, you should focus on building a strong foundation in mathematics, programming, and machine learning concepts. Here's a detailed learning plan, broken down into four stages:
Stage 1: Building a Strong Foundation
Mathematics:
Linear Algebra: "Linear Algebra and Its Applications" by Gilbert Strang
Calculus: "Calculus: Early Transcendentals" by James Stewart
Probability & Statistics: "Probability and Statistics for Engineers and Scientists" by Ronald E. Walpole, Raymond H. Myers, Sharon L. Myers, and Keying E. Ye
Optimization: "Convex Optimization" by Stephen Boyd and Lieven Vandenberghe
Programming:
Python: "Python Crash Course" by Eric Matthes
Git: "Pro Git" by Scott Chacon and Ben Straub
Machine Learning & Data Science Basics:
"Introduction to Data Science" by Laura Igual and Santi Seguí "Python Data Science Handbook" by Jake VanderPlas
Stage 2: Learning Machine Learning and Deep Learning
Online Courses:
Coursera: "Machine Learning" by Andrew Ng
Coursera: "Deep Learning Specialization" by Andrew Ng
Fast.ai: "Practical Deep Learning for Coders"
Books:
"Pattern Recognition and Machine Learning" by Christopher M. Bishop "Deep Learning" by Ian Goodfellow, Yoshua Bengio, and Aaron Courville
Stage 3: Expanding Knowledge of AI Subfields
Natural Language Processing (NLP):
"Speech and Language Processing" by Daniel Jurafsky and James H. Martin
"Natural Language Processing with Python" by Steven Bird, Ewan Klein, and Edward Loper
Computer Vision:
"Computer Vision: Algorithms and Applications" by Richard Szeliski
"Deep Learning for Computer Vision" by Adrian Rosebrock Reinforcement Learning:
"Reinforcement Learning: An Introduction" by Richard S. Sutton and Andrew G. Barto
"Deep Reinforcement Learning Hands-On" by Maxim Lapan
Stage 4: Staying Current and Gaining Practical Experience
Read research papers:
Subscribe to the arXiv mailing list in your areas of interest Regularly read papers from conferences like NeurIPS, ICML, and ACL Participate in online competitions:
Kaggle: Participate in machine learning competitions to improve your skills and build your portfolio AIcrowd: Another platform for AI competitions Contribute to open-source projects:
TensorFlow, PyTorch, or other popular AI frameworks Look for projects on GitHub related to your interests and contribute by fixing bugs, implementing new features, or improving documentation Network with AI professionals:
Attend AI conferences, workshops, and local meetups Join AI-related forums, LinkedIn groups, or online communities like Reddit's r/MachineLearning Remember that the learning plan can be adjusted based on your pace and interests. The key is to stay consistent and always be curious to learn more. Good luck on your journey into the AI field!
all i can say is something really simple:
*you need to try, and try again, and practise...regularly.
Down time at work- has had me start on Harvards CS50x and CS50p. I switched between them as i thought starting with Python would be a bit gentler. Which then led me to supplement both of these with Python Crash Course (the book) - which has been just so awesome.
I went from "ok, cool...hello world, whatever"...and "fucks sake, how do devs look at code Tand not get migraines"...to actually writing more than 5 lines of code, reading stuff on stack exchange and sort of following along.
I dont have a particular knack for any of this -i'd argue the amount of times i've tried and failed miserably at it should be enough to make me stop permanently.
But honestly - just doing it - every day, typing out every example of code in every example you read, running it over and over and over again...i'll be fucking damned if i wasnt leaps and bounds better than i was two months ago.
I distinctly remember thinking - "is programming really just always going to stack overflow and looking up the answers"....to actually at least stopping, and thinking HARD about wtf I am trying to do...slowing my mind down, and walking through words slowly...
So yeah -i'll say - for sure - I'm average as hell, and just trying every damn day has made a huge difference for me....and i've yet to scratch the surface! But comparing me with 2 months ago me, i couldnt be happier.
_____
Python Crash Course by Eric Matthes has a section dedicated to projects.
I really liked this book.
This is what taught me Python.
I knew C before.
Python Crash Course, 2nd Edition: A Hands-On, Project-Based Introduction to Programming, by Eric Matthes is my favourite for self study the basics.