Python has become an indispensable tool to embedded software developers. Whether Python is being used to provide a GUI to control a system, acquire data, or even to write embedded software (think MicroPython), chances are Python has a place in your development process. This blog will reveal several resources you can use to learn Python.
|(Image Source: Amazon)|
1 – Purchase A Good Python Book
This might seem a bit old-fashioned, but when I’m learning a programming language or a new concept, I like to start with a book. Do a quick search on Amazon for Python books and you will find that there are more than 6,000 books to choose from. I obviously have not reviewed them all, but there are several that I’ve found
to be quite helpful.
- Learning Python
- Python Crash Course: A Hands-On, Project-Based Introduction to Programming
- Programming Python
One of my favorites is Mark Lutz’ Learning Python, which is almost 1,700 pages long and covers every topic that someone new to Python needs to learn. I’ll be honest, I have not read it cover to cover. But when I’m working with Python, I often keep this book close so I can review critical concepts.
2 – Online Python Tutorials
I’ve always found that looking to multiple, experienced resources can help bring new insights into how to use a language or technique. One online resource that I have found to be extremely helpful is W3Schools, which provides several tutorials that are great for developers just getting started with Python. The tutorials are grouped into several categories:
- File Handling
- Python Reference
Even if you are already an experienced Python developer, you may find the references from the site to be worthwhile. If W3Schools doesn’t fit your needs, a quick online search will undoubtedly provide several additional results.
3 – Reference Guides
Learning Python is one thing. But chances are, you’ll need to periodically access a language reference that doesn’t just provide the how-to’s with an example, but also provides Python wisdom such as best practices. A great online reference guide is A Hitchhikers Guide to Python. This guide is also available in print through O’Reilly, but the online document is open so developers may contribute. The guide includes useful sections such as:
- Getting Started
- Python Development Environments
- Writing Great Python Code
- Scenario Guide for Applications
- Shipping Great Python Code
- General Notes
This guide has a great wealth of knowledge that will quickly help a novice developer get up to speed.
4 – College Courses
Another great resource for developers interested in learning Python is to explore the course offerings through local universities. Programming has become so important that it is highly likely you will be able to find a course at a local community college or even a high school. A course based in a physical classroom will likely help you learn more consistently and can also reinforce and test your programming skills. I’ve seen many developers, including myself, who start to learn a technique or skill and then get caught up in project work or other activities and have to start over at square one.
5 – Your Own Ingenuity
I’ve always found that nothing forces you to learn how to use a language more than actually using it. Selecting a series of small problems that need to be solved or a larger program that then needs to be decomposed into smaller programs is a great way to learn. For example, let’s say we need a program that will receive sensor data from an embedded system over a serial interface and then log that information to a file. Looking at such a simple need results in a developer needing to learn how to:
- Receive Serial Data
- Store the Data Locally in Memory
- Possibly Process and Display that Information
- Open, Write, Read, and Close a File
- Handle Errors
There are surely plenty of other activities that would be needed in such an application. But from a high-level standpoint, the developer will be provided with direction as to what they should investigate and learn next.
Python has become an important programming language not just to embedded systems, but to general application programmers as well. If you haven’t dived in yet and learned how to write Python applications, you’ll find that these five resources will help get you up to speed as quickly as possible.
Jacob Beningo is an embedded software consultant who currently works with clients in more than a dozen countries to dramatically transform their businesses by improving product quality, cost, and time to market. He has published more than 200 articles on embedded software development techniques, is a sought-after speaker and technical trainer, and holds three degrees which include a Masters of Engineering from the University of Michigan. Feel free to contact him at [email protected], at his website www.beningo.com/, and sign-up for his monthly Embedded Bytes Newsletter.
Today's Insights. Tomorrow's Technologies.
ESC returns to Minneapolis, Oct. 31-Nov. 1, 2018, with a fresh, in-depth, two-day educational program designed specifically for the needs of today's embedded systems professionals. With four comprehensive tracks, new technical tutorials, and a host of top engineering talent on stage, you'll get the specialized training you need to create competitive embedded products. Get hands-on in the classroom and speak directly to the engineers and developers who can help you work faster, cheaper, and smarter. Click here to register today!