what schools should be teaching it students

Post on 17-Oct-2014

2.432 Views

Category:

Education

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

What schools should be teaching IT students.

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