SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
How to code in the
XXI century without
losing your head
@rene_olivo
The problem with
programming today
Noises that stop you from
delivering a
quality product
Quality Product
● Uses the Agile methodology to meet the product needs in a series of timely
deliveries
● Can be easily reproduced in dev and production environments
● The codebase is well written and organized which allows changes to be
implemented with ease
● Is resilient to changes through testing
● Is built with the precise amount of craftsmanship that suits the product scope
Types of noise
● Your programming language sucks
● If you are not using this new framework you are doing it wrong
● Your code is not optimized
● Your code editor and keyboard layout suck
● TDD is dead
● OOP is dead, long live Functional
● Tabs, 4 spaces, and semicolons are the work of the devil
● If you don't know math you are a bad programmer
"Your programming
language sucks" noise
● People will always be chewing on you because of your
programming language choice. Block that noise.
● Learn when to use the appropriate language for the
appropriate task.
"Out with the old, in with
the new" noise (p1).
● Implementing new technologies makes you a digital frontier
pioneer.
● Less resources.
● Less tutorials and documentation.
● Harder to put together a team of experts.
● There won't be any "best practices" available.
"Out with the old, in with
the new" noise (p2).
● Unknown challenges after moving on from the "todo" example.
● What's good for Google, Facebook, or Microsoft may not be good
for your project or startup.
"Optimization" noise
● Don't over-invest on optimization.
● Learn about cache, load balancing, replication, and other
High Availability techniques.
● Learn about queuing systems and how to connect apps
through messaging pipes.
"Your code editor sucks"
noise
● Code is not meant to be written at the speed of light, it's meant to
be read with ease.
● Don't fall for the console editors hype, your code editor is fine.
● Learning a new keyboard layout will take time and will yield
nothing.
"TDD is dead" noise
● Stop being lazy, testing is necessary.
● More unit testing, some integration, less E2E.
"OOP is dead" noise
● People have been killing OOP since the 90s, it's not
going to die. OOP has its flaws, but it's the best we have.
● Use functional where it makes sense, don't overuse it.
"Tabs VS Spaces" noise
● Use a linter and a code editor that supports lint files.
● Find a lint file that suits your project and team and stick
with it.
"Math Envy" noise
● Programming has more to do with Cervantes and less to
do with Newton.
● Mastering math helps you solve math problems with
ease.
● Math tasks are sparse.
● Data structures are heavily used.
● Algorithm knowledge is more helpful.
Thanks for listening.

Contenu connexe

Tendances

Software Development Essential Skills
Software Development Essential SkillsSoftware Development Essential Skills
Software Development Essential Skills
John Choi
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
Samnang Chhun
 
Intro TDD Portuguese developers meetup London 16/04/2014
Intro TDD Portuguese developers meetup London 16/04/2014Intro TDD Portuguese developers meetup London 16/04/2014
Intro TDD Portuguese developers meetup London 16/04/2014
Pedro Santos
 

Tendances (20)

Android Developer Training
Android Developer TrainingAndroid Developer Training
Android Developer Training
 
Good Code / Bad Code
Good Code / Bad CodeGood Code / Bad Code
Good Code / Bad Code
 
The bigrewrite
The bigrewriteThe bigrewrite
The bigrewrite
 
Test driven development - why you should test first?
Test driven development - why you should test first?Test driven development - why you should test first?
Test driven development - why you should test first?
 
Unlocking your team's potential with pair programming (workshop)
Unlocking your team's potential with pair programming (workshop)Unlocking your team's potential with pair programming (workshop)
Unlocking your team's potential with pair programming (workshop)
 
The bigrewrite
The bigrewriteThe bigrewrite
The bigrewrite
 
How to deliver the right software (Specification by example)
How to deliver the right software (Specification by example)How to deliver the right software (Specification by example)
How to deliver the right software (Specification by example)
 
Agile Practices
Agile PracticesAgile Practices
Agile Practices
 
16 Favorite Behavioral Interview Questions for Technical Roles
16 Favorite Behavioral Interview Questions for Technical Roles16 Favorite Behavioral Interview Questions for Technical Roles
16 Favorite Behavioral Interview Questions for Technical Roles
 
How to hire a hacker
How to hire a hackerHow to hire a hacker
How to hire a hacker
 
Technical Writing Overview: WTD Nigeria
Technical Writing Overview: WTD NigeriaTechnical Writing Overview: WTD Nigeria
Technical Writing Overview: WTD Nigeria
 
Software Development Essential Skills
Software Development Essential SkillsSoftware Development Essential Skills
Software Development Essential Skills
 
