SlideShare une entreprise Scribd logo
1  sur  18
Core Tools and Concepts of
Today's IT Industry
Or what you should look into before getting your first IT job, if you don't want to
spend your first 6 months dealing with a very steep learning curve
A little about me
● Samuel Durand
○ French, developer, hiker and food lover
● Graduated in Software Engineering at the University of Belfort (France) in 2014
● 5 years of experience in software engineering
○ 4 years at Cake Solutions (acquired by Disney in 2017)
○ 1½ year at Equal Experts
● Contributed to a large variety of projects
○ Moneysupermarket / Disney / Co-op / HMRC / Very ...
○ Java / Scala / JS / Typescript / Python, C# ...
○ Variety of roles: developer / devops* / qa* / full-stack consultant
What we will talk about
Software development tools
● Version control systems
● Testing and TDD
● Code metrics & checking tools
● Coding languages worth trying
● Development environments
Architecture and key notions
● Cloud hosting
● Docker and Containers
● CI/CD
● Personal projects
Version control systems
Designed to keep track of any and all changes done to the source code
● Essential to any project based on programming code
● Allows team members to work on several features at once without hidden risk of interference
● Supports both local and remote repository
GIT: the swiss knife
of version control
● The most popular by far
● Rich in features (10% only used everyday)
● Uses branches (especially useful for large teams)
● Widely supported
● Changes recorded locally and remotely at once
● 90% of open source projects use it
Automated Testing
● Never deploy to prod without writing tests
○ Find bugs before production
○ Maintainability
○ Confidence when changing things
● Multiple type of tests
○ Unit tests
○ Integration tests
○ Acceptance/Functional tests
○ End to End testing
○ Architecture deployment tests
● There is no "one-size-fits-all" strategy
● TDD: Test Driven Development
Code metrics
Code style checkers
● Enforce a coding standard
● Avoid some type of bugs
● Keep the code clean
● Teaches you good practices
Code coverage
● Percentage of code covered by tests
● Helps to find missing tests
● Possible to get a visual overview
Programming languages
Try as many languages as you can:
● Compilable, transpilable, translatable...
● Typeful or typeless
● Object oriented or functional
● Each have some unique particularities
● Different approaches and perspectives
Here is a good list to start with:
● Java: OO and widely used
● Scala: OO + FP and typesafe
● JS: total freedom (too much ?)
● Kotlin: the rising star
● C#: Microsoft .NET
● Python: data processing
● Clojure: prefix syntax (the new Lisp)
● Go: the new C
● Bash: still not dead… a must for Linux
IDEs: Integrated Development Environments
VS Code
● Still young but promising
● Wealth of plugins
● Entirely free
Visual Studio
● Preferred choice for C#, F#, .NET
● Powerful shortcuts
● Very stable and reliable tools
Intellij
● Currently the best for Java/Scala
● Variants exists for other languages
● Free community version
Cloud hosting
It's probably what that devops guy was talking about this morning, with foreign words and acronyms...
Many options, all similar, all worth exploring…. and it's free ! (maybe even get a certification ?)
Docker: The very popular blue whale
● The most popular alternative to virtual machines
● Manages app wrappers called containers
● Used in almost every company, in one form or another
● Great tool both for development and production
CI/CD: Continuous Integration & Deployment
Personal projects
Not every jobs will give you the chance to learn a lot of new tech, or experiment.
The solution ? Create some personal projects !
● Gives you the chance to experiment
● Can be made valuable on a CV if you build something that is used by people
● Most paid tools are free to use for personal development (including online deployment)
● Should be as far as possible from what you do on a daily basis
○ Forces your brain to stretch in different directions
○ If based on a concrete goal can be financially rewarding
○ If not, then it will provide some relaxation and satisfaction
● You need a single core programming language, from there you can learn anything
● Books about coding or frameworks are a waste of money, focus instead on patterns and techniques
● Staying in the same company in the same position for more than 4 years is bad (in most cases)
● If you are given the chance to work on something you are uncomfortable with, take it !
● Choose a small set of techs and keep up to date with its latest news and updates
My personal opinion on some stuff
You don't need to know
everything !
The essential is to know that something is possible, be able to name the concept,
and then have the skills required to search for it in any given tech
What to take away from this talk...
Email: samudurand@gmail.com
Github: https://github.com/samudurand
Linkedin https://www.linkedin.com/in/samuel-durand-8300ba4a
How to contact me

