Download - Seven Habits Developers
8/6/2019 Seven Habits Developers
http://slidepdf.com/reader/full/seven-habits-developers 1/17
Seven Habits of Highly* Effective
Developers * YMMVLee Chuk Munn
Staff Engineer
8/6/2019 Seven Habits Developers
http://slidepdf.com/reader/full/seven-habits-developers 2/17
8/6/2019 Seven Habits Developers
http://slidepdf.com/reader/full/seven-habits-developers 3/17
1 – Understand the Problem
• Programming is about solving problem> Focus on the problem> Programs are expression of the solution
• Can I do it?> “A man has to know his limitations” - Dirty Harry
• “The first solution syndrome”>
Resist the urge to pick the first solution or use the first API
• Research, research, research> Real data, real use cases
8/6/2019 Seven Habits Developers
http://slidepdf.com/reader/full/seven-habits-developers 4/17
8/6/2019 Seven Habits Developers
http://slidepdf.com/reader/full/seven-habits-developers 5/17
2 – Use Appropriate Tools
• Programming concepts and data structures
• Build a reservoir of design patterns> Solutions to design problems
• Books are good source but changes too fast...> Have a general idea of what is available without
necessary knowing the details
•Use a variety of tools> "If the only tool you have is a hammer, you will see every
problem as a nail." - Abraham Maslow
• Develop your own tools if nothing is appropriate> Project specific if need be
8/6/2019 Seven Habits Developers
http://slidepdf.com/reader/full/seven-habits-developers 6/17
8/6/2019 Seven Habits Developers
http://slidepdf.com/reader/full/seven-habits-developers 7/17
3 – Strive for Simplicity
• Simplicity as always associated with purity or clarity> Ask any mathematician
• Anybody can come up with a convoluted solution> Simplicity reflects your understanding of the problem
• “Simple things should be simple. Complex thingsshould be possible” - Alan Kay>
Simplicity does not mean “simplistic”> Simple not crippled
• Easy to understand, easy to explain, easy tomaintain, easy to document
> “... debugging is twice as hard as writing a program...”
8/6/2019 Seven Habits Developers
http://slidepdf.com/reader/full/seven-habits-developers 8/17
8/6/2019 Seven Habits Developers
http://slidepdf.com/reader/full/seven-habits-developers 9/17
4 – Keep Your Code Clear
• Code for others to read> Code layout
• Comment your code
> Especially if you are doing clever things
• Keep methods simple
• Only incorporate code that you understand
> Especially when you are copying it from somewhere else• Abstract but do not obfuscated
8/6/2019 Seven Habits Developers
http://slidepdf.com/reader/full/seven-habits-developers 10/17
8/6/2019 Seven Habits Developers
http://slidepdf.com/reader/full/seven-habits-developers 11/17
5 – Learn to Debug
• Find bugs early in your development> Automated testing> Test early, test often
• Reduce the time to reproduce the bug> Isolate the code by making a stand-alone version
• Do not assume>
Don't think you know what it is doing• Whatever helps you to narrow the problem
> Debuggers, println(), assert(), extra pair of eyes
> Use a code repository so you can see what has changed
8/6/2019 Seven Habits Developers
http://slidepdf.com/reader/full/seven-habits-developers 12/17
8/6/2019 Seven Habits Developers
http://slidepdf.com/reader/full/seven-habits-developers 13/17
6 – Leverage What is Available
• Look for available solutions or algorithms> Google is your friend, open source software
• Frameworks if possible
> Standardize the way an application is developed
• If you know someone who is a subject matter expert, even better!
•Search appropriate forums and mailing list> Your problem is not unique
• BragBlog about your predicament> Solicit feedbacks
8/6/2019 Seven Habits Developers
http://slidepdf.com/reader/full/seven-habits-developers 14/17
8/6/2019 Seven Habits Developers
http://slidepdf.com/reader/full/seven-habits-developers 15/17
7 – Continue to Learn
• Off-the-job learning> Not under pressure to find a “solution”> Opportunity to evaluate various solutions
• Anticipate what skills you will be needing in the near future
• Know the trends – what are you opinion of them?> Only dead fish swims with the tide
• Evaluate your past programs/codes> What is good? What is wrong?> “Happy families are all alike; every unhappy family is
unhappy in its own way.” - Leo Tolstoy
8/6/2019 Seven Habits Developers
http://slidepdf.com/reader/full/seven-habits-developers 16/17
Summary
1.Understand the problem
2.Use appropriate tools
3.Strive for simplicity4.Keep your code clear
5.Learn to debug
6.Leverage what is available
7.Continue to learn
8/6/2019 Seven Habits Developers
http://slidepdf.com/reader/full/seven-habits-developers 17/17
Seven Habits of Highly* Effective
Developers * YMMVLee Chuk Munn
Staff Engineer