10 things i wish i learned in college or just before i had to learn the hard way i didn’t know...

54
10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them.

Upload: eleanor-sanders

Post on 26-Dec-2015

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

10 Things I Wish I Learned In College

Or just before I had to learn the hard way I didn’t know them.

Page 2: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Wayne Odom

Software Development Project Lead at Turner Industries Group, L.L.C.

Graduated From LSU in 2002 in Computer Science

Have Interviewed More Software Developers and DBAs Than Can Be Remembered

Alt Titles2 |

Page 3: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Alternative Titles….

10 Things Any IT Pro Should Know 10 Things I Wish I Learned Before That

Embarrassing Interview 10 Ways to Be Professionally Prepared 10 Things Wayne Thinks Are Important

2 Cents3 |

Page 4: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Just My 2 Cents

Could be wrong about a lot of it. Seems to work out so far. I do realize colleges don’t seem to care about

getting a job. All about learning. I would like to see a variation of this talk as a

college course.

10 Things Summary4 |

Page 5: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

My 10 Things Very Quickly

Communication Skills Resume Writing, Interviewing Regional Significant Topics You Must Research Constantly Basic Coding Without Crutches Project Management Design First Design Patterns Testing Security

Communication Skills5 |

Page 6: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

1. Communication Skills

Vocal Communication6 |

Page 7: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Vocal Communication

Speaking in a Meeting Non-Tech Speaking

Abstraction of Implementation Details

Ways To Gain Experience7 |

Page 8: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Ways To Gain Experience

Your University Public Speaking Course LSU Continuing Education Public Speaking Baton Rouge Toastmasters Volunteer To Speak At User Groups

If at all possible get the experience outside of a class. Much more valuable.

Email Communication8 |

Page 9: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Email Communication

Do not talk like you text. No emoticons or acronyms. LOL ;-)

Email helps you document change requests. Email helps you clarify and be clear in

requirements. Email will CYA Email Re-Forward Gets Slow Movers Reacting Get Everything From Project Managers in

Email. (Drive By Requirements Drop)

2. Resume Writing, Interview, Negotiation9 |

Page 10: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

2. Resume Writing, Interviewing

Universities Purpose Isn’t to Get a Job10 |

Page 11: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Universities Purpose Isn’t To Get a Job

We just learn sciences. Most of us go to work when we’re done. Why not offer to teach it?

Resume Writing

Page 12: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Resume Writing

Tailor the resume to the job description. Do not submit the same resume to every job.

If your experience is short don’t fill it in to make it longer. Don’t include Chili’s

School projects if experience short. Top half of page one is most important. Research the people interviewing you.

(Linkedin, Facebook)

Interview12 |

Page 13: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Interviews

Most stay clueless about this for years after school.

Developers are on average so bad at interviewing it’s hard to qualify their abilities.

Interview Tips

Page 14: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Interview Tips

Shirt, tie and slacks with no cargo pants. Preferably a suit.

Bring copies of your resume.(especially if you go through a recruiter)

If you usually get a haircut get a haircut. Be early. Follow up. Don’t expect a response immediately.(ever)

People Brush Up Before Interviews14 |

Page 15: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Don’t Just Barely Brush Up Before Interviews

Q: So have you used MVC any? A: No, but I’ve read about it. Q: Oh ok, where’d you read about it? A: Well I noticed it on a bunch of job notices

including yours. Q: Did you try it out? A: No, but I’m willing to learn. *awkward embarrassing moment.* - KNOW IT

Every day is an Interview15 |

Page 16: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Everyday is Potentially an Interview

Regionally Significant Topic16 |

Page 17: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Interviewer Pipe Dream

I wish we created a program to allow students to sit in on interviews of actual professionals.(never going to happen)

If you intern it doesn’t hurt to ask if you can be involved in interviewing.

Turner Interview Process17 |

Page 18: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Turner Interview Process Rocks

All of our developers interview candidates. I’d never interviewed someone. Makes you a better developer because you get

used to the process and can better articulate what you can do when you have to interview.

Regional Significance18 |

Page 19: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

3. Regionally Significant Topics

I wish colleges taught you to look at regions you want to live in. Where do you want to live?

Job fits your life not your life fitting your job. We don’t go to school to get a job but it should

be explored in university. For sake of this talk we care about Baton

Rouge which does have a developer community.

Where to get regional info.19 |

Page 20: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Where To Get Regional Information

Careerbuilder, Monster, GlassDoor.com, Linkedin

If it’s in Baton Rouge look at big local company websites. Turner, Shaw, BCBSLA, Enta, Amedisys, The State of Louisiana. What are they hiring for?

If Sparkhound and other IT specific companies are hiring for a skill then you’d do good to know a little something about it.

Networking20 |

Page 21: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Just a Little Networking Goes A Long Way

Networking at .NET user groups, SQL Saturday.

Learn local names in your industry. Ex. People speaking at this event.

Learn a few big names in your industry Ex. Microsoft Community: Scott Guthre, Scott

Hanselman, Juval Lowey

Research Constantly21 |

Page 22: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

4. You Must Research Constantly

You must stay up to date in software development if you want to advance professionally.

Stay in Touch22 |

Page 23: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Ways to Stay in Touch

Magazines – Visual Studio Magazine, Redmond Channel Partner, Microsoft Certified Professional Magazine, Code Magazine

Conferences like TechEd, VSLive. (Videos) Get on User Group Mailing Lists Blog Subscriptions Free Email Newsletters Aggregators like reddit, slashdot, Facebook Likes, Twitter Following

What are Companies Hiring For?23 |

Page 24: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

