With this module, you'll learn a single programming language inside and out and polyglot techniques that enable you to learn other languages rapidly.
With this topic, you'll learn about the landscape of programming languages, their common features, and how to recognize them regardless of syntax.
- List the types of programming languages
- List the common features of programming languages
- Describe the properties of a functional language
- Describe the properties of an object-oriented language
- Explain why you might choose to use a particular language on a project
- 4 Programming Paradigms In 40 Minutes
Video
- Classifying Programming Languages
Resource
- Different Types of Programming Languages
Video
- Programming Languages in 100 Seconds
Video Series
With this topic, you'll learn how to gain fluency in a programming language and develop a deep understanding of its functionality and idiosyncrasies.
- Explain how you might use documentation to learn more about a language
- List some features you find strange about a language
- Theorize how you might learn a language fluently
- Awesome Katas
Resource
- CodeWars
Resource
- Katas, how it all started
Article
- Execute Program
Course ($)
With this topic, you'll learn how to adapt your understanding of one programming language to gain proficiency in another.
- List some methods to learn new programming languages quickly
- Compare when to use koans or katas
- Theorize how you might learn a new language quickly
- Edgecase Ruby Koans
Resource
- Essential Programming Books
Resource
- Exercism Language Learning
Resource
- Koans.in
Resource
- The Codeless Code
Resource
- Path to Enlightenment
- Create Tic Tac Toe in three different programming languages
With this topic, you'll learn about package management and the ecosystem of third-party dependencies for a programming language.
- Describe a dependency and its purpose
- Explain how you might evaluate whether or not to use a dependency
- Theorize how to maintain a project with a third-party dependency
- Cocoapods
Tool
- Factors to consider when adding third party dependencies
Article
- Maven
Tool
- NPM
Tool
- Snyk
Tool
With this topic, you'll learn how to solve problems with other software engineers (and have fun while doing it) using pair programming techniques.
- List some benefits when pair programming
- Describe pair programming and mob programming techniques
- Explain why you might collaborate with another software engineer
- Compare solo programming with collaborative programming