Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Invited Talk (at the University of Warwick): The daily software engineering life - How to be prepared
Search
Martin Lippert
January 12, 2012
Technology
0
75
Invited Talk (at the University of Warwick): The daily software engineering life - How to be prepared
Martin Lippert
January 12, 2012
Tweet
Share
More Decks by Martin Lippert
See All by Martin Lippert
JUG Saxony Day 2023: Upgrade to Spring Boot 3? Spring Tools to the Rescue!
martinlippert
1
18
code.talks 2023: The Sustainability Mythbuster
martinlippert
0
32
Invited Talk at TU Dortmund
martinlippert
0
62
The Sustainability Mythbuster
martinlippert
0
33
JCON_ONLINE_2022__From_Zero_to_Spring_Boot_Hero_using_GitHub_Codespaces.pdf
martinlippert
0
26
Devoxx UK 2022: Sustainability in Software Engineering - Today and Tomorrow
martinlippert
0
110
Java Cro 2022: Bootiful Spring Tooling for the Masses
martinlippert
0
95
Sustainability in Software Engineering - How to make a difference
martinlippert
1
72
Sustainability in Software Engineering - How to make a difference
martinlippert
0
250
Other Decks in Technology
See All in Technology
日本が誇るイタリアのダンスミュージック!? ユーロビートって何??
minorun365
PRO
2
230
Domain-driven Design: A Complete Example
ewolff
2
260
個人的、Kubernetes の最新注目機能! (2024年5月版) / TechFeed Experts Night#28 〜 コンテナ技術最前線
pfn
PRO
3
210
パフォーマンス最適化のベストプラクティス
databricksjapan
0
210
Password cracking: past, present, future
openwall
0
280
20240509 CloudWatch でいろいろなものを監視してみよう
masaruogura
1
120
大規模言語モデル (LLM)における低精度数値表現
pfn
PRO
3
840
From here to resilience - a travel guide
ufried
1
160
Prisma ORMを2年運用して培ったノウハウを共有する
tockn
19
5.1k
LINEヤフーのウェブアクセシビリティ
lycorptech_jp
PRO
2
190
「できる!」を増やすGitHub Copilot活用法 / How to use GitHub Copilot to expand your possibilities
sansan_randd
1
240
Google Cloud Next '24 Recap in ZOZO AIにより変わる開発 運用/Development and operation changed by AI
gachimuchiengineer
0
200
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
321
23k
How GitHub Uses GitHub to Build GitHub
holman
468
290k
The Art of Programming - Codeland 2020
erikaheidi
43
12k
A better future with KSS
kneath
231
16k
Docker and Python
trallard
35
2.7k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
26
2.3k
We Have a Design System, Now What?
morganepeng
43
6.8k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
Writing Fast Ruby
sferik
622
60k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
14
1.5k
How to train your dragon (web standard)
notwaldorf
75
5.2k
Principles of Awesome APIs and How to Build Them.
keavy
121
16k
Transcript
The daily software engineering life - How to be prepared
- Martin Lippert, VMware
[email protected]
@martinlippert
Martin Lippert Lead of Spring Developer Tools at VMware Founder
of it-agile GmbH Developer, Architect, Coach, Technical Lead
- 1 - Software Engineering Fundamentals
Writing something that runs is easy Writing good software is
hard
Essential: Programming Languages Algorithms Data Structures
The „old“ parts: the difference between ArrayList and LinkedList? how
does a HashMap work? how does a relational database look like? The „new“ parts: how does MapReduce works? what about distributed and messaging systems? what are key/value stores, document and graph dbs?
O(n)
Concurrency is becoming more and more important
Deep understanding necessary e.g. Who knows how the Java Memory
Model works? What does „notify()“ mean? What is garbage collection? How does it affect my programming?
Parallelism is becoming more and more important
Different thinking necessary e.g. parallel vs. optimized non-parallel algorithms distribution
- latency - redundancy - fault tolerance
„comments lie - code doesn‘t“
Modularity Dependency Management remember? don‘t let your code look like
this...
SOLID principles Single responsibility principle Open/closed principle Liskov substitution principle
Interface segregation principle Dependency inversion principle http://en.wikipedia.org/wiki/SOLID_(object-oriented_design)
- 2 - Domain Driven Engineering
! Knowing the technology is essential - but it is
not enough
Is the software correct? But what does it mean? Correct?
You need to understand the domain, the problem, and the
context (the „why“)
Agile Software Development Extreme Programming Scrum Kanban - Inspect and
adapt -
- 3 - Daily Engineering
Working with existing code reading and understanding refactoring code regression
testing
Test-Driven Development Red - Green - Refactor
Programming in small steps for all kinds of problems
„What you don‘t ship doesn‘t exist“
Continuous... Integration Delivery Deployment
DevOps
must read...
Thank you very much! QA Martin Lippert
[email protected]
@martinlippert