Contenu connexe

Tendances

Technology Tools for Formative Assessment
Technology Tools for Formative AssessmentTechnology Tools for Formative Assessment
Technology Tools for Formative Assessment
Krista Leh
 
Technology Tools for Formative Assessment
Technology Tools for Formative AssessmentTechnology Tools for Formative Assessment
Technology Tools for Formative Assessment
Krista Leh
 
1.1. course introduction
1.1. course introduction1.1. course introduction
1.1. course introduction
Nicholas Wong
 

Tendances (6)

Technology Tools for Formative Assessment
Technology Tools for Formative AssessmentTechnology Tools for Formative Assessment
Technology Tools for Formative Assessment
 
Technology Tools for Formative Assessment
Technology Tools for Formative AssessmentTechnology Tools for Formative Assessment
Technology Tools for Formative Assessment
 
Truly agile company
Truly agile companyTruly agile company
Truly agile company
 
1.1. course introduction
1.1. course introduction1.1. course introduction
1.1. course introduction
 
Technical testing evaluated
Technical testing evaluatedTechnical testing evaluated
Technical testing evaluated
 
How to become a developer
How to become a developerHow to become a developer
How to become a developer
 

Similaire à The essentials of the IT industry or What I wish I was taught about at University

MLOps for production-level machine learning
MLOps for production-level machine learningMLOps for production-level machine learning
MLOps for production-level machine learning
cnvrg.io AI OS - Hands-on ML Workshops
 

Similaire à The essentials of the IT industry or What I wish I was taught about at University (20)

Kickstarting career as an Android developer.pdf
Kickstarting career as an Android developer.pdfKickstarting career as an Android developer.pdf
Kickstarting career as an Android developer.pdf
 
LET'S TALK ANDROID Dev
LET'S TALK ANDROID DevLET'S TALK ANDROID Dev
LET'S TALK ANDROID Dev
 
Picking the right architecture and sticking to it
Picking the right architecture and sticking to itPicking the right architecture and sticking to it
Picking the right architecture and sticking to it
 
Agile work practices and tools
Agile work practices and toolsAgile work practices and tools
Agile work practices and tools
 
How to become Industry ready engineers.pdf
How to become  Industry ready engineers.pdfHow to become  Industry ready engineers.pdf
How to become Industry ready engineers.pdf
 
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
 
Software Engineering Primer
Software Engineering PrimerSoftware Engineering Primer
Software Engineering Primer
 
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)
 
It's XP Stupid (2019)
It's XP Stupid (2019)It's XP Stupid (2019)
It's XP Stupid (2019)
 
It's XP, Stupid
It's XP, StupidIt's XP, Stupid
It's XP, Stupid
 
Developing Better Software
Developing Better SoftwareDeveloping Better Software
Developing Better Software
 
Agile Development: Key to smart software development
Agile Development: Key to smart software developmentAgile Development: Key to smart software development
Agile Development: Key to smart software development
 
2024.04 - AI in Code Generation - April User Group Meeting
2024.04 - AI in Code Generation - April User Group Meeting2024.04 - AI in Code Generation - April User Group Meeting
2024.04 - AI in Code Generation - April User Group Meeting
 
Standing out as a new grad candidate
Standing out as a new grad candidateStanding out as a new grad candidate
Standing out as a new grad candidate
 
What is xp
What is xpWhat is xp
What is xp
 
MLOps for production-level machine learning
MLOps for production-level machine learningMLOps for production-level machine learning
MLOps for production-level machine learning
 
How to code in the XXI century without losing your head
How to code in the XXI century without losing your headHow to code in the XXI century without losing your head
How to code in the XXI century without losing your head
 
Salesforce DevOps: Where Do You Start?
Salesforce DevOps: Where Do You Start?Salesforce DevOps: Where Do You Start?
Salesforce DevOps: Where Do You Start?
 
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
 
Life in CSE.pptx
Life in CSE.pptxLife in CSE.pptx
Life in CSE.pptx
 

Plus de Equal Experts

A Whole Team Approach to Quality in Continuous Delivery - Lisa Crispin
A Whole Team Approach to Quality in Continuous Delivery - Lisa CrispinA Whole Team Approach to Quality in Continuous Delivery - Lisa Crispin
A Whole Team Approach to Quality in Continuous Delivery - Lisa Crispin
Equal Experts
 

