what they don't teach you in cs departments

21
What CS departments don't tell you about software development… …And what to do about it!

Upload: willsullivan

Post on 28-Jan-2018

7.708 views

Category:

Education


0 download

TRANSCRIPT

Page 1: What they don't teach you in CS departments

What CS departments don't tell you about software

development…

…And what to do about it!

Page 2: What they don't teach you in CS departments

About Me

William Sullivan, BS (CIS) „04

AIG Technology

„04 – present

Software development and architectural design

Blog: statestreetgang.net

Email: [email protected]

Page 3: What they don't teach you in CS departments

DISCLAIMERWhat I meant to say was...

Page 4: What they don't teach you in CS departments

Disclaimer

Not an indictment of any school

Not an indictment of any instructor

Not an indictment of higher education

Page 5: What they don't teach you in CS departments

Disclaimer

I‟m the genius of me

I just think I‟m the genius of everything else

Biased towards the practical

Sorry, graduate students!

Biased towards Microsoft

Page 6: What they don't teach you in CS departments

WHAT THEY DON‟T TELL YOUThe Illuminati, Area 51 and CS Departments…

Page 7: What they don't teach you in CS departments

Professionalism

Learning

A lifetime pursuit

Thinking

Question always

Doing

Be able to produce

Page 8: What they don't teach you in CS departments

Written communication

Internal documentation

Critical for frameworks

External documentation

Affects user-experience

The code itself

Critical for maintenance

Page 9: What they don't teach you in CS departments

Interpersonal communication

Interpersonal skills

Teamwork

Constructive disagreement

Leadership skills

English as a 2nd language

An additional challenge for some

Page 10: What they don't teach you in CS departments

Patterns and Practices

Software Patterns

General solutions to common challenges

Gang of Four (GoF)

Best Practices

Accepted implementation of patterns

Language specific

Address other shortcomings

Page 11: What they don't teach you in CS departments

Requirements

What does the user REALLY need?

Distilled from what they want

The most value from the least code

Practical vs. Perfect

Good now is better than perfect later

Vaporware is the ultimate form of perfection

Page 12: What they don't teach you in CS departments

Version control

Second most used tool

Behind your IDE

Critical for concurrent development

Different tools, but common goals

Edit

Check in

Branching and merging

Page 13: What they don't teach you in CS departments

Unit and acceptance testing

Validating your code

Does it work

Validating your design

Does it do what the user needs it to do

Validating your documentation

Does what it says and says what it does

Page 14: What they don't teach you in CS departments

Software maintenance

Readable code

Easy to read and understand

Debugging

Examining code at runtime

Refactoring

Rewriting code

Page 15: What they don't teach you in CS departments

WHAT TO DO ABOUT ITWhy are you all still sitting here?

Page 16: What they don't teach you in CS departments

Get experienced

Is an education necessary?

Education is the key

Experience is the lock

Get experienced

Internships

Participate in OSS projects

Page 17: What they don't teach you in CS departments

Electives don‟t suck

Use electives wisely

Personal inventory

Identify areas where you are lacking

Fill holes in your experience

Don‟t go for the “easy A”

Personal growth is the key

Page 18: What they don't teach you in CS departments

Read a book, read a book…

Contain the big pictures of CS

The internet is a great microscope

Books are great telescopes

The classics never get deprecated

Read a chapter a week

Page 19: What they don't teach you in CS departments

Read a blog, read a blog…

Big names blog

Interact with big names

Learn directly from the best

Twitter is gaining ground on blogs

Page 20: What they don't teach you in CS departments

Participate

Be active in the community

User groups

Conferences

Blog

Your personal CV

Teach

Yes, even you can teach!

Page 21: What they don't teach you in CS departments

THE BEGINNINGThe end, or…