Three Developer -abilities they DON’T Teach in College<br />Jacinto A. Limjap, Jr.<br />Microsoft MVP for C#<br />Senior A...
It’s not that they don’t teach it <br />
Maintainability<br />A measure of how easy it is to understand, modify, and extend your code<br />
Maintenance?<br />
Facts you only find out at work<br />Writing new code is the first thing you do at school, but the LAST thing you do at wo...
Facts you only find out at work<br />You WILL spend most of your time trying to understand the code some other person wrot...
Facts you only find out at work<br />“Maintenance typically consumes 40 to 80 percent of software costs” – Robert L. Glass...
Testability<br />The degree to which a system or component facilitates the establishment of test criteria and the performa...
Ask yourself<br />When there’s a bug, how easy is it to find out which part of your code to fix?<br />
Want it testable? Make it SOLID!<br />
Single Responsibility Principle<br />Your class should have one, and only one, reason to change<br />
Open Closed Principle<br />You should be able to extend a class’s behavior without modifying it<br />
Liskov Substitution Principle<br />Derived classes must be substitutable for their base classes<br />
Interface Segregation Principle<br />Make fine grained interfaces that are client specific<br />
Dependency Inversion Principle<br />Depend on abstractions, not on concretions<br />
Usability<br />The ease with which people can employ a particular tool or other human-made object in order to achieve a pa...
Steve Krug’s First Law of Usability<br />
Usable software makes people happy<br />“Good UI sells software, but it also makes people happy, because people are happy ...
Your speaker<br />Blog: http://dotnet.kapenilattex.com<br />Twitter: http://twitter.com/LaTtEX<br />Facebook: http://faceb...
Learning to Distinguish a Solution from a Problem http://www.computer.org/portal/web/buildyourcareer/fa010<br />Definition...
Upcoming SlideShare
Loading in …5
×

Three Developer Abilities They Dont Teach In College

1,205 views
1,141 views

Published on

A presentation for university students studying Computer Science about topics that are crucial at the workplace but not given as much attention at school

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,205
On SlideShare
0
From Embeds
0
Number of Embeds
147
Actions
Shares
0
Downloads
9
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Three Developer Abilities They Dont Teach In College

  1. 1. Three Developer -abilities they DON’T Teach in College<br />Jacinto A. Limjap, Jr.<br />Microsoft MVP for C#<br />Senior Application Developer for FBM e-Services<br />
  2. 2. It’s not that they don’t teach it <br />
  3. 3. Maintainability<br />A measure of how easy it is to understand, modify, and extend your code<br />
  4. 4. Maintenance?<br />
  5. 5. Facts you only find out at work<br />Writing new code is the first thing you do at school, but the LAST thing you do at work<br />
  6. 6. Facts you only find out at work<br />You WILL spend most of your time trying to understand the code some other person wrote<br />
  7. 7. Facts you only find out at work<br />“Maintenance typically consumes 40 to 80 percent of software costs” – Robert L. Glass<br />
  8. 8. Testability<br />The degree to which a system or component facilitates the establishment of test criteria and the performance of tests to find whether those criteria have been met<br />
  9. 9. Ask yourself<br />When there’s a bug, how easy is it to find out which part of your code to fix?<br />
  10. 10. Want it testable? Make it SOLID!<br />
  11. 11. Single Responsibility Principle<br />Your class should have one, and only one, reason to change<br />
  12. 12. Open Closed Principle<br />You should be able to extend a class’s behavior without modifying it<br />
  13. 13. Liskov Substitution Principle<br />Derived classes must be substitutable for their base classes<br />
  14. 14. Interface Segregation Principle<br />Make fine grained interfaces that are client specific<br />
  15. 15. Dependency Inversion Principle<br />Depend on abstractions, not on concretions<br />
  16. 16. Usability<br />The ease with which people can employ a particular tool or other human-made object in order to achieve a particular goal<br />
  17. 17.
  18. 18.
  19. 19.
  20. 20. Steve Krug’s First Law of Usability<br />
  21. 21. Usable software makes people happy<br />“Good UI sells software, but it also makes people happy, because people are happy when they accomplish the task they want to accomplish” – Joel Spolsky<br />
  22. 22. Your speaker<br />Blog: http://dotnet.kapenilattex.com<br />Twitter: http://twitter.com/LaTtEX<br />Facebook: http://facebook.com/LaTtEX<br />
  23. 23. Learning to Distinguish a Solution from a Problem http://www.computer.org/portal/web/buildyourcareer/fa010<br />Definition for testability: http://www.aptest.com/glossary.html<br />The Principles of OOD http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod<br />SOLID Development Principles – In Motivational Pictures http://www.lostechies.com/blogs/derickbailey/archive/2009/02/11/solid-development-principles-in-motivational-pictures.aspx<br />Simplicity http://stuffthathappens.com/blog/2008/03/05/simplicity/<br />2006 Krug, Steve: Don’t Make Me Think: A Common Sense Approach to Web Usability<br />User Interface Design for Programmers http://www.joelonsoftware.com/uibook/fog0000000249.html<br />References<br />

×