The best refactoring and self-improvement milage & motivation i am currently geting is out of the switch from a procedural/object oriented mindset (and/or programing language) to functional programming.
I know this isn't what you asked but my claim is that learning a totally new way of approching problems will help you code better. I claim it will get you farther on your goal than compared to reading books that focus on the refactoring topic specifically. It certainly has helped me.
(
My story is as follows : I was looking, 2-3 years ago for a 'better' Object Oriented language than Java. I was at the time reading the excelent (IMO) Object Oriented Software Construction by Bethrand Mayer so Eiffel was in my short list. But I gave Scala a try (managed to implement nearest neighbour classifier in very few lines of code) and really liked it.
Turns out Scala is a quite potent functional programming language as well and this year, in which I started using it as much as possible , I also fell more and more in love with this aproach.
The incredibly powerful type sistem, the concision, the ease to produce more correct code are all new challenges. The surprising imaturity of the ecosystem (for a 12 year old language) is the other challenging part, unfortunatelly.
I can recommend this book : http://www.amazon.com/Functional-Programming-Scala-Paul-Chiusano/dp/1617290653, although I've not read it yet. I watched quite a few presentations and read quite a few blog posts from one member of the authors pair Rúnar, he's a smart and nice guy. But yeah, the book reffers to Scala which is JVM language. I'm pretty sure it can be read through to learn FP alone, but refering to a JVM language can put some people off and I understand that.
)
I know this isn't what you asked but my claim is that learning a totally new way of approching problems will help you code better. I claim it will get you farther on your goal than compared to reading books that focus on the refactoring topic specifically. It certainly has helped me.
(
My story is as follows : I was looking, 2-3 years ago for a 'better' Object Oriented language than Java. I was at the time reading the excelent (IMO) Object Oriented Software Construction by Bethrand Mayer so Eiffel was in my short list. But I gave Scala a try (managed to implement nearest neighbour classifier in very few lines of code) and really liked it.
Turns out Scala is a quite potent functional programming language as well and this year, in which I started using it as much as possible , I also fell more and more in love with this aproach.
The incredibly powerful type sistem, the concision, the ease to produce more correct code are all new challenges. The surprising imaturity of the ecosystem (for a 12 year old language) is the other challenging part, unfortunatelly.
I can recommend this book : http://www.amazon.com/Functional-Programming-Scala-Paul-Chiusano/dp/1617290653, although I've not read it yet. I watched quite a few presentations and read quite a few blog posts from one member of the authors pair Rúnar, he's a smart and nice guy. But yeah, the book reffers to Scala which is JVM language. I'm pretty sure it can be read through to learn FP alone, but refering to a JVM language can put some people off and I understand that.
)
Last edited: