59
HOW TO BECOME A BETTER DEVELOPER? 1

How to become a better developer?

  • Upload
    polcode

  • View
    552

  • Download
    0

Embed Size (px)

Citation preview

Page 1: How to become a better developer?

HOW TO BECOME A BETTER DEVELOPER?

1

Page 2: How to become a better developer?

Jerzy Zawadzki▸ PHP programmer with 10 years of experience

▸ at Polcode for over 7 years, now a Senior PHP Developer

▸ working with Symfony2 and/or Magento on a daily basis

▸ Zend Certified Engineer

▸ Magento Certified Developer

▸ in spare time I like hiking, chasing after special services with a camera or building something with LEGO

2

Page 3: How to become a better developer?

- founded at 2006 by developers

- PHP (i.a. Symfony 2, Laravel, ZF, Magento, Wordpress)

- Ruby On Rails

- Python

- clients mostly from the North America, Western Europe and Australia

- 800 satisfied customers

- 1200 conducted projects

- >100 devs

- Warsaw, Krakow, Katowice, Lodz, Bialystok + remote

3

Page 4: How to become a better developer?

HOW TO BECOME A BETTERDEVELOPER?

4

Page 5: How to become a better developer?

WHAT DOES IT MEAN TO BE A GOOD DEVELOPER?

5

Page 6: How to become a better developer?

I’M A GOOD DEV BECAUSE…

I HAVE 10 YEARS OF EXPERIENCE?

6

Page 7: How to become a better developer?

I’M A GOOD DEV BECAUSE…

I KNOW ALL OF THE PROGRAMMING PRINCIPLES AND METHODOLOGIES?

7

Page 8: How to become a better developer?

Abstraction principle, Code reuse, Cohesion, Command–query separation, Defensive programming, Dependency inversion principle, Discoverability, Don't repeat yourself, Fail-fast, GRASP, Hollywood principle, Information hiding, Interface segregation principle, Inversion of control, KISS principle, Law of Demeter, Liskov substitution principle, Loose coupling, MINASWAN, Open/closed principle, Principle of least astonishment, Separation of concerns, Separation of mechanism and policy, Single responsibility principle, SOLID, Uniform access principle, 80:20 rule, Amdahl's law, Code smell, Deutsch limit, Greenspun's tenth rule, Gustafson's law, If it ain't broke, don't fix it, IIABDFI, MINASWAN, Ninety-ninety rule, Rule of three, Zero one infinity rule, Acceptance test-driven development, After the Software Wars, Agile Manifesto, Agile software development, Behavior-driven development, The Cathedral and the Bazaar, Comment programming, Cowboy coding, Design-driven development, Domain-driven design, Extreme programming, Formal methods, Hollywood principle, Homesteading the Noosphere, Integration competency center, Iterative and incremental development, Kanban, KISS principle, Lean integration, Lean software development, Lightweight methodology, The Magic Cauldron, Mayo-Smith pyramid, Micro-innovation, Minimalism, Open/closed principle, Planning poker, PM Declaration of Interdependence, Release early, release often, Retrenchment, Rule of least power, Secure by design, Slow programming, Specification by example, Test double, Continuous test-driven development, Test-driven development, Test-Driven Development by Example, There's more than one way to do it, Transformation Priority Premise, Unix philosophy, Waterfall model, Worse is better, You aren't gonna need it,

https://en.wikipedia.org/wiki/Category:Software_development_philosophies8

Page 9: How to become a better developer?

I’M A GOOD DEV BECAUSE…

I DON’T USE FRAMEWORKS?

9

Page 10: How to become a better developer?

I’M A GOOD DEV BECAUSE…

I CODE IN NOTEPAD?

10

Page 11: How to become a better developer?

I’M A GOOD DEV BECAUSE…

I WRITE GOOD CODE?

11

Page 12: How to become a better developer?

I’M A GOOD DEV BECAUSE…

I WRITE GOOD CODE?

12

?

