Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How to code

How to code

How to code.

Avatar for Shishir Sharma

Shishir Sharma

September 27, 2011
Tweet

Other Decks in Programming

Transcript

  1. Is it for me ? Is it for me ?

    • You don't care about your code. • You want to code. • You know that your code is not best. • You want to be best. • You are done with college/school exercise. • You don't care about your code. • You want to code. • You know that your code is not best. • You want to be best. • You are done with college/school exercise.
  2. Get Interested Get Interested • Your should like programming. •

    Create a programming environment around. • Your should like programming. • Create a programming environment around.
  3. Get Aware Get Aware • Change your books, if it

    is YK. • Change your compiler, if it is TC++. • It might if wonderful if you can shift to a better OS like Debian Linux, Mac • Join Mailing lists/Groups like LUGs. • Change your books, if it is YK. • Change your compiler, if it is TC++. • It might if wonderful if you can shift to a better OS like Debian Linux, Mac • Join Mailing lists/Groups like LUGs.
  4. Learn helper tools. Learn helper tools. • Learn your OS,

    If it is Windows better change it. • Learn a good editor like emacs/vim. • Learn utilities like grep, find, ssh, scp, git, etc ... • Learn how to diff, merge, patch. • Learn few scripting language like bash, perl etc. • Learn your OS, If it is Windows better change it. • Learn a good editor like emacs/vim. • Learn utilities like grep, find, ssh, scp, git, etc ... • Learn how to diff, merge, patch. • Learn few scripting language like bash, perl etc.
  5. Theory and algo Theory and algo • Read all the

    API at least once. • Master Data structure • Master Algorithms. • Master Internals of computer hardware. • Understand Software development cycle. • Read all the API at least once. • Master Data structure • Master Algorithms. • Master Internals of computer hardware. • Understand Software development cycle.
  6. Understand Understand • Understand your problem statement. • Ask questions.

    • Discuss. • Create conclusion of understanding. • Close all the open ends. • Narrow down the problem. • Understand your problem statement. • Ask questions. • Discuss. • Create conclusion of understanding. • Close all the open ends. • Narrow down the problem.
  7. Approach Approach • Learn the domain of problem. • Gather

    the knowledge required. • Use simple logic but complex data structure. • Learn the domain of problem. • Gather the knowledge required. • Use simple logic but complex data structure.
  8. Logic Logic • Use a paper and pen, write your

    logic. • Discuss. • Write a algorithm. • Differentiate Instructions and data. • Abstract with objects. :) • Create a borderline between different objects. • Follow MVC. • Use a paper and pen, write your logic. • Discuss. • Write a algorithm. • Differentiate Instructions and data. • Abstract with objects. :) • Create a borderline between different objects. • Follow MVC.
  9. Talk Talk • Talk to other programmers. • Read their

    programs. • Profile them. • Learn the difference and analyze. • Incorporate these improvements in your code. • Talk to other programmers. • Read their programs. • Profile them. • Learn the difference and analyze. • Incorporate these improvements in your code.
  10. Try try again Try try again • Try multiple approaches.

    • Learn existing solutions. • Innovate and create. • Try multiple approaches. • Learn existing solutions. • Innovate and create.
  11. Study Study • Study different paradigms. • Study different theories.

    • Keep on programming. • Study different paradigms. • Study different theories. • Keep on programming.
  12. Be best and worst Be best and worst • Work

    in a project where you are the worst programmer. • Work in a project where you are the best programmer. • Learn from one and apply it on the other. • Work in a project where you are the worst programmer. • Work in a project where you are the best programmer. • Learn from one and apply it on the other.
  13. Maintain Maintain • Takeover an existing project and develop •

    Join a large active project. • Revive a dead project. • Learn from these experiences to avoid mistakes you could have done. • Takeover an existing project and develop • Join a large active project. • Revive a dead project. • Learn from these experiences to avoid mistakes you could have done.
  14. Be swiss knife Be swiss knife • Learn half a

    dozen language. • Learn half a dozen programming paradigm. • Work on more then one platform. • Know your 'computer' in depth. • Learn half a dozen language. • Learn half a dozen programming paradigm. • Work on more then one platform. • Know your 'computer' in depth.
  15. Follow Rules Follow Rules • Know language standardization. • Follow

    language standardization. • Get involved in it. • Get off at right time. :) • Know language standardization. • Follow language standardization. • Get involved in it. • Get off at right time. :)
  16. Bibliography Bibliography • How To Become A Hacker • Eric

    Steven Raymond • http://www.catb.org/esr/faqs/hacker-howto.html • Teach Yourself Programming in Ten Years • Peter Norvig • http://norvig.com/21-days.html • How To Become A Hacker • Eric Steven Raymond • http://www.catb.org/esr/faqs/hacker-howto.html • Teach Yourself Programming in Ten Years • Peter Norvig • http://norvig.com/21-days.html
  17. Thanks Thanks • CantGetANick • irc://irc.freenode.net/lug-jaipur • irc://irc.freenode.net/lugb • Rocker

    • http://shishirsharma.com • Mail me: • cpt [at] lugj [dot] in • CantGetANick • irc://irc.freenode.net/lug-jaipur • irc://irc.freenode.net/lugb • Rocker • http://shishirsharma.com • Mail me: • cpt [at] lugj [dot] in