What are Companies Hiring For?

If non-IT and IT companies are hiring for it then it’s important. Learn more about it.

If bloggers, conferences and companies are talking about it then watch it.

Make Time24 |

Page 25: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Make Time

You have to set aside time for staying in touch. Monday Morning For 30 Minutes – What’s New

6. Basic Coding Without Floaties25 |

Page 26: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

6. Basic Coding Without Following:

Drag and Drop Copy / Paste Inellisense The Internet Any language will typically do.

C# Class We Use On Candidates26 |

Page 27: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

What Percentage Of Devs Can’t Do This? public class PersonClass { public PersonClass(string firstName, string lastName) { this.FirstName = firstName; this.LastName = lastName; } public string FirstName { get; set; } public string LastName { get; set; } public string FullName { get { return this.FirstName + ", " + this.LastName; } } }

SQL Join27 |

Page 28: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Or This?

SELECT A.[ID], B.[Job]

FROM [FirstLongNameTableOMGITSSOLONG] A

join [SecondLongNameTableOMGWraparound] B

on A.[ID] = B.[ForeignID]

where B.[Job] is not null

Project Management. Put The To Sleep.28 |

Page 29: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

7. Basic Knowledge of Project Management

No matter where you go there are project managers. Cockroaches.

The first thing that happens as a developer is people want you to estimate.

To me this is one of the most important of the 10.

Communication Management29 |

Page 30: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

PMI Style Project Management

Read Chapter 2 & 3 of Rita’s guide

2 Cents30 |

Page 31: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Project Initiation Group

Project Charter – Statement of scope, objectives and participants.

Stakeholder Matrix A Stakeholder Management Plan

Change Management Plan31 |

Page 32: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Project Planning Group

Where you determine if a project can be done. Project Management Plan – How will I scope, schedule and cost this? Determine Team Create Work Breakdown Structure Estimate Resources Schedule Budget Determine Roles Plan Communication Plan Change Management Strategy Risk Management - Need to identify, evaluate, reduce, insure and

prepare contingency for risks. Risk changes the plan. Go back when you identify them.(iterative)

8. Design First32 |

Page 33: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Execution Group

Produce the Scope According to the Plan Follow the processes

Communication Management Strategy Change Management Strategy Hold Meetings or daily standups(Scrum style) If you are a project lead processes allow you to do

your job without feeling like a pest.

2 Cents33 |

Page 34: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Did I Mention Use a Change Management Plan?

Scope Creep, Gold Plating Prevent Desk Drops by PM & Managers.

They will creep their own projects and blame development later.

Gold plating includes small things like using a jquery auto load dropdown instead of a text box.

Risk Management34 |

Page 35: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

2 Cents35 |

Page 36: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Monitoring and Controlling Group

Measure Project Performance Approve or Reject Changes Gain Acceptance For Deliverables Risk Audit

2 Cents36 |

Page 37: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Closing Group

Confirm all work is done. Gain Formal Acceptance Confirm all documentation is done. Hand off Product or Maintenance Mode

2 Cents37 |

Page 38: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

8. Design First

Concepts For Design First38 |

Page 39: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Developers Like To Jump In

Would you build a building or bridge without blueprints?

Tools For Design First39 |

Page 40: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Prototype in to Production

Prototypes are necessary Developers fall in to a trap of creating

prototypes that magically become production code.

These are simulations to identify basic requirements. Think of it as a closed box that can’t be modified

9. Patterns40 |

Page 41: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

blah….

2 Cents41 |

Page 42: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

9. Patterns

Design Patterns - general reusable solution to a commonly occurring problem.

Architectural Patterns – Standard design practice. Broader than design patterns

Why teach patterns?42 |

Page 43: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Why Teach Patterns in School?

A common language for building that developers can all relate to.

Can be a whole series of talks on it’s own. Would be great series of classes over four year

degree. Build a simple layered application then replace

the layers to test the coupling.(Learn Pain of Failure)

Design Patterns

Page 44: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Design Patterns

Book: Design Patterns – Elements of Reusable Object-Oriented Software

Book: Agile Software Development, Principles, Patterns and Practices(Martin, SOLID)

Book: Professional ASP.NET Design Patterns

SOLID: Single Responsibility Principle44 |

Page 45: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Single Responsibility Principle

Architectural Patterns45 |

Page 46: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Architectural Tools & Patterns Currently Popular

MVC / MVVM / MVP – Separation of Concerns Service Bus & Service Oriented Architecture –

Communication between applications Data Warehousing (Data Mart), ETL – Extract,

Transform, Load

Testing46 |

Page 47: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

10. Testing

Types of testing….what’d you do in college?47 |

Page 48: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Common Types of Software Testing

Unit Testing – (usually as far as it goes) User Acceptance Testing Alpha, Beta (Production)

We can do better testing?

Testing Frameworks & Departments48 |

Page 49: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Testing Frameworks & Departments

Test Driven Development – Test First Behavior Driven Development Quality Assurance Group

2 Cents49 |

Page 50: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

10. Worry About Identity From The First

I think all projects should require authentication against a 3rd party.

When I was in school we learned zero on this.

Why Learn This50 |

Page 51: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

Why: All Systems Want an ID

I have yet to work on anything that didn’t involve: Active Directory SQL Server Citrix & Portal Type Implementations OpenID – Fast easy way to share information with

websites.

With modern devices a distributed identity is always required to my knowledge.

2 Cents51 |

Page 52: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

blah….

2 Cents52 |

Page 53: 10 Things I Wish I Learned In College Or just before I had to learn the hard way I didn’t know them

blah….

2 Cents53 |