so you want to be a software developer? (version 2.0)
Post on 18-Jul-2015
194 Views
Preview:
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