Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Professional Software Development. Can it be taught?

Ivan
June 25, 2019

Professional Software Development. Can it be taught?

Ivan

June 25, 2019
Tweet

More Decks by Ivan

Other Decks in Education

Transcript

  1. 2

  2. 5 Math, binary logic, and language syntax are the small

    and easy parts. Small programs are easy to create, but it’s hard to grow and maintain them. Spec/design first Lessons learned
  3. 6

  4. 7 1995: Delphi 1996: html, (t)csh, emacs 1997: IDL, bash,

    latex 1998-2010: IDL, C/C++, bash, perl, python, php, sql, vim, svn/git 2010-2016: python 2016-now: python, ruby, js, java (+ TDD, BDD, CI/CD,…) programming experience (paid)
  5. 8

  6. 11 https://en.wikipedia.org/wiki/Apollo_Guidance_Computer AGC, 1969 ~100’000 SLOC 1400 person-years Space Shuttle,

    1981 > 1’000’000 SLOC Windows NT 3.5, 1993 > 7’500’000 SLOC Mac OS X (tiger), 2007 > 86’000’000 SLOC
  7. 13 Invest in communication and social skills (working effectively in

    teams) Invest in simple tools and pragmatic development practices How to handle complexity?
  8. 14 “ Programs must be written for people to read,

    and only incidentally for machines to execute.” — Hal Abelson
  9. 15 Proper naming (clarity beats cleverness) - use intention-revealing names

    - avoid disinformation - use pronounceable names
  10. “For an idea to go from someone’s head into the

    computer it must go through someone else’s hands” — Llewellyn Falco Working together: mobbing