The basics of a modern, object-oriented, statically typed programming language such as Java or C#
How to program with classes, methods, and exception handling in at least one language
Using an IDE such as IntelliJ IDEA, Android Studio, Eclipse, or Visual Studio