5. “Cutting wood is a base skill of
carpentry, just like problem
solving is the base skill of
software development”
John Sonmez
6. 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
7.
8. 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
10. Your CAREER is your RESPONSIBILITY
Spend time caring for their profession
11. 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
12. 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
14. 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
18. 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
19. 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
20. Test Driven Development
Best way to have GOOD UNIT TESTS
Changes your MINDSET about coding and testing
Makes you MOREPRODUCTIVE
Makes you BETTER DEVELOPER
21. REFACTORING
Restructuring existing computer code without changing its external behavior
Improving the design of an existing code base
Stabilize pursuit of perfection with pragmatism
22. Pair Programming
Continuous Code Review
Multiple points of view
Guaranteed Focus
Fewer blockages
Masking distractions
Reduced training cost and time
2000 odtu bılgısayar 2005 master 15 yıldır calısıyorum. developer mımar hala kod yazıyorum
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
Identify root cause - Fix the root cause not symptons
Payin attention to details
Decision Making, Creativity
-> One of the most important and difficult thing is software development is communication. Clear communication in the team and clear communication with clients.
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.
Teknolıjı sureklı degısıyor
Your career is your responsibility
“Professionals spend time caring for their profession”
Rober Martin
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.”
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.
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
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
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.
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.
Enables you to take small steps when writing software => Far more productive than attempting to code in large steps
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