What schools should be teaching IT students

  • 1,644 views
Uploaded on

What schools should be teaching IT students.

What schools should be teaching IT students.

More in: Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,644
On Slideshare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
21
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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
  • 3. Tools of the trade
  • 4. Source control
  • 5. Source control • Branching • Merging • Team-based • How to write a commit message
  • 6. Bug tracking
  • 7. The compiler
  • 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
  • 10. Make, and the philosophy of repeatability
  • 11. Lint / splint
  • 12. Serious editing
  • 13. Serious editing • vim • emacs • TextMate • Eclipse • Not notepad for God's sake
  • 14. Concepts
  • 15. DRY: Don't Repeat Yourself "Every piece of knowledge must have a single, unambiguous, authoritative representation within a system."
  • 16. Defensive programming
  • 17. Maintenance
  • 18. The vision
  • 19. Actual first project
  • 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.
  • 21. Manual testing Automated testing
  • 22. "Efficiency" and why it (usually) doesn't matter
  • 23. Thinking business
  • 24. Thinking "Project"
  • 25. Thinking "release"
  • 26. Thinking deadlines
  • 27. A project is a set of code at a point in time.
  • 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.
  • 29. Full project lifecycle
  • 30. Building for the future and YAGNI
  • 31. Good enough and not being sloppy
  • 32. Soft skills
  • 33. Teamwork
  • 34. Culture
  • 35. You are not the smartest one.
  • 36. "If we don't do it my way, we might as well not do it at all."
  • 37. How else can they learn?
  • 38. Get into open source
  • 39. Open source work is real work.
  • 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
  • 42. Experience on the resumé
  • 43. Sample code for a portfolio
  • 44. Missing textbooks • The Pragmatic Programmer, by Andy Hunt and Dave Thomas • Code Complete, 2e, by Steve McConnell
  • 45. andy@theworkinggeek.com http://theworkinggeek.com