Plus de Equal Experts (20)

TRUST Framework Talk 2023-03-10.pptx
TRUST Framework Talk 2023-03-10.pptxTRUST Framework Talk 2023-03-10.pptx
TRUST Framework Talk 2023-03-10.pptx
 
Will it matter if your child cannot code?
Will it matter if your child cannot code?Will it matter if your child cannot code?
Will it matter if your child cannot code?
 
Platform Security IRL: Busting Buzzwords & Building Better
Platform Security IRL:  Busting Buzzwords & Building BetterPlatform Security IRL:  Busting Buzzwords & Building Better
Platform Security IRL: Busting Buzzwords & Building Better
 
Software development practices & Infrastructure as Code - how well do they wo...
Software development practices & Infrastructure as Code - how well do they wo...Software development practices & Infrastructure as Code - how well do they wo...
Software development practices & Infrastructure as Code - how well do they wo...
 
A Whole Team Approach to Quality in Continuous Delivery - Lisa Crispin
A Whole Team Approach to Quality in Continuous Delivery - Lisa CrispinA Whole Team Approach to Quality in Continuous Delivery - Lisa Crispin
A Whole Team Approach to Quality in Continuous Delivery - Lisa Crispin
 
Secure Continuous Delivery
Secure Continuous DeliverySecure Continuous Delivery
Secure Continuous Delivery
 
Smoothing the continuous delivery path a tale of two architectures - expert...
Smoothing the continuous delivery path   a tale of two architectures - expert...Smoothing the continuous delivery path   a tale of two architectures - expert...
Smoothing the continuous delivery path a tale of two architectures - expert...
 
Embracing collaborative chaos (April 2020) by Lyndsay Prewer
Embracing collaborative chaos (April 2020) by Lyndsay PrewerEmbracing collaborative chaos (April 2020) by Lyndsay Prewer
Embracing collaborative chaos (April 2020) by Lyndsay Prewer
 
Design Systems: Designing out Waste, Designing in Consistency
Design Systems: Designing out Waste, Designing in ConsistencyDesign Systems: Designing out Waste, Designing in Consistency
Design Systems: Designing out Waste, Designing in Consistency
 
Growing Together - software development in the Developing world
Growing Together - software development in the Developing worldGrowing Together - software development in the Developing world
Growing Together - software development in the Developing world
 
Infrastructure - a journey from datacentres to cloud
Infrastructure - a journey from datacentres to cloudInfrastructure - a journey from datacentres to cloud
Infrastructure - a journey from datacentres to cloud
 
Data Science In Action: Prenatal Screening for Down Syndrome
Data Science In Action: Prenatal Screening for Down SyndromeData Science In Action: Prenatal Screening for Down Syndrome
Data Science In Action: Prenatal Screening for Down Syndrome
 
Secrets of an agile transformation
Secrets of an agile transformationSecrets of an agile transformation
Secrets of an agile transformation
 
Obstacles of Digital Transformation Evolution
Obstacles of Digital Transformation EvolutionObstacles of Digital Transformation Evolution
Obstacles of Digital Transformation Evolution
 
Avoiding the security brick
Avoiding the security brickAvoiding the security brick
Avoiding the security brick
 
Embracing collaborative chaos
Embracing collaborative chaosEmbracing collaborative chaos
Embracing collaborative chaos
 
Continuous Security
Continuous SecurityContinuous Security
Continuous Security
 
Organising for Continuous Delivery
Organising for Continuous DeliveryOrganising for Continuous Delivery
Organising for Continuous Delivery
 
Cracking passwords via common topologies
Cracking passwords via common topologiesCracking passwords via common topologies
Cracking passwords via common topologies
 
Inception Phases - Handling Complexity
Inception Phases - Handling ComplexityInception Phases - Handling Complexity
Inception Phases - Handling Complexity
 

Dernier

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Dernier (20)

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...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
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
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
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
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 

