Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Passing down the pain. (eurucamp 2015)
Search
Ivan Zarea
August 01, 2015
Education
54
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Passing down the pain. (eurucamp 2015)
The talk I gave at Eurucamp 2015.
http://2015.eurucamp.org/
Ivan Zarea
August 01, 2015
More Decks by Ivan Zarea
See All by Ivan Zarea
History of Computer Science 2015 Lecture 2
minivan
0
51
History of Computer Science 2015 Lecture 1
minivan
2
150
JS Meetup Chișinău #1
minivan
1
120
Useless Programming
minivan
3
160
Other Decks in Education
See All in Education
DRUGS ACTING ON THE PERIPHERAL NERVOUS SYSTEM
pawan_pharm
0
220
Introduction - Lecture 1 - Web Technologies (1019888BNR)
signer
PRO
0
6.6k
Sekolah Sabat - Triwulan 4 2026 - Pelajaran 4
hiola
0
7.3k
Digijulkaisut
matleenalaakso
1
10k
【ホスト用】ainiチャット操作ガイド
ainischool
0
140
HTTP APIs in Python
madhuri28
0
110
JavaScript - Lecture 6 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
GENERAL PHARMACOLOGY
pawan_pharm
0
240
Introduction - Lecture 1 - Human-Computer Interaction (1023841ANR)
signer
PRO
0
3.5k
EL GEOPARQUE MUNDIAL UNESCO VOLCANES DE CALATRAVA: DE LA INVESTIGACIÓN CIENTÍFICA A LA TRANSPOSICIÓN DIDÁCTICA EN EL AULA
juanmartin2026
0
58k
[2026後期火5] 論理学(京都大学文学部 後期 第2回)「量化子の導入」
yatabe
0
220
新型コロナ禍をともに「楽しみながら開いていこう!」 :中門 吉松 会員(2720 Japan O.K.ロータリーEクラブ)卓話 : 2026.10.19.例会・卓話
2720japanoke
0
710
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.2k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Docker and Python
trallard
47
4.2k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
650
Believing is Seeing
oripsolob
1
260
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3.1k
RailsConf 2023
tenderlove
30
1.6k
WENDY [Excerpt]
tessaabrams
14
40k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.3k
Transcript
Passing down the pain Difficulties in teaching software development Ivan
Zarea Technical University of Moldova @minivaaan 2015
0. Context Maxim Chumash / chumash.us
Outsourcing • Good salaries • Low barrier to entry •
Studying for the wrong purpose • Students don’t come to classes
Switch the focus • Do not punish bad performers •
Provide incentive to study • Immediately applicable • Identify what’s important for the industry
Things to teach • Skills • Values • Fun }
important for the industry
1. Skills
What skills do I want my future teammate to have?
• Read source code • Debug • Choose tools
1.1. Reading source code • Live code in classes •
Engage everyone • Give source code with assignments • Show actual code to illustrate a concept
None
1.1. Example: youtube-dl • Read the documentation • See how
to extend youtube-dl • See the Strategy Pattern in action!
1.2. Debugging 9,223,372,036,854,776,000
1.2. Debugging • A relatable & engaging context • Debugging
as a whole • Googling skill is a byproduct
1.3. Tool choice • Help students choose a tool •
Remove the risk from the choice process • Make sure the arguments are sound
None
Skills I want my future teammate to have • Read
source code • Debug and google • Choose tools
2. Values
What values do I want my future teammate to have?
• Appreciate constant progress • Concepts over code • Own the code (design for change)
2.1. Constant progress • Value of TDD • Program with
existing code and tests • Program without code, but with tests • Write tests, too!
2.1. Example: Query Builder
2.2. Concepts over code public class Logger { private static
Logger instance = new Logger(); private Logger(){} public static SingleObject getInstance(){ return instance; } } require "singleton" class Logger include Singleton end
2.2. Concepts over code • Prefer concepts and discussions to
implementations • Be frank about the fact that it’s hard • Try not to introduce concepts to everyone • Restrict choice to unfamiliar platforms
2.3. Own your code • Design for change • Build
bigger projects during the course • Maintenance is reward • Feel the pain
2.3. Example: Markdown • Write a Markdown (subset) parser •
Know that there will be changes to the requirements • Receive changes, update your code
Values I want my future teammate to have • Appreciate
constant progress • Concepts over code • Own the code (design for change)
3. Fun
3. Add Silliness & Humor • Integrate a chinchilla in
the teaching process • The chinchilla wrote a bad dating app • You have to optimize it • That means looking at a lot of chinchillas
None
None
None
None
Things to teach • Skills • Values • Fun •
The spirit
spirit hacker • Take things apart, put them back •
Display curiosity • Encounter issues • Hack teaching The
Teach hacking & Hack teaching @minivaaan 2015