Passionate Programmer

Post on 12-Jul-2015

84 views 2 download

Transcript of Passionate Programmer

Tips to succeed in software development career

Being passionate programmer

Edwin Cruz

edwin@crowdint.com

Passion vs Obsession

• People with harmonious passion have the ability to disconnect when work is over, easily transitioning into their lives outside of the office. Obsessive people don't have that ability

Look back to your career history, has it been remarkable?

Are you a programmer by coincidence?

• How did you get to your first job?

• Was it what you wanted?

• Did you succeed?

Did you fit into the business?

You can't help the business until you know how it works

The goal of every single business is to make money, it's not about love.

Just a programmer vs business driven developer

How can I understand the business

What is the most common problem?

so….If it is all about career plan, how can I plan my own?

Choosing your market: Risk vs Reward

Plan your career, example

• Analyze technologies

– Cutting edge

– Stables or Conservatives

– The ones in their sunset

Research current market

Invest on Learning!

• "don’t ask to be taught—go learn for yourself."

Finding a Mentor

• Asking is not a sign of weakness

• Follow Alpha Geeks

Being a Mentor

• Learn by teaching

• The only folkswho avoid being noobs are folks who never do anything new

Get into the social networking movement!

Get out of your room, don't be afraid to meet the pros!

The most important part: always practice

Why do I have to invest too much in practicing?

• You could be part of:

– a lot of people that do the work

– fast people that do the work

– smart people that automate the work

Practice your dusty skills, example, how often do you use regular

expressions?

Want to practice by challenges ?

• www.topcoder.com

• www.projecteuler.net

• www.puzzlenode.com

Want to practice by market?

• Go and solve recruiting challenges

Want to practice with real world wide problems?

• Go and fix bugs in open source projects• Fork

• Learn

• Fix

• Pull request

• Have a beer

While practicing, respect methodologies!

If you can't do the process, you can't build products

Specializing does not mean not knowing about other things

Don’t reinvent the wheel, learn and implement Design Patterns

Be the worst!, but dont do it intentionally x)

Being ahead: Mind reader, is it really possible?

Track accomplishments, do your managers know about it?

You're not as special as you think“I'll show them how valuable I am,

they need me!”

How valuable is your time?

Quiz, Try to remember when you came up with the most ingenious, creative

and impromptu solution

Being Honest, failing well: finding errors early and often is a good sign of

what the health of software development will be

The path destined to fail: Saying "Yes" to everything

You need to sleep!

Practice your communication skills, are your clients afraid of you?

What about "GrAmMaraNdspelLinG"?

Let the world know about you

• What would be better than a good resume when applying for a job?

Google never forgets!

Want to be the best programmer? Manage panic

Bored people quit

Don't focus in finishing your project, focus on doing well your project

"don't finish your ideas, release them" - John Lasseter

Computing power doubles every eighteen months

Top ten developer qualities

1.- Loves To Code

Top then developer qualities

2.-Gets Things Done

Top then developer qualities

3.- Continuously Refactors Code

Top then developer qualities

4.- Uses Design Patterns

Top then developer qualities

5.- Writes Tests

Top then developer qualities

6.- Leverages Existing Code

Top then developer qualities

7.- Focuses on Usability

Top then developer qualities

8.- Writes Maintainable Code

Top then developer qualities

9.-Can Code in Any Language

Top then developer qualities

10.- Knows Basic Computer Science

Have fun, Software development is fun!

Thanks!

Edwin Cruz edwin@crowdint.comsoftr8@twitter

gmailgithub

everywhere!

• Passionate Programmer

• Clean Coder

• The Art of Agile Development

• Design Patterns

• Anti Patterns

• Management