SlideShare a Scribd company logo
How to Be A Real
Developer
In Two Easy Steps
About Me
• Didn’t go to Cogwarts
I didn’t go the fancy academy of computer scenery
About Me
• Didn’t go to Cogwarts
• Haven’t been hacking since
birth
We had computers at home, but mostly used them to play Carmen Sandiego and write stories about dragons, not for hacking the mainframes.
About Me
• Didn’t go to Cogwarts
• Haven’t been hacking since
birth
• Started programming
accidentally
I actually didn’t start programming until just a few years ago, and I started doing it accidentally: I had a boring job, and to pass the time I started tweaking my PC
desktop. I started using little widgets for application launchers or desktop notepads, and occasionally, I’d open up the little text files with instructions and change some
of the instructions to do something else. Or sometimes, I’d just start a new text file of instructions to make a whole new thing. 

Apparently, that’s programming.
About Me
• Didn’t go to Cogwarts
• Haven’t been hacking since
birth
• Started programming
accidentally
• Went to a web dev bootcamp
Kind of a long story from there, but…I taught myself HTML and CSS and fastforward a few years, and I decide to attend a web development bootcamp, where I learned
Ruby, Ruby on Rails, JS…
About Me
• Didn’t go to Cogwarts
• Haven’t been hacking since
birth
• Started programming
accidentally
• Went to a web dev bootcamp
• Became an apprentice at
Detroit Labs last March
Then, last year I joined DL’s first apprentice class. And I did pretty well, and graduated and became a full-time dev, and then we got a new apprentice class and I was
talking to Kate Catlin right in that kitchen and telling her about my experience, and she said…
“When did you start to
feel like a
real developer?”
…and I laughed at her, because c’mon now. I’m not a REAL developer, not yet. 

And that bothered me. I mean, I work with all these awesome smart people and DL charges just as much for my time as they do for people who actually know what they
are doing. And it’s not like I’ve done *nothing*, I know some stuff.
– Smart Person
“Fake it ‘till you make it.”
This is pretty great advice—if you don’t think you can do the thing, act like you can do the thing and sooner or later you are doing the thing, right?
What do all these “Real
Developers” have in
common?
So I looked at my coworkers, and this collection of No Shit Honest To Hank Real Developers, and decided I would see what they have in common and then I would do
THOSE things and then I’d be in. And keeping with the idea of an MVP, of doing things in the smallest complete steps, I tried to find the smallest steps possible and start
with those.
Step One
So I looked around and the first thing I noticed was that all real developers have…
Step One
github stickers
Score.
Step Two
Second thing I noticed, and this was a big one—
Step Two
pimped out command line
Seriously, look around, all Real Developers have some kind of pimped out command line. They’ve got colors, they’ve got symbols—I worked with a guy in TO who had
these emoji based on his git status, a fish for uncommited, sushi for up to date, and a cheeseburger when there was a merge conflict. 