What schools should be teaching IT students
What schools should be teaching IT studentsWhat schools should be teaching IT students
What schools should be teaching IT students
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Section a question 1 a postproduction
Section a question 1 a postproductionSection a question 1 a postproduction
Section a question 1 a postproduction
 
Agile Programming Live - AgilePrague2012
Agile Programming Live - AgilePrague2012Agile Programming Live - AgilePrague2012
Agile Programming Live - AgilePrague2012
 
I Don't Code, Am I No Longer Useful
I Don't Code, Am I No Longer UsefulI Don't Code, Am I No Longer Useful
I Don't Code, Am I No Longer Useful
 
Building Modern Software: UX and Design
Building Modern Software: UX and DesignBuilding Modern Software: UX and Design
Building Modern Software: UX and Design
 
SFScon 2020 - Xiaofeng Wang Jorge Melegati - Stop talking requirementsstart t...
SFScon 2020 - Xiaofeng Wang Jorge Melegati - Stop talking requirementsstart t...SFScon 2020 - Xiaofeng Wang Jorge Melegati - Stop talking requirementsstart t...
SFScon 2020 - Xiaofeng Wang Jorge Melegati - Stop talking requirementsstart t...
 
Intro TDD Portuguese developers meetup London 16/04/2014
Intro TDD Portuguese developers meetup London 16/04/2014Intro TDD Portuguese developers meetup London 16/04/2014
Intro TDD Portuguese developers meetup London 16/04/2014
 

Similaire à How to code in the XXI century without losing your head

Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
Svetlin Nakov
 
Pair Programming (2014)
Pair Programming (2014)Pair Programming (2014)
Pair Programming (2014)
Peter Kofler
 

Similaire à How to code in the XXI century without losing your head (20)

Learning to code in 2020
Learning to code in 2020Learning to code in 2020
Learning to code in 2020
 
The Ring programming language version 1.10 book - Part 99 of 212
The Ring programming language version 1.10 book - Part 99 of 212The Ring programming language version 1.10 book - Part 99 of 212
The Ring programming language version 1.10 book - Part 99 of 212
 
Go fundamentals
Go fundamentalsGo fundamentals
Go fundamentals
 
Golang, Python or C/C++, who wins
Golang, Python or C/C++, who wins Golang, Python or C/C++, who wins
Golang, Python or C/C++, who wins
 
The Ring programming language version 1.9 book - Part 97 of 210
The Ring programming language version 1.9 book - Part 97 of 210The Ring programming language version 1.9 book - Part 97 of 210
The Ring programming language version 1.9 book - Part 97 of 210
 
Pair Programming (2015)
Pair Programming (2015)Pair Programming (2015)
Pair Programming (2015)
 
Services, tools & practices for a software house
Services, tools & practices for a software houseServices, tools & practices for a software house
Services, tools & practices for a software house
 
The Ring programming language version 1.3 book - Part 81 of 88
The Ring programming language version 1.3 book - Part 81 of 88The Ring programming language version 1.3 book - Part 81 of 88
The Ring programming language version 1.3 book - Part 81 of 88
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
 
The Ring programming language version 1.5.1 book - Part 173 of 180
The Ring programming language version 1.5.1 book - Part 173 of 180 The Ring programming language version 1.5.1 book - Part 173 of 180
The Ring programming language version 1.5.1 book - Part 173 of 180
 
The essentials of the IT industry or What I wish I was taught about at Univer...
The essentials of the IT industry or What I wish I was taught about at Univer...The essentials of the IT industry or What I wish I was taught about at Univer...
The essentials of the IT industry or What I wish I was taught about at Univer...
 
Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.
 
The Ring programming language version 1.2 book - Part 77 of 84
The Ring programming language version 1.2 book - Part 77 of 84The Ring programming language version 1.2 book - Part 77 of 84
The Ring programming language version 1.2 book - Part 77 of 84
 
Java And Community Support
Java And Community SupportJava And Community Support
Java And Community Support
 
CPP01 - Introduction to C++
CPP01 - Introduction to C++CPP01 - Introduction to C++
CPP01 - Introduction to C++
 
Pair Programming (2014)
Pair Programming (2014)Pair Programming (2014)
Pair Programming (2014)
 
Dancing for a product release
Dancing for a product releaseDancing for a product release
Dancing for a product release
 
Java basics
Java basicsJava basics
Java basics
 
