DEV Community

Cover image for Mastering Javascript before 30
Darius
Darius

Posted on

Mastering Javascript before 30

This post is originally on my personal site
www.chaosandvideogames.com
Please visit and tell me anything you like or even dislike about it so I can make improvements.

Intro

To master JavaScript before the age of thirty is a pretty easy goal to set for. Until I realized that it is just an overall unrealistic goal to have in mind. In this post I do not want to tell you ways in which you can "Learn to Master JavaScript in less the ten years" because that sets up an very bad reputation in the coding space that task can be done and completed before a given time frame. This is a rather simple blog about how the mindset of "Mastery before a given time" can lead to self destruction and more imposter syndrome. Granted this is not a tutorial on how to get over imposter syndrome as I already have a way for you to get over that in another blog someday.

Goodbye Hello World

When I first started out my coding journey I had one goal in mind. To become a self taught learner of web design and apply its mysteries to make awesome web pages. And then WordPress took the world along with single page applications which immediately changed that first goal that I had.

"The real goal is for me to master JavaScript before I'm thirty, that way I will have an expertise on one of the hardest languages to grasp and I will be hirable".

Those words still bring me back to my first Hello World post when I first started web design at 22 years old. And to this day I have NO IDEA WHY WOULD I SAY SUCH A THING.Understanding now that most things in life don't have a "Mastery" just a true understanding of the process it takes to reach final results. But I was eager and determined to change my career into something that I can see myself as when I look in the mirror. With that I began to study JavaScript as much as I can fully understand. Carrying a book with me to work while taking the bus.

My First Book - Master JS in 24 Hours

Image description

I would switch from the book to my phone to look at a Youtube video that I downloaded just to keep my perspective of concepts fresh by learning from a different source. Yet overall one thing was still unclear in my head, how the H#!% do I ACTUALLY use JavaScript? Granted the concept of objects are pretty straight forward once you force yourself to remember real world objects. Functions are easy to see and are used to write code without repeating yourself. And notably every loop is basically the same with it's own drawbacks to watch out for. Yet for some reason the idea of how to put my own code together isn't something that my brain was capable of understanding. Considering that every time I look at someone else code it would just be a huge wall of text with words that look familiar but have no understanding of. I actually started to compare it to learning another human speaking language like Japanese, however I'm not sure which one is harder to learn if I'm being honest.

If the phrase " I know how to read JavaScript ,but I don't know how to write it" was on a shirt it would sell easy(No more then $6 though, $20 for shirts are outrageous).It would expose you as a junior developer by todays standards but non-the less everyone has been in this state of mind before. I was capable of seeing the potential of what my studying could become in the future but to me there was just one other problem that I had in my head towards JavaScript.

Javascript is the ugliest language to look at

Granted I didn't know a single other language but at the time seeing a JS file that has the same mark up to interact with the DOM was just ugly to me for some reason. Every tutorial showed a huge cascading list of "GetElementByID, CLass, Query over and over with variable names and parameters that have terrible names that don't describe what they do or contain(No offense Foo Bar).In my head it reminded me of bulk emails, I understood that there is an invisible layer underneath my html code that allows me to interact with the elements on the page via the browser, but did I really have to have the same repeatable lines of code to do the same task?

If that is the case then I should try to memorize these lines of code, even better I should keep a notepad file full of code that I use so I don't have to copy and paste others.

(Yet another quote for a shirt idea).This eventually led to me having a file with a bunch of lines of code that I still didn't fully understand.

Again,I know there is a DOM but what the heck causes these undefined errors when ever I try to write my code like someone else. And why am I writing a for loop when I'm not sure what it is used FOR? Every example that I see uses a random set of numbers and values that never can be used on a big project. Looking back I realize that my understanding of data and how it can change over time was the problem here. But let's face it no one wants to just do a bunch of math if you have a calculators on your cell phone. I wanted to make interactive websites that look cool and had cool transitions and functionality. Luckily for me I was in the booming era of a new generation of web sites.
Web applications (I still call them hybrid websites) were the new thing that people were after and mobile devices where considered the primary thing to develop for when making a website. Yet putting these elements on a page while keeping the mobile design sleek was still a hard task even for big teams.

And then came Jquery...

John Resig is one of many engineers who's names I try to remember. My literal experience from observing this person present this idea was that this guy was a rockstar in the developer world. People would go crazy when he hit the stage simply because of the way he made bundling functions easier and readable while making what was essentially components to structure a web application easy for beginners like me. Darn right he was a rockstar, he was saving everyone time from dealing with messy code(at least in my opinion).This meant that I could build the things I needed to make a site function like a mobile app and in the end it worked. Along with applying my CSS knowledge over time and using frameworks like Foundation. I avoided bootstrap to try and make myself stand out and be a rebel and I also hated the amount of classes that do describe their styling but cluttered the html tag with a bunch of classes(wait...tailwind is that you ??).I eventually learned bootstrap later but at the time anything new was considered worth a shot back then. All was going according to plan for me in my bright future as a web developer. My ability to understand events in the browser where becoming unmatched and my ability to mimic other styles and layouts were becoming unmatched. And I could see myself putting a portfolio together.But I still didn't know Javascript...