And mine? Looked like this. Not even like this, because I didn’t get a screenshot before I started, and I hadn’t named my computer, so it just said “Detroit Labs User.” It
was very sad. Not Real Developer of me.
Some basics
• Get to know—or at least, don’t
fear—vim
• /.bash_profile
• PS1=“<some stuffand stuff>”
• @ current time in 12-hour am/
pm format
• u username of current user
• W basename of current
working directory
•  a backslash
• [033[0;31m] Color Codes!
This one is red.
• [033[1;31m] Bold!
• there’s a script you can
download that will allow you to
add your git branch so you
always know where you are at
and/or your status
When I post these slides, I’ll add some links to tutorials and places that explain more about all these things, but the most important part is learning vim and not being
scared of it. 

I should say this is for bash, if you are using zshell, I can’t help you.
Code time!
But I had an idea. A dream. A command line prompt that included weather information.
Ruby script that goes out to the weather underground api and
gets local weather conditions
Funny story: I wrote this script with the formatted URL and the open and do the thing, and then I went to the Wunderground api and discovered that they had sample
code in Ruby for this exact thing. So that was fun. 

<talk through the thing>

Wunderground api has a couple dozen weather conditions, but I caught the major ones. I’m okay with “Hurricane” being an eggplant.
This refactor sets variables for city and state…
but I have to specify every time. That’s not cool.
v0.3 makes sets a default city and state but allows for
customization
Luckily, Matz has my back, and Ruby allows for optional variables—so if I specify when I call the method, it’ll give me the weather in that place. And if I don’t, it’ll just give
me home.
But how do I get that
on my command line?
That’s all well and good, but how do I get that on the command line?
Like This! The result of two straight days
of googling and swearing
You just pass the path into that PS1 = “” guy.
because I was convinced it could not
possibly be this easy
Really. That’s all you do.
(╯°□°)╯︵ ┻━┻
Everything is stupid. 

I can probably make this a variable, honestly, but I didn’t want to look at it for, like, a month after this.
Check this out
Now I just need to submit
my paperwork to the
international licensing
bureau of
Real Developers!
I’ll get that golden hoodie and a
discount on a mechanical keyboard!
Wait.
…there isn’t any. Crap.

But that means…
I can decide what makes
me a real developer
And honestly, the github stickers and command line, that’s just me being a smartass. I still don’t feel like a Real Developer. And there’s no licensing bureau, so I have to
figure it out myself. 

So I took another look around, not just at DL, but everywhere. What do the people I respect do?
Real Developers…
• Are polyglots
• Test-first always
• Pay it forward
• Contribute to open source
–Narcissists, Mostly
“But what about me?”
So I’ve got these new criteria, I’m serious this time, let’s see how I think I stack up. 

And I have this dark night of the soul kind of thing, where you sit with a glass of scotch and stare into a fire and question all your choices. What I came up with was kind
of depressing.
Real Developers…
• Are polyglots
• I don’t even know one language very well…
• Test-first always
• Pay it forward
• Contribute to open source
Real Developers…
• Are polyglots
• I don’t even know one language very well…
• Test-first always
• I don’t always test first…
• Pay it forward
• Contribute to open source
Real Developers…
• Are polyglots
• I don’t even know one language very well…
• Test-first always
• I don’t always test first…
• Pay it forward
• WTF do I have to offer…
• Contribute to open source
I barely know what I’m doing, here.
Real Developers…
• Are polyglots
• I don’t even know one language very well…
• Test-first always
• I don’t always test first…
• Pay it forward
• WTF do I have to offer…
• Contribute to open source
• Open Source Is Scary…
Because that’s the internet, and people are dicks.
Well, crap.
But is this even true? As it turns out, staring into a fire with a glass of scotch is not the best way to self-evaluate. In the morning, over coffee, I looked at my notes and
realized—this is all bullshit.
Well, crap.
No, seriously, this is all crap.
But is this even true? As it turns out, staring into a fire with a glass of scotch is not the best way to self-evaluate. In the morning, over coffee, I looked at my notes and
realized—this is all bullshit.
Real Developers…
• Are polyglots
• I don’t even know one language very well…
• Objective C, Swift, Ruby, Coffescript, Lua
• Test-first always
• Pay it forward
• Contribute to open source
I do OBJC all day, I’m learning Swift, I just made this thing in Ruby, I’ve made bots for hip chat in Coffeescript, this all started with Lua…
Real Developers…
• Are polyglots
• Test-first always
• I don’t always test first…
• Test-first always is a journey, not a destination
• Pay it forward
• Contribute to open source
Test-first is a goal, an ideal. It’s Brigadoon. It’s the thing you strive for but never achieve because the value is in the attempt.
Real Developers…
• Are polyglots
• Test-first always
• Pay it forward
• WTF do I have to offer…
• I volunteer at meetups, I mentor, I teach my friends.
• Contribute to open source
I do things! And I have a lot to offer, I know what it’s like to be struggling to learn and how to pull through.
Real Developers…
• Are polyglots
• Test-first always
• Pay it forward
• Contribute to open source
• Open Source Is Scary…
• Well, okay. But that’s a dumb reason not to do things.
We all do scary things every day, like get out of bed and talk to other people and drive in cars. It’s good for you to do scary things. And it’s good for you to contribute to
open source.
Why do I keep doing this?
First it was just stickers and command line emoji, now it’s “Be able to simultaneously code in haskell and assembly” and “contribute to Ruby core.”
Why does “real” even
matter?
Why does “real” even
matter?
Nobody cares about your stupid problems.
This is the most frightening and liberating thing you can learn about life, right? 

Why am I even worried about this? What does it matter if I meet some standard that doesn’t even exist?
–Some hippie folk song my parents listen to
“Ships are safe inside the harbor, but that’s not
what ships are for”
And here’s the thing: the problem really isn’t that I’m not a real developer, the problem is I’m afraid you’ll find out I’m faking it.
• If you are afraid of messing up, you are going to
code defensively
• If you are afraid of messing up, you are going to
code defensively
• If you code defensively you won’t take risks
The stupid things I do when I’m spiking by myself vs. the safe path I take when pairing.
• If you are afraid of messing up, you are going to
code defensively
• If you code defensively you won’t take risks
• If you don’t take risks, you don’t discover
anything new
–Some teenager in a Che Guevara t-shirt
“Question authority”
• If you are afraid of showing ignorance, you won’t
question things
It’s not that I don’t feel like a Real Developer, it’s that I don’t want other people to realize that I’m not a Real Developer.
• If you are afraid of showing ignorance, you won’t
question things
• If you don’t question things, you won’t
understand them
Like getting my weather emoji actually on to my command line—I was so afraid to show I didn’t know, I wasted two days. When I finally asked somebody, they explained
it in under five minutes.
• If you are afraid of showing ignorance, you won’t
question things
• If you don’t question things, you won’t
understand them
• If things are never questioned, they never
change
Wow.
I’ve never seen a woman
doing Objective C before!
• Gatekeeping is a thing
• Gatekeeping is a thing
• A terrible thing
some examples—the pop quiz guy
• Gatekeeping is a thing
• A terrible thing
• If I don’t think I’m a “real” developer, the
gatekeeping weasels never will either
But there’s something more insidious here—remember, the problem isn’t that I don’t think I’m Read Developer, it’s that I don’t want other people to find out! So I start
explaining about marking and sweeping.
• Gatekeeping is a thing
• A terrible thing
• If I don’t think I’m a “real” developer, the
gatekeeping weasels never will either
• Even answering the weasels reinforces that the
weasels have the right to ask
And, also, there’s better ways to express happiness at seeing someone new in the community
Side Note
There are ways to express delight at seeing someone
new, or someone who for some reason doesn’t “look” like
most of the people in your community that don’t make
you a punchline in conference talks for the next year.
Talk to me later, I’ll give you some scripts so you can not
be That Guy.
How do I start to feel
like a real developer?
More stickers? Learn more languages? Get therapy?
I was right all along
There really are two steps.
And they are pretty simple.
Am I real?
Immanuel Kant was
a real pissant
Who was very rarely stable.
Heidegger, Heidegger
was a boozy beggar
Who could think you
under the table.
David Hume could out-consume
Schopenhauer and Hegel,
And Wittgenstein
was a beery swine
Who was just as sloshed
as Schlegel.
I’m going with this guy.
Am I a
developer?
Am I a
developer?
• I’ve got a github sticker
Am I a
developer?
• I’ve got a github sticker
• I’ve got a pimped out
command line.
Hi. I’m Anne,
a real developer.
northofnormal

More Related Content

Viewers also liked

Towards an EarthMoonshot with Cognitive Computing
Towards an EarthMoonshot with Cognitive ComputingTowards an EarthMoonshot with Cognitive Computing
Towards an EarthMoonshot with Cognitive Computing
Jack Park
 
Research Proposal Final Draft
Research Proposal Final DraftResearch Proposal Final Draft
Research Proposal Final Draft
Matthew Cox
 

Viewers also liked (20)

How To Be A Real Developer In Two Easy Steps!
How To Be A Real Developer In Two Easy Steps!How To Be A Real Developer In Two Easy Steps!
How To Be A Real Developer In Two Easy Steps!
 
Google appengine apps
Google appengine appsGoogle appengine apps
Google appengine apps
 
送り迎えパパ必見!パパ友、ママ友ウケを狙え! « オリハシ日記 « 武蔵小杉のセレクトショップ【ナクール】 Nakool-attack the mind ...
送り迎えパパ必見!パパ友、ママ友ウケを狙え! « オリハシ日記 « 武蔵小杉のセレクトショップ【ナクール】 Nakool-attack the mind ...送り迎えパパ必見!パパ友、ママ友ウケを狙え! « オリハシ日記 « 武蔵小杉のセレクトショップ【ナクール】 Nakool-attack the mind ...
送り迎えパパ必見!パパ友、ママ友ウケを狙え! « オリハシ日記 « 武蔵小杉のセレクトショップ【ナクール】 Nakool-attack the mind ...
 
サマーニットで主張!!~先輩後輩のナクーリスト登場 « オリハシ日記 « 武蔵小杉のセレクトショップ【ナクール】 Nakool-attack the mi...
サマーニットで主張!!~先輩後輩のナクーリスト登場 « オリハシ日記 « 武蔵小杉のセレクトショップ【ナクール】 Nakool-attack the mi...サマーニットで主張!!~先輩後輩のナクーリスト登場 « オリハシ日記 « 武蔵小杉のセレクトショップ【ナクール】 Nakool-attack the mi...
サマーニットで主張!!~先輩後輩のナクーリスト登場 « オリハシ日記 « 武蔵小杉のセレクトショップ【ナクール】 Nakool-attack the mi...
 
夫婦で営む海街ヘアサロンをイメージ « オリハシ日記 « 武蔵小杉のセレクトショップ【ナクール】 Nakool-attack the mind 7 n...
夫婦で営む海街ヘアサロンをイメージ « オリハシ日記 « 武蔵小杉のセレクトショップ【ナクール】 Nakool-attack the mind 7   n...夫婦で営む海街ヘアサロンをイメージ « オリハシ日記 « 武蔵小杉のセレクトショップ【ナクール】 Nakool-attack the mind 7   n...
夫婦で営む海街ヘアサロンをイメージ « オリハシ日記 « 武蔵小杉のセレクトショップ【ナクール】 Nakool-attack the mind 7 n...
 
Acu valley
Acu valleyAcu valley
Acu valley
 
360度隙なし!の”グラフィティー”ライダース « オリハシ日記 « 武蔵小杉のセレクトショップ【ナクール】 Nakool-attack the mind...
360度隙なし!の”グラフィティー”ライダース « オリハシ日記 « 武蔵小杉のセレクトショップ【ナクール】 Nakool-attack the mind...360度隙なし!の”グラフィティー”ライダース « オリハシ日記 « 武蔵小杉のセレクトショップ【ナクール】 Nakool-attack the mind...
360度隙なし!の”グラフィティー”ライダース « オリハシ日記 « 武蔵小杉のセレクトショップ【ナクール】 Nakool-attack the mind...
 
Go, el lenguaje de Google
Go, el lenguaje de GoogleGo, el lenguaje de Google
Go, el lenguaje de Google
 
WBL IN ACTION Event Slides Feb. 17, 2015
WBL IN ACTION Event Slides Feb. 17, 2015WBL IN ACTION Event Slides Feb. 17, 2015
WBL IN ACTION Event Slides Feb. 17, 2015
 
Going native with html5 web components
Going native with html5 web componentsGoing native with html5 web components
Going native with html5 web components
 
セパレートソール×ドレープレザー « No id. « 武蔵小杉のセレクトショップ【ナクール】 nakool-attack the mind 7 no...
セパレートソール×ドレープレザー « No id. « 武蔵小杉のセレクトショップ【ナクール】 nakool-attack the mind 7   no...セパレートソール×ドレープレザー « No id. « 武蔵小杉のセレクトショップ【ナクール】 nakool-attack the mind 7   no...
セパレートソール×ドレープレザー « No id. « 武蔵小杉のセレクトショップ【ナクール】 nakool-attack the mind 7 no...
 
Administering Windows Server 2012
Administering Windows Server 2012Administering Windows Server 2012
Administering Windows Server 2012
 
ミドルインナーの違いで変わる雰囲気 « オリハシ日記 « 武蔵小杉のセレクトショップ【ナクール】 Nakool-attack the mind 7 n...
ミドルインナーの違いで変わる雰囲気 « オリハシ日記 « 武蔵小杉のセレクトショップ【ナクール】 Nakool-attack the mind 7   n...ミドルインナーの違いで変わる雰囲気 « オリハシ日記 « 武蔵小杉のセレクトショップ【ナクール】 Nakool-attack the mind 7   n...
ミドルインナーの違いで変わる雰囲気 « オリハシ日記 « 武蔵小杉のセレクトショップ【ナクール】 Nakool-attack the mind 7 n...
 
Peer to peer lending India
Peer to peer lending IndiaPeer to peer lending India
Peer to peer lending India
 
Deidra's resume
Deidra's resumeDeidra's resume
Deidra's resume
 
Towards an EarthMoonshot with Cognitive Computing
Towards an EarthMoonshot with Cognitive ComputingTowards an EarthMoonshot with Cognitive Computing
Towards an EarthMoonshot with Cognitive Computing
 
インディゴ染め5分袖ニット « Sandblaster 9200 « 武蔵小杉のセレクトショップ【ナクール】 nakool-attack the mi...
インディゴ染め5分袖ニット « Sandblaster   9200 « 武蔵小杉のセレクトショップ【ナクール】 nakool-attack the mi...インディゴ染め5分袖ニット « Sandblaster   9200 « 武蔵小杉のセレクトショップ【ナクール】 nakool-attack the mi...
インディゴ染め5分袖ニット « Sandblaster 9200 « 武蔵小杉のセレクトショップ【ナクール】 nakool-attack the mi...
 
Truths Universally Acknowledged: Swift Design Patterns As Jane Austen Heroes
Truths Universally Acknowledged: Swift Design Patterns As Jane Austen HeroesTruths Universally Acknowledged: Swift Design Patterns As Jane Austen Heroes
Truths Universally Acknowledged: Swift Design Patterns As Jane Austen Heroes
 
Research Proposal Final Draft
Research Proposal Final DraftResearch Proposal Final Draft
Research Proposal Final Draft
 
Intro to the Google Cloud for Developers
Intro to the Google Cloud for DevelopersIntro to the Google Cloud for Developers
Intro to the Google Cloud for Developers
 

Similar to How To Be A Real Developer In Two Easy Steps

Howtostopsucking
HowtostopsuckingHowtostopsucking
Howtostopsucking
Hugo Pinto
 
Howtostopsuckingandbeawesomeinstead 120601013410-phpapp01
Howtostopsuckingandbeawesomeinstead 120601013410-phpapp01Howtostopsuckingandbeawesomeinstead 120601013410-phpapp01
Howtostopsuckingandbeawesomeinstead 120601013410-phpapp01
Hugo Pinto
 
Conversion Copywriting by Joanna Wiebe - WistiaFest 2017 Keynote
Conversion Copywriting by Joanna Wiebe - WistiaFest 2017 KeynoteConversion Copywriting by Joanna Wiebe - WistiaFest 2017 Keynote
Conversion Copywriting by Joanna Wiebe - WistiaFest 2017 Keynote
Wistia
 
Scottish Ruby Conference 2014
Scottish Ruby Conference  2014Scottish Ruby Conference  2014
Scottish Ruby Conference 2014
michaelag1971
 

Similar to How To Be A Real Developer In Two Easy Steps (20)

Keynote talk: How to stay in love with programming (with notes)
Keynote talk: How to stay in love with programming (with notes)Keynote talk: How to stay in love with programming (with notes)
Keynote talk: How to stay in love with programming (with notes)
 
How to stop sucking and be awesome instead
How to stop sucking and be awesome insteadHow to stop sucking and be awesome instead
How to stop sucking and be awesome instead
 
Howtostopsucking
HowtostopsuckingHowtostopsucking
Howtostopsucking
 
Howtostopsuckingandbeawesomeinstead 120601013410-phpapp01
Howtostopsuckingandbeawesomeinstead 120601013410-phpapp01Howtostopsuckingandbeawesomeinstead 120601013410-phpapp01
Howtostopsuckingandbeawesomeinstead 120601013410-phpapp01
 
Five Lines I Could Not Draw
Five Lines I Could Not DrawFive Lines I Could Not Draw
Five Lines I Could Not Draw
 
A Cup of Tea With Michael Larsen
A Cup of Tea With Michael LarsenA Cup of Tea With Michael Larsen
A Cup of Tea With Michael Larsen
 
Problem solving
Problem solvingProblem solving
Problem solving
 
Code Of Our Own
Code Of Our OwnCode Of Our Own
Code Of Our Own
 
Conversion Copywriting by Joanna Wiebe - WistiaFest 2017 Keynote
Conversion Copywriting by Joanna Wiebe - WistiaFest 2017 KeynoteConversion Copywriting by Joanna Wiebe - WistiaFest 2017 Keynote
Conversion Copywriting by Joanna Wiebe - WistiaFest 2017 Keynote
 
Problem solving
Problem solvingProblem solving
Problem solving
 
Cucumbers Have Layers - RubyConf 2015
Cucumbers Have Layers - RubyConf 2015Cucumbers Have Layers - RubyConf 2015
Cucumbers Have Layers - RubyConf 2015
 
How to learn coding
How to learn codingHow to learn coding
How to learn coding
 
Optimized for what
Optimized for whatOptimized for what
Optimized for what
 
On Readability of Code
On Readability of CodeOn Readability of Code
On Readability of Code
 
Being a designer
Being a designerBeing a designer
Being a designer
 
All I Ever Need To Know About Testing I Learned In Kindergarten
All I Ever Need To Know About Testing I Learned In KindergartenAll I Ever Need To Know About Testing I Learned In Kindergarten
All I Ever Need To Know About Testing I Learned In Kindergarten
 
Is Writing More Important Than Programming
Is Writing More Important Than ProgrammingIs Writing More Important Than Programming
Is Writing More Important Than Programming
 
Data driven-products-now
Data driven-products-nowData driven-products-now
Data driven-products-now
 
Scottish Ruby Conference 2014
Scottish Ruby Conference  2014Scottish Ruby Conference  2014
Scottish Ruby Conference 2014
 
Enabling Creativity: Software that encourages creation and exploration
Enabling Creativity: Software that encourages creation and explorationEnabling Creativity: Software that encourages creation and exploration
Enabling Creativity: Software that encourages creation and exploration
 

Recently uploaded

Recently uploaded (20)

Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 

How To Be A Real Developer In Two Easy Steps

  • 1. How to Be A Real Developer In Two Easy Steps
  • 2. About Me • Didn’t go to Cogwarts I didn’t go the fancy academy of computer scenery
  • 3. About Me • Didn’t go to Cogwarts • Haven’t been hacking since birth We had computers at home, but mostly used them to play Carmen Sandiego and write stories about dragons, not for hacking the mainframes.
  • 4. About Me • Didn’t go to Cogwarts • Haven’t been hacking since birth • Started programming accidentally I actually didn’t start programming until just a few years ago, and I started doing it accidentally: I had a boring job, and to pass the time I started tweaking my PC desktop. I started using little widgets for application launchers or desktop notepads, and occasionally, I’d open up the little text files with instructions and change some of the instructions to do something else. Or sometimes, I’d just start a new text file of instructions to make a whole new thing. Apparently, that’s programming.
  • 5. About Me • Didn’t go to Cogwarts • Haven’t been hacking since birth • Started programming accidentally • Went to a web dev bootcamp Kind of a long story from there, but…I taught myself HTML and CSS and fastforward a few years, and I decide to attend a web development bootcamp, where I learned Ruby, Ruby on Rails, JS…
  • 6. About Me • Didn’t go to Cogwarts • Haven’t been hacking since birth • Started programming accidentally • Went to a web dev bootcamp • Became an apprentice at Detroit Labs last March Then, last year I joined DL’s first apprentice class. And I did pretty well, and graduated and became a full-time dev, and then we got a new apprentice class and I was talking to Kate Catlin right in that kitchen and telling her about my experience, and she said…
  • 7. “When did you start to feel like a real developer?” …and I laughed at her, because c’mon now. I’m not a REAL developer, not yet. And that bothered me. I mean, I work with all these awesome smart people and DL charges just as much for my time as they do for people who actually know what they are doing. And it’s not like I’ve done *nothing*, I know some stuff.
  • 8. – Smart Person “Fake it ‘till you make it.” This is pretty great advice—if you don’t think you can do the thing, act like you can do the thing and sooner or later you are doing the thing, right?
  • 9. What do all these “Real Developers” have in common? So I looked at my coworkers, and this collection of No Shit Honest To Hank Real Developers, and decided I would see what they have in common and then I would do THOSE things and then I’d be in. And keeping with the idea of an MVP, of doing things in the smallest complete steps, I tried to find the smallest steps possible and start with those.
  • 10. Step One So I looked around and the first thing I noticed was that all real developers have…
  • 12. Step Two Second thing I noticed, and this was a big one—
  • 13. Step Two pimped out command line Seriously, look around, all Real Developers have some kind of pimped out command line. They’ve got colors, they’ve got symbols—I worked with a guy in TO who had these emoji based on his git status, a fish for uncommited, sushi for up to date, and a cheeseburger when there was a merge conflict. And mine? Looked like this. Not even like this, because I didn’t get a screenshot before I started, and I hadn’t named my computer, so it just said “Detroit Labs User.” It was very sad. Not Real Developer of me.
  • 14. Some basics • Get to know—or at least, don’t fear—vim • /.bash_profile • PS1=“<some stuffand stuff>” • @ current time in 12-hour am/ pm format • u username of current user • W basename of current working directory • a backslash • [033[0;31m] Color Codes! This one is red. • [033[1;31m] Bold! • there’s a script you can download that will allow you to add your git branch so you always know where you are at and/or your status When I post these slides, I’ll add some links to tutorials and places that explain more about all these things, but the most important part is learning vim and not being scared of it. I should say this is for bash, if you are using zshell, I can’t help you.
  • 15. Code time! But I had an idea. A dream. A command line prompt that included weather information.
  • 16. Ruby script that goes out to the weather underground api and gets local weather conditions Funny story: I wrote this script with the formatted URL and the open and do the thing, and then I went to the Wunderground api and discovered that they had sample code in Ruby for this exact thing. So that was fun. <talk through the thing> Wunderground api has a couple dozen weather conditions, but I caught the major ones. I’m okay with “Hurricane” being an eggplant.
  • 17. This refactor sets variables for city and state… but I have to specify every time. That’s not cool.
  • 18. v0.3 makes sets a default city and state but allows for customization Luckily, Matz has my back, and Ruby allows for optional variables—so if I specify when I call the method, it’ll give me the weather in that place. And if I don’t, it’ll just give me home.
  • 19. But how do I get that on my command line? That’s all well and good, but how do I get that on the command line?
  • 20. Like This! The result of two straight days of googling and swearing You just pass the path into that PS1 = “” guy.
  • 21. because I was convinced it could not possibly be this easy Really. That’s all you do.
  • 22. (╯°□°)╯︵ ┻━┻ Everything is stupid. I can probably make this a variable, honestly, but I didn’t want to look at it for, like, a month after this.
  • 24. Now I just need to submit my paperwork to the international licensing bureau of Real Developers! I’ll get that golden hoodie and a discount on a mechanical keyboard!
  • 25. Wait. …there isn’t any. Crap. But that means…
  • 26. I can decide what makes me a real developer And honestly, the github stickers and command line, that’s just me being a smartass. I still don’t feel like a Real Developer. And there’s no licensing bureau, so I have to figure it out myself. So I took another look around, not just at DL, but everywhere. What do the people I respect do?
  • 27. Real Developers… • Are polyglots • Test-first always • Pay it forward • Contribute to open source
  • 28. –Narcissists, Mostly “But what about me?” So I’ve got these new criteria, I’m serious this time, let’s see how I think I stack up. And I have this dark night of the soul kind of thing, where you sit with a glass of scotch and stare into a fire and question all your choices. What I came up with was kind of depressing.
  • 29. Real Developers… • Are polyglots • I don’t even know one language very well… • Test-first always • Pay it forward • Contribute to open source
  • 30. Real Developers… • Are polyglots • I don’t even know one language very well… • Test-first always • I don’t always test first… • Pay it forward • Contribute to open source
  • 31. Real Developers… • Are polyglots • I don’t even know one language very well… • Test-first always • I don’t always test first… • Pay it forward • WTF do I have to offer… • Contribute to open source I barely know what I’m doing, here.
  • 32. Real Developers… • Are polyglots • I don’t even know one language very well… • Test-first always • I don’t always test first… • Pay it forward • WTF do I have to offer… • Contribute to open source • Open Source Is Scary… Because that’s the internet, and people are dicks.
  • 33. Well, crap. But is this even true? As it turns out, staring into a fire with a glass of scotch is not the best way to self-evaluate. In the morning, over coffee, I looked at my notes and realized—this is all bullshit.
  • 34. Well, crap. No, seriously, this is all crap. But is this even true? As it turns out, staring into a fire with a glass of scotch is not the best way to self-evaluate. In the morning, over coffee, I looked at my notes and realized—this is all bullshit.
  • 35. Real Developers… • Are polyglots • I don’t even know one language very well… • Objective C, Swift, Ruby, Coffescript, Lua • Test-first always • Pay it forward • Contribute to open source I do OBJC all day, I’m learning Swift, I just made this thing in Ruby, I’ve made bots for hip chat in Coffeescript, this all started with Lua…
  • 36. Real Developers… • Are polyglots • Test-first always • I don’t always test first… • Test-first always is a journey, not a destination • Pay it forward • Contribute to open source Test-first is a goal, an ideal. It’s Brigadoon. It’s the thing you strive for but never achieve because the value is in the attempt.
  • 37. Real Developers… • Are polyglots • Test-first always • Pay it forward • WTF do I have to offer… • I volunteer at meetups, I mentor, I teach my friends. • Contribute to open source I do things! And I have a lot to offer, I know what it’s like to be struggling to learn and how to pull through.
  • 38. Real Developers… • Are polyglots • Test-first always • Pay it forward • Contribute to open source • Open Source Is Scary… • Well, okay. But that’s a dumb reason not to do things. We all do scary things every day, like get out of bed and talk to other people and drive in cars. It’s good for you to do scary things. And it’s good for you to contribute to open source.
  • 39. Why do I keep doing this? First it was just stickers and command line emoji, now it’s “Be able to simultaneously code in haskell and assembly” and “contribute to Ruby core.”
  • 40. Why does “real” even matter?
  • 41. Why does “real” even matter? Nobody cares about your stupid problems. This is the most frightening and liberating thing you can learn about life, right? Why am I even worried about this? What does it matter if I meet some standard that doesn’t even exist?
  • 42. –Some hippie folk song my parents listen to “Ships are safe inside the harbor, but that’s not what ships are for” And here’s the thing: the problem really isn’t that I’m not a real developer, the problem is I’m afraid you’ll find out I’m faking it.
  • 43. • If you are afraid of messing up, you are going to code defensively
  • 44. • If you are afraid of messing up, you are going to code defensively • If you code defensively you won’t take risks The stupid things I do when I’m spiking by myself vs. the safe path I take when pairing.
  • 45. • If you are afraid of messing up, you are going to code defensively • If you code defensively you won’t take risks • If you don’t take risks, you don’t discover anything new
  • 46. –Some teenager in a Che Guevara t-shirt “Question authority”
  • 47. • If you are afraid of showing ignorance, you won’t question things It’s not that I don’t feel like a Real Developer, it’s that I don’t want other people to realize that I’m not a Real Developer.
  • 48. • If you are afraid of showing ignorance, you won’t question things • If you don’t question things, you won’t understand them Like getting my weather emoji actually on to my command line—I was so afraid to show I didn’t know, I wasted two days. When I finally asked somebody, they explained it in under five minutes.
  • 49. • If you are afraid of showing ignorance, you won’t question things • If you don’t question things, you won’t understand them • If things are never questioned, they never change
  • 50. Wow. I’ve never seen a woman doing Objective C before!
  • 52. • Gatekeeping is a thing • A terrible thing some examples—the pop quiz guy
  • 53. • Gatekeeping is a thing • A terrible thing • If I don’t think I’m a “real” developer, the gatekeeping weasels never will either But there’s something more insidious here—remember, the problem isn’t that I don’t think I’m Read Developer, it’s that I don’t want other people to find out! So I start explaining about marking and sweeping.
  • 54. • Gatekeeping is a thing • A terrible thing • If I don’t think I’m a “real” developer, the gatekeeping weasels never will either • Even answering the weasels reinforces that the weasels have the right to ask And, also, there’s better ways to express happiness at seeing someone new in the community
  • 55. Side Note There are ways to express delight at seeing someone new, or someone who for some reason doesn’t “look” like most of the people in your community that don’t make you a punchline in conference talks for the next year. Talk to me later, I’ll give you some scripts so you can not be That Guy.
  • 56. How do I start to feel like a real developer? More stickers? Learn more languages? Get therapy?
  • 57. I was right all along There really are two steps. And they are pretty simple.
  • 58. Am I real? Immanuel Kant was a real pissant Who was very rarely stable. Heidegger, Heidegger was a boozy beggar Who could think you under the table. David Hume could out-consume Schopenhauer and Hegel, And Wittgenstein was a beery swine Who was just as sloshed as Schlegel.
  • 59. I’m going with this guy.
  • 61. Am I a developer? • I’ve got a github sticker
  • 62. Am I a developer? • I’ve got a github sticker • I’ve got a pimped out command line.
  • 63. Hi. I’m Anne, a real developer. northofnormal