Should programming be easy?
Image From Unsplash

Should programming be easy?

By baohx2000 | Dev Thoughts | 21 Jun 2021


<rant>…

So yeah, I’ve been a programmer for 20+ years. It feels like new developers have taken a turn towards just doing the least amount possible by using libraries or frameworks and not actually learning underlying concepts and functionality. For those people, I say this: you will never really be a senior. That ORM/library/framework you love? You’ll never actually create anything like it.

Constantly taking shortcuts will make/keep you dumb. I’m writing this somewhat in relation to many of the developer vs engineer articles I’ve seen recently. In that context, I’d say that “developers” think programming should be easy. They learn the minimum allowed to accomplish their job and stay there. Engineers, on the other hand, will actually learn how things work. These are the people who actually build the complex libraries and frameworks you use. You might say “but I wrote a framework! I wired these 5 libraries together…” NOPE. Still not an engineer. Write an entire library/application from scratch, using only the base language, then we’ll talk. Personally, I believe that is how every developer should start. Not with bootcamps that just teach you a bunch of libraries and let you out into the wild, but with solid knowledge of the underlying LANGUAGE!

As I’ve stated in previous articles, both the company I work for and myself value knowledge of the language over library/framework usage, mainly because we need things to be efficient. We won’t discourage using libraries, because nobody should have to reinvent the wheel, but if you’re unable to figure out how the wheel works, then you have no business using the wheel…especially when said wheel has the possibility of exploding on you.

I hear often from articles that XYZ library is “too hard” because they have to actually do a little work to do something with it. Oh I’m sorry, yeah let me just write your entire application for you. Don’t be a baby. Suck it up and do a little bit of work for a change. Maybe you’ll LEARN something! One of the libraries I hear this about most lately is Redux (a shared state JavaScript library used with many ReactJS applications). Yes, it can be overkill for very simple applications, but it also makes shared state management very easy if you know how to use it well. One reason I believe these complaints come about is that the developer was not properly taught JavaScript before throwing them into library-land. Utilizing Redux is done by primarily writing JavaScript, and not using a bunch of fancy abstractions. As a side-note, implementing a Redux middleware to handle API calls is relatively simple, and lets you easily handle intermediate state and failures instead of inlining API calls and assuming they’ll work. What happens when you get a 404? 422? 500?! Oversimplifying these things will ALWAYS make things harder and more brittle, not to mention more difficult to implement testing on.

Okay, last thing on this rant, I promise. Don’t be a lemming. For those who don’t know what I’m talking about, I don’t know what to tell you other than go look it up, and I’m not talking bout the video game from the 80s (although maybe that might work). By this, I mean don’t just go with the flow. Don’t just listen to Joe Corporation and say “hey, JoeBook did this thing and it’s working for them, so it’ll obviously work for everyone!” Welcome to what I call bandwagon-land. I see this a LOT in JavaScript communities. So many young or lazy developers love “the new shiny” and because there are so many of them, many older or more experienced developers feel forced to go along with it instead of holding out a hand and saying “hey wait a minute…what if…”. When they inevitably run into a little hardship with the new shiny because they’re either using it wrong or the shiny isn’t all that shiny underneath, they try to patch it and release their own version and suddenly https://xkcd.com/927/ there are 15 standards. Seriously, look at npmjs.com and search for some standard functionality. You’ll find 100+ implementations of something that could pretty easily be done in the base language. Again, I’m not saying to not use libraries. I’m just asking you to do a little research.

</rant>

How do you rate this article?


2

0

baohx2000
baohx2000

Just this guy, you know? PHP developer for 20+ years. Seen some shit.


Dev Thoughts
Dev Thoughts

Just some guy yammering about software development.

Send a $0.01 microtip in crypto to the author, and earn yourself as you read!

20% to author / 80% to me.
We pay the tips from our rewards pool.