SlideShare a Scribd company logo
1 of 23
Turgay Kıvrak
Skills of Good Developers
Turgay Kıvrak
Turgay Kıvrak
Technical Lead
Innova
http://turgaykivrak.wordpress.com
Twitter : @turgaykivrak
Linked In: http://www.linkedin.com/in/turgaykivrak
Why bother
to 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
Communication
Create an environment where
communication is just a part of
the normal process
Being specific
Explain clearly
Collaboration
Team Member
Writing
Confidence
Humility
Continuous Learning
Your CAREER is your RESPONSIBILITY
Spend time caring for their profession
CURIOSITY
is the engine.
"I have no special talents. I am
only passionately curious."
Einstein
Makes your mind
ACTIVE
Makes your mind
OBSERVANT OF NEW IDEAS
Brings
EXCIMENTINTO 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
Fanaticism
HOW?
READ Books Blogs Tweets Code
GO to Conferences
WATCH Videos
TAKE Courses
DISCUSS
TALK
"If you can’t explain it simply, you don’t understand it well enough."
Albert Einstein
PRACTICE
to keep your skills sharp and ready
Coding Skills
Make it fan-funded
Concise
Readable
Easy to change
No duplication
Efficient
Simple
No 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 Features
Good Documentation
Reduces the Cost of Change
Improves Design
Allows Refactoring
Forces You to Slow Down and Think
Makes Development Faster
Reduce 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 MOREPRODUCTIVE
Makes you BETTER DEVELOPER
REFACTORING
Restructuring 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 Review
Multiple points of view
Guaranteed Focus
Fewer blockages
Masking distractions
Reduced training cost and time
Big Picture

More Related Content

What's hot

What's hot (6)

Slowing Down To Scale Design - UXSEA Summit 2019
Slowing Down To Scale Design - UXSEA Summit 2019Slowing Down To Scale Design - UXSEA Summit 2019
Slowing Down To Scale Design - UXSEA Summit 2019
 
Bullet Journal | A pen and paper framework for getting way more done
Bullet Journal | A pen and paper framework for getting way more doneBullet Journal | A pen and paper framework for getting way more done
Bullet Journal | A pen and paper framework for getting way more done
 
6 tips for a wow power point presentation
6 tips for a wow power point presentation6 tips for a wow power point presentation
6 tips for a wow power point presentation
 
Enhance Your ELA Classroom Using Technology
Enhance Your ELA Classroom Using TechnologyEnhance Your ELA Classroom Using Technology
Enhance Your ELA Classroom Using Technology
 
One Point Per Slide – Why It’s Important and How to Do It
One Point Per Slide – Why It’s Important and How to Do ItOne Point Per Slide – Why It’s Important and How to Do It
One Point Per Slide – Why It’s Important and How to Do It
 
Stacey Seronick: Kaizen You! Continuous Improvement for You and Your Team
Stacey Seronick: Kaizen You! Continuous Improvement for You and Your TeamStacey Seronick: Kaizen You! Continuous Improvement for You and Your Team
Stacey Seronick: Kaizen You! Continuous Improvement for You and Your Team
 

Similar to Skills of Good Developers

Similar to Skills of Good Developers (20)

Happy Developer's Guide to the Galaxy: Thinking About Motivation of Developers
Happy Developer's Guide to the Galaxy: Thinking About Motivation of DevelopersHappy Developer's Guide to the Galaxy: Thinking About Motivation of Developers
Happy Developer's Guide to the Galaxy: Thinking About Motivation of Developers
 
The elements of product success for designers and developers
The elements of product success for designers and developersThe elements of product success for designers and developers
The elements of product success for designers and developers
 
Developers, you're designing experiences (and you didn't even know it)
Developers, you're designing experiences (and you didn't even know it)Developers, you're designing experiences (and you didn't even know it)
Developers, you're designing experiences (and you didn't even know it)
 
Design thinking in Engineering
Design thinking in EngineeringDesign thinking in Engineering
Design thinking in Engineering
 
RED ACADEMY: MAKE YOUR MARK
RED ACADEMY: MAKE YOUR MARKRED ACADEMY: MAKE YOUR MARK
RED ACADEMY: MAKE YOUR MARK
 
Words matter: Sharing Vocabulary to Strengthen Teams
Words matter: Sharing Vocabulary to Strengthen TeamsWords matter: Sharing Vocabulary to Strengthen Teams
Words matter: Sharing Vocabulary to Strengthen Teams
 
Presentation for JSPM's RSCOE
Presentation for JSPM's RSCOEPresentation for JSPM's RSCOE
Presentation for JSPM's RSCOE
 
Tech survival 101
Tech survival 101Tech survival 101
Tech survival 101
 
A conversation about Design thinking
A conversation about Design thinkingA conversation about Design thinking
A conversation about Design thinking
 
How to Build your Career.pptx
How to Build your Career.pptxHow to Build your Career.pptx
How to Build your Career.pptx
 
