Read your way to programming salvation
Tags: reading, webdev, programming, database
Published: 2021-08-02 00:23:29

Don't we all wish we somehow knew everything, had everything at the tip of our fingers, simply operated at the speed of light on every project, and magically understood all? Sadly, until the day wishes become horses and beggars ride, those desires will remain what they are - desires! Sorry to burst your bubble even further, but no one is ever boycotting the process of learning if they're going to achieve anything reasonable: one that involves reading, putting knowledge acquired to use, making a truckload of mistakes, encountering numerous unclear things, and making the can-be difficult decision to continue and press further in spite of the seeming unclear paths encountered. Having said, this piece looks at how reading was my go-to way of dealing with the knowledge gap at work last week, and how vital it can be in our daily lives as programmers(humans), if only we would be willing to commit to it.

<figure>
<img src="https://images.unsplash.com/photo-1573496358349-d97974b2339b?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1349&q=80" />
<figcaption>Photo by <a href="https://unsplash.com/@wocintechchat?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Christina @ wocintechchat.com</a> on <a href="https://unsplash.com/s/photos/developer?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>
  </figcaption>
</figure>
<br>
I am privileged to have persons around who put me through technical stuff now and then. However, I don't believe in getting knowledge just sufficient to get by (although I do so on some days), rather, I try to understand how and why things function the way they do. This, in turn, enables me to bail myself out if I encounter similar challenges in the future. Furthermore, I can use the knowledge in offering assistance to anyone in the nearest future.

Although I used to appreciate it a lot less before now, switching fields (from Mechanical/Aerospace to Software Engineering) has gifted me the opportunity and platform to implement knowledge acquired during reading, just by sitting in front of my PC. Although this privilege' looks simple, I believe it holds the key to the puzzle of why I struggled in the second and third years of my bachelor's. (🎩 Hats off to Engineering graduates and lecturers of the University of Ilorin; you all are real champions for successfully doing your best under unreasonable and impossible learning conditions).

<figure>
<img src="https://images.unsplash.com/photo-1526566661780-1a67ea3c863e?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1498&q=80" />
<figcaption>Photo by <a href="https://unsplash.com/@ryoji__iwata?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Ryoji Iwata</a> on <a href="https://unsplash.com/s/photos/puzzle?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>
  </figcaption>
</figure>
<br>
I am unashamed to say I don't think I understand things as fast as my peers(maybe I wrongly assume people grasp things easily). Thankfully, I am at a place where I am encouraged to take up more responsibilities, which demands being more resourceful.

Last week, work revolved around updating the database (we use <a href="https://aws.amazon.com/dynamodb/" target="_blank">AWS' dynamoDB</a>) access pattern using the <a href="https://www.npmjs.com/package/dynamodb-toolbox" target="_blank">dynamoDB toolbox package</a>. The new structure would arrange our data into entities. We had tutorials lasting roughly 8 hours over two days for everyone to come to terms with the changes, after which everyone was to implement in their respective projects. Although I had mine to update also, I was tasked with amending the project template. (This template is a project file that always has the latest access pattern, so everyone gets saved the burden of individually implementing the new changes from scratch).Not familiar with backend programming? calm down! 😁 I will break the subject down.

<figure>
<img src="https://images.unsplash.com/photo-1612655139962-075de01a4de4?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1267&q=80" />
<figcaption>Photo by <a href="https://unsplash.com/@michael75?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Michael</a> on <a href="https://unsplash.com/?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>
  </figcaption>
</figure>

<br>
I consider it a privilege to be tasked with work, as it is always an opportunity to learn. Although I had an idea of what entities and attributes were, I felt I still needed extra knowledge; hence, I read several articles with examples on the subject. Now to the big question: what are tables, entities, and attributes?

In a database, Tables can be referred to as houses with rows (horizontal spaces) and columns (vertical spaces) used to structure, hold or store data for easy accessibility and readability. An Entity can be defined as any item in the table about which data is to be captured and stored, while attributes are in their most basic form described as distinct properties of entities being stored in the database.

For example, a student trying to collect data from a school could decide to classify it using the grade level(class) the students belong to. In addition to that, he could also take statistics of their gender, age, and height. In structuring his database, a simple way would be to use a table with the grade levels/classes as entities, and properties like gender, height, and age serving as attributes. Attributes are not constant; i.e., the same way database tables can house different entities, each entity can also have distinct attributes. The images below give a simple illustration of how tables, entities and attributes relate.

<figure>
<img src="https://binaryterms.com/wp-content/uploads/2019/12/Entity-in-student-table.jpg" />
<figcaption>Illustration of entities</figcaption>
</figure>
<br>
------------------------------------------------
<br>
<br>
<figure>
<img src="https://binaryterms.com/wp-content/uploads/2019/12/Attributes-in-student-table.jpg" />
<figcaption>Illustration of attributes</figcaption>
</figure>
<br>
This simple summary constitutes a part of my readings over the weekend. Although I agree reading extra-content is more tasking and demanding than simply getting by and coasting, I believe time spent studying is never wasted: it is high time we understood reading both broadens the mind and equips us with necessary tools for community building. As developers, trust me, there is no getting by without learning how to read and interpret, especially documentation. What we do every day isn't something straightforward, which means we must digest <a href="https://en.wikipedia.org/wiki/README" target="_blank">READMEs</a> daily. It is a route you and I must follow, and the earlier we begin to embrace it as reality, the better.

<figure>
<img src="https://images.unsplash.com/photo-1439396874305-9a6ba25de6c6?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1490&q=80" />
<figcaption>Photo by <a href="https://unsplash.com/@lili_popper?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Lili Popper</a> on <a href="https://unsplash.com/s/photos/path?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a></figcaption>
</figure>

  
<br>
To cap all, below are some of the things I think you should know about reading.

1. There is no shortcut to life: It is illogical to expect to know how to do something without taking time to read and learn from those who have experience in it.

2. You think you know something in full? Wait till you read up more and You'd discover you only knew in parts.

3. Remember the saying "what doesn't kill makes you stronger"? Reading GOOD AND HEALTHY stuff falls in the bracket.

4. Do not be deceived: it isn't every time you read up on concepts and understand in the end.

5. Don't be too proud of admitting you need to spend more time reading. You can only benefit from it.

6. if it's any comforting to know, realize the knowledge gap you have is not peculiar to you. However, how you choose to address it is your responsibility.

7. Reading isn't complete without application or implementation. It is good to read, but go the extra mile to implement - Africa has a good number of university graduates, but the current state of the continent is a reflection of the lack of availability of room for practicals.

8. We always have more questions about a subject than we know of, and reading up oneself has a way of making one's mind connect dots.

9. It isn't every time you'd have someone around to ask questions; start practicing how to read and digest.

10. Don't just settle for things that you regard as 'interesting and fun'; some are just necessary to read, and ignorance is not an excuse in service delivery.

P.S. I understand some concepts look too foreign at certain times to grasp, but I have discovered reading that some things being read are bigger than what the brain can comprehend simply because some background knowledge/experience are needed before moving up the knowledge-ladder. I advice sticking to one's guns by reading anyway, and when the stars finally align, all would sync perfectly.

Read documentation, blog posts and other good stuff that discuss things that interest you as much as you can. In addition, embrace the habit of leaving comments and reviews as it helps the writer get feedback on their posts. The world can decide to remain ignorant, but you don't have to. Yes, You!