DEV Community

Revisit old materials with new perspectives

Ben Halpern on December 28, 2017

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...
Collapse
 
kayis profile image
K

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. :)

Collapse
 
onecuteliz profile image
Elizabeth Jenerson

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 πŸ˜›

Collapse
 
imthedeveloper profile image
ImTheDeveloper • Edited

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.

Collapse
 
tanepiper profile image
Tane Piper

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.

Collapse
 
restoreddev profile image
Andrew Davis

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.

Collapse
 
ben profile image
Ben Halpern

I'm blanking on any one thing but I'm going to give it some more thought.

Collapse
 
karfau profile image
Christian Bewernitz

I recently thought about re-reading growing-object-oriented-software.com/
This article inspires me to really do it. Thx

Collapse
 
onecuteliz profile image
Elizabeth Jenerson • Edited

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. πŸ‘πŸΎπŸ™ŒπŸΎ

Collapse
 
maxwell_dev profile image
Max Antonucci

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.

Collapse
 
maria_michou profile image
Maria Michou

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.

Collapse
 
xiaohuoni profile image
xiaohuoni

Happy coding ❀️