The essentials of the IT industry or What I wish I was taught about at University

  • 1. Core Tools and Concepts of Today's IT Industry Or what you should look into before getting your first IT job, if you don't want to spend your first 6 months dealing with a very steep learning curve
  • 2. A little about me ● Samuel Durand ○ French, developer, hiker and food lover ● Graduated in Software Engineering at the University of Belfort (France) in 2014 ● 5 years of experience in software engineering ○ 4 years at Cake Solutions (acquired by Disney in 2017) ○ 1½ year at Equal Experts ● Contributed to a large variety of projects ○ Moneysupermarket / Disney / Co-op / HMRC / Very ... ○ Java / Scala / JS / Typescript / Python, C# ... ○ Variety of roles: developer / devops* / qa* / full-stack consultant
  • 3. What we will talk about Software development tools ● Version control systems ● Testing and TDD ● Code metrics & checking tools ● Coding languages worth trying ● Development environments Architecture and key notions ● Cloud hosting ● Docker and Containers ● CI/CD ● Personal projects
  • 4.
  • 5. Version control systems Designed to keep track of any and all changes done to the source code ● Essential to any project based on programming code ● Allows team members to work on several features at once without hidden risk of interference ● Supports both local and remote repository
  • 6. GIT: the swiss knife of version control ● The most popular by far ● Rich in features (10% only used everyday) ● Uses branches (especially useful for large teams) ● Widely supported ● Changes recorded locally and remotely at once ● 90% of open source projects use it
  • 7. Automated Testing ● Never deploy to prod without writing tests ○ Find bugs before production ○ Maintainability ○ Confidence when changing things ● Multiple type of tests ○ Unit tests ○ Integration tests ○ Acceptance/Functional tests ○ End to End testing ○ Architecture deployment tests ● There is no "one-size-fits-all" strategy ● TDD: Test Driven Development
  • 8. Code metrics Code style checkers ● Enforce a coding standard ● Avoid some type of bugs ● Keep the code clean ● Teaches you good practices Code coverage ● Percentage of code covered by tests ● Helps to find missing tests ● Possible to get a visual overview
  • 9. Programming languages Try as many languages as you can: ● Compilable, transpilable, translatable... ● Typeful or typeless ● Object oriented or functional ● Each have some unique particularities ● Different approaches and perspectives Here is a good list to start with: ● Java: OO and widely used ● Scala: OO + FP and typesafe ● JS: total freedom (too much ?) ● Kotlin: the rising star ● C#: Microsoft .NET ● Python: data processing ● Clojure: prefix syntax (the new Lisp) ● Go: the new C ● Bash: still not dead… a must for Linux
  • 10. IDEs: Integrated Development Environments VS Code ● Still young but promising ● Wealth of plugins ● Entirely free Visual Studio ● Preferred choice for C#, F#, .NET ● Powerful shortcuts ● Very stable and reliable tools Intellij ● Currently the best for Java/Scala ● Variants exists for other languages ● Free community version
  • 11.
  • 12. Cloud hosting It's probably what that devops guy was talking about this morning, with foreign words and acronyms... Many options, all similar, all worth exploring…. and it's free ! (maybe even get a certification ?)
  • 13. Docker: The very popular blue whale ● The most popular alternative to virtual machines ● Manages app wrappers called containers ● Used in almost every company, in one form or another ● Great tool both for development and production
  • 15. Personal projects Not every jobs will give you the chance to learn a lot of new tech, or experiment. The solution ? Create some personal projects ! ● Gives you the chance to experiment ● Can be made valuable on a CV if you build something that is used by people ● Most paid tools are free to use for personal development (including online deployment) ● Should be as far as possible from what you do on a daily basis ○ Forces your brain to stretch in different directions ○ If based on a concrete goal can be financially rewarding ○ If not, then it will provide some relaxation and satisfaction
  • 16. ● You need a single core programming language, from there you can learn anything ● Books about coding or frameworks are a waste of money, focus instead on patterns and techniques ● Staying in the same company in the same position for more than 4 years is bad (in most cases) ● If you are given the chance to work on something you are uncomfortable with, take it ! ● Choose a small set of techs and keep up to date with its latest news and updates My personal opinion on some stuff
  • 17. You don't need to know everything ! The essential is to know that something is possible, be able to name the concept, and then have the skills required to search for it in any given tech What to take away from this talk...
  • 18. Email: samudurand@gmail.com Github: https://github.com/samudurand Linkedin https://www.linkedin.com/in/samuel-durand-8300ba4a How to contact me