SlideShare uma empresa Scribd logo
1 de 14
Baixar para ler offline
Better Developers
Technical Presentation, 2014
Mikaël Donikian
Introduction
As a Developer you are mainly in charge of conception:
Transform business functionalities into code.
Had to deal with pieces of messy code before?

© 2014 Mikaël DONIKIAN

2
Summary
1)
2)
3)
4)
5)
6)

Introduction
Definition
Common Algorithms
Few Examples
Complexity
Questions

© 2014 Mikaël DONIKIAN

3
Definition: developer
• The coder, the programmer
and the developer
• Tasks:
–
–
–
–
–
–
–
–

Write code
Spec documents
Configuration management
Code reviews
Testing
Automated tests
Documentation
Solving tough customer problems

© 2014 Mikaël DONIKIAN

4
Definition: Algorithm 1/2
• “An algorithm is a sequence of unambiguous instructions for
solving a problem”[1] As it is supposed to be followed with
pencil and paper. It is usually expressed in pseudo-code.
• Algorithm comes from Al-Khowarazmi the mathematician who
introduce around the year 825, the use of Hindu-Arabic
numerals.
• Some algorithm are intuitive as we can find them trough logical
thinking but the most complex ones need to be learned so they
can be used to improve the efficiency of problem solving.
[1]

A. Levitin, Introduction to The Design & Analysis of Algorithms , Addison-Wesley, 2003

© 2014 Mikaël DONIKIAN

5
Definition: Algorithm 2/2
• Programming is the process of writing programs in a
logical way. Programs are implementing algorithm.
• Despite programs, algorithm are finite.

© 2014 Mikaël DONIKIAN

6
Common Algorithms
• Shortest Path (Dijkstra,
Graph theory, Trees …)
• Binary Search
• Merge, Quick, Insertion &
Bubble Sort

•
•
•
•

Collections
Recursively
Concurrency
Graph theory (Trees…)

© 2014 Mikaël DONIKIAN

7
Complexity
• Runtime analysis of an algorithm
• Need to estimate the relative time cost of an
algorithm (efficiency)
• Big O notation: infinite approximation of
infinite growth of a particular function in
infinite asymptotic notation.

© 2014 Mikaël DONIKIAN

8
Complexity - Example
• Given T(n) = 4n2 − 2n + 2
• As n grow large the term n2 will dominate
therefore T(n)=O(n2)

© 2014 Mikaël DONIKIAN

9
Complexity - order of growth
Notation

Name

O(1)

Constant

O(log n)

Logarithmic

O(n)

Linear

O(n log n)

Linearithmic

O(n2)

Quadratic

O(nc), c >1

Polynomial

O(cn), c >1

Exponential

O(n!)

Factorial

Big O cheat sheet can be found here: http://bigocheatsheet.com/
© 2014 Mikaël DONIKIAN

10
Fibonacci Algorithm
• Fn = Fn-1 + Fn-2

with seed value

F0=0 and F1=1

• This is a recursive algorithm
def fib(n):
if n==0: return 0
elif n==1 return 1
Else return (fib(n-1)+fib(n-2))
© 2014 Mikaël DONIKIAN

11
Bubble sort
• Complexity O(n2)
• This algorithm is not the best when “n” is very
large
• It compares in a list each pair of adjacent items
and swap them if they are not in the right order.
Every iteration, the last value is considered
sorted and then the number of values checked
is decreased by one.

© 2014 Mikaël DONIKIAN

12
Questions & Answers

N.B. Algorithms are used everywhere and very early

in biology to simulate the process of natural
selection.
© 2014 Mikaël DONIKIAN

13
References
•
•
•
•
•
•
•
•
•
•
•

Donald E. Knuth, “The Art of Computer Programming Vol.1 Fundamental
Algorithms”, Addison Wesley, (3rd Ed.) 1997
http://www.software.ac.uk/blog/2011-04-14-coder-programmer-or-softwaredeveloper-spot-difference
http://www.ericsink.com/No_Programmers.html
Robert C. Martin, ‘’Clean Code’’, Pearson, 2009
http://www.topcoder.com/tc?d1=tutorials&d2=alg_index&module=Static
http://www.cut-the-knot.org/WhatIs/WhatIsAlgorithm.shtml
http://www.matrixlab-examples.com/algorithm-examples.html
http://www.quora.com/Programming-Interviews/What-are-fundamentals-youshould-know-before-a-technical-interview
http://www.careercampus.net/resources/programming_fundas.htm
http://en.wikipedia.org/wiki/Big_O_notation
http://en.wikipedia.org/wiki/Analysis_of_algorithms
© 2014 Mikaël DONIKIAN