Age 23

At this time I'm at the age of 23 and still not able to grasp how to write JavaScript for myself. Code academy works but I was stuck in literal tutorial hell.
Again "I understand what this loop does but what am I to use it for in real life?", was the question that I always had. At this point desperation kicks in and I start trying harder to understand JavaScript but doing it desperately. Jquery was all right but I knew that I had to be good at vanilla JS in order to know how to constructs things while understanding why the code works or breaks at certain points. So I did what any smart person would do, JUMP TO ANOTHER FRAMEWORK. One that everyone promises will help understand JavaScript and its core,Angular JS.
OH, and angular is being paired together with another superset language called typescript which is the new standard for how to wright code and its based and what is an apparently a new version of JavaScript syntax called ECMA script 6.Great, more learning...

Little did I know this was the thing that was going to demotivate me over time as I mistakenly thought angular was a way to learn JS but instead it was more for things like routing, and having information load properly and of course their big staple MVC(Not Marvel VS Capcom but just as hard to learn).Module View Controller was the one thing that I took away from all of the painful self teachings that I did. In fact its how I understand what React and all the other frameworks try to perform as well. Yet this was a horrible way to teach myself and I can even say Angulars transition between versions in their early stage did in fact lead to more doubt in my head about being a developer.
Again,"Do I have to remember the stuff from the old version and this version and what ever new ground breaking version they come up with next".The thought of having to do so is literally stopping my ability to simply learn what vanilla JS concepts I need to learn. PLus I still don't know how to make those cool Parallax scrolling effects on the fly without having to look at a tutorial! At this point I knew Javascript would not be for me and perhaps their will be a language in the future that is much easier to grasp? Or maybe I don't need to learn any other language at all ?This word press thing is starting to take over anyway right ?

Plug it in,Plug it in...

I can't believe anyone would ever spend so much time developing widgets and date features when their are ways for us to share features and our Notepad docs of code with other people around the world. Why do that when every web server that you apply a domain to has an easy press option to have your site become a word press site in a few clicks. Then I can manage my site with a cool user interface as well as my customers( that I don't have) can update their site without having to bother me in the middle of the night like I've read in some blog posts. Why would anyone ever want to go back to the old days of developing a static HTML page and spend days figuring out the best structure for good SEO. Everything that is ever needed will be in the form of a plugin. There is even a plugin to write my own CSS just in case I don't like some of the default styling. Why would I change this?

And then one day I hit a wall again, the paywall of course.

Most themes on WordPress are usually paid for and have great widgets and themes pre-built, but the free ones need a bit more custom styling and require some work arounds in order to get a random plugin to work that may not be compatible with it. Oh,and the ones that do are paid plugins as well. I remember wanting to just have a simple image slider and thinking to myself.

"Maybe I can find a way to insert a slider via a div tag and just find a vanilla js slider script online?Which reminded me again that I still don't know Javascript.But who cares as long as I know how to throw myself at a problem and find a way to solve it, nothing else matters. At this point I realize that most of my time is spent troubleshooting problems rather then styling things on the fly(thank goodness I didn't have to do IE).My ability to adapt and find new ways to create a site is what matters, if I can focus on making WordPress sites that look good without spending any money to build,that would be key to landing more job positions. Or at least so I thought, until I ran into another wall. There is a way to structure a WordPress theme using a WYSIWYG editor similar to Wix.com sites. Now all that is left to do is construct my CSS file to personally style the things I need. Yet for some reason this element that I want to target is not responding and some things actually look very odd on page load.Turns out there are custom JavaScript functions in the themes that have some default styling that can't be over witten without editing the script itself. Which reminds me, I still don't know Javascript...

" Maybe learning PHP would be beneficial here since PHP is back on the scene with wordpress being on the rise regardless of that MYSQL injection security flaw I read about ,and I am looking for an easier language for me to grasp, plus I heard Python was scary hard for beginners of my level still. "

** NON OF THESE THINGS HAPPENED**, in fact I remember making a blog post about the new Gutenberg Editor. And basically trying out Facebook Ads to promote my personal site. I would continuously try to make custom sites based on free templates and widgets to make landing pages and simple static websites that didn't require more then an email form using mailChimp. Also learning shopify integration was a bit tedious since I wasn't sure about how to handle credit card information in the best way without relying on plugins to be updated almost every two weeks for security.

