SlideShare a Scribd company logo
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
                          BUT
    You 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



       Best practice               Analytical ability




                       Knowledge
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_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
Questions
Thank you all for participating.

More Related Content

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
  • 5. A Rockstar developer delivers with style But may not look like this
  • 7. Rockstar triangle Best practice Analytical ability Knowledge
  • 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
  • 25. Thank you all for participating.