LAS16-108: JerryScript and other scripting languages for IoT
LAS16-108: JerryScript and other scripting languages for IoTLAS16-108: JerryScript and other scripting languages for IoT
LAS16-108: JerryScript and other scripting languages for IoT
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software Development
 

Plus de René Olivo

Introducciòn a AngularJS
Introducciòn a AngularJSIntroducciòn a AngularJS
Introducciòn a AngularJS
René Olivo
 

Plus de René Olivo (12)

BDD UI testing
BDD UI testingBDD UI testing
BDD UI testing
 
Seguridad en Aplicaciones Web y Comercio Electrónico
Seguridad en Aplicaciones Web y Comercio ElectrónicoSeguridad en Aplicaciones Web y Comercio Electrónico
Seguridad en Aplicaciones Web y Comercio Electrónico
 
Implementing bootstrap the right way using less (1)
Implementing bootstrap the right way using less (1)Implementing bootstrap the right way using less (1)
Implementing bootstrap the right way using less (1)
 
Emacscript 6
Emacscript 6Emacscript 6
Emacscript 6
 
Usando Bootstrap correctamente con LESS
Usando Bootstrap correctamente con LESSUsando Bootstrap correctamente con LESS
Usando Bootstrap correctamente con LESS
 
Git 101
Git 101Git 101
Git 101
 
Git workflow v2
Git workflow  v2Git workflow  v2
Git workflow v2
 
Pagos electrónicos
Pagos electrónicosPagos electrónicos
Pagos electrónicos
 
Git workflow
Git workflowGit workflow
Git workflow
 
Introducciòn a RequireJS
Introducciòn a RequireJSIntroducciòn a RequireJS
Introducciòn a RequireJS
 
Introducciòn a AngularJS
Introducciòn a AngularJSIntroducciòn a AngularJS
Introducciòn a AngularJS
 
Comercio Electrónico en la República Dominicana
Comercio Electrónico en la República DominicanaComercio Electrónico en la República Dominicana
Comercio Electrónico en la República Dominicana
 

Dernier

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Dernier (20)

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions Presentation
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 

How to code in the XXI century without losing your head

  • 1. How to code in the XXI century without losing your head @rene_olivo
  • 3. Noises that stop you from delivering a quality product
  • 4. Quality Product ● Uses the Agile methodology to meet the product needs in a series of timely deliveries ● Can be easily reproduced in dev and production environments ● The codebase is well written and organized which allows changes to be implemented with ease ● Is resilient to changes through testing ● Is built with the precise amount of craftsmanship that suits the product scope
  • 5. Types of noise ● Your programming language sucks ● If you are not using this new framework you are doing it wrong ● Your code is not optimized ● Your code editor and keyboard layout suck ● TDD is dead ● OOP is dead, long live Functional ● Tabs, 4 spaces, and semicolons are the work of the devil ● If you don't know math you are a bad programmer
  • 6.
  • 7. "Your programming language sucks" noise ● People will always be chewing on you because of your programming language choice. Block that noise. ● Learn when to use the appropriate language for the appropriate task.
  • 8. "Out with the old, in with the new" noise (p1). ● Implementing new technologies makes you a digital frontier pioneer. ● Less resources. ● Less tutorials and documentation. ● Harder to put together a team of experts. ● There won't be any "best practices" available.
  • 9. "Out with the old, in with the new" noise (p2). ● Unknown challenges after moving on from the "todo" example. ● What's good for Google, Facebook, or Microsoft may not be good for your project or startup.
  • 10. "Optimization" noise ● Don't over-invest on optimization. ● Learn about cache, load balancing, replication, and other High Availability techniques. ● Learn about queuing systems and how to connect apps through messaging pipes.
  • 11. "Your code editor sucks" noise ● Code is not meant to be written at the speed of light, it's meant to be read with ease. ● Don't fall for the console editors hype, your code editor is fine. ● Learning a new keyboard layout will take time and will yield nothing.
  • 12. "TDD is dead" noise ● Stop being lazy, testing is necessary. ● More unit testing, some integration, less E2E.
  • 13. "OOP is dead" noise ● People have been killing OOP since the 90s, it's not going to die. OOP has its flaws, but it's the best we have. ● Use functional where it makes sense, don't overuse it.
  • 14. "Tabs VS Spaces" noise ● Use a linter and a code editor that supports lint files. ● Find a lint file that suits your project and team and stick with it.
  • 15. "Math Envy" noise ● Programming has more to do with Cervantes and less to do with Newton. ● Mastering math helps you solve math problems with ease. ● Math tasks are sparse. ● Data structures are heavily used. ● Algorithm knowledge is more helpful.