12 Steps to being a Better Programmer by Code School's Gregg Pollack

Preview:

DESCRIPTION

"12 Steps to being a Better Programmer" by Gregg Pollack from Code School gives a talk on the lessons they don't teach in programming class. Gregg talks on setting expectations, getting outside of your comfort zone, moving from independence to interdependence and understanding software development as a craft. Using examples from his own experience at his company Envy Labs, Gregg goes through these 12 steps very concisely sharing many anecdotes that offer a great perspective.

Citation preview

12 Steps to be a Better Developer (aside from the coding part)

Gregg Pollack @GreggPollack

Code is not Enough

- Steve Jobs“ ”technology alone is not enough

- Steve Jobs

technology alone is not enoughIt is in Apple’s DNA that

it’s technology married with liberal arts,married with the humanities,that yields the results that make

our heart sing.

- Steve Jobs“ ”technology alone is not enough

12 principles

SET EXPECTATIONeven when you’re not asked to1

Estimation is hard,kinda like riding a bike

Why did your last project fail?

Client closer to Team

Client with the Team?

Short Feedback Cycles

Project Management Tools

Be mindful of yourengineering background 2

Listening to Ideas

Kills Collaboration

Often diagnosis soundslike criticism

“In my wide association in life, meeting with many and great people in various parts of the world, I have yet to find the person, however great or exalted his station, who did not do better work and put forth greater effort under a spirit of approval than he

would ever do under a spirit of criticism.”

~Charles Schwab

Beware of giving Diagnosis

“yes, and”

Give Attention

You might be shy

Be mindful of yourengineering background 2

Software Developmentis an art form3

Software Developmentis an art form3

Software Developmentis a craft

3

"Craft means making useful objects with perhaps decorative touches. Fine art means making things purely for their beauty." Richard Stallman

Beautiful Work

Beautiful Work

Insert Rant Here

ConsultingIs usually more challenging

Consulting takes another set of skills

Scratching your own itch is easy.

(see all the PM tools)

Want a challenge? Scratch someone else’s itch.

Software Developmentis a craft

3

Learn how to delegateand improve the system4

Project Managers

Scheduling Meetings

Writing expectations

Invoicing

Organization

Can you think of things you can delegate

Just because you CANdo something doesn’t

mean you should!!!

Do the math

80 people

average 1 cup a day

15 minutes wasted

80 people

average 1 cup a day

15 minutes wasted

= 1200 minutes = 20 hours

Do the math

But I’m not running my own business!

If someone does a task better than you

First Independence,Then Interdependence

Learn how to delegateand improve the system4

Continue to learninside and outside your company5

INSIDE

Internal Presentations

Screencasts!

Retrospectives

OUTSIDE

Stay out of yourcomfort zone6

Your Task List

The Difficult Tasks= More Learning

But naturally we gravitate towards

the easy

Example = Email Trap

Want to learn the most while you work?

Stay out of yourcomfort zone6

Make friendsand build relationships

7

“Individuals and interactionsover

processes and tools”-Agile Manifesto

More friendships = happiness

More friendships = happiness

happiness = better work

How much time do you spend at work nurturing

friendships?

One way you can make everyone around you better:

Become a better friend.

One way you can make the Ruby community better:

Make more friends

People love talking about themselves

Set a goal for yourself.Try to meet 5 new people.

Make friendsand build relationships

7

don’t be afraid toASK FOR HELP

8

2  hourses)mate

2  hourses)mate

4  hours

2  hourses)mate

8  hours

What would have happened if you asked for help?

Is it better to fail after 2 hours, or fail after 8 hours?

It’s natural

Kerplakistan

Kerplakistan

Kerplakistan

Kerplakistan

Kerplakistan

Kerplakistan

Kerplakistan

It’s human nature

Give yourself 30 Mins

If something is taking too much time, you’re probably doing it wrong

Who do you ask?

Preempt the problem

Learn to eliminate distractionsand get in the zone

