The Drawbacks of Self-Learning in Tech

The Drawbacks of Self-Learning in Tech

Taking control and building yourself up is noteworthy stuff. What could possibly go wrong? Walk with me and find out.

Introduction

I make no assumptions about you who are staring at your phone or computer reading this article right now, except that I'll pretend you've never heard of the term 'self-learn' before. If you really haven't come across that word or idea, your secret's safe with me.

To self-learn means to assess or evaluate your knowledge, to identify your needs, to set personal learning goals and to (hopefully) achieve them. In much simpler terms, self-learning means acquiring knowledge and experience in a field without the help of curriculums or instructors.

Doesn't sound too bad now, does it? Correct, because it's not supposed to. The mission here is to shed light on the shortcomings usually involved in self-learning and propose solutions to counter them, not to scare or discourage you.

Understand that the practice of self-learning can be administered in numerous areas of life. In this article, however, we will focus on self-learning in the field of technology. To achieve this, I carefully divide my points into the next four sections.

Which comes first, the bracket or the semicolon?

You may have heard of the question that has lingered in the minds of many for ages: Which came first, the egg or the chicken? Why does it even matter, you wonder? It's just how we humans are, curious as can be. But I digress. The significance of that question can be challenged, but in our case, syntax in programming is completely essential to create working (let alone efficient) programs.

Unfortunately, it's not quite just the concept of programming I'm playing at here. I use ‘brackets and semicolons’ to represent areas and subdivisions of tech. For example, consider backend engineering. We can take a deeper look and find concentrated specifics like API development, database engineering, system design and so much more.

Because of how vast the tech domain in our world is today, many self-learners are burdened with the task of deciding which area to venture into first. In a bid to be more authentic, I'll use myself as a real-life example. Six years ago when I had just embarked on the journey towards becoming a software engineer, I started learning Django- because I figured out that backend development was where I intended to kick-start from.

Along the line, I started hitting roadblocks because my experience with Python- the programming language upon which Django is built- wasn't solid enough. “So just take a detour and revisit Python”, no biggie there, right? Sure, if only it wasn't just the beginning of the chain of detours I'd be stringing together.

By the time I wrapped my head around Django's core concepts and went a bit deeper, it became glaringly obvious that I also needed to have at least some understanding of front-end concepts and technologies. So I got my hands dirty with HTML, Javascript and yes, even CSS. Right after that, I realized that understanding HTTP and how the web works was essential for almost any type of backend developer or engineer, so I'm sure you know what happened next.

This pattern went on and on until I eventually began to lose motivation and tire out, which brings us to my next point.

There goes my motivation

Now it wasn't necessarily the fact that there were a lot of things to learn and understand that put me off, it was the sheer ambiguity of it. It seemed like there was more than one way or order to develop and acquire the needed knowledge and experience. I hit a roadblock and spent weeks wondering if I was on the right track or one at all.

Another potential contributor to a drop in motivation level is- going online and seeing your peers achieve all you've ever wanted to, perhaps in an even shorter timeframe- while you feel stuck and have nothing to show for the little you've accomplished. Trust me when I say a lot of us have been there.

Misconceptions and inaccuracies

As a self-learner, you can't help but expose yourself to the large mass of learning resources made available online by organizations and individual creators alike. These materials happen to be the very foundation of your technological standing.

While a lot of these (usually free) resources are rather considerate and helpful, a surprising number of them also sometimes dish out inaccurate and misleading content. I will clear the air and state that I trust that most of these occurrences, if not all, are purely inadvertent or accidental. That is, the creators have your best interest at heart.

Unfortunately, the intent or lack thereof, doesn't reduce the effect it could potentially have on budding self-learners.

These misconceptions and inaccuracies present themselves in many ways. It could take the form of: "Why you shouldn't learn React", "How Django is set to be wiped off the face of Planet Earth", or even this very article that you are reading right now. It needs to be understood that there's a huge difference between objective truths and opinions. While writing this article, I made certain not to pass subjective statements as factual ones, so you need not worry about being misled.

I know I pledged not to nosedive into specific programming concepts, but pardon me as I break that vow- to show you how troublesome it could be if these mixups made their way into code.

You don't necessarily need to understand the syntax of the body of code that follows. It's just an example I'm using to illustrate my point, so I'll carry you along.

class Student:
    def __init__(self, name, age, dept):
        self.name = name
        self.age = age
        self.dept = dept

student1 = Student("John", 18, "Information Systems")

First, a simple Python class named Student is created. This Student class defines three attributes: name, age and dept; which every object instantiated will possess.

Next, we create our first and only instance of the class- setting its attributes accordingly- and give it the name student1.

# Just to give you a vague idea of what any of this means.
print("My name is " + student1.name) 
print("I am " + student1.age + "years old.")

# Running those two lines of code give the following output:
# -> My name is John
# -> I am 18 years old

