Design News is part of the Informa Markets Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Jacob Beningo, Embedded Software, ESC, Embedded Systems Conference, Python, programming

5 Resources for Learning Python

Python has become an important programming language not just to embedded systems, but to general application programmers. The following tips will help get you up to speed as quickly as possible.

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.

These include:

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:

  • Fundamentals
  • File Handling
  • Databases
  • 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, at his website, and sign-up for his monthly Embedded Bytes Newsletter.

ESC, Embedded Systems ConferenceToday'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!
Hide comments


  • Allowed HTML tags: <em> <strong> <blockquote> <br> <p>

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.