12 things every programmer should know

Post on 19-Aug-2014

42.913 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

This presentation is about best practices, techniques, and attitudes of a professional software developer.

TRANSCRIPT

12 Things Every Programmer Should Know

by Samnang Chhun

Barcamppp 2010

About Me

• samnang.chhun@gmail.com • @samnangchhun • http://wowkhmer.com • Ruby and Rails Developer • .NET Developer (MCTS) • Yoolk Inc. • Share Vision Team Core Member

Be Passionate

“Programmers are a subset of creators have the responsibility to shape the new world”,

@steveklabnik and @judofyr

1 • Love what you are doing • Be creative • Want to do it best • Better than yesterday

Love Your Codes

• Write codes for human, but bad programmers write codes for machine

• Every programmer loves to work with Clean Code

2

Version Control

• Backup your codes • Tracking changes (who, what, when) • Work in parallel • Commit often • Never commit when your build fail

3

Read Codes

• Before you become a good writer, you have to be a good reader

• Day and day programmers working hours: 70% reading and 30% writing

• Take notes on ideas or tricks of the author

4

Practice, Practice, Practice

• Small exercises, isolated problems • Practice on outside company projects • Do your best as you can(no pressure) • Practice to become a master • CodeKata, Pair with Me, Fixing bugs in

an OSS that you are using

5

Refactoring

• Improve quality of your codes, without changing system behavior

• Make it easy to understand, maintain, and extend

• “Always check a module in cleaner than when you checked it out”, Uncle Bob

• Intension-Revealing Names, Small Method, Compose Method, …

6

Follow Patterns and Best Practices

• Object Oriented Design Principles • SOLID • GRASP • DRY • KISS • Don’t Tell Us • Design Patterns

7

TDD/BDD

• Tests are specifications what the system does

• Tests are your first user • Short development iteration • Is a design process • Write just enough codes to pass the

tests

8

Automation

• Make your manual tasks are automatable

• Command line are your friend • Make a shortcut of your repeated tasks • Continuous Integration • Automation Deployment

9

Understand Your Domain

• Domain-specific won’t be outdate soon, but technologies will

• “You can’t creatively help a business until you know how it works.” Chad Fowler

10

Continuous Learning

• You need to keep learning to stay marketable

• “Be the worst,” Chad Fowler • Read books, blogs, Twitters feeds, and

websites • Listen to podcasts • Sharpening your tools

11

Participate in Communities

• A good way to learn something is to teach or speak about it

• Join or start a study group or a local user group for a language, technology, or discipline you are interested in.

• Contribute to OSS

12

What I have leanred

• Be Prepared To Unlearn • Validate assumptions about your skillset • Do less reading about what others are

doing, and more doing of things that others may want to read about

• Good Artists Copy, Great Artists Steal

+1

References

Q & A

top related