I think that speaks for itself. Here is a good place for the thinking cap. As a software engineer it is your job to limit this trait of your projects to the specific requirements for the specific project and keep as much of the code as reusable as you can. (Good candidates for your library)
Most of the work involves some form of (g)ui, and manages a set of data. The more general you start to think, the more it seems like all problems are basically the same with some specifics. The bigger the picture gets the more they seem like the same thing over again. One will find very different jobs to have many exact methods repeated among the jobs. One lovely result of thinking ahead using general terms. ie, don't think of a way to make a key-lime pie. Instead think of a way to make a pie crust suitable for many pie types, and how to make pie filling in a general way that does not limit your code to a sour pie. (to introduce my pastry-chef analogy)
After some time on the keys you will see some personal traits that not all coders have. You can look through stacks of code and after some time start picking out code by the same person. You see patterns in their problem solving (or creating!!) skills and start to see what they were thinking as the code come to be. A lovely perk of a forum, you get to see so many ways to think of the problems, and many times different views on the same problem (thank you school assignments).
My personal library has it's own
Easy Bake Oven built right in. I don't just make pies of any flavor, I also make cakes and cookies. One can be surprised what they find themselves reusing and keeping over time. (...and sometimes deleting after some more education haha, learning and mistakes are part of the journey for everyone.) Consider a department store who manages shoes, socks, gloves, and hats. There may be reusable code among the shoes, socks, and gloves that apply to "pairs-including-a-left-and-right-each" that would not apply to gloves. Keeping that code generalized makes it reusable when your future job hands you a contract for a jewelry store with studded earrings, looped earrings, charm earrings, and just plain rings.
I make many apps for android. A large portion of my library includes basic frameworks for different things. A game engine for a single activity game.(tic-tac-toe, sudoku, dots) Another for multiple activities.(zombie shooter, *defense) They are similar but each implement things in a manner dependant on the number of activities. Depending on the project, one type or the other can provide shortcuts otherwise unavailable. Many bare frameworks actually. Code which implements things the way that is comfortable to the way I think in terms of code. Ask 20 people for a solution to a problem in code, get many answers, some the same, others not. My personal "salt" added to the base java makes code I can easily read, understand, and use.
Sometimes you just want the whole cake to yourself..
Sometimes a snack on that little method, perhaps an additional parameter this time around for some specifics in the project or some other change, but this one method is all you will actually use. To import it from your library just to override it with some random specific... Just save the time to retype it and copy paste modify