Fundamentals for Self-Taught Programmers