Why History Matters More Than You Think When Studying Software Engineering and Web Development

Andres González Franco
3 min readApr 6, 2023

--

Johannes Gutemberg (1398–1468) acrogame — stock.adobe.com

Yesterday I thought about the philosophy/mindset when studying and learning anything about Computer Science or Software Engineering.

Coming from a Humanities and Social Sciences background, I recognize I had the wrong mindset: “This might be like studying maths or physics. It should be an exact science…”. This approach could result in frustration since there are multiple ways to solve stuff here. But there could be a hidden obsession with following “the best practices” out there.

I have seen myself questioning, “Does what I’m doing meet the standards? Is this code following good practices?” yes, we could translate it into impostor syndrome(which I constantly live), but I would like to go further.

This guts thinking arise after keep hearing the following terms:

  • New tools.
  • New frameworks.
  • New technologies.
  • Community.
  • Standards.
  • Support.
  • Best practices.
  • Legacy.
  • Technical debt.

If we pay attention to what’s in common with these concepts, we can mention an important one: history.

When you start studying Javascript, you ask how something as important as this tool comes with multiple bugs(errors) at its core. Moreover, a group of experts(TC39 committee) has agreed, “ok, we are conscious about these, but knowing the existence of some old websites working under these “bugs” we can’t change it, but we can improve it for the way we will build it from now on.” We call this backward compatibility.

As Kyle Simpson explained in “You don’t know JS yet:

“ this creates an enormous burden and a whole of unique challenges.”

And that also is a decision.

In the end, the message between the lines of all these concepts is “There are humans behind all of the technology we are using,” and the needs and requirements of society and humans constantly change throughout history.

My unconscious mindset made me interpret or forget the natural way to approach software problems or learning: social construct, context, and history.

Of course, we can’t reduce the scope of this mindset when learning a new language or tool on our own. It is worth continuously asking the right questions about the context and history of a project when starting to work with a new company or product. HR and Linkedin would call it Teamwork, but I would call it a permanent social construct.

It was not until I read the introduction of the book “RESTful Web APIs” by Leonard Richardson and Mike Amundsen that I felt genuine release:

“The World Wide Web isn’t an objective thing that’s out there to be studied scientifically. It’s a social construct — a set of agreements to do things a certain way. Fortunately, unlike other social constructs (like etiquette), the agreements underlying the web are generally agreed upon”.

In the AI era, that should be a call for us to unlearn, learn, and change our internal structures/mindsets. Great technologies and companies do that, and that’s what has happened so far since computer science was born.

#history #computerscience #softwaredevelopment #webdevelopment #careershift #softwareengineer

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Andres González Franco
Andres González Franco

Written by Andres González Franco

Still work in progress, but I wouldn't have been the person I am today if I haven't satisfied all my curiosites

No responses yet

Write a response