SlideShare a Scribd company logo
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

More Related Content

PPTX
Function point analysis
PDF
How to solve Ramanujan's problem by numerical method 1
PDF
VTU CBCS E&C 5th sem Information theory and coding(15EC54) Module -4 notes
PDF
VTU E&C,TCE CBCS[NEW] 5th Sem Information Theory and Coding Module-4 notes(15...
PDF
VTU E&C,TCE CBCS[NEW] 5th Sem Information Theory and Coding Module-5 notes(15...
PDF
VTU CBCS E&C 5th sem Information theory and coding(15EC54) Module -5 notes
PDF
Weekly report 8
PPT
Trivial Java Second
Function point analysis
How to solve Ramanujan's problem by numerical method 1
VTU CBCS E&C 5th sem Information theory and coding(15EC54) Module -4 notes
VTU E&C,TCE CBCS[NEW] 5th Sem Information Theory and Coding Module-4 notes(15...
VTU E&C,TCE CBCS[NEW] 5th Sem Information Theory and Coding Module-5 notes(15...
VTU CBCS E&C 5th sem Information theory and coding(15EC54) Module -5 notes
Weekly report 8
Trivial Java Second

Similar to Better Developers (20)

PPT
Problem Solving Techniques notes for Unit 1
PPT
Types of Algorithms.ppt
PDF
Lecture 2 role of algorithms in computing
PDF
Algorithms notesforprofessionals
PDF
Algorithms notes for professionals
PPTX
1. Solving a Problem With a Computer.pptx
PDF
Data Structure - Lecture 1 - Introduction.pdf
PDF
Algorithms overview
PDF
Design and Analysis Algorithms.pdf
PPTX
L1_Start_of_Learning_of_Algorithms_Basics.pptx
PPTX
Algorithm and flowchart with pseudo code
PPTX
Data Structure and Algorithms.pptx
PPTX
Class[1][23ed may] [algorithms]
PPT
Lecture01 algorithm analysis
PDF
Algorithm.pdf
PDF
Algorithms notes for professionals
PPTX
Chapter 1 - Algorithm Analysis & Design 2021
PPTX
Algorithm in data structure bca .pptx
PPTX
Ch1Levitin.pptx una presentacion muy ilustrativa
PPTX
L1_DatabAlgorithm Basics with Design & Analysis.pptx
Problem Solving Techniques notes for Unit 1
Types of Algorithms.ppt
Lecture 2 role of algorithms in computing
Algorithms notesforprofessionals
Algorithms notes for professionals
1. Solving a Problem With a Computer.pptx
Data Structure - Lecture 1 - Introduction.pdf
Algorithms overview
Design and Analysis Algorithms.pdf
L1_Start_of_Learning_of_Algorithms_Basics.pptx
Algorithm and flowchart with pseudo code
Data Structure and Algorithms.pptx
Class[1][23ed may] [algorithms]
Lecture01 algorithm analysis
Algorithm.pdf
Algorithms notes for professionals
Chapter 1 - Algorithm Analysis & Design 2021
Algorithm in data structure bca .pptx
Ch1Levitin.pptx una presentacion muy ilustrativa
L1_DatabAlgorithm Basics with Design & Analysis.pptx
Ad

Recently uploaded (20)

PDF
Electronic commerce courselecture one. Pdf
PDF
Approach and Philosophy of On baking technology
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
cuic standard and advanced reporting.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
Tartificialntelligence_presentation.pptx
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
A Presentation on Artificial Intelligence
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
Electronic commerce courselecture one. Pdf
Approach and Philosophy of On baking technology
Mobile App Security Testing_ A Comprehensive Guide.pdf
Encapsulation_ Review paper, used for researhc scholars
Per capita expenditure prediction using model stacking based on satellite ima...
cuic standard and advanced reporting.pdf
Unlocking AI with Model Context Protocol (MCP)
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Group 1 Presentation -Planning and Decision Making .pptx
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Programs and apps: productivity, graphics, security and other tools
The Rise and Fall of 3GPP – Time for a Sabbatical?
Reach Out and Touch Someone: Haptics and Empathic Computing
Tartificialntelligence_presentation.pptx
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Spectral efficient network and resource selection model in 5G networks
Dropbox Q2 2025 Financial Results & Investor Presentation
A Presentation on Artificial Intelligence
20250228 LYD VKU AI Blended-Learning.pptx
Ad

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