Page 13: How to become a better developer?

1.ABOUT GOOD CODE

13

Page 14: How to become a better developer?

“”Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.” – Martin Golding.

14

Page 15: How to become a better developer?

KISS15

Page 16: How to become a better developer?

you cannot write perfect code

16

Page 17: How to become a better developer?

you can write code that is good enough

17

Page 18: How to become a better developer?

UGLY CODEthat works is

BETTER than pretty one that

DOESN’T18

Page 19: How to become a better developer?

2.ABOUT GOOD PROJECTS

19

Page 20: How to become a better developer?

The Psychology of Computer ProgrammingGerald M. Weinberg1971

20

Page 21: How to become a better developer?

Programming qualityaccording to Weinberg

▸ Use Symfony▸ DDD!▸ BDD!▸ DO NOT code in Laravel▸ Don’t touch Wordpress, ever▸ PHP sucks

21

Page 22: How to become a better developer?

▸ Use Symfony▸ DDD!▸ BDD!▸ DO NOT write in Laravel▸ Don’t touch Wordpress, ever▸ PHP sucks

Programming qualityaccording to Weinberg

22

X

Page 23: How to become a better developer?

Software quality

meets thespecification

on time and budget

adaptable to changing requirements

23

efficient in a given environment

Page 24: How to become a better developer?

meets thespecification

24

Page 25: How to become a better developer?

searching for requirements

25

Page 26: How to become a better developer?

on time and budget

26

Page 27: How to become a better developer?

“It always takes longer than you expect, even when you take into account Hofstadter's Law.▸ Douglas Hofstadter

Hofstadter’s law

27

Page 28: How to become a better developer?

“The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time.

▸ Tom Cargill, Bell Labs

Rule of Credibility(Ninety-ninety rule)

28

Page 29: How to become a better developer?

efficient in a given environment

29

Page 30: How to become a better developer?

You’re not coding Facebook*

30

Page 31: How to become a better developer?

Optimizationas an

“Art for art's sake”

31

Page 32: How to become a better developer?

Servers are cheaper than developers

32

Page 33: How to become a better developer?

The fastest query is one that

will not be run

33

Page 34: How to become a better developer?

34

Page 35: How to become a better developer?

The fastest codeis one that

will not be run

35

Page 36: How to become a better developer?

adaptable to changing requirements

36

Page 37: How to become a better developer?

Which system requirements may

change?

All of them!37

Page 38: How to become a better developer?

38

Page 39: How to become a better developer?

39

X

Page 40: How to become a better developer?

In large projects, it is not possible to be prepared for every

change.

40

Page 41: How to become a better developer?

41

Software quality

meets thespecification

on time and budget

adaptable to changing requirements

efficient in a given environment

Page 42: How to become a better developer?

42

Page 43: How to become a better developer?

43

Page 44: How to become a better developer?

3.ABOUT GOOD DEVELOPERS

44

Page 45: How to become a better developer?

THINK45

Page 46: How to become a better developer?

Don’t think ONLYabout the code

46

Page 47: How to become a better developer?

▸ customers and their needs▸ the user▸ the problem▸ code maintaince▸ the future▸ other developers

THINK ABOUT

47

Page 48: How to become a better developer?

Act like aPROFESSIONAL

48

Page 49: How to become a better developer?

Stick to the standards

49

Page 50: How to become a better developer?

Don’te be afraid to say:I DON’T KNOW

50

Page 51: How to become a better developer?

Check the specificationAsk the client

51

Page 52: How to become a better developer?

AskWHY?

52

Page 53: How to become a better developer?

Communication

53

Page 54: How to become a better developer?

Empathy.

54

Page 55: How to become a better developer?

55

Page 56: How to become a better developer?

There is not just one solution to the majority of

problems

56

Page 57: How to become a better developer?

57

Page 58: How to become a better developer?

If something is stupid, but it works it ain’t stupid.

58

Page 59: How to become a better developer?

Thanks

Any questions?

59