so you want to be a software developer? (version 2.0)

32
So you want to be a software developer? (version 2.0) Tim Callaghan CrunchTime! [email protected] @tmcallaghan @acmebench

Upload: tim-callaghan

Post on 18-Jul-2015

194 views

Category:

Education


2 download

TRANSCRIPT

Page 1: So you want to be a software developer? (version 2.0)

So you want to be a

software developer?

(version 2.0)

Tim Callaghan

CrunchTime!

[email protected]

@tmcallaghan

@acmebench

Page 2: So you want to be a software developer? (version 2.0)

http://pixabay.com/static/uploads/photo/2012/11/07/07/31/man-65049_640.jpg

Page 3: So you want to be a software developer? (version 2.0)

“Find something you love to

do and you’ll never have to

work a day in your life.”

Harvey MacKay

Page 4: So you want to be a software developer? (version 2.0)

“Don’t do something you

hate for a living.”

Someone on Twitter

Page 5: So you want to be a software developer? (version 2.0)

About meBorn in 1969 (before we landed on the moon)

I Loved computers as a young child (late 70s)

My parents supported my interest ($$$)

I taught myself how to program when I was 12

(there were no other options)

I’ve been programming for 34 years now

Page 6: So you want to be a software developer? (version 2.0)

A little perspective…I was a high school freshman in 1983

Things that [practically] didn’t exist:

Cellphones

Apple’s Macintosh

Internet

Page 7: So you want to be a software developer? (version 2.0)

If I had B.Y.O.D.Kaypro “luggable”

26 pounds!

No battery

No hard drive

80 characters per line

64K RAM

http://en.wikipedia.org/wiki/Kaypro#Hardware

Page 8: So you want to be a software developer? (version 2.0)

When I was your age...

1982: Timex Sinclair-1000 ($149)

2KB RAM, 3.25MHz CPU, No Storage

1983: TRS-80 Model III ($2000 @ Radio Shack)

32KB RAM, 2.03MHz CPU, Dual Floppy

1984: IBM PC/XT ($3500)

128KB RAM, 2.03MHz CPU, 10MB HD

Compilers cost serious $$$

Page 9: So you want to be a software developer? (version 2.0)

Times have changed!Hardware is cheap

Windows is inexpensive

Linux is free

Languages are plentiful and mostly free

Especially for students

Servers are almost free

AWS (Amazon EC2) will give you one!

Page 10: So you want to be a software developer? (version 2.0)

My careerStarted college at Northeastern (1987)

First co-op job at Boston City Hall (1988)

Graduated from Umass/Lowell (1992)

Big Company (IBT, 1992-1999)

Startup (CrunchTime!, 1999-2008)

Startup (VoltDB, 2009-2011)

Startup (Tokutek, 2011-2015)

Medium Company (CrunchTime!, 2015-present)

Page 11: So you want to be a software developer? (version 2.0)

What do I do?

CrunchTime! makes software for restaurants

We help our customers answer the following questions:

How much bacon to prepare in Saturday morning?

What items should be removed from the menu?

How profitable is the double cheeseburger?

How many cashiers should work on Thursday night?

Is a particular restaurant following the recipe?

How much beef needs to be ordered for next week?

Page 12: So you want to be a software developer? (version 2.0)

Order

Product

Receive

Order

Daily Prep

Customer

Order

Prepare

Food

Take

Payment

Inventory

Product

Each of these

requires a lot

of software

development

Page 13: So you want to be a software developer? (version 2.0)

What is it like to program?

Kind of like solving math word problems

Start with a requirement (describes needs)

Come up with one or more potential solutions

Research, select language(s) and

technologies, write code, perform database

design, check performance and correctness,

Page 14: So you want to be a software developer? (version 2.0)

What do software engineers really “do”?

Software Development Life Cycle (SDLC)

Design

Develop

Review

Test

Deploy

Document

Page 15: So you want to be a software developer? (version 2.0)

What do software engineers “do”?

Software Development Life Cycle (SDLC)

Design

Develop

Review

Test

Deploy

Document

Plan out the

effort,

especially if it

is large.

Page 16: So you want to be a software developer? (version 2.0)

What do software engineers “do”?

Software Development Life Cycle (SDLC)

Design

Develop

Review

Test

Deploy

Document

Write the code:

front-end

back-end

database

(fun)

Page 17: So you want to be a software developer? (version 2.0)

What do software engineers “do”?

Software Development Life Cycle (SDLC)

Design

Develop

Review

Test

Deploy

Document

Present your

work, receive

feedback,

change code

as needed.

Page 18: So you want to be a software developer? (version 2.0)

What do software engineers “do”?

Software Development Life Cycle (SDLC)

Design

Develop

Review

Test

Deploy

Document

Make sure

code works

as expected,

try to break it.

Page 19: So you want to be a software developer? (version 2.0)

What do software engineers “do”?

Software Development Life Cycle (SDLC)

Design

Develop

Review

Test

Deploy

Document

Install or

upgrade, it’s

live!

Page 20: So you want to be a software developer? (version 2.0)

What do software engineers “do”?

Software Development Life Cycle (SDLC)

Design

Develop

Review

Test

Deploy

Document

Explain your

work so

others can

modify it later.

Page 21: So you want to be a software developer? (version 2.0)

What else might you do?

Fixing Bugs - almost everyone starts here

Hiring/Interviewing

Mentoring

Support

Infrastructure

Desktops / Servers / Networking

Page 22: So you want to be a software developer? (version 2.0)

Where does the time go?

5%

60%5%

15%

5%10%

Design Develop

Review Test

Deploy Document

Page 23: So you want to be a software developer? (version 2.0)

https://www.flickr.com/photos/hackny/10164990965

http://upload.wikimedia.org/wikipedia/commons/thumb/a/a5/CubeSpace.jpg/250px-CubeSpace.jpg

Small

or

Large?

Page 24: So you want to be a software developer? (version 2.0)

Where do you want to work?

Startup

More hours

More hands-on

More stress

Stock options

Creativity

Big Company

Bureaucracy!

More job security?

Formal training

Retirement account

Rigidity

Page 25: So you want to be a software developer? (version 2.0)

Or do it yourself?

Your own startup

Raise $$$ (friends and family)

Or Kickstarter or Microsoft or Others

Way more hours

Way more hands-on

Way more stress

Page 26: So you want to be a software developer? (version 2.0)

http://pixabay.com/en/road-sign-attention-shield-hand-464643

Page 27: So you want to be a software developer? (version 2.0)

Advice # 1Take a course in public speaking

I did in 11th grade

I was scared to do a 30 second speech

Most programmers can’t/won’t/don’t

It opens the door to many opportunities

Page 28: So you want to be a software developer? (version 2.0)

Advice # 2Create something you can show others

Make a website, “mod” a game, contribute

to an open-source project, whatever

Very helpful for first job

Stand out!

Page 29: So you want to be a software developer? (version 2.0)

Advice # 3Get something real on your resume

As soon as possible

Like, this summer!

And every summer until you become a full-

time employee

Volunteer, intern, co-op

Page 30: So you want to be a software developer? (version 2.0)

Advice # 4Carefully construct an online existence

www.stackoverflow.com

Ask and answer!

Forums, list servers, github, launchpad

Also, remember that things stay on the internet

forever

Both the good and the bad

Page 31: So you want to be a software developer? (version 2.0)

Advice # 5Get up and exercise!

Programmers sit, A LOT!

Get some sun, go for a walk, be social

Page 32: So you want to be a software developer? (version 2.0)

Questions?

Tim Callaghan

CrunchTime!

[email protected]

@tmcallaghan

@acmebench