9

It is not natural to be productive 100% of the time

20% Fun80% Productive

Optimally.....

Turn offcommunication

Asynchronous Communication

Alternative workspaces

Learn to eliminate distractionsand get in the zone

9

the most COMPLEX solutionis rarely the BEST solution

10

communicate better thaneveryone else

11

“Creating quality software is x% code and y% communication where

y is greater then x.”

~Carlos Souza

HIRE GREAT WRITERS

HIRE GREAT WRITERS

Clear writing is a sign of clear thinking.

How do you communicate more effectively?

Leverage the right PM tool

Force yourself to communicate

Be more effective withSkitch and JingMonosnap

Communicate through imagesand video. Not words.

communicate better thaneveryone else

11

understand what willbring you happiness12

People aren’t usually good at choosing what will make them happy

It’s not money

It’s not fame

It’s not fame

It’s not ONLY code

- Steve Jobs“ ”technology alone is not enough

Doing meaningful work

SET EXPECTATIONeven when you’re not asked to1

Be mindful of yourengineering background 2

Software Developmentis a craft

3

Learn how to delegateand improve the system4

Continue to learninside and outside your company5

Stay out of yourcomfort zone6

Make friendsand build relationships

7

don’t be afraid toASK FOR HELP

8

Learn to eliminate distractionsand get in the zone

9

the most COMPLEX solutionis rarely the BEST solution

10

communicate better thaneveryone else

11

Each of these can createmore meaning in the work

that you do

understand what willbring you happiness12

name author URLCanon EFS 17-85mm nickwheeleroz http://www.flickr.com/photos/nickwheeleroz/2663377622

NEGATIVE APPROACH ALL CHROME http://www.flickr.com/photos/allchrome/5049275868

Kup,Kup & Chloé Kup Kup Land http://www.flickr.com/photos/13937854@N00/416735964

Disney - Partners at Dusk Express Monorail http://www.flickr.com/photos/23322134@N02/3108405260

Darkening Clockwork matthelio http://www.flickr.com/photos/matthileo/3552898254

afternoon perfection janhamlet http://www.flickr.com/photos/janhamlet1/4647870872/

friendship bracelets. amanda.venner http://www.flickr.com/photos/amandavenner/4939925977

SAF#2 Robby Ferarri http://www.flickr.com/photos/roberto_ferrari/281640001

Meeting Table mnadi http://www.flickr.com/photos/mnadi/32325828

Money! Tracy O http://www.flickr.com/photos/37108241@N00/61056391

CareerTech Hall of Fame okcareertech http://www.flickr.com/photos/okcareertech/2234107433

Creative Commons

name author URLdiary Calinago http://www.flickr.com/photos/65691836@N00/221416101

BarCamp Vancouver kk+ http://www.flickr.com/photos/49503002894@N01/230544325

The Grotto Stuck in Customs http://www.flickr.com/photos/95572727@N00/161483435

His Holiness Dagchen Wonderlane http://www.flickr.com/photos/71401718@N00/3242519210

poor walter JKonig http://www.flickr.com/photos/83156837@N00/470817175

Project Opus Launch D’Arcy Norman http://www.flickr.com/photos/51035644987@N01/398070036

Flickr Mints Neal. http://www.flickr.com/photos/31878512@N06/4704140020

Máquina de Rube Goldberg freshwater2006 http://www.flickr.com/photos/freshwater2006/693945631

Communist Unicorn zoomar http://www.flickr.com/photos/zoomar/141098807

Planet Express gabrielsond http://www.flickr.com/photos/41819939@N00/4665230659

Return Undefined nyuhuhuu http://www.flickr.com/photos/nyuhuhuu/4443886636/

Human Reproduction Vinicius Teles http://improveit.com.br

Creative Commons

@GreggPollackGregg@EnvyLabs.com

http://envylabs.com http://ruby5.envylabs.comRuby5 Podcast

Presentation by:

http://www.CodeSchool.com