Saturday, May 7, 2011

My favorite tips from Pragmatic Programmer

I recently (finally) read the Pragmatic Programmer book and it has lot of good tips. Broken Windows and DRY are some of the widely known pragmatic programmer tips. Below are some of my personal favorite tips from this book:
  1. Care about your craft - Care about the product that you develop and not just do it because you have to do it.
  2. Don't live with Broken Windows - Make sure to fix bad designs, wrong decisions or poor code as soon as possible.
  3. Be a catalyst for change - Like the stone soup story, it's time to bring out the stones. Show people what you got and how it could evolve in future and people will join you.
  4. Remember the big picture - Don't be like boiled frogs. Be aware of what's going on around you.
  5. Invest regularly in your knowledge portfolio - Just like managing a portfolio, we need to invest regularly, diversify it and manage the risks involved. Also, review and rebalance your technical portfolio in a regular basis so that it reflects the current trend.
  6. DRY - Don't Repeat Yourself. Make sure that every piece of code has a single, unambiguos and authoritative representation in the system. Not that this also applies to documentation and not just for code.
  7. Eliminate effects between unrelated things - We wants systems to be as orthogonal as possible. Less coupling allows them to change independently.
  8. Don't program by Coincidence - Always know what you do and don't code blindfolded.
  9. Test your software, or Your Users Will - It is better for the tester in your team to find issues before users find it. Better yet, make sure that you test your code and find any problem before the tester finds it.
  10. Work with a user to think like a user - Don't just assume that users might need a feature just because it is in other apps, or it is cool or you like it. Work with a user (or product owner) to find out what they want and learn to think like them.
  11. Refactor early, Refactor often - Always refactor to keep the code in good shape. Use the medical analogy of removing "growth", when explaining the need of refactoring to non-technical managers.
  12. Don't be a slave to formal methods - Formal methods are good, but don't follow it blindly. It would be good to tweak it to suit your development needs and the team structure.
  13. Don't use manual procedures - Always automate anything and everything that you do repeatedly manually.
  14. Use Saboteurs to test your testing - Test cases or suites test our code. But, we also need to test the tests. Make sure that your tests produce alarm when they should.
  15. Test state coverage, not code coverage - It is possible to fail with 100% code coverage. Make sure that all states of the system are tested well.
  16. Find bugs once - When a bug is found, add test for the bug first and see it go red. Then fix it and watch it go green. Automated tests prevent the bug from happening again.
  17. Sign Your Work - Take pride in what you do. Just like an artist signs their work, make sure to sign your code (ex - @author tag in Java) and take pride in the code your develop. Other developers should expect to see your name and expect it to be well written, tested and documented.

10 comments:

Santosh said...

Good compilation of points dude.

javin paul said...

wonderful tips man , you summarizes the message of book in nice little post.keep it up.

Javin
10 point about Heap space in Java

n00b said...

Very good compilation

Jeron Jacob said...

Nice List, would recommend reading the sequel Passionate Programmer by Chad Fowler.

nsnill99 said...
This comment has been removed by the author.
nsnill99 said...
This comment has been removed by the author.
aliyaa said...

These are computer programing languages which aren’t limited to one type of computer. http://www.programmingassignment.net/types-of-programming-languages/

Nina Athena said...

Thank you for sharing such valuable and helpful information and knowledge! This gives us more insights and inspiration. Looking forward to seeing more updates from you.

Melbourne Web Developer

Situs Judi Online Terpercaya said...

Yuk Gabung di NAGAQQ: AGEN BANDARQ BANDARQ ONLINE ADUQ ONLINE DOMINOQQ TERBAIK

Yang Merupakan Agen Bandarq, Domino 99, Dan Bandar Poker Online Terpercaya di asia hadir untuk anda semua dengan permainan permainan menarik dan bonus menarik untuk anda semua

Bonus yang diberikan NagaQQ :
* Bonus rollingan 0.5%,setiap senin di bagikannya
* Bonus Refferal 10% + 10%,seumur hidup
* Bonus Jackpot, yang dapat anda dapatkan dengan mudah
* Minimal Depo 15.000
* Minimal WD 20.000

Memegang Gelar atau title sebagai Agen BandarQ Terbaik di masanya

Games Yang di Hadirkan NagaQQ :
* Poker Online
* BandarQ
* Domino99
* Bandar Poker
* Bandar66
* Sakong
* Capsa Susun
* AduQ
* Perang Bacarrat (New Game)

Tersedia Deposit Via pulsa :
Telkomsel & XL

NAGAQQ: AGEN BANDARQ BANDARQ ONLINE ADUQ ONLINE DOMINOQQ TERBAIK

Info Lebih lanjut Kunjungi :
Website : NagaQQ
Facebook : NagaQQ Official
Kontakk : Info NagaQQ
linktree : Agen Judi Online
WHATSAPP 1 : +855977509035
WHATSAPP 2 : +6287784625693
Line : Cs_nagaQQ
TELEGRAM : +855967014811


BACA JUGA BLOGSPORT KAMI YANG LAIN:
agen bandarq terbaik
Winner NagaQQ
Daftar NagaQQ
Agen Poker Online

CrownQQ Official said...

CrownQQ Agen DominoQQ BandarQ dan Domino99 Online Terbesar

Yuk Buruan ikutan bermain di website CrownQQ
Sekarang CROWNQQ Memiliki Game terbaru Dan Ternama loh...

9 permainan :
=> Poker
=> Bandar Poker
=> Domino99
=> BandarQ
=> AduQ
=> Sakong
=> Capsa Susun
=> Bandar 66
=> Perang Baccarat (NEW GAME)

=> Bonus Refferal 20%
=> Bonus Turn Over 0,5%
=> Minimal Depo 20.000
=> Minimal WD 20.000
=> 100% Member Asli
=> Pelayanan DP & WD 24 jam
=> Livechat Kami 24 Jam Online
=> Bisa Dimainkan Di Hp Android0619679319
=> Di Layani Dengan 5 Bank Terbaik
=> 1 User ID 9 Permainan Menarik

Ayo gabung sekarang juga hanya dengan
mengklick Agen BandarQ

Link Resmi CrownQQ:
- eurohoki.com
- eurohoki.net
- eurohoki.org
- eurohoki.info

Info Lebih lanjut Kunjungi :
Website : CrownQQ
WHATSAPP : +855882357563
Line : CS CROWNQQ
Facebook : CrownQQ Official