×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
No content
Slide 2
Slide 2 text
$ cat .profile | grep export export GIT_AUTHOR="Florian Gilcher" export GIT_AUTHOR_EMAIL="
[email protected]
" export GITHUB_NICK="skade" export APP_NET_NICK="skade" export GITHUB_ORGANIZATIONS="asquera,padrino" export TWITTER_NICK="@argorak" export TM_COMPANY="Asquera GmbH"
Slide 3
Slide 3 text
http://asquera.de
Slide 4
Slide 4 text
“How did you learn all this?”
Slide 5
Slide 5 text
How do accomplished programmers foster their learning environment?
Slide 6
Slide 6 text
I decided to pass the question around.
Slide 7
Slide 7 text
How do you learn?
Slide 8
Slide 8 text
Whats your favourite trick?
Slide 9
Slide 9 text
Learning is a skill like any other.
Slide 10
Slide 10 text
It can be learned.
Slide 11
Slide 11 text
“I believe consistent, regular and hard work is a sure way to become better at a skill.” – Michal Taszycki, http://programmingworkout.com
Slide 12
Slide 12 text
Learning by doing.
Slide 13
Slide 13 text
Get into a habit!
Slide 14
Slide 14 text
-- clear the table DELETE * FROM table;
Slide 15
Slide 15 text
How much time does it take you to get back to a learning project from last week?
Slide 16
Slide 16 text
Anything above 1 minute is too much.
Slide 17
Slide 17 text
No need for an elaborate system.
Slide 18
Slide 18 text
Only one that works.
Slide 19
Slide 19 text
# purely for reading # and compiling src/ # things I actually work on Code/
Slide 20
Slide 20 text
After every major update, I make sure that everything compiles and works.
Slide 21
Slide 21 text
vagrant, ruby, java, Haskell Platform, TexLive, erlang, postgres VMs, Riak VMs, CouchDB VMs...
Slide 22
Slide 22 text
Setup time drags you down.
Slide 23
Slide 23 text
Find ways to make that possible for all kinds of things.
Slide 24
Slide 24 text
Be your own favourite ops guy.
Slide 25
Slide 25 text
“Its like going to the gym: I never go in the evening if I didn’t pack my things the day before.”
Slide 26
Slide 26 text
Now that we’re time-efficient, we still need the time.
Slide 27
Slide 27 text
Work and learning effort are completely different beasts, don’t mix them.
Slide 28
Slide 28 text
Work: time constraints, deadlines, product goals.
Slide 29
Slide 29 text
Learning: freeform, failure as default mode, no pressure.
Slide 30
Slide 30 text
Work-Life Balance
Slide 31
Slide 31 text
Work-
Slide 32
Slide 32 text
Work-Learn-
Slide 33
Slide 33 text
Work-Learn-Pastime Balance
Slide 34
Slide 34 text
Don’t allow anyone to control that balance.
Slide 35
Slide 35 text
“Learn the stuff you need for work at home.” –A former boss
Slide 36
Slide 36 text
Now that work is ruled out, where to look next?
Slide 37
Slide 37 text
“I got more conscious about how I consume media.”
Slide 38
Slide 38 text
“I started skipping things aggressively.”
Slide 39
Slide 39 text
Media consumption
Slide 40
Slide 40 text
Information epidemic?
Slide 41
Slide 41 text
TV, YouTube, Hacker News, Twitter, yourfavouriteblog
Slide 42
Slide 42 text
Get used to writing off things.
Slide 43
Slide 43 text
Game boring? Skip! TV show bad? Switch of the TV!
Slide 44
Slide 44 text
Don’t switch it on without knowing whats running in the first place.
Slide 45
Slide 45 text
The essence of focus is to do everything very consciously.
Slide 46
Slide 46 text
Superchargers
Slide 47
Slide 47 text
I. Vocabulary
Slide 48
Slide 48 text
“I read a lot of literature, but skip implementing for a while.”
Slide 49
Slide 49 text
It allows you to digest new material or read code.
Slide 50
Slide 50 text
It allows you to talk to people actually working on the described things.
Slide 51
Slide 51 text
Knowing your vocabs allows you to think about them.
Slide 52
Slide 52 text
It breaks your personal filter bubble.
Slide 53
Slide 53 text
II. A taste for quality
Slide 54
Slide 54 text
“Even when just messing around, I strictly apply all best practices I know.”
Slide 55
Slide 55 text
class Fuck def args 'bla' end end
Slide 56
Slide 56 text
class MyClass def foo 'bar' end end
Slide 57
Slide 57 text
“I don’t care, its just demo code.” – sadly, another former boss
Slide 58
Slide 58 text
If your code is messy, your brain is messy.
Slide 59
Slide 59 text
Keeping your code clean will get easier and easier with every time.
Slide 60
Slide 60 text
Its easier to show to other people and helps you communicate with peers
Slide 61
Slide 61 text
III. Learning Hydra
Slide 62
Slide 62 text
“I usually learn many things in parallel.”
Slide 63
Slide 63 text
Always have tasks of different interests and difficulty levels around.
Slide 64
Slide 64 text
Enlightment can strike at random.
Slide 65
Slide 65 text
“Free” time is learning time!
Slide 66
Slide 66 text
IV. Take huge strides
Slide 67
Slide 67 text
“When I want to learn a new technology, I always set an ambitious goal: the problems popping up along the way are part of the exercise.”
Slide 68
Slide 68 text
You get exposed to unpredicted problems.
Slide 69
Slide 69 text
GOOD!
Slide 70
Slide 70 text
Only planning small steps can make you wander off in the wrong direction.
Slide 71
Slide 71 text
V. Go nuts!
Slide 72
Slide 72 text
Build the mad things! For fun and no profit at all!
Slide 73
Slide 73 text
Can JRuby be embedded into JRuby?
Slide 74
Slide 74 text
Hell, yes!
Slide 75
Slide 75 text
It might yield a system where you have 2 different classes called “Object”...
Slide 76
Slide 76 text
... but you learn a lot about JRuby internals.
Slide 77
Slide 77 text
VI. Pass your knowledge along
Slide 78
Slide 78 text
“I’ve always helping others with my skills.”
Slide 79
Slide 79 text
Explaining to others exposes flaws in your own thinking.
Slide 80
Slide 80 text
You haven’t understood what you cannot explain.
Slide 81
Slide 81 text
Start answering questions on mailing lists, boards, twitter, stackoverflow.
Slide 82
Slide 82 text
But do it in a proper, detailed way.
Slide 83
Slide 83 text
VII.
Slide 84
Slide 84 text
Every once in a while...
Slide 85
Slide 85 text
Disconnect your ethernet cable
Slide 86
Slide 86 text
Disconnect your ethernet cable Disconnect your Wifi
Slide 87
Slide 87 text
Disconnect your ethernet cable Disconnect your Wifi Turn your phone in flight mode
Slide 88
Slide 88 text
VII. Go offline
Slide 89
Slide 89 text
It forces you to work with what you have.
Slide 90
Slide 90 text
It forces you to find solutions for what you don’t have by yourself.
Slide 91
Slide 91 text
Google == Training Wheels
Slide 92
Slide 92 text
Google is a great helper, but you should work without helpers once in a while.
Slide 93
Slide 93 text
Dodging the Meteor?
Slide 94
Slide 94 text
In 5 or 10 years, none of us will program like today.
Slide 95
Slide 95 text
I come from planet LAMP...
Slide 96
Slide 96 text
...which is now mostly empty.
Slide 97
Slide 97 text
What will hit Planet Ruby/Rails?
Slide 98
Slide 98 text
Haskell?
Slide 99
Slide 99 text
Clojure? Scala?
Slide 100
Slide 100 text
Be on the lookout!
Slide 101
Slide 101 text
Constant learning is the only thing that keeps you from becoming a dinosaur.
Slide 102
Slide 102 text
Google == Training Wheels
Slide 103
Slide 103 text
Big thanks to: @paulca, @aq, @johnashenfelter, @brennandunn, @ernestomiguez, @myabc, @febeling, @catimogen, @zebel, @Xylakant, @mmack, @bascht, @wikimatze, @cypher, @mehowte
Slide 104
Slide 104 text
No content