I read Sandi Metz' popular book Practical Object-Oriented Design in Ruby several years ago. While I took some things away, I was a bit too green to really draw a lot of value. I recently picked it back up and I'm glad I did. Old ideas are now so much more actionable. I found myself hanging on word for word this time instead of picking at an idea here and there.
Revisiting places you've been before is a great pattern for a software development career. The second time around is golden.
I had the same feeling when I revisited some old code in order to change a website I had not seen in years. It was all my code, but it was like it had been written by a different person.
I hope you too find an old place to visit this new year.
Happy coding โค๏ธ
Top comments (11)
I read about a guy who was a Karate black belt. One day he started from zero again and while he got the first few belts without a problem, he still learned things he overlooked before.
I think it's important, because often, when you start, you simply have to take what the masters tell you for granted or else you will never become productive. The skills needed to judge what people teach you overlap highly with the skills they teach you.
I started OOP with Java and PHP. I didn't understand much, because classes were about cars and animals, but when I looked into real software like CakePHP, it was all about abstract stuff like controllers, models and views.
Since then I saw multiple different takes on OOP, with Ruby and Smalltalk and suddendly many things made much more sense to me and I could judge if I needed these design pattern classes or not.
At the moment I'm at the starting point with FP, lets see how it goes. :)
Right there with you re: OOP.
I abandoned (read: ran from) programming after college because while understanding the concept I couldn't translate it to Java-speak.
It wasn't until Ruby (frankly early last year) that I solidified the concept AND could code in Ruby w/ the principles. ๐
Keep me in your thoughts/prayers ๐
Fully agree. I often go back to old projects and indeed books/tutorials where I now see flaws in my old thinking. I recently picked up the clean coding book again and it reminded me how much I gained structuring and writing better code by reading just a couple of chapters. I love tidying up code as I go back into it. There's something satisfying about cleaning up with better knowledge.
Through my work I attended a TDD and agile course, from that I ended up choosing an old library I released for node that had some issues on Github.
It's the node bitly library and from that I ended up refactoring it from spaghetti code into clear
async/await
JavaScript with clear error handing. On top of that I built a nice CI/CD pipeline with testing for 3 node versions (and this blog post details how I achieved it).I intend to revisit it again soon as I want to release the source as TypeScript, the pipeline already uses the TypeScript compiler but the code is not, it just provides an easy way to output
async/await
code back to ES5 support.From this open source code, I of course improve my work code too so it really benefits to go back and refactor old code.
I saw Sandi Metz at a conference last year and was blown away by her insight. What was your favorite part of the book? Iโve been contemplating buying it recently.
I'm blanking on any one thing but I'm going to give it some more thought.
I recently thought about re-reading growing-object-oriented-software.com/
This article inspires me to really do it. Thx
Agreed - so much so that I've just humbled myself and said from jump: your code can be better, know you're coming back to this ๐
But great reminder on how we get new eyes on old topics. ๐๐พ๐๐พ
I'm actually revisiting some old tutorials I've recently written and planning to write some follow-ups about "what I've learned since then and how I've improved." I'm trying to plan these kinds of posts in advance so I'm always reconstructing my own knowledge.
Thanks for the post!
There have been/are/will be many times when I'm learning something new and cannot fully grasp the concept. But when I finally get it, that gives me a sense of achievement and satisfaction and then revisiting the old materials, I get a better insight.
Happy coding โค๏ธ