Hacker News new | ask | show | jobs
by aspirin 4020 days ago
Organization is the hardest part for me personally in getting better as a developer. How to build a structure that is easy to change and extend. Any tips where to find good books or online sources?
5 comments

Structure and Interpretation of Computer Programs. This famous book emphasized controlling complexity and how to build a structure that is easy to extend.
The cost of complexity is exponential -Rob Pike
Same here. I only have 2 years of experience, but right now my opinion is that this is not something you learn in a book (for the moment).

You can learn how to create clean, readable methods and classes with a book (1).

You can learn how to refactor old methods and classes with a book (2).

You can learn how to organize a small team to allow fast iterations with many books.

But building a project lasting more than a few months with constant changes in the requirements, new developers every month, new SDKs and frameworks every 3 days, without the code rotting to death and everything going out of control is a different story, at least for me.

I guess you just learn by watching old guys do what they do after decades of experience...unless someone has a magic book for me?

(1) http://www.amazon.com/Clean-Code-Handbook-Software-Craftsman...

(2) http://www.amazon.com/Refactoring-Improving-Existing-Addison...

I just finished a book called "Practical Object Oriented Design in Ruby." It teaches you how to build OO applications that are pleasant to maintain. I highly recommend it.

http://www.amazon.com/Practical-Object-Oriented-Design-Ruby-...

My personal experience is that I had to maintain a set of applications I wrote for a company. The same application had to be used repeatedly (3-5 times) a year because it supported a specific business processes. It was mundane work, but did it teach me how to organize because it made the pain of disorganized code very real. That one hack comes back to haunt you several times a year.

I was lucky that this was one of the first things I had learned as a developer out of school. It was a little different because the projects were small enough to be solo, but it was humbling because all of the mistakes were my own.

The classic essay Big Ball of Mud is relevant as well:

http://www.laputan.org/mud/mud.html

Check out Clean Code by Robert C. Martin. May be helpful.
>> How to build a structure that is easy to change and extend.

This is a very good book on subject, very clear:

http://www.amazon.com/Practical-Object-Oriented-Design-Ruby-...