this post was submitted on 23 Oct 2023
46 points (88.3% liked)

Programming

17373 readers
254 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 5 points 1 year ago

I think a part of it is how we look for information in the first place. If you search/ask "How do I do (task) in (environment)?", you're going to find out about various libraries/frameworks/whatever that abstract everything away for you. But if you instead look for information on "How do I do (task)?", you'll probably get more generalized information that you can take and use to write your own stuff from scratch. Try only to look for help related to your specific environment/language when you have a specific implementation issue, like how to access a file or get user input.

We also need a willingness to learn how things actually work. I see quite a few folks who seem to be so worried that they'll never be able to understand some task that they unwittingly spend almost as much or even more time and effort learning all the ins and outs of someone else's codebase as a way to avoid what they see as the scarier unknown.

Fortunately, I've seen an increase in the last year or two of people deliberately giving answers or writing tutorials that are "no-/low-library", for people who want to know what's actually going on in their programs.

I would never say to avoid all libraries or frameworks, because many of them are well-written (small, modular, stable) and can save us a lot of boilerplate coding. But there are at least as many libraries which suffer from "kitchen-sinkism", where the authors want so much for their library to become the pre-eminent choice that it becomes a bloated tangle, trying to be all things to all people. This can be compounded by less-experienced coders including multiple huge libraries in one program, using only a fraction of each library's features without realizing that there's almost complete overlap. The cherry on top is when the end developer uses one of these libraries to do just one or two small tasks that could've been done in less than a dozen lines of standard code, if only someone had told them how, instead of sending them off to install yet another library.