Ndifreke Ekott

Thoughts, stories, ideas and programming

14 Aug 2022

New to tech and computers? How I would re-learn tech if I had to.

I have in the last couple of weeks been interviewing with numerous companies. The last time I interviewed was in 2020 right before the world shut down due to the covid pandemic. Going back into the field of interviewing gave me an insight into what companies are looking for, and the number of skills and know-how that is expected. It goes beyond just technical prowess but also social. It isn’t enough to just code but to communicate and reflect on one’s self and decision approaches.

I wonder if it is because I was applying for senior roles hence the expectations but it got me thinking - How would a fresh person in the field of computing get started learning? There are efforts to teach programming to kids through the avenue of play like video games, robot toys and animations. The available teaching methods approach programming using the How-to methodology, I feel there is less emphasis on the What and Why side of the scenario.

In today’s internet age, books for learning tech though still present seem to be used by a generation that saw the first mobile phone come into existence. The younger generation who were born in the era the internet was just a fact of life and saw Snapchat and social media as proper means of communication as opposed to text messages, get the bulk of their learning from video content.

This is the point I would paste a link to a recent survey but sadly, I don’t remember where I read about this.

With video content, knowledge has to be split into reasonable video lengths less the audience loses interest. We now live in an instant gratification society and so we want to see the benefit now. Books on the other hand take time and effort to go through and you may sometimes need a more experienced hand to help you understand the text.

My Background

Before I delve into my suggestions of how I would reset my learning tech, let me give a brief and I hope short history of how I learn and how I studied for a technology-based career.

Many, many years ago between the 1990s and early to mid-2000, I grew up in Nigeria and being a third-world country, it meant a lack of resources especially technology was just a regular Monday. The most prevalent professions were mostly Medical, Engineering, Financial and Law. These were very book-heavy professions. I wonder if anyone can get into accounting by just watching video content or is it still book-heavy? Definitely, for the medicals, books still rule though they now come with accompanying video content.

So I grew up in an era where getting a good book was a privilege. At my university, we got books due to funding and donations from the IMF. And though these books were donated, they had a slower time making it to the university library shelf due to slow workflows in the library processing units. As a result, you had to source most books yourself and only very few parts of the country specifically Lagos, Nigeria, had the best collections of books since Lagos is the commercial hub of the country.

When the internet finally arrived, there were glimpses of video content though there were full-blown courses and not the short Youtube-style courses we have now. The courses back then weren’t streamed. Instead, you had to download them and burn them to CD to consume at a later time. My first video course was on learning Drupal by a company called Lullabot.

Fast forward to the future of 2021 - 2022, though I do consume video content, I do so when I just want to understand What and How about a field of knowledge. To explain, I will use my learning of React JS, I started with watching a video that summarised what developing web applications in react looks or feels like. I watched a course that builds a web page or application if you prefer using React. There was a lot of focus on demonstrating the How-to of React. But you see, being a book person, to fully understand the React framework, I turned to their documentation web page. I learned more about React from their documentation and appreciated it more than from the video contents.

Recommendations for Learning programming

My recommendation is heavily based on my learning style which works best. So to benefit or appreciate it, you have to be someone that reads books. In my recent learnings, I have come to see that learning from books isn’t so popular these days. I am also going to recommend books and approaches, I feel had the most impact on my development and what I feel would help a fresh person into tech gracefully develop in the field and become the star they were meant to be.

Start with books

Though I studied Computer Science in my undergraduate days, the bulk of what we did in class revolved around a lot of mathematics. There were more technology talks from the end of my second year to my final year. Being in the university, you can be sure there were more theories involved than hands-on experiences.

To understand programming, a good understanding of computers and the computing ecosystem is important. A book that helped me understand what computing is about is titled Computer Science by C.S French. This is a very old book by today’s standard but will still have a relevant fundamental knowledge of everything computing. It was technology agnostic, thought you had to reason like a computer, write code using pseudo-codes and explained numerous computing fields.

I fully recommend finding a book of the same calibre as that published by C.S French. Having a broad overview of computing in the new era of mobile and cloud technology is of utmost importance.

Evolve by language

With so much innovation in the programming language space, there is an endless list of programming languages to choose from. I started with the Basic/Q-Basic programming language. It may be near impossible to get a Basic Interpreter/Compiler today but I found the following site still lists a few downloadable interpreters - https://www.thefreecountry.com/compilers/basic.shtml. You may still be able to find a few online learning materials on Basic but I doubt you can find books outside an old library or book museum.

Basic (not Q-Basic), made use of line numbers when writing computer programs. The line numbers are conventionally incremented by 100s. Below is a screenshot of what a basic program looked like.

Learning to debug a basic program required you to think in line numbers. And this demonstrated how computers get to execute your modern-day code be it in Java, Python or C++. Q-Basic on the other hand got rid of the line numbers so you could focus on writing code like you do today.

I had a long experience growing up across different languages. My entire language journey is illustrated below:

I started getting paid when I started working as a C# developer. Before that, most languages were a requirement as part of my undergraduate degree. Each language introduced a different way to program and as a result, you get a different understanding of program execution.

In 2022 however, since I can’t exactly recommend anyone following the learning path I went through, I would recommend starting with a language like Python or any of the available educational languages taught in high schools. If I had my way, I would say Basic programming. Focusing on pure program thinking as opposed to diving straight into Mobile, server-side or hardware, would create a foundational base for a pupil to pick up any future language out there in the world.

Social Media Effect

Social media is a great platform to discover people on the same journey as you and also people ahead of you that can provide the much-needed direction in your learning journey. The curse of social media is also the fact that it is filled with a lot of not-so-useful updates. So it does take discipline and intentionality to derive learning value from it.

In the tech space on social media, people to a large extent are willing to give direction or fill in any missing gap you may face. Some offer training courses you could subscribe to (beware of scammers though).

In 2022, it is much easier to find people to learn and grow together with. When I was learning to code, it was mostly a lonely journey for the most part and the internet was more to downloading reading materials and not sending messages via a little blue bird.

At one point there existed Bulletin Board forums that had programming channels. These days, they are dedicated to video game posts. Today, we have Slack channels, and Discord forums which are more real-time chatting channels and require you to keep monitoring for posts and responses.

Discover your learning style

Now, we are all different and most importantly, what works for me doesn’t necessarily mean it will work for you. Though I made mentioned what I would recommend as a learning strategy, it is key that you first identify your journey.

There are successful developers who haven’t studied a million programming languages and have used the trial and error approach to build a successful career. Some have become professionals in their own right just from watching tutorial videos and having on-the-job experiences.

So it is better you discover how best you learn. But I will still stress that books do hide important learning instructions that I find invaluable and may save you hours of video content. And books will always be there for quick referencing (they have indexes too).

Conclusion

Learning and growing in the field of Tech is a personal journey that is also enjoyable in a team or group setting. But you have to identify your path and don’t be afraid to pick up new skills and knowledge in whatever form you come across.

I had a grand conclusion but this article took almost a day to write with lots of family interruptions, so forgive my abrupt end and let me know if this made sense or not. Tweet me at @ndy40. Open to hear diverse opinions.