recipe of a rockstar developer

Post on 14-Jan-2015

791 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

Recipe of a Rockstar Developer

Shah Ali Newaj Topu

CTO, Secure Link Service Ltd.

Coders Vs Developers All of us can code. Some of us are brilliant coder. Some of us are GEEKS. Some of us has solved hundreds of ACM

problem NONE of us are developers.

Coders code Developers Deliver

Delivery Matters How many of us did a project that we did not

finish How many of us did a project we never

deployed How many of us did a project no one ever

used

You will never learn to deliver until you join the industry

BUTYou may not learn to deliver even after

joining

A software is delivered when it Works under worst case scenario Provides user a comforting User eXperience

(Ux) Solves the actual business problem Can handle scalability Has proper and detailed documentation Can be iteratively improved Can be changed with less cost Can be modified and maintained by a person

who did not originally developed it

A Rockstar developer delivers with style

But may not look like this

HOW!!

Rockstar triangle

Analytical ability

Knowledge

Best practice

Train your brain Learn algorithms as many as you can.

Implement a few. Can you run a multiple recursion in your

brain? Sit and think before writing code Read complex stuff, make an habit to digest

things that are hard to swallow.

OOP and Design Patterns Industry runs on OOP, you will probably not be

writing code in Erlang. Learn to think in objects not in methods SOLID principal, get a strong hold on it. SOLID

is Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion.

Read GoF. Build a pattern vocabulary.

Refactoring and Code Smell Love coding, not the code. Code rots. Code

smells. Refactor codes to get rid of code smell Refactoring is a technique, it’s a skill. You

have to learn it by practicing it. Its vocabulary, learn to talk in the language of

patterns and refactoring.

Maintainable Code Use coding standard. Use IDE plug-in that

enforce standard. Use understandable descriptive naming. Write less comment, explain “why” not

“what”.

Source Control Never, ever work without a source control.

Not even when you are working alone. Learn to merge. Use a distributed version control such as Git

or Mercurial.

Unit Testing and Continuous Integration This is a decisive line, Rockstars writes tests. Use a CI system, let the compiler do the hard

work every time you commit.

Pick a side and dig deep Choose a technology platform, become an

expert on that. Know very deeply how that platform works,

how it was built, how it works internally. If you work on Java, could you build a JVM your

self

Learn SDLC Practice Agile methodology. Use SCRUM or KANBAN.

User Experience Accept the fact that you cannot do the UI

yourself. Learn about Ux and usability Read About Face 3.0

Read Daily and adopt early At least follow 5 blogs Know all the famous people in your platform,

follow them, read them. Adopt any new technology in your platform as

soon as it is released as alpha or preview.

Hard Facts

It’s a mine field out there MOST of the Companies does not give a damn

about your Career Knowledge Personal Growth Social Life Family

They just want you to get their job done.Period.

You are on your own You have to keep learning

New technology New practices New standards New language

7 questions to ask before you join a company (other than how much salary they pay you)

Do you use source control? Which one? Do you use any methods such as Scrum to

develop? Do you have a CI system? Do you have senior developers who will work

as my mentor? Do I work alone or in a team? Do you have Quality Assurance team? Do I have to work over hours? In weekends?

Freelancing damages your career Do not decide to freelance only. Becoming a

Rockstar developer is all about working with other Rockstars .

Freelancing does not have commitments, does not allow you to execute best practices.

Further Reading http://

www.readwriteweb.com/archives/top_10_software_engineer_traits.php

http://www.joelonsoftware.com/ http://

www.amazon.com/Design-Patterns-Elements-Object-Oriented-ebook/dp/B000SEIBB8

http://www.amazon.com/About-Face-Essentials-Interaction-Design/dp/0470084111

http://www.amazon.com/Refactoring-Improving-Design-Existing-Code/dp/0201485672

http://www.amazon.com/Refactoring-Patterns-Joshua-Kerievsky/dp/0321213351/ref=pd_sim_b_9

http://www.amazon.com/Test-Driven-Development-By-Example/dp/0321146530/ref=pd_sim_b_6

Questions

Thank you all for participating.

top related