"It would be great if I could do this on my own, rather then copy pasting other code and giving out my personal email to a newsletter that I will never read to support the dev who made it. Why can't I go back to making static sites that I can control? I haven't built a site from scratch in months. If my porfolio isn't based on code that I have written, am I really a developer?"

(I can try to fit that on a shirt I promise).THIS was the point in which my dev journey came to an end and trying to freelance without the ability to be confident in what I'm making just went out the window and into the garbage collection for the next 5-7 years.

Age 25

During my time away from being a web designer I became a youtuber for an unpopular video game called "bleeding edge". It was a huge amount of time that I could have used to better myself in code. I do regret putting down code for several years but I don't regret becoming a youtuber because of the things that content creation can lead to. Basically understanding how to make content for a small audience while not burning yourself out or being concerned with statistics like view numbers and watch time. I will admit that yes occasionally I would get bummed out from not having views near a certain number, but I had to remember that my content is very niche and does entertain those viewers in some supportive way.

Image description

Fast forward one year and the game that I support and do content on will no longer get content updates or bug fixes and the development team is moving on to a bigger project which is hellblade 2.Because of this ,I was unable to actually do content around the game because players were not able to have matches against each other and thus my YouTube career was on hold. This did discourage me somewhat but my time spent on making videos changed my perspective of how people view content as well as what content actually works in a given algorithm for what ever social hub you are in. Not to mention trying to boost your post on sites like twitter(X) ,and even reddit can really help you understand keyword research in some way. So technically I am still in the realm of doing computer related stuff, I just still didn't know how to write JavaScript. And to be honest that burned me more then knowing my YouTube channel would never possibly get over 1,000 subscribers. Not knowing how JavaScript works actually made me upset with myself, since I consider myself to be a smart person and capable of learning almost anything I apply myself to.

I finally turn 30

The big moment of my life is here. I'm at the age that I promised myself years ago would be the peak of my coding abilities. No, portfolio of great work, no references from jobs that I did. Absolutely nothing.
However, my new motivation for wanting code starting to kindle and I started to think of it as a life skill that I would need in order to survive rather then a career path. At this point I don't care about making websites that look visually amazing since CSS isn't that hard to remember. I only cared about having the ability to look at a bunch of lines of code and not having panic attacks, or getting discouraged the way I use to. So I decided to at least try to learn code but from a different language...Python. I picked up python as my 'returning to code' language in order to get back into the habit of being a coder in some way. Honestly I am glad I did because python helped me realize that most of the concepts I have been struggling to understand are just programming concepts and are not coupled to one specific language. Basically doing loops arrays and data types are the core fundamentals of doing code, I just could not see that before as a beginner who is self taught. This didn't come into realization until I started to do code challenges on the code wars website and I finally started to understand what I should use loops for or how to control the flow of data inside of an array or what a proper RegEx function can do to filter out strings.

This helped clear any level of imposter syndrome that I had before as I started to grasp why I wasn't learning code or able to produce a single line by myself without a YouTube videos telling me what to do (I hate studying on You tube because videos can have information that is deprecated with every new update to the language itself, drives me crazy ).
Because of this I have to thank Python for getting me to understand JavaScript and I now use JavaScript as my primary language,and Java as my secondary language. Don't get me wrong I STILL don't know javascript,but I'm much more comfortable writing it and understanding what I can and should not be used for.I still love python but my motivation for wanting to learn it was wrong as well. I wanted to make an AI which required me to understand machine learning. I quickly learned that I did not want to do large datasets and use matplotlib as it was all very boring to me. I enjoy doing front end related task more then ever and if you check my social media profiles I always talk about the joy of hitting F12 and seeing the html that structures the web.

In conclusion to my blog post that I hope you enjoyed.There is no final destination to learning anything. I am actually 31 right now and I realize this more then ever.Whether it is coding ,or being a parent(which I'm not), there are always things to learn and truthfully the human brian doesn't have that capacity or lifespan to simply 'Master' something.You are either competent in your skills to make good decisions ,or you simply do not have what it takes and need to do more training.And one day as you are training you will realize that mastering a certain concept doesn't matter. But if you have the will ,motivation and patience, you will succeed in being a programmer or developer and you will call yourself that without feeling like you an imposter. You will learn how to study, how to stop comparing yourself to others, and eventually how to navigate the tech world in their hiring and firing process. You will sometimes become fearful of what the future can have, but overall you will not be afraid to apply yourself to things that seem hard .My new goal is to help people get out of tutorial hell and remove any doubt or imposter syndrome they might have. So I will give my last gift to you.

My personal mantra for when I am not motivated is...

"When you doubt your abilities think back to the first website you made, and if you are scared about where you are now ,think about the person that you see your self as in the future"

Top comments (0)