14

Mais conteúdo relacionado

Semelhante a Better Developers

Job scheduling in a paint manufacturing company in benin city
Job scheduling in a paint manufacturing company in benin cityJob scheduling in a paint manufacturing company in benin city
Job scheduling in a paint manufacturing company in benin city
Alexander Decker
 
APznzaZSEwUJhKEim-rOA-Svk6nc1xZygCeBBAW4QZluPqM0dLSELK_S9YNDE8po44L2LgB6Is5VJ...
APznzaZSEwUJhKEim-rOA-Svk6nc1xZygCeBBAW4QZluPqM0dLSELK_S9YNDE8po44L2LgB6Is5VJ...APznzaZSEwUJhKEim-rOA-Svk6nc1xZygCeBBAW4QZluPqM0dLSELK_S9YNDE8po44L2LgB6Is5VJ...
APznzaZSEwUJhKEim-rOA-Svk6nc1xZygCeBBAW4QZluPqM0dLSELK_S9YNDE8po44L2LgB6Is5VJ...
SohamChatterjee47
 

Semelhante a Better Developers (20)

Ti1220 Lecture 1
Ti1220 Lecture 1Ti1220 Lecture 1
Ti1220 Lecture 1
 
Job scheduling in a paint manufacturing company in benin city
Job scheduling in a paint manufacturing company in benin cityJob scheduling in a paint manufacturing company in benin city
Job scheduling in a paint manufacturing company in benin city
 
Introduction to Deep Neural Network
Introduction to Deep Neural NetworkIntroduction to Deep Neural Network
Introduction to Deep Neural Network
 
From programming to software engineering: ICSE keynote slides available
From programming to software engineering: ICSE keynote slides availableFrom programming to software engineering: ICSE keynote slides available
From programming to software engineering: ICSE keynote slides available
 
Raising the Bar
Raising the BarRaising the Bar
Raising the Bar
 
The DevOps Journey in an Enterprise - DOES 2021
The DevOps Journey in an Enterprise - DOES 2021The DevOps Journey in an Enterprise - DOES 2021
The DevOps Journey in an Enterprise - DOES 2021
 
CocomoModels MGK .ppt
CocomoModels MGK .pptCocomoModels MGK .ppt
CocomoModels MGK .ppt
 
Kku2011
Kku2011Kku2011
Kku2011
 
Advanced Computer Architectures – Part 1
Advanced Computer Architectures – Part 1Advanced Computer Architectures – Part 1
Advanced Computer Architectures – Part 1
 
Symbexecsearch
SymbexecsearchSymbexecsearch
Symbexecsearch
 
Cse115 lecture02overviewofprogramming
Cse115 lecture02overviewofprogrammingCse115 lecture02overviewofprogramming
Cse115 lecture02overviewofprogramming
 
Mathematical Modeling for Practical Problems
Mathematical Modeling for Practical ProblemsMathematical Modeling for Practical Problems
Mathematical Modeling for Practical Problems
 
memory_allocation_use1.ppt
memory_allocation_use1.pptmemory_allocation_use1.ppt
memory_allocation_use1.ppt
 
Chapter One.pdf
Chapter One.pdfChapter One.pdf
Chapter One.pdf
 
CSE202.pptx
CSE202.pptxCSE202.pptx
CSE202.pptx
 
How to Speak the Language of Application Architecture
How to Speak the Language of Application ArchitectureHow to Speak the Language of Application Architecture
How to Speak the Language of Application Architecture
 
Code Refactoring
Code RefactoringCode Refactoring
Code Refactoring
 
The Language of Application Architecture
The Language of Application ArchitectureThe Language of Application Architecture
The Language of Application Architecture
 
APznzaZSEwUJhKEim-rOA-Svk6nc1xZygCeBBAW4QZluPqM0dLSELK_S9YNDE8po44L2LgB6Is5VJ...
APznzaZSEwUJhKEim-rOA-Svk6nc1xZygCeBBAW4QZluPqM0dLSELK_S9YNDE8po44L2LgB6Is5VJ...APznzaZSEwUJhKEim-rOA-Svk6nc1xZygCeBBAW4QZluPqM0dLSELK_S9YNDE8po44L2LgB6Is5VJ...
APznzaZSEwUJhKEim-rOA-Svk6nc1xZygCeBBAW4QZluPqM0dLSELK_S9YNDE8po44L2LgB6Is5VJ...
 
