Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Letter to a Junior Developer: The Engineering Side of Programming

Letter to a Junior Developer: The Engineering Side of Programming

Slides from my talk at ex-YU IT Experts event organized by www.NemackiKutak.com and https://tech.Wayfair.com in Berlin.

A33ce9db108e4f5efe9996ad8f3e231a?s=128

Lazar Kovačević

November 07, 2019
Tweet

Other Decks in Programming

Transcript

  1. LETTER TO A JUNIOR DEVELOPER: THE ENGINEERING SIDE OF PROGRAMMING

    @LazarKovacevic
  2. Programmer ???

  3. Engineer ???

  4. None
  5. story time...

  6. but why ?! The Future of Programming by Robert C.

    Martin (Uncle Bob)
 
 https://www.youtube.com/watch?v=BHnMItX2hEQ
  7. how ? Engineering Standards and Disciplines!

  8. what exactly ?

  9. Step 1: programming language

  10. do NOT choose JavaScript !!!

  11. do NOT choose JavaScript !!! SERIOUSLY !!!

  12. do NOT choose JavaScript !!! SERIOUSLY !!! * not YET...

  13. Java / C# or Python / Go / PHP /

    Ruby / JavaScript / ...
  14. write some code!

  15. • practice OOP concepts • make simple small programs •

    no GUIs for now...
  16. Step 2: IDE + Text Editor

  17. Step 3: Web MVC* framework
 SpringBoot / ASP.NET MVC /

    Django / Symfony / Rails / ...
  18. write some code!

  19. • make a fully working project
 (couple of entities, GUI,

    CRUD) 
 • make another one 
 • deploy it, make sure it actually works!
  20. Step 4: Algorithms and
 Data Structures

  21. write some code!

  22. Congrats! You are now a Junior Programmer!

  23. you are NOT
 the king of the world! * yet...

  24. NOW the Engineer's Journey begins!

  25. Step 5: Clean Code

  26. "Clean Code: Fundamentals" video series on cleancoders.com or

  27. • Naming • Functions • Comments • Formatting • Error

    Handling • Unit Tests • Test Driven Development • Refactoring • Code Smells • ...
  28. write some code!

  29. Congrats! You are now a Junior Engineer!

  30. you are still NOT
 the king of the world!

  31. Step 6:
 Software Architecture

  32. Hexagonal / Ports and Adapters / Plug-in / Clean /

    ...
 Architecture
  33. "Clean Code: SOLID Principles" and "Clean Code: Component Design" video

    series on cleancoders.com or
  34. write some code!

  35. Step 7:
 Design Patterns

  36. write some code!

  37. now you know,
 you will never be the king of

    the world
  38. but...

  39. NOW you can write JavaScript !!!

  40. NOW you can write JavaScript !!! TypeScript

  41. Step 7:
 Agile

  42. Scrum
 Master

  43. or or "Clean Code: Agile" video series on cleancoders.com

  44. None
  45. want to learn more? • learn more about TDD:
 -

    Test Driven Development: By Example - Kent Beck
 - "Clean Code: Advanced TDD" video series on cleancoders.com • Refactoring:
 - Refactoring: Improving the Design of Existing Code - Martin Fowler • learn more about Software Architecture/Design:
 - Patterns of Enterprise Application Architecture - Martin Fowler • learn how to cope with Legacy Code:
 - Working Effectively with Legacy Code - Michael Feathers
  46. Twitter: @LazarKovacevic
 
 Linkedin: linkedin.com/in/lazarkovacevic