86
How to become a hacker? (In the 21st century)

How to Become a Hacker?

Embed Size (px)

Citation preview

How to become a hacker?(In the 21st century)

Probably you're (just) a geek.

But you want more, right?

Story #1

Lesson #1: Prepare for a long trip.

Story #2

Lesson #2: Find mentors.

Story #3

Lesson #3: Distinguish yourself.

Story #4

https://vimeo.com/22798433

Lesson #4: Go interactive.

Story #5

Lesson #5: Hold your hands.

Story #6

Lesson #6: Play (don't comment).

Story #7

https://www.youtube.com/watch?v=N6HCOGj1lNI

Lesson #7: Start now.

Lesson #8: Restart often.

...

Yet another story

Bad news: your boss will not be your mentor.

Good news: your hacking mentors are alive!

That's probably why you want to be a hacker.

The virtuous circle

and the dangerous triangle

(Three inspiring hackers)

It's hard to be both patient and enthusiastic

It's hard to be both patient and enthusiastic

It's hard to be both enthusiastic and smart

It's hard to be both patient and enthusiastic

It's hard to be both enthusiastic and smart

It's hard to be both smart and patient

It's hard to be both patient and enthusiastic

It's hard to be both enthusiastic and smart

It's hard to be both smart and patient

Do your best!

It's hard to be both patient and enthusiastic

It's hard to be both enthusiastic and smart

It's hard to be both smart and patient

Do your best!

(When dealing with yourself and with others.)

We are more powerful but more impatient.

...

Hands on!

Fix your email setup(Demo Gnus)

Marry your text editor(Demo GNU Emacs)

Master your versioning system(Demo Git/magit)

Have a TODO list system(Demo Emacs Org-mode)

Learn how to make a bug report(Demo bad and good reports)

Scratch your own itch(Start small)

Scratch other people's itches(Start small)

Pick up a programming language(Can't really help on this)

Understand users' environments(Demo)

Learn how to test(Demo)

Learn how to read/write english(Demo)

Postel's law & robustness principle:

"Be conservative in what you do...

...be liberal in what you accept from others"

...

A typical free software project

• A website

• .zip/.tar.gz files to install

• Discussion list(s) and IRC channel(s)

• Documentation

• A publicly accessible repository

• A Bug tracker

• A Community

• An ecosystem (distribs, forks, [up|down]stream)

Example: GNU Emacs

...

Hands off!

Get a computing culture(Write... and read)

Get a free software culture(Read... and write)

"Computer criticism"(Seymour Papert)

"Learnable programming"(Brett Victor)

Thanks!

Bastien Guerry

Jan. 18th 2012

[email protected]

http://lumiere.ens.fr/~guerry/

(Bonus tracks)

How To Become a Hackerby Eric S. Raymond

http://www.catb.org/esr/faqs/hacker-howto.html

Growing the Org-mode community

• Community documentation (Worg)

• A mailing list for both users and developers

• No roadmap

• No separate bug tracker (we use the mailing list)

• Attract great power users

• Give as much freedom to users as you can

The thrill of collaborating

Free software and innovation

Krzysztof Klincewicz, Innovativeness of open source software projects, August 11, 2005

Free Software history

• 1983: Richard Stallman starts the GNU project

• 1984: RMS starts the Free Software Foundation

• 1985: First free software license for GNU Emacs

• 1989: GNU GPL v1.0 (v2.0 in 1991)

• 1992: Linus publishes Linux under GPLv2

• 1998: Project Mozilla kicks off

• 2001: Wikipedia and Creative Commons kick off

• 2002: Release of Firefox 1.0

• 2005: First release of Git

• 2007: GPL v3.0 and CC v3.0

Free licenses history

• 1989 : GPLv1

• 1991 : GPLv2

• 1999 : BSD

• 2001 : CC fondé

• 2002 : CC v1

• 2004 : CC v2

• 2005 : CC v2.5

• 2007 : GPLv3 et CCv3

• 2009 : Lancement CC0

When you are a teenager, alone with a (programmable)computer, the universe is alive with infinite possibilities. You area god. Master of all you survey. Then you go to school, major in"Computer Science", graduate – and off to the salt mines withyou, where you will stitch silk purses out of sow’s ears in somebraindead language, building on the braindead systems createdby your predecessors, for the rest of your working life. There willbe little room for serious, deep creativity. You will be constrainedby the will of your master (whether the proverbial "pointy-hairedboss", or lemming-hordes of fickle startup customers) and by thelimitations of the many poorly-designed systems you will useonce you no longer have an unconstrained choice of task andmedium.

Engelhart’s violin, http://www.loper-os.org/?p=861

Software Engineer to join its close-knit, agileengineering team Candidates must be intellectuallycurious, self-driven, highly motivated andproductive. They must be problem-solvers, who arepassionate about shipping code, and buildingrobust and scalable Internet applications.

Wait!... maybe your boss will be a hacker too?

~$ cd me/; git shortlog

• 1986 : Some programming in LOGO and BASIC

• 1984-1992 : Playing LEGO

• 1995-2003 : Philosophy and cognitive sciences

• 1998- .... : Free Software hacktivist

• 2007- .... : Learning tomorrow (Book)

• 2008- .... : One Laptop Per Child France

• 2010-2011 : Wikimédia France

• 2010- .... : Emacs Org-mode maintainer