1 / 19

What Makes a Professional Programmer?

What Makes a Professional Programmer?. Adair Dingle CSSE Dept Seattle University dingle@seattleu.edu. Themes. Common Learning Obstacles DOCUMENTATION Bounds Memory Management Consistency in Design Personal Characteristics Successful Training. Classic Curriculum.

ccabral
Download Presentation

What Makes a Professional Programmer?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. What Makes a Professional Programmer? Adair Dingle CSSE Dept Seattle University dingle@seattleu.edu

  2. Themes • Common Learning Obstacles • DOCUMENTATION • Bounds • Memory Management • Consistency in Design • Personal Characteristics • Successful Training

  3. Classic Curriculum • Introduction to Programming • Data Structures • Algorithms • Computer Architecture • Operating Systems • Automata • Programming Languages

  4. Common Curriculum • Introduction to Programming • ( Data Structures ) • Algorithms • ( Computer Architecture ) • Database • Software Design • Software Engineering

  5. Overflow x++; myClassStatic++; (lo + hi)/2; // binary search lo + (hi-lo)/2; Array[index++]; Array[++index]; Array[++index]++;

  6. Binding Base myObject; Base* basePtr; basePtr = GetObject(); basePtr->runTbound(); myObject.runTbound(); basePtr->compileTbound();

  7. Conceptual Overlap:Binding & Accessibility Base* basePtr = GetObject(); basePtr->vfunc(); // vfunc public in Base // vfunc private in Derived // behavior understood // IF process understood // explain vtab

  8. Memory Management • Low-level perspective • “Every new has a matching delete” • Issue of ownership neglected • Aliases!! • “MM cannot be done correctly so we need to use a garbage collector” (Java) • “Garbage collection solves all problems”

  9. Ownership Transfer //assumption constructor myClass(yourClass*& s) { myHandle = s; s = 0; }

  10. Ownership Transfer // caller must assume responsibility MyClass* localFn(MyClass* ptr) { MyClass* heapPtr = new MyClass; … ptr = heapPtr; … return ptr; }

  11. Ownership Transfer // indirect handle obscures error MyClass* localFn(MyClass* ptr) { MyClass localObject; … ptr = &localObject; … return ptr; }

  12. Aliases int& MyClass::subvert() { return privateHandle; } int& alias = array[10]; int DB[10]; int* ptr = &DB[9]; ptr++;

  13. class Fixed: public Base {}; // handle can be zeroed out // array of Base objects // address of Base descendant class Flow { Base* handle; … };

  14. Composition versus Inheritance • Interface • Language Support • Overhead • Flexibility • Polymorphic subobject • Cardinality • Ownership • Impact on extensibility

  15. Interface/Expectations (x < y) (y > x) x.operator<(y); y.operator>(x); (x <= y) !(x > y)

  16. Personal Characteristics • Love of Learning • Constant self-education • Curious: how do things work? • Reflective: identify patterns • Analytical • Egalitarian • No silver bullet • Not wedded to single language, tool, platform

  17. Personal Characteristics • Independent • Compile, run, test: play • Seek answers online, references, samples • Collaborative • ASKs for HELP when necessary • helps others without rancor • BALANCE • Not always a lone ranger • Not a pest

  18. Plugs • Senior Capstone Project (Seattle University Project Center) • Sponsored by industry • “real” work • Literature with Analysis • C++: Memory First (Dingle & Hildebrandt, 2006) • Study beyond syntax • K-12 math (analytical skills) www.wheresTheMath.com

  19. Thanks to: • Roger Ball, manager Zilog • Robert Field, software consultant • Thomas Hildebrandt, software consultant

More Related