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.
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 languagesProgramming 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 monsterSalesforce: 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 freeJPMorgan'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