seven habits developers

17
 Seven Habits of Highly * Effective Developers * YMMV Lee Chuk Munn Staff Engineer Sun Microsystems [email protected]

Upload: aryas021

Post on 07-Apr-2018

231 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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 

Sun [email protected]

Page 2: Seven Habits Developers

8/6/2019 Seven Habits Developers

http://slidepdf.com/reader/full/seven-habits-developers 2/17

Page 3: Seven Habits Developers

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

Page 4: Seven Habits Developers

8/6/2019 Seven Habits Developers

http://slidepdf.com/reader/full/seven-habits-developers 4/17

Page 5: Seven Habits Developers

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

Page 6: Seven Habits Developers

8/6/2019 Seven Habits Developers

http://slidepdf.com/reader/full/seven-habits-developers 6/17

Page 7: Seven Habits Developers

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...”

Page 8: Seven Habits Developers

8/6/2019 Seven Habits Developers

http://slidepdf.com/reader/full/seven-habits-developers 8/17

Page 9: Seven Habits Developers

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

Page 10: Seven Habits Developers

8/6/2019 Seven Habits Developers

http://slidepdf.com/reader/full/seven-habits-developers 10/17

Page 11: Seven Habits Developers

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

Page 12: Seven Habits Developers

8/6/2019 Seven Habits Developers

http://slidepdf.com/reader/full/seven-habits-developers 12/17

Page 13: Seven Habits Developers

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

Page 14: Seven Habits Developers

8/6/2019 Seven Habits Developers

http://slidepdf.com/reader/full/seven-habits-developers 14/17

Page 15: Seven Habits Developers

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

Page 16: Seven Habits Developers

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

Page 17: Seven Habits Developers

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 

Sun [email protected]