Upload
turgay-kivrak
View
377
Download
0
Embed Size (px)
Citation preview
Turgay Kıvrak
Skills of Good Developers
Turgay Kıvrak
Turgay KıvrakTechnical Lead
Innova
http://turgaykivrak.wordpress.com
Twitter : @turgaykivrak
Linked In: http://www.linkedin.com/in/turgaykivrak
Why botherto be a good developer?
Soft Skills
“Cutting wood is a base skill of carpentry, just like
problem solving is the base skill of software development”
John Sonmez
Identify the problem
Define the problem
Examine the options
Act on a plan
Look at the results
Analytical Mind
Detail Oriented Eye
Visualize
PROBLEM SOLVING
Good Communicati
onCreate an environment
where communication is just a part of the normal process
Being specificExplain clearlyCollaborationTeam MemberWritingConfidenceHumility
Continuous Learning
Your CAREER is your RESPONSIBILITYSpend time caring for their profession
CURIOSITYis the engine.
"I have no special talents. I am only passionately
curious." Einstein
Makes your mind ACTIVE Makes your mindOBSERVANT OF NEW IDEAS
Brings EXCIMENT INTO YOUR LIFE
Learn/Know Your Tools
Java HTML5 CSS JavaScript Python Scala Clojure Maven Groovy Gradle Linux IDE Spring Hibernate
Design Principles Design Patterns Refactoring Scrum TDD Continous Integration Kanban UML PP
No Language Fanaticis
m
HOW?READ Books Blogs Tweets Code
GO to ConferencesWATCH VideosTAKE Courses
DISCUSSTALK
"If you can’t explain it simply, you don’t understand it well enough."
Albert Einstein
PRACTICEto keep your skills sharp and ready
Coding Skills
Make it fan-funded
ConciseReadableEasy to changeNo duplicationEfficientSimpleNo bug
Clean Code
Focused - not doing too much
Meaningful Names
Small functions
No bad comments
Well structured
Complies with DRY rule
Have unit tests
Characteristics of
Clean Code
Reduces Bugs in New and Existing FeaturesGood Documentation
Reduces the Cost of ChangeImproves Design
Allows RefactoringForces You to Slow Down and Think
Makes Development FasterReduce Fear
It is Fun
Unit Testing
Test Driven Development Best way to have GOOD UNIT TESTS Changes your MINDSET about
coding and testing
Makes you MORE
PRODUCTIVE Makes you BETTER DEVELOPER
REFACTORINGRestructuring existing computer code without changing its
external behavior
Improving the design of an existing code base
Stabilize pursuit of perfection with pragmatism
Pair Programming
Continuous Code ReviewMultiple points of view
Guaranteed FocusFewer blockages
Masking distractionsReduced training cost
and time
Big Picture