what schools should be teaching it students
Post on 17-Oct-2014
2.432 Views
Preview:
DESCRIPTION
TRANSCRIPT
What schools should be teaching IT students
Andy Lester, andy@theworkinggeek.comhttp://theworkinggeek.com
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
Tools of the trade
Source control
Source control
• Branching
• Merging
• Team-based
• How to write a commit message
Bug tracking
The compiler
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
The compiler
• Perl: use strict; use warnings;
• PHP: set_error_reporting( E_ALL );
• gcc: -Wall -Wextra compiler flags
Make, andthe philosophy of
repeatability
Lint / splint
Serious editing
Serious editing
• vim
• emacs
• TextMate
• Eclipse
• Not notepad for God's sake
Concepts
DRY:Don'tRepeatYourself
"Every piece of knowledge must have a single, unambiguous, authoritative representation
within a system."
Defensive programming
Maintenance
The vision
Actual first project
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.
Manual testingAutomated testing
"Efficiency"and why it (usually)
doesn't matter
Thinking business
Thinking "Project"
Thinking "release"
Thinking deadlines
A project is a set of code at a point in time.
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.
Full project lifecycle
Building for the futureand
YAGNI
Good enoughand
not being sloppy
Soft skills
Teamwork
Culture
You are not the smartest one.
"If we don't do it my way, we might as well
not do it at all."
How else canthey learn?
Get into open source
Open source work is real work.
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
They will NOT learn
• Thinking Business
• Thinking about deadlines
• Working with a boss
Experience on the resumé
Sample code for a portfolio
Missing textbooks
• The Pragmatic Programmer, by Andy Hunt and Dave Thomas
• Code Complete, 2e, by Steve McConnell
andy@theworkinggeek.com
http://theworkinggeek.com
top related