63
How to Be A Real Developer In Two Easy Steps

How To Be A Real Developer In Two Easy Steps

Embed Size (px)

Citation preview

Page 1: How To Be A Real Developer In Two Easy Steps

How to Be A Real Developer

In Two Easy Steps

Page 2: 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

Page 3: How To Be A Real Developer In Two Easy Steps

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.

Page 4: How To Be A Real Developer In Two Easy Steps

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.

Page 5: How To Be A Real Developer In Two Easy Steps

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…

Page 6: How To Be A Real Developer In Two Easy Steps

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…

Page 7: How To Be A Real Developer In Two Easy Steps

“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.

Page 8: How To Be A Real Developer In Two Easy Steps

– 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?

Page 9: How To Be A Real Developer In Two Easy Steps

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.

Page 10: How To Be A Real Developer In Two Easy Steps

Step One

So I looked around and the first thing I noticed was that all real developers have…

Page 11: How To Be A Real Developer In Two Easy Steps

Step Onegithub stickers

Score.

Page 12: How To Be A Real Developer In Two Easy Steps

Step Two

Second thing I noticed, and this was a big one—

Page 13: How To Be A Real Developer In Two Easy Steps

Step Twopimped 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.

Page 14: How To Be A Real Developer In Two Easy Steps

Some basics• Get to know—or at least, don’t

fear—vim

• /.bash_profile

• PS1=“<some stuff\and 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.

Page 15: How To Be A Real Developer In Two Easy Steps

Code time!

But I had an idea. A dream. A command line prompt that included weather information.

Page 16: How To Be A Real Developer In Two Easy Steps

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.

Page 17: How To Be A Real Developer In Two Easy Steps

This refactor sets variables for city and state… but I have to specify every time. That’s not cool.

Page 18: How To Be A Real Developer In Two Easy Steps

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.

Page 19: How To Be A Real Developer In Two Easy Steps

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?

Page 20: How To Be A Real Developer In Two Easy Steps

Like This! The result of two straight days of googling and swearing

You just pass the path into that PS1 = “” guy.

Page 21: How To Be A Real Developer In Two Easy Steps

because I was convinced it could not possibly be this easy

Really. That’s all you do.

Page 22: How To Be A Real Developer In Two Easy Steps

(╯°□°)╯︵ ┻━┻

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.

Page 23: How To Be A Real Developer In Two Easy Steps

Check this out

Page 24: How To Be A Real Developer In Two Easy Steps

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!

Page 25: How To Be A Real Developer In Two Easy Steps

Wait.

…there isn’t any. Crap.

But that means…

Page 26: How To Be A Real Developer In Two Easy Steps

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?

Page 27: How To Be A Real Developer In Two Easy Steps

Real Developers…

• Are polyglots

• Test-first always

• Pay it forward

• Contribute to open source

Page 28: How To Be A Real Developer In Two Easy Steps

–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.

Page 29: How To Be A Real Developer In Two Easy Steps

Real Developers…

• Are polyglots

• I don’t even know one language very well…

• Test-first always

• Pay it forward

• Contribute to open source

Page 30: How To Be A Real Developer In Two Easy Steps

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

Page 31: How To Be A Real Developer In Two Easy Steps

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.

Page 32: How To Be A Real Developer In Two Easy Steps

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.

Page 33: How To Be A Real Developer In Two Easy Steps

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.

Page 34: How To Be A Real Developer In Two Easy Steps

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.

Page 35: How To Be A Real Developer In Two Easy Steps

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…

Page 36: How To Be A Real Developer In Two Easy Steps

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.

Page 37: How To Be A Real Developer In Two Easy Steps

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.

Page 38: How To Be A Real Developer In Two Easy Steps

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.

Page 39: How To Be A Real Developer In Two Easy Steps

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.”

Page 40: How To Be A Real Developer In Two Easy Steps

Why does “real” even matter?

Page 41: How To Be A Real Developer In Two Easy Steps

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?

Page 42: How To Be A Real Developer In Two Easy Steps

–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.

Page 43: How To Be A Real Developer In Two Easy Steps

• If you are afraid of messing up, you are going to code defensively

Page 44: How To Be A Real Developer In Two Easy Steps

• 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.

Page 45: How To Be A Real Developer In Two Easy Steps

• 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

Page 46: How To Be A Real Developer In Two Easy Steps

–Some teenager in a Che Guevara t-shirt

“Question authority”

Page 47: How To Be A Real Developer In Two Easy Steps

• 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.

Page 48: How To Be A Real Developer In Two Easy Steps

• 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.

Page 49: How To Be A Real Developer In Two Easy Steps

• 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

Page 50: How To Be A Real Developer In Two Easy Steps

Wow.

I’ve never seen a woman

doing Objective C before!

Page 51: How To Be A Real Developer In Two Easy Steps

• Gatekeeping is a thing

Page 52: How To Be A Real Developer In Two Easy Steps

• Gatekeeping is a thing

• A terrible thing

some examples—the pop quiz guy

Page 53: How To Be A Real Developer In Two Easy Steps

• 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.

Page 54: How To Be A Real Developer In Two Easy Steps

• 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

Page 55: How To Be A Real Developer In Two Easy Steps

Side NoteThere 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.

Page 56: How To Be A Real Developer In Two Easy Steps

How do I start to feel like a real developer?

More stickers? Learn more languages? Get therapy?

Page 57: How To Be A Real Developer In Two Easy Steps

I was right all alongThere really are two steps.

And they are pretty simple.

Page 58: How To Be A Real Developer In Two Easy Steps

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.

Page 59: How To Be A Real Developer In Two Easy Steps

I’m going with this guy.

Page 60: How To Be A Real Developer In Two Easy Steps

Am I a developer?

Page 61: How To Be A Real Developer In Two Easy Steps

Am I a developer?

• I’ve got a github sticker

Page 62: How To Be A Real Developer In Two Easy Steps

Am I a developer?

• I’ve got a github sticker

• I’ve got a pimped out command line.

Page 63: How To Be A Real Developer In Two Easy Steps

Hi. I’m Anne, a real developer.

northofnormal