Beyond Data: Delivering Machine Translation with Subject Matter Expertise
Beyond Data: Delivering Machine Translation with Subject Matter ExpertiseBeyond Data: Delivering Machine Translation with Subject Matter Expertise
Beyond Data: Delivering Machine Translation with Subject Matter Expertise
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

Better Developers

  • 2. Introduction As a Developer you are mainly in charge of conception: Transform business functionalities into code. Had to deal with pieces of messy code before? © 2014 Mikaël DONIKIAN 2
  • 4. Definition: developer • The coder, the programmer and the developer • Tasks: – – – – – – – – Write code Spec documents Configuration management Code reviews Testing Automated tests Documentation Solving tough customer problems © 2014 Mikaël DONIKIAN 4
  • 5. Definition: Algorithm 1/2 • “An algorithm is a sequence of unambiguous instructions for solving a problem”[1] As it is supposed to be followed with pencil and paper. It is usually expressed in pseudo-code. • Algorithm comes from Al-Khowarazmi the mathematician who introduce around the year 825, the use of Hindu-Arabic numerals. • Some algorithm are intuitive as we can find them trough logical thinking but the most complex ones need to be learned so they can be used to improve the efficiency of problem solving. [1] A. Levitin, Introduction to The Design & Analysis of Algorithms , Addison-Wesley, 2003 © 2014 Mikaël DONIKIAN 5
  • 6. Definition: Algorithm 2/2 • Programming is the process of writing programs in a logical way. Programs are implementing algorithm. • Despite programs, algorithm are finite. © 2014 Mikaël DONIKIAN 6
  • 7. Common Algorithms • Shortest Path (Dijkstra, Graph theory, Trees …) • Binary Search • Merge, Quick, Insertion & Bubble Sort • • • • Collections Recursively Concurrency Graph theory (Trees…) © 2014 Mikaël DONIKIAN 7
  • 8. Complexity • Runtime analysis of an algorithm • Need to estimate the relative time cost of an algorithm (efficiency) • Big O notation: infinite approximation of infinite growth of a particular function in infinite asymptotic notation. © 2014 Mikaël DONIKIAN 8
  • 9. Complexity - Example • Given T(n) = 4n2 − 2n + 2 • As n grow large the term n2 will dominate therefore T(n)=O(n2) © 2014 Mikaël DONIKIAN 9
  • 10. Complexity - order of growth Notation Name O(1) Constant O(log n) Logarithmic O(n) Linear O(n log n) Linearithmic O(n2) Quadratic O(nc), c >1 Polynomial O(cn), c >1 Exponential O(n!) Factorial Big O cheat sheet can be found here: http://bigocheatsheet.com/ © 2014 Mikaël DONIKIAN 10
  • 11. Fibonacci Algorithm • Fn = Fn-1 + Fn-2 with seed value F0=0 and F1=1 • This is a recursive algorithm def fib(n): if n==0: return 0 elif n==1 return 1 Else return (fib(n-1)+fib(n-2)) © 2014 Mikaël DONIKIAN 11
  • 12. Bubble sort • Complexity O(n2) • This algorithm is not the best when “n” is very large • It compares in a list each pair of adjacent items and swap them if they are not in the right order. Every iteration, the last value is considered sorted and then the number of values checked is decreased by one. © 2014 Mikaël DONIKIAN 12
  • 13. Questions & Answers N.B. Algorithms are used everywhere and very early in biology to simulate the process of natural selection. © 2014 Mikaël DONIKIAN 13
  • 14. References • • • • • • • • • • • Donald E. Knuth, “The Art of Computer Programming Vol.1 Fundamental Algorithms”, Addison Wesley, (3rd Ed.) 1997 http://www.software.ac.uk/blog/2011-04-14-coder-programmer-or-softwaredeveloper-spot-difference http://www.ericsink.com/No_Programmers.html Robert C. Martin, ‘’Clean Code’’, Pearson, 2009 http://www.topcoder.com/tc?d1=tutorials&d2=alg_index&module=Static http://www.cut-the-knot.org/WhatIs/WhatIsAlgorithm.shtml http://www.matrixlab-examples.com/algorithm-examples.html http://www.quora.com/Programming-Interviews/What-are-fundamentals-youshould-know-before-a-technical-interview http://www.careercampus.net/resources/programming_fundas.htm http://en.wikipedia.org/wiki/Big_O_notation http://en.wikipedia.org/wiki/Analysis_of_algorithms © 2014 Mikaël DONIKIAN 14