Download - Recipe of a rockstar developer
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.