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

Post on 18-Jul-2015

194 Views

Category:

Education

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

So you want to be a

software developer?

(version 2.0)

Tim Callaghan

CrunchTime!

tmcallaghan@gmail.com

@tmcallaghan

@acmebench

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

“Find something you love to

do and you’ll never have to

work a day in your life.”

Harvey MacKay

“Don’t do something you

hate for a living.”

Someone on Twitter

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

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

Things that [practically] didn’t exist:

Cellphones

Apple’s Macintosh

Internet

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

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 $$$

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!

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)

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?

Order

Product

Receive

Order

Daily Prep

Customer

Order

Prepare

Food

Take

Payment

Inventory

Product

Each of these

requires a lot

of software

development

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,

What do software engineers really “do”?

Software Development Life Cycle (SDLC)

Design

Develop

Review

Test

Deploy

Document

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.

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)

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.

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.

What do software engineers “do”?

Software Development Life Cycle (SDLC)

Design

Develop

Review

Test

Deploy

Document

Install or

upgrade, it’s

live!

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.

What else might you do?

Fixing Bugs - almost everyone starts here

Hiring/Interviewing

Mentoring

Support

Infrastructure

Desktops / Servers / Networking

Where does the time go?

5%

60%5%

15%

5%10%

Design Develop

Review Test

Deploy Document

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

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

Small

or

Large?

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

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

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

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

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!

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

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

Advice # 5Get up and exercise!

Programmers sit, A LOT!

Get some sun, go for a walk, be social

Questions?

Tim Callaghan

CrunchTime!

tmcallaghan@gmail.com

@tmcallaghan

@acmebench

top related