LETTER TO A JUNIOR DEVELOPER:
THE ENGINEERING SIDE OF PROGRAMMING
@LazarKovacevic
Programmer ???
Engineer ???
story time...
but why ?!
The Future of Programming
by Robert C. Martin (Uncle Bob)



https://www.youtube.com/watch?v=BHnMItX2hEQ
how ?
Engineering Standards and Disciplines!
what exactly ?
Step 1:
programming language
do NOT choose
JavaScript !!!
do NOT choose
JavaScript !!!
SERIOUSLY !!!
do NOT choose
JavaScript !!!
SERIOUSLY !!!
* not YET...
Java / C#
or
Python / Go / PHP / Ruby / JavaScript / ...
write
some
code!
• practice OOP concepts
• make simple small programs
• no GUIs for now...
Step 2:
IDE + Text Editor
Step 3:
Web MVC* framework

SpringBoot / ASP.NET MVC / Django / Symfony / Rails / ...
write
some
code!
• make a fully working project

(couple of entities, GUI, CRUD) 

• make another one 

• deploy it, make sure it actually works!
Step 4:
Algorithms and

Data Structures
write
some
code!
Congrats! You are now a
Junior Programmer!
you are NOT

the king of the world!
* yet...
NOW the Engineer's
Journey begins!
Step 5:
Clean Code
"Clean Code:
Fundamentals"
video series on
cleancoders.com
or
• Naming
• Functions
• Comments
• Formatting
• Error Handling
• Unit Tests
• Test Driven
Development
• Refactoring
• Code Smells
• ...
write
some
code!
Congrats! You are now a
Junior Engineer!
you are still NOT

the king of the world!
Step 6:

Software Architecture
Hexagonal / Ports and Adapters / Plug-in / Clean / ...

Architecture
"Clean Code:
SOLID Principles"
and
"Clean Code:
Component Design"
video series on
cleancoders.com
or
write
some
code!
Step 7:

Design Patterns
write
some
code!
now you know,

you will never be the
king of the world
but...
NOW you can write
JavaScript !!!
NOW you can write
JavaScript !!!
TypeScript
Step 7:

Agile
Scrum

Master
or or
"Clean Code:
Agile"
video series on
cleancoders.com
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
Twitter:
@LazarKovacevic



Linkedin:
linkedin.com/in/lazarkovacevic

Letter to a Junior Developer: The Engineering Side of Programming