Python programming language: Now you can take NSA's free course for beginners

NSA releases Python course after receiving a Freedom of Information Act (FOIA) request for its training materials.
Written by Liam Tung, Contributing Writer

Developers already have numerous options from the likes of Microsoft and Google for learning how to code in the popular Python programming language. But now budding Python developers can read up on the National Security Agency's own Python training materials. 

Software engineer Christopher Swenson filed a Freedom of Information Act (FOIA) request with the NSA for access to its Python training materials and received a lightly redacted 400-page printout of the agency's COMP 3321 Python training course.

Swenson has since scanned the documents, ran OCR on the text to make it searchable, and hosted it on Digital Oceans Spaces. The material has also been uploaded to the Internet Archive.      

There doesn't look to be anything controversial in the documents, which contains course material sessions that would take between 45 and 90 minutes to complete in a class setting. The COMP 3321 course can be completed over a "full-time, two-week block" with 10 modules covered per week. 

MUST READ: Programming languages: Go, Scala and Ruby most wanted, Python and JavaScript most used

The NSA also suggests that the material could be taught at a more "leisurely pace, for instance during a weekly brown bag lunch" over several months or even over a three-day workshop. 

The course offers a quick introduction to Python, its creator Guido van Rossum, and what the language is suitable for, such as automating tasks, creating a web application or doing advanced mathematical research. It also explains why Python has become so popular among beginning developers and data scientists. 

SEE: How to build a successful developer career (free PDF)

"If you don't know any programming languages yet, Python is a good place to start. If you already know a different language, it's easy to pick Python on the side. Python isn't entirely free of frustration and confusion, but hopefully you can avoid those parts until long after you get some good use out of Python," writes the NSA.  

Students use version 4.4.0 of the Anaconda3 Python distribution and can run Python in the command line or through a Jupyter notebook from the browser. 

MUST READ: Python is eating the world: How one developer's side project became the hottest programming language on the planet

Swenson told ZDNet that it was "mostly just curiosity" that motivated him to ask the NSA about its Python training material. 
He also said the NSA had excluded some course material, but that he'll keep trying to get more from the agency.  
"The response was OK. I can't say I'm really disappointed with getting almost 400 pages of material," Swenson said.

"There were some course materials they held back in their entirety, though. I'll continue sending more FOIA requests and appeals to find out what more I can get of similar materials."

Python developer Kushal Das has pulled out some interesting details from the material. He found that the NSA has an internal Python package index, that its GitLab instance is gitlab.coi.nsa.ic.gov, and that it has a Jupyter gallery that runs over HTTPS. NSA also offers git installation instructions for CentOS, Red Hat Enterprise Linux, Ubuntu, and Windows, but not Debian. 

More on Python and programming languages

  • Programming languages: Java developers flock to Kotlin and ditch Oracle JDK for OpenJDK  
  • Looking to hire a '10x developer'? You can try, but it probably won't boost productivity  
  • Programming language popularity: Apple's Objective-C tumbles down the rankings  
  • Programming languages: Go and Python are what developers most want to learn  
  • Know Python language and up for a 'hardcore' coding test? Get in touch, says Tesla  
  • Java or C++, Full stack or Front end: The programming languages and developer jobs that pay you the most  
  • Developers love Rust programming language: Here's why  
  • Google reveals new Python programming language course: Scholarships for 2,500  
  • Microsoft boosts programming language Python's popular VS Code extension  
  • Programming language of 2019? Python beaten by trusty old C  
  • Programming language Python's popular extension for Visual Studio Code revamped  
  • Programming language Python 2.7 code is now frozen: Last release coming in April  
  • Netflix: Our Metaflow Python library for faster data science is now open source  
  • Microsoft: We're creating a new Rust-like programming language for secure coding 
  • Tech jobs: Python programming language and AWS skills demand has exploded  
  • Python programming language creator retires, saying: 'It's been an amazing ride'
  • Programming languages: How Instagram's taming a multimillion-line Python monster
  • Salesforce: Why we ditched Python for Google's Go language in Einstein Analytics  
  • Google: Take our free Kotlin programming language courses to build Android apps
  • Facebook: Microsoft's Visual Studio Code is now our default development platform
  • Microsoft: We want you to learn Python programming language for free
  • JPMorgan's Athena has 35 million lines of Python code, and won't be updated to Python 3 in time TechRepublic
  • Mozilla's radical open-source move helped rewrite rules of tech CNET
  • Editorial standards