DEV Community

Cover image for How several projects helped me to improve my skills dramatically.
Ruben Kharel
Ruben Kharel

Posted on

How several projects helped me to improve my skills dramatically.

Hello reader, Welcome to my fourth blog. I am a college student currently studying Bsc (Hons) Computer Networking and IT security at Islington college. Currently, I am in my final year trying to be industry-ready before graduation. I guess I already am but still, it never feels enough. We always want to climb higher. The more we improve the more we realize how less we know about stuff. It's human nature I guess.

Anyway, as part of a module named "Work-Related Learning", I joined an internship program at the company I am currently working on, from October 2020 to the end of the year. It was less than a month I started learning Javascript before I joined as an intern. I was totally new to web development, I barely could build a small project on node.js. Hoping to gain knowledge and skills from the internship program I entered the company with high hopes to build my career as a web developer. I made myself clear I will do whatever I do with great passion, interest, and enthusiasm. As I promised myself I did work hard to gain the skills I needed, I know it was still not enough but at least I feel like I did successfully made myself better in few months of time.

Ok enough of this story, It was just to motivate you, to help you realize anyone can become a developer with proper dedication in a short period of time. To help you dive into the topic I will talk about what kind of stuff I did to improve my skills and I guess you can follow the path or whatever you see fit.

Before I joined the company, I tried to create a tiny project on javascript with a very vague knowledge of promises or callbacks and critical things of javascript. The project which could take an hour to complete took 2 weeks of time to complete. I even wrote a blog about it. It was just a small project inspired by discord live presence. The project is archived after I created a better version of it. During those weeks I literally had no idea how javascript even works. I eventually grasp little by little, it took 2 whole weeks just to complete the project but I should say it was worth it. If I had not tried to dive into creating a project and only follow a youtube tutorial all those weeks, I would not have learned that well. When you start doing projects you will tackle various issues, you will gain experience of errors that you will find later in the future. But if you just watch a youtube video all the time, you will just copy-paste it, and learn nothing, will have no idea what errors are, how to strategize a project, and stuff like that. But the moment you start working on a project you will start learning from trials and errors. Some might want to argue tutorials can help you understand how to do this and that in the proper way. Well, I am not saying you should not watch tutorials, all I am saying is just start a project when you feel comfortable with the fundamentals, you will learn better.

After completing that project, I entered the company then I was asked to build a small scrapping tool in python. I used to code in python before I learned javascript, that's why I was comfortable with it and finished it in time. Later after the first week of October, I was assigned a project where I had to build a REST API in node js. Now comes the hassle. I didn't know what express was I didn't know how promises and callback works, I didn't even know what REST API is. I had only heard there was something called REST API and GraphQL and all that, but never before I had worked on it. Then again, It took me a month to complete such a small API, but trust me It helped me a lot to understand javascript. I finally felt like I know javascript a bit better to start working on my ideas. During that time, I learned about event loops, promises, callbacks, async-await, APIs, web servers, and various other things of javascript.

The funny part is before I knew javascript, as part of my "Final year project," I proposed to build a web recon framework on ReactJs and NodeJs where I had no idea about what ReactJs even is. But the API I built for the company helped me to gain a good skill to start working on my own project's backend. I started working on my backend which took me exactly two weeks to complete but it was so much easier than before. It really took no time to complete. I was expecting it to took two months at least to just complete the backend, but the experience and skills I got from the past projects helped me complete it in no time. I was very excited and started asking for extra projects if my humble supervisor can offer. Well, he did give me some new tasks but I felt like I should learn something new, and the thought about "how would I do the front end in reactjs without even knowing how it works" was eating me inside. Then I stopped focusing on the backend for a while and started learning reactJS from Ben Awad. I love his sense of humor and his variety of ways to teach the same things. You must check him out. He taught me the fundamentals of javascript in just a day. I got excited and started working on my front end. Took me 1 week to get my project up and running. But I had no idea about state management, so it was very hard to complete the project. After completing the project with the very complicated strategy I planned to rewrite it by learning Redux(A state management library).

The only time I freaked out during those months was when I started learning redux. Thinking it would be just as easy as learning react, I tried to grasp it within a day. But honestly, it only gave pain to my brain. I was totally frustrated with all those new terms and varieties of stuff of redux. During that time, I googled many times, "Is it necessary to learn redux?, are there any easy ways?, why is redux so complex?, can I understand redux in a day?, What are the alternatives?". There were many alternatives, but one thing that was making me constantly learn redux was because sooner or later I will have to learn it since it is used by most of the web apps these days. I cleared my mind and constantly start to grasp it, eventually the moment of that "Ahhhh so this is how it works" came. But I still don't know it well and I want to procrastinate as much as I can in the matter of Redux. I will learn it well when the time comes. Even though I learned the basic of redux, I chose to work with a better alternative for my project, because why not? why no go with better alternatives if they are available. And my project was not that huge for the complex state to use redux. (I guess we don't need redux whatever the complexity of the project is) Then I learned Context API. It was so easy to work with, all my state management tension was cleared out eventually.

Maybe I moved a bit outside the topic, but this blog is also one of the pieces of evidence I said I will present to my WRL module leader about what I learned as an intern.

With all these experiences I realized how someone can improve their skills by actually trying to do something instead of just watching the youtube videos and entering the phase called tutorial hell. I guess this blog should be titled how to not enter tutorial hell.

Thank you for the time to go through all the grammar mess, but at least I hope I will help someone with this blog.

Discussion (0)