We all have tried something before and it did not work out. Like trying to cliff jumping into the ocean.
Once I decided to take the steepest and a long water slide. The moment I reach the top and look down- I was scared. Everybody was looking so small on the ground.
The water was flowing with speed at the edge of the slide.
The air was breezing through and I believe the sun was shining with additional power. I just sit there and think about it and then I aborted.
Months later I tried again and did it– finally. But you know, the experience was thrilling. The ride was worth the pain.
Similarly, I tried learning a course during my undergrad studies and I failed.
It could be possible that the instructor was not good enough. Or the course was boring or that particular subject was not my thing.
For example, I tried learning two courses numerical computing and object oriented design. And let’s say I didn’t grasp the concepts.
But, I successfully learned these two courses after graduation and during my job. Recently I was reflecting why this happens?
There are some courses that we all have tried in our college/university life but we failed there and now we know a lot better about them.
So, in this post, I will analyze why I was failed in university and succeeded afterward in real life and what steps you can take to rejuvenate your desire to learn old subject again.
1) Action is Louder Than Words
There are subjects which we don’t understand because we can’t see them in action. For example, one of my classmates once said to me during undergrad studies:
“I want to go into civil engineering, where we can see things like buildings, bridges and other huge things. Something that you can touch and feel. In software development, you just cannot do that”.
You can see that. A software or code is more of an abstract thing. Like mathematics. But once you are in the field you know how the code is written by you to solve real problems.
It brings in profit. Your code can move some hardware (if you are embedded software developer).
These real life results show the importance of the work that you do. And you like results. Due to this, your mind starts to grasp ideas and gives you an edge in learning. Hence once you see things in action you learn faster.
Therefore, the subject of numerical computing was very helpful when I solved a real world problem which involves curve fitting. It raises the importance of the subject and makes it easier for me to learn the subject.
2) You are not Under Stress, Right now
Ok everybody is under stress, mostly at our jobs. But during studies, you have a lot of things to care about. Like other subjects to cover during the semester. You are worried about assignments, exam, labs and other projects.
Our goal is different during undergrad studies. We want to appease our teachers :). We want to score well in the exams. That’s it. That’s our problem.
During studies, we don’t have to solve a real world problem. We have to get marks in our exam and if you didn’t perform no one is going to be affected except ‘YOU’.
But as a professional, there is no exam date. No multiple courses, no exams, and no teachers. Here your core goal is to solve the problem and until you don’t solve the problem the project will not be completed. So all of your time will be consumed on solving the problem.
Once you solve that problem, you will move to the next problem.
Hence you will be working on one problem a.k.a “the project”(ideally). Therefore you will have time and mental resources(since you are not distracted by 4 other subjects) to learn that subject which you tried before.
3) You had sub-par Resources
In universities, I believe you have subpar resources. I am not talking about you if you are from elite universities.
In colleges/universities, computers were slow. There were shared resources and labs. Schedules and timings that you had to follow.
Whereas as a developer in any organization you get super awesome resources. (this was not true for me– but it is true for the majority)
Second, an awful resource was the BOOKS recommended by our teachers. I am a big fan of books. They are ultimate resources- if you want to grow.
But there are bad books too.
Although there were some great books recommended by my teachers. But 80% of the books were very limited. Those were the books I believed written for academics only. The text was written in a super dull and boring way.
When I tried searching those books on the Amazon. Guess what I found “0” reviews. Bad comments and lower rating.
Hence I know that Amazon book rating system is authentic.
Here is a little tip for finding great books: A simple search “top books on XYZ subject” can yield the names of the best book on that subject and then there is the Amazon best selling category where you can search the books on the subject that you like.
Anyway, when I read great books on the subjects of programming, design or anything else that subject become fun to learn.
I wish that I knew about great books during my undergrad studies.
4) Experience is the Greatest Teacher
In real life experience teaches you a lot. For example, bit manipulation looked like a simple concept to the newbie Umair.
But when you really dive into the inner workings of understanding signed/unsigned numbers, 32-bit representation of integer, XOR and AND operation, and how the float is represented by IEEE 754 standard. Then you realize that bit-manipulation is an advanced topic and a lot of things can be done with that.
In real life, you commit mistakes. You see your software failing while saying to everybody that last time it worked fine and you don’t know what’s happening to it now. You are introduced to the term ‘intermittent error’.
So, your mistakes are your most valuable experience. You see things differently than your younger self and you know what is important in programming.
If you are experienced, watching your code organized properly will bring you the joy of your life.
If you are experienced, your code is written delicately with comments which are easier to read like a novel. Your code is beautifully divided into separate files and classes.
If you are experienced, it’s a pleasure to watch your web application adopting its layout across all platform and browsers.
These are the perks of having experience in the programming world.
So, if you tried learning before and it didn’t work out then one of the reason is that you didn’t experience an implementation headache, failures and hardship.
So do you really want to learn something go and implement that–now.
5) Now You Have Mentors
Mentors are very important if you want to learn. A mentor is different than a teacher. In my definition mentor is someone who has reached a certain point which is your destination.
You can have many mentors for different areas of your life.
In the programming world, a mentor is someone who has ahead of you in that field. Who has gone through the pain of being a newbie.
Where can you find a mentor? One thing is sure you will hardly find them in your college campus.
But you will find them in your workplace. Someone with experience in your technology. They can solve your problems in hours and can save you weeks.
So, if you want to improve your learning ask senior developers. Ask them via forums and online. Read their books and they will guide you in your journey.
Therefore, if you tried learning something before and failed then this time give your hands in the hands of your mentor and I believe this time you will be successful.
So, what were your challenges when you tried learning something before and succeeded later in 2nd or 3rd attempt. Share your stories and ideas in the comments.