Help me build the "Intro to Python Development" course!

Happy New Year!

2019 is going to be an exciting year for Linux Academy and we're getting started with it today :) One of the courses that I'm going to be working on for this next quarter is going to be Intro to Python Development and I'd really like to get your input on what should go into the course. This course is going to be built for someone that is completely new to programming, so keep that in mind while spitballing ideas.

I've got a few goals for the course:

  1. Teach the fundamentals so that they stick. If you've taken any of my courses then you know that I love to reference documentation and experiment with code to learn how/why things are happening. I think this helps solidify concepts.
  2. Start project-based learning as soon as we can. The biggest hurdle with learning something new is having a meaningful way to apply it right away. Adults don't retain what they're being taught unless it is almost immediately useful.
  3. Lay the groundwork for more in-depth Python related courses. No single course can teach someone everything that they need to know about developing with a programming language (especially not Python), so this course needs to lay a solid foundation so that you can then go deep into using Python for web development, scripting, data science, or automation in a different course.

Here's a rough outline of what I'd like to tackle:

  1. Programming Language Basics (built-ins, syntax, and functions).
  2. Working with the Standard Library.
  3. Working with Third-Party Libraries.
  4. Introducing Object-Oriented Programming. (OO is a huge topic and I won't dive into design patterns)

Example Projects:

  • Writing Scripts
  • Creating a CLI
  • Building a Simple Web Application (probably using Flask)

I don't know about you, but I'm already excited for 2019. Let me know what you think of the plan for this course!

  • post-author-pic
    Willian B
    01-03-2019

    Hello Keith!

    I think your proposal looks very promising! 

    One the examples I think you should explore is using all Python built-ins to get data and transform, for example using urllib/httplib modules and along with json module transform this data into something that sysadmins would use it.

    Another good example is exploring the sqllite3 library to save/load data would be awesome.

    And I think using Flask as a web framework would fit like a glove, as it doesn't have so much dependencies, you have to code most of the things from scratch and I would recommend it if you could make an example that could be deployed on Google App Engine or AWS Beanstalk (I've done this in the past and it was great). 

  • post-author-pic
    George D
    01-03-2019

    Thanks for the post. I am looking forward the same course as well... 

  • post-author-pic
    Jesse S
    01-05-2019

    Glad to see that you're working on this, Keith. I was just digging through course offerings to see if any Python courses were available. Just finished up my RHCE today and have Ansible and Python next on my to-learn list.

  • post-author-pic
    Raghu D
    01-05-2019

    I like "Adults don't retain what they're being taught unless it is almost immediately useful.". Course content looks decent. If you could provide web or books references, it would be more helpful. I wish you all the best for course prep !.


  • post-author-pic
    Siddhartha P
    01-05-2019

    Gr8 news ,  I am waiting and excited to read this , Pls do some corelation to this course and aws gcp reference if possible 

  • post-author-pic
    Amit Kumar P
    01-06-2019

    Nice one Keith. Try adding some lessons on IDE. Something in lines of pycharm.  It will not be a bad idea to  include  a real-time project at the end of the course.

  • post-author-pic
    Thulasiraman V
    01-07-2019

    Great news. Python is the one, I am trying to learn many times and failed every time. However I didn't GIVE UP. Let me try again (Probably with your course)

  • post-author-pic
    Brian H
    01-10-2019

    I've been debating over this exact subject and I think it's crucial to have exercises woven in more often instead of just at the end of each section. Going through 2.7 it seems like you get a lot of information as a beginner before you try to apply it. Can be a bit overwhelming. 

  • post-author-pic
    Ben G
    01-11-2019

    I recommend little labs after every topic where people are actually typing python.  Reading/listening and answering questions is the begining of training, but when the trainee has to retype it or do it, the information sticks way better

  • post-author-pic
    Siddhartha P
    01-16-2019

    HI whats the expected release date for this course... we r waiting... thanks 

  • post-author-pic
    Clyde M
    01-16-2019

    pdb is a must. Amazing that there are Python programmers that have never used it.

  • post-author-pic
    Keith T
    01-16-2019

      @benthaman  and   @bharrison  there's not currently a good way for me to sprinkle labs into the flow of the syllabus (technical limitation), but it should eventually be doable. This is a great idea and I agree that the exercises being grouped does make it a little harder to learn in our existing Python courses.


      @phatakaws  I'm currently working on the course and it's slated to be released in April in our next big release cycle. Occasionally, things do get released early though, so you never know.

     @clydem great idea! I hadn't considered putting in anything about pdb, but exposing people to breakpoint debugging wouldn't be hard and will likely blow people's minds if they haven't used one before.

  • post-author-pic
    Raghunandan S
    01-17-2019

    So the project I have in my mind that can help do all the above is below . 

    Consider :

    You have 3-4 linux servers + 2 windows servers. Considering you're a admin . 


    1) Build a interface that helps you keep monitoring the healths of the machines (Just numbers no need of graph)

    2) Have quick Health script runs on the machine (Single click run a disk space clean up in the backend on the linux machine required)

    3) Click a button and restart the service : (IN the back end invokes the linux command and does the restart )

    4) Have a autho page for the above admin page that is getting built : Hence you can conver the back end DB part. 


    So by doing the above you would have covered python , Flask and also a project that can be used widely and help Devops , Dev and Admin etc. 

    What do you think ?? 

  • post-author-pic
    Keith T
    01-17-2019

     @ab11337 That project sounds very interesting, but would likely be a little too daunting to fit into the lab. It might be something that I can work into the lecture portion though since we can build up over time.

  • post-author-pic
    Arshdeep T
    01-18-2019

    Maybe write a script to monitor a server and notify on slack when something goes wrong. This can be extended to a simple chat bot that can restart services.

  • post-author-pic
    Devang S
    01-19-2019

    > Deploying the Flask app on AWS/ Docker

    > Create a service using API Gateway, Lambda(Python) and RDS/DynamoDb/S3.
    >Create an app with Python and Rekognition/Polly/Transcribe/Translate
    >Scripts to create/clear off entire infrastructure

  • post-author-pic
    Kuntal P
    01-19-2019

    > Script to read text data (csv file) and do something useful. E.g. list of IP addresses and test which is online / offline and output a report
    > script to connect to database server and execute a CREATE, SELECT and INSERT statements
    > How to decide when to use which library or when if using a library is necessary
    > send email notification (with / without attachments), generate basic text / HTML report

  • post-author-pic
    Sattam J
    01-19-2019

    I think some automation examples (like those in "automate the boring stuff" book) would be nice addition.

  • post-author-pic
    Arman K
    01-23-2019

    If the course would cover implementing some SDKs, it'd be great. May be a small example of using AWS/Azure/GCP SDk for python. Is there any chance that we can get Basic Go course as well?

  • post-author-pic
    Sriram V
    01-25-2019

    The course should explain some context like:

    1) the various application areas for Python 
    2) the space for Python; i.e., how it is different from heavy-duty programming languages like C++ or Java; and other scripting languages (like PERL).  why we have different scripting languages (like PERL).

    Understanding the context makes learning that much more purposeful. 

    Also, a lot of exercises at the end of each section.

  • post-author-pic
    Cally G
    01-25-2019

    Totally agree with Arman.  I appreciate if you can include some examples with boto3 SDK :-)

Looking For Team Training?

Learn More