Unleash Your Inner Unicorn
Unleash Your Inner UnicornUnleash Your Inner Unicorn
Unleash Your Inner Unicorn
 
If you dont appear on google
If you dont appear on googleIf you dont appear on google
If you dont appear on google
 
B.Tech-1.pptx
B.Tech-1.pptxB.Tech-1.pptx
B.Tech-1.pptx
 
Design Thinking for Startups - Are You Design Driven?
Design Thinking for Startups - Are You Design Driven?Design Thinking for Startups - Are You Design Driven?
Design Thinking for Startups - Are You Design Driven?
 
GDSC-SJBIT Info Session
GDSC-SJBIT Info SessionGDSC-SJBIT Info Session
GDSC-SJBIT Info Session
 
I'm Graduating Soon. Help! How Do I Get into the Tech Field?
I'm Graduating Soon. Help! How Do I Get into the Tech Field?I'm Graduating Soon. Help! How Do I Get into the Tech Field?
I'm Graduating Soon. Help! How Do I Get into the Tech Field?
 
Blind mountain climbing: design process
Blind mountain climbing: design processBlind mountain climbing: design process
Blind mountain climbing: design process
 
Design Thinking for Software Designers
Design Thinking for Software DesignersDesign Thinking for Software Designers
Design Thinking for Software Designers
 
Skill of superb developers
Skill of superb developersSkill of superb developers
Skill of superb developers
 
Dr.* Truemper, Or: How I learned to Stop Being Wasteful and Love Lean UX
Dr.* Truemper, Or: How I learned to Stop Being Wasteful and Love Lean UXDr.* Truemper, Or: How I learned to Stop Being Wasteful and Love Lean UX
Dr.* Truemper, Or: How I learned to Stop Being Wasteful and Love Lean UX
 

Recently uploaded

Jax, FL Admin Community Group 05.14.2024 Combined Deck
Jax, FL Admin Community Group 05.14.2024 Combined DeckJax, FL Admin Community Group 05.14.2024 Combined Deck
Jax, FL Admin Community Group 05.14.2024 Combined Deck
Marc Lester
 
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
drm1699
 
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Lisi Hocke
 

Recently uploaded (20)

Incident handling is a clearly defined set of procedures to manage and respon...
Incident handling is a clearly defined set of procedures to manage and respon...Incident handling is a clearly defined set of procedures to manage and respon...
Incident handling is a clearly defined set of procedures to manage and respon...
 
Effective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConEffective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeCon
 
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
 
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
 
BusinessGPT - Security and Governance for Generative AI
BusinessGPT  - Security and Governance for Generative AIBusinessGPT  - Security and Governance for Generative AI
BusinessGPT - Security and Governance for Generative AI
 
Navigation in flutter – how to add stack, tab, and drawer navigators to your ...
Navigation in flutter – how to add stack, tab, and drawer navigators to your ...Navigation in flutter – how to add stack, tab, and drawer navigators to your ...
Navigation in flutter – how to add stack, tab, and drawer navigators to your ...
 
Lessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfLessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdf
 
Encryption Recap: A Refresher on Key Concepts
Encryption Recap: A Refresher on Key ConceptsEncryption Recap: A Refresher on Key Concepts
Encryption Recap: A Refresher on Key Concepts
 
Novo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMsNovo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMs
 
