what schools should be teaching it students

45
What schools should be teaching IT students Andy Lester, [email protected] http://theworkinggeek.com

Post on 17-Oct-2014

2.434 views

Category:

Education


2 download

DESCRIPTION

What schools should be teaching IT students.

TRANSCRIPT

Page 1: What schools should be teaching IT students

What schools should be teaching IT students

Andy Lester, [email protected]://theworkinggeek.com

Page 2: What schools should be teaching IT students

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 [email protected]

Page 3: What schools should be teaching IT students

Tools of the trade

Page 4: What schools should be teaching IT students

Source control

Page 5: What schools should be teaching IT students

Source control

• Branching

• Merging

• Team-based

• How to write a commit message

Page 6: What schools should be teaching IT students

Bug tracking

Page 7: What schools should be teaching IT students

The compiler

Page 8: What schools should be teaching IT students

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

Page 9: What schools should be teaching IT students

The compiler

• Perl: use strict; use warnings;

• PHP: set_error_reporting( E_ALL );

• gcc: -Wall -Wextra compiler flags

Page 10: What schools should be teaching IT students

Make, andthe philosophy of

repeatability

Page 11: What schools should be teaching IT students

Lint / splint

Page 12: What schools should be teaching IT students

Serious editing

Page 13: What schools should be teaching IT students

Serious editing

• vim

• emacs

• TextMate

• Eclipse

• Not notepad for God's sake

Page 14: What schools should be teaching IT students

Concepts

Page 15: What schools should be teaching IT students

DRY:Don'tRepeatYourself

"Every piece of knowledge must have a single, unambiguous, authoritative representation

within a system."

Page 16: What schools should be teaching IT students

Defensive programming

Page 17: What schools should be teaching IT students

Maintenance

Page 18: What schools should be teaching IT students

The vision

Page 19: What schools should be teaching IT students

Actual first project

Page 20: What schools should be teaching IT students

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.

Page 21: What schools should be teaching IT students

Manual testingAutomated testing

Page 22: What schools should be teaching IT students

"Efficiency"and why it (usually)

doesn't matter

Page 23: What schools should be teaching IT students

Thinking business

Page 24: What schools should be teaching IT students

Thinking "Project"

Page 25: What schools should be teaching IT students

Thinking "release"

Page 26: What schools should be teaching IT students

Thinking deadlines

Page 27: What schools should be teaching IT students

A project is a set of code at a point in time.

Page 28: What schools should be teaching IT students

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.

Page 29: What schools should be teaching IT students

Full project lifecycle

Page 30: What schools should be teaching IT students

Building for the futureand

YAGNI

Page 31: What schools should be teaching IT students

Good enoughand

not being sloppy

Page 32: What schools should be teaching IT students

Soft skills

Page 33: What schools should be teaching IT students

Teamwork

Page 34: What schools should be teaching IT students

Culture

Page 35: What schools should be teaching IT students

You are not the smartest one.

Page 36: What schools should be teaching IT students

"If we don't do it my way, we might as well

not do it at all."

Page 37: What schools should be teaching IT students

How else canthey learn?

Page 38: What schools should be teaching IT students

Get into open source

Page 39: What schools should be teaching IT students

Open source work is real work.

Page 40: What schools should be teaching IT students

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

Page 41: What schools should be teaching IT students

They will NOT learn

• Thinking Business

• Thinking about deadlines

• Working with a boss

Page 42: What schools should be teaching IT students

Experience on the resumé

Page 43: What schools should be teaching IT students

Sample code for a portfolio

Page 44: What schools should be teaching IT students

Missing textbooks

• The Pragmatic Programmer, by Andy Hunt and Dave Thomas

• Code Complete, 2e, by Steve McConnell