Recipe of a rockstar developer
- 1. Recipe of a Rockstar Developer
Shah Ali Newaj Topu
CTO, Secure Link Service Ltd.
- 2. 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
- 3. 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
BUT
You may not learn to deliver even after joining
- 4. 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
- 8. 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.
- 9. 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.
- 10. 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.
- 11. Maintainable Code
Use coding standard. Use IDE plug-in that enforce
standard.
Use understandable descriptive naming.
Write less comment, explain “why” not “what”.
- 12. 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.
- 13. 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.
- 14. 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
- 15. Learn SDLC
Practice Agile methodology.
Use SCRUM or KANBAN.
- 16. User Experience
Accept the fact that you cannot do the UI yourself.
Learn about Ux and usability
Read About Face 3.0
- 17. 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.
- 19. 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.
- 20. You are on your own
You have to keep learning
New technology
New practices
New standards
New language
- 21. 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?
- 22. 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.
- 23. Further Reading
http://www.readwriteweb.com/archives/top_10_software_engineer_tr
aits.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