Abortion Pill Prices Germiston ](+27832195400*)[ 🏥 Women's Abortion Clinic in...
Abortion Pill Prices Germiston ](+27832195400*)[ 🏥 Women's Abortion Clinic in...Abortion Pill Prices Germiston ](+27832195400*)[ 🏥 Women's Abortion Clinic in...
Abortion Pill Prices Germiston ](+27832195400*)[ 🏥 Women's Abortion Clinic in...
 
Jax, FL Admin Community Group 05.14.2024 Combined Deck
Jax, FL Admin Community Group 05.14.2024 Combined DeckJax, FL Admin Community Group 05.14.2024 Combined Deck
Jax, FL Admin Community Group 05.14.2024 Combined Deck
 
Auto Affiliate AI Earns First Commission in 3 Hours..pdf
Auto Affiliate  AI Earns First Commission in 3 Hours..pdfAuto Affiliate  AI Earns First Commission in 3 Hours..pdf
Auto Affiliate AI Earns First Commission in 3 Hours..pdf
 
GraphSummit Milan - Visione e roadmap del prodotto Neo4j
GraphSummit Milan - Visione e roadmap del prodotto Neo4jGraphSummit Milan - Visione e roadmap del prodotto Neo4j
GraphSummit Milan - Visione e roadmap del prodotto Neo4j
 
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
 
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
 
Abortion Pill Prices Mthatha (@](+27832195400*)[ 🏥 Women's Abortion Clinic In...
Abortion Pill Prices Mthatha (@](+27832195400*)[ 🏥 Women's Abortion Clinic In...Abortion Pill Prices Mthatha (@](+27832195400*)[ 🏥 Women's Abortion Clinic In...
Abortion Pill Prices Mthatha (@](+27832195400*)[ 🏥 Women's Abortion Clinic In...
 
Transformer Neural Network Use Cases with Links
Transformer Neural Network Use Cases with LinksTransformer Neural Network Use Cases with Links
Transformer Neural Network Use Cases with Links
 
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
 
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCAOpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
 
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdfThe Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
 

Skills of Good Developers

Editor's Notes

  1. 2000 odtu bılgısayar 2005 master 15 yıldır calısıyorum. developer mımar hala kod yazıyorum
  2. Para, kariyer, kisisel mutluluk, karizma...vs Aslinda bir isi dogru duzgun yapma ınsanın dogasında olan bır sey ve bundan hoslanıyor Turkiyedeki ihtiyac
  3. Identify root cause - Fix the root cause not symptons Payin attention to details Decision Making, Creativity
  4. -> One of the most important and difficult thing is software development is communication. Clear communication in the team and clear communication with clients.
  5. Confidence is not something that can be learned like a set of rules; confidence is a state of mind. Positive thinking, practice, training, knowledge and talking to other people are all useful ways to help improve or boost your confidence levels. Takim Calismasi > Iyi bir developer butun gun bilgisayarinin onunda oturup kod yazan degildir. Cok iyi kod yazsalar bile iletisime kapali developerlarla yapilan is butunluk acisinda problemlere yol acabilir. Eger projenin basarili olmasi isteniyorsa, takim icindeki iletisim cok elzemdir. Bilgi, tecrube ve fikirlerin palyasilmasi, yapilan islerin tartisarak bazi konularlarda ortak karar vererek yapilmasi, hem cozumun kalitesini hemde verimliligi artiracacaktir.
  6. Teknolıjı sureklı degısıyor
  7. Your career is your responsibility “Professionals spend time caring for their profession” Rober Martin
  8. I have no special talents. I am only passionately curious. Albert Einstein “ Hiçbir özel yeteneğim yok. Yalnızca tutkulu bir meraklıyım.”
  9. Know Your Field • Design patterns - Design principles. You should know the SOLID principles and have a good understanding of the component principles. • Methods. You should understand XP, Scrum, Lean, Kanban, Waterfall, Structured Analysis, and Structured Design. • Disciplines. You should practice TDD, Object-Oriented design, Structured Programming, Continuous Integration, and Pair Programming. • Artifacts: You should know how to use: UML, DFDs, Structure Charts, Petri Nets, State Transition Diagrams and Tables, flow charts, and decision tables.
  10. Para, kariyer, kisisel mutluluk, karizma...vs Aslinda bir isi dogru duzgun yapma “İşinizi güzel yapın; Allah işini güzel yapanları sever”1
  11. Read books, articles, blogs, tweets. Go to conferences. Go to user groups. Participate in reading and study groups "If you can’t explain it simply, you don’t understand it well enough." Albert Einstein
  12. Practice Professionals practice. True professionals work hard to keep their skills sharp and ready. It is not enough to simply do your daily job and call that practice. Doing your daily job is performance, not practice. Practice is when you specifically exercise your skills outside of the performance of your job for the sole purpose of refining and enhancing those skills. What could it possibly mean for a software developer to practice? At first thought the concept seems absurd. But stop and think for a moment. Consider how musicians master their craft. It’s not by performing. It’s by practicing. And how do they practice? Among other things, they have special exercises that they perform. Scales and etudes and runs. They do these over and over to train their fingers and their mind, and to maintain mastery of their skill. A kata usually comes in the form of a simple programming problem to solve, such as writing the function that calculates the prime factors of an integer. The point of doing the kata is not to figure out how to solve the problem; you know how to do that already. The point of the kata is to train your fingers and your brain. I’ll do a kata or two every day, often as part of settling in to work. I might do it in Java, or in Ruby, or in Clojure, or in some other language for which I want to maintain my skills. I’ll use the kata to sharpen a particular skill, such as keeping my fingers used to hitting shortcut keys, or using certain refactorings. Think of the kata as a 10-minute warm-up exercise in the morning and a 10-minute cool-down in the evening.
  13. Bad code does too much – Clean code is focused I should comply with the DRY rule (Don’t Repeat Yourself) Fonksiyonlar/metodlar çok uzun olmamali Parametre çok olmamalı. İnsan aklinda ancak 3-7 tane degişken tutabiliyor. Bundan fazla olunca artık bazı noktalari kaçırmaya başlıyoruz. Degişken, parametre, method, fonksiyon, sınıf… vb gibi parçalar verilen isimler, içerik hakkında bilgi vermeli.
  14. Enables you to take small steps when writing software => Far more productive than attempting to code in large steps
  15. Para, kariyer, kisisel mutluluk, karizma...vs Aslinda bir isi dogru duzgun yapma “İşinizi güzel yapın; Allah işini güzel yapanları sever”1