Okay, we get it. Where are we headed with this?

If you scroll up and take a closer look at where our Student class is defined, you'd notice the repeated usage of the term self. It appears that self is a keyword used to bind attributes (or sometimes methods) to every object when initialized- except that that's false.

The term self isn't even a keyword. You could theoretically use any word in its place and get the same result.

class Student:
    def __init__(whatchamacalit, name, age, dept):
        whatchamacalit.name = name
        whatchamacalit.age = age
        whatchamacalit.dept = dept

student1 = Student("John", 18, "Information Systems")

Pardon my outrageous example, but I hope you catch my drift. This code, although quite silly, is perfectly valid. When defining a class and its initialization attributes, the first parameter passed into the __init__ function will automatically refer to the object(s) instantiated itself. It is for this reason that the term self is conventionally used- because it makes perfect sense.

I have, however, come across multiple learning resources and materials that fail to make this distinction. No one is perfect- and you'd be right to claim that this small scenario is innocent and barely harmful, but what happens when the misconception isn't so simple? What if it's far more expensive and involves something like "The most secure way to authorize and authenticate in Django"?

Tough luck with employment

Even without being a self-learner, job seeking is unarguably one of the hardest parts of the entire journey- and for many reasons too. A lot of people don't know where to look, how to look or if they're qualified for the jobs they long for. What's worse is that knowing the answers to these questions does not guarantee getting hired, although it's a good place to start.

Over the years, the job market has gotten dense and quickly continues to thicken- more so for the technology domain. To filter the multitude of options and get their best bet, many employers have settled for adding certain degrees and certifications to the hiring requirements. Depending on the type of self-learner you are, this could potentially pose a problem.


Let's talk solutions

Now that we have considered the problems frequently associated with self-learning, I'll (very) briefly suggest approaches to tackle them- one after the other.

Q: How do I know which path to take?

There isn't exactly one correct answer to this question. However, I would strongly urge you to look up roadmaps for your specific field online on sites like roadmap.sh- or do a little bit of research and string together your own. It is advisable to still do research even when you get a roadmap to follow- because as we established earlier, it's dangerous to assume anything online is completely perfect. There might be some steps you choose to forgo because they don't align with your objectives.

Getting a roadmap is the easy part. Staying true to it is a whole nother ball game. Try your best possible to put in the work and stick to it.

Q: I'm losing motivation. How do I stay motivated?

The first step is to pause and understand why your inspiration is running low. Now there's no way I can pinpoint the root cause of your feeling demotivated, but here are some tips I wish I told my past self when I was beginning my self-learning journey in tech:

  • Keep a well-defined list of your goals.

  • Ensure that those goals are realistic.

  • Regularly review your goals and make adjustments if need be.

  • Build projects (and a portfolio) to keep track of your progress.

  • Surround yourself with positive, motivated people.

Q: How do I safeguard myself from misconceptions and inaccuracies?

For starters, I'd say you should be proactive about your learning. For example, if you're studying some programming concept or technique, try to keep a clear and open mind. If unclear, question why it works the way it does- and practice it till you have a solid understanding of how it functions.

I also strongly advise you to be wary of the learning material you consume. It becomes tedious if you have to power through ten videos or pdfs to understand each simple concept. Do some research and ensure that your sources are notable for providing accurate, good quality and easy-to-digest learning materials.

Q: What about the employment part? What's the way around that?

I saved this part for the last because of how delicate the topic it addresses is. That, plus it seems a befitting way to close out this article. The key here is to place yourself in your potential employer's shoes. Put in their place, you'd also want to hire the most positive, resourceful and productive candidates out there. That goes without saying.

Indeed some tech companies or employers nowadays require applicants to have some sort of certification or degree, but not all of them. You're probably tired of hearing me say this, but again, research is crucial here. Find out the requirements for the jobs that align with your skills and interests. Apply for as many as possible- even if you don't check off every single requirement (almost no one ever does).

Conclusion

Becoming a well-qualified technological practitioner as a self-learner is not impossible- very much far from it. It's no sweet ride to Candyland either. I could tell you that the journey would be straightforward and have a 100% success rate, but I choose not to because I would be lying.

“The best things in life don't come easy, but those things are the ones worth the sacrifice” - Adriana Locke

Self-learning typically suggests the absence of fixed teaching curriculums, mentors and other degree or certificate-driven programs. To fill up this void, you must strive hard to succeed. Make extra efforts to be the best you can be. Maintain a healthy studying and practicing schedule so your passion for your work grows and you remain motivated.

One more thing.

The idea of self-learning has become flexible over the years. Nowadays, you could theoretically have a mentor or partake in bootcamps- and still identify as a self-learner. As long as you're greatly intentional about your progress and don't wait to be spoonfed, I'd personally argue that you're still somewhat of a self-learner.