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
73
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
29
Invited Talk at TU Dortmund
martinlippert
0
59
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
94
Sustainability in Software Engineering - How to make a difference
martinlippert
1
70
Sustainability in Software Engineering - How to make a difference
martinlippert
0
250
Other Decks in Technology
See All in Technology
Tellus の衛星データを見てみよう #mf_fukuoka
kongmingstrap
0
270
.NET Profiler in 2024.
kkamegawa
2
1.1k
Babylon.js JAPAN活動紹介 (2024/4)
limes2018
1
110
Gradle Build Scanを使ってビルドのことを知ろう potatotips #87
tomorrowkey
2
150
AWS学習者向けにAzureの解説スライドを作成した話
handy
3
190
Rustで「プリズモイダル法」を利用して「土量計算」をガチでやる
nokonoko1203
1
290
Grafana x PagerDuty Better Together
jacopen
1
250
Max out Local LLM in Challenging Environments
sashimimochi
1
100
Android Target SDK 35 (Android 15) 対応の概要
akkie76
0
150
Babylon.jsと色々なものを組み合わせる:ブラウザのAPIやガジェットや2D描画ライブラリなど / Babylon.js 勉強会 vol.3
you
PRO
0
160
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
2.1k
Além do else! Categorizando Pokemóns com Pattern Matching no JavaScript
wmsbill
0
700
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
217
8.6k
Embracing the Ebb and Flow
colly
80
4.2k
Adopting Sorbet at Scale
ufuk
69
8.6k
Facilitating Awesome Meetings
lara
43
5.6k
How STYLIGHT went responsive
nonsquared
92
4.8k
Clear Off the Table
cherdarchuk
85
310k
Scaling GitHub
holman
457
140k
Building Better People: How to give real-time feedback that sticks.
wjessup
356
18k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.1k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
26
2.3k
Unsuck your backbone
ammeep
663
57k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
79
43k
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