what schools should be teaching it students
Post on 17-Oct-2014
2.432 views
DESCRIPTION
What schools should be teaching IT students.TRANSCRIPT
![Page 2: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/2.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/3.jpg)
Tools of the trade
![Page 4: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/4.jpg)
Source control
![Page 5: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/5.jpg)
Source control
• Branching
• Merging
• Team-based
• How to write a commit message
![Page 6: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/6.jpg)
Bug tracking
![Page 7: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/7.jpg)
The compiler
![Page 8: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/8.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/9.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/10.jpg)
Make, andthe philosophy of
repeatability
![Page 11: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/11.jpg)
Lint / splint
![Page 12: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/12.jpg)
Serious editing
![Page 13: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/13.jpg)
Serious editing
• vim
• emacs
• TextMate
• Eclipse
• Not notepad for God's sake
![Page 14: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/14.jpg)
Concepts
![Page 15: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/15.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/16.jpg)
Defensive programming
![Page 17: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/17.jpg)
Maintenance
![Page 18: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/18.jpg)
The vision
![Page 19: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/19.jpg)
Actual first project
![Page 20: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/20.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/21.jpg)
Manual testingAutomated testing
![Page 22: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/22.jpg)
"Efficiency"and why it (usually)
doesn't matter
![Page 23: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/23.jpg)
Thinking business
![Page 24: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/24.jpg)
Thinking "Project"
![Page 25: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/25.jpg)
Thinking "release"
![Page 26: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/26.jpg)
Thinking deadlines
![Page 27: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/27.jpg)
A project is a set of code at a point in time.
![Page 28: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/28.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/29.jpg)
Full project lifecycle
![Page 30: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/30.jpg)
Building for the futureand
YAGNI
![Page 31: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/31.jpg)
Good enoughand
not being sloppy
![Page 32: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/32.jpg)
Soft skills
![Page 33: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/33.jpg)
Teamwork
![Page 34: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/34.jpg)
Culture
![Page 35: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/35.jpg)
You are not the smartest one.
![Page 36: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/36.jpg)
"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](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/37.jpg)
How else canthey learn?
![Page 38: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/38.jpg)
Get into open source
![Page 39: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/39.jpg)
Open source work is real work.
![Page 40: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/40.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/41.jpg)
They will NOT learn
• Thinking Business
• Thinking about deadlines
• Working with a boss
![Page 42: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/42.jpg)
Experience on the resumé
![Page 43: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/43.jpg)
Sample code for a portfolio
![Page 44: What schools should be teaching IT students](https://reader034.vdocument.in/reader034/viewer/2022052617/5441d437afaf9f62208b4792/html5/thumbnails/44.jpg)
Missing textbooks
• The Pragmatic Programmer, by Andy Hunt and Dave Thomas
• Code Complete, 2e, by Steve McConnell