This document outlines essential skills and concepts that IT students should be taught, including source control, bug tracking, using compilers properly, automation testing, defensive programming, and soft skills like teamwork and open source contribution. It emphasizes practical skills like maintaining repeatable processes with makefiles and serious code editing tools. Students should learn core development practices like Don't Repeat Yourself (DRY) and thinking about full project and business needs rather than just individual assignments.
1. What schools should
be teaching IT students
Andy Lester, andy@theworkinggeek.com
http://theworkinggeek.com
2. Andy Lester
• 23 years in software development and
management
• Author, Land The Tech Job You Love
• Many friends made sure their pet peeves
were in here. We thank you for listening.
• I welcome comments and follow-up at
andy@theworkinggeek.com
8. The compiler
• Turn on all warnings by default
• Warnings are good
• gcc is amazing
• 90% of what a good lint does
• Highly tuned and optimized code
9. The compiler
• Perl: use strict; use warnings;
• PHP: set_error_reporting( E_ALL );
• gcc: -Wall -Wextra compiler flags
20. How about...?
• Your assignment is code that does such-and-
such.
• It will be based on one of your classmates'
previous assignments.
• You may not disparage your classmate's
work.
28. How about...?
Your assignment is code that does such-and-
such. Your deliverables are:
• Code that will compile + build without
warnings under GCC 4.2 and GNU Make.
You must use -Wall and -Wextra.
• URL pointing to the class git repository that
I can pull down and build using setup.sh.
40. Students will learn
• How to work with difficult people
• Source control
• Dev with disparate teams
• Project lifecycle: new features, bugs, etc
• Test-driven development
• How to work with difficult people
41. They will NOT learn
• Thinking Business
• Thinking about deadlines
• Working with a boss