My journey to becoming a web developer from scratch without a CS degree (and what I learned from it)
by Haroon Amad
First, let me introduce myself. My name is Haroon Ahmad, and I’m a full-time front end developer with 4 years experience. In that time, I’ve worked as a front-end developer.
This may not sound like a lot of experience, but finishing my second year as a developer has been a huge milestone for me. This is because I had no real experience doing web development — and not much programming experience in general beyond some basic CSS and HTML training I got from a few online courses. I also didn’t have a computer science degree since I graduated with a degree in IT project management.
I’ll start off with my journey, including what went wrong along the way. So, without any further ado, Let’s get started!
Getting the Basics
After deciding I wanted to get into web development the first question on my mind was “What do I learn?” After doing some research, I ended up making my learning path based on what most entry-level web developer positions asked for, which was:
- HTML & CSS
- Responsive Design
Here’s how it went.
I found learning resources like this were the best when you are just getting started. Just be advised that this method of learning gets tiring quickly once you get into more advanced stuff. you can get this course here By Colt Steel .
You can also optionally learn jQuery (though I really don’t recommend learning it yet — more on this later). You can learn it through the Udemy Try jQuery course.
HTML & CSS
I originally learned about responsive design and Bootstrap using Colt Steel’s HTML & CSS path, but I recently found Scrimba’s course on Responsive Web Design Fundamentals to be fantastic at covering the basics and beyond in a far more complete manner than Udemy did.
You can do responsive design without any additional framework, but it’s far easier with the help of a responsive framework like Bootstrap. Bootstrap’s official documentation is very well made so you should have no problem at getting started with it.
Git (Version Control)
Ah, Git — the tool I never knew I needed until I discovered what it could do. Git basically it lets you keep a track of the changes you make to your code so that if things go wrong, you can roll back to a previous point in time. It also lets you see your code’s history.
I found Udemy’s free Github course to be a friendly way to get started.
I have been to an organization where the major web development is in WordPress only. Being a newbie i was clue less. The sir was very good and told me everything from scratch. They provided my various free tutorials to learn from.
My sir was very impressed and handed over my small development part of WordPress. And while learning and researching I analyzed that:
WordPress has been exceptional over the past few years. It is one of easiest way to build your website and blogs. You can build eCommerce website WordPress. WordPress is SEO friendly. There is simple admin panel where you can add or create pages, posts, blogs, add galleries with videos and images. Some time you require little html and css for WordPress development.
So I became very fond of WordPress and fall in love with it. Looking my grasping power, interest and skill; my sir handed over my entire WordPress development project. Which was a eCommerce website.
Here are some of my work:
It’s strange that I don’t see this talked about as often. I didn’t always care for writing clean code, but honestly it’s one of the things I’m most proud of having learned. This is because everyone loves to complain how their last place had one of the worst, ugliest code base in the world. So why can’t anyone talk about how great their last one was? How their code ended up so clean and well made they were proud of it?
This is a trend I’d like to change, and I believe a difference can be made if enough people push for it. Strive to make variable and function names understandable in English, even if you have to write a bit more. Not doing so will only lead to you having to manually document it sometime in the future to make it clearer. This will also cause your overall codebase to become harder to understand by new developers and yourself. Yes, yourself. Why yourself? Because if you’re not enforcing clean code, what makes you think your coworkers should enforce it and write clean code for you to easily understand? Let’s lead by example.
And if that isn’t a good enough incentive, people very often recognize and value clean code writers. You’ll find that by writing clean code your coworkers and friends will enjoy working with you even more, and in turn, you’ll live a happier life.
Some of you might notice I also didn’t make much of an emphasis on jQuery. This is because in my experience, I found jQuery did me more harm than good at first. Some of you may not agree, but please let me explain: When I first learned it, the general idea I understood was that jQuery was everywhere and that you could use it for pretty much everything. Because of this, I got used to using jQuery for pretty much anything, and for any problem I encountered, I looked for a solution for it that used jQuery.
Don’t get me wrong, jQuery was awesome in my time using it, so awesome in fact, that I blindly ignored that 90% of what I did with jQuery could be done natively in modern browsers in a similarly easy syntax.
You may now be thinking: “So what’s wrong with that? jQuery doesn’t weight all that much anyway and using it you still end up writing less code than if you did things natively.” But using jQuery over native APIs wasn’t the problem. The problem was that my entire way of thinking and all the solutions to common problems I knew up until that point required jQuery to work. And this became a huge problem when I got my first project and was told jQuery wasn’t a dependency.
Using jQuery made me useless without it, and made me completely ignore the native methods and solutions that have always existed. It made all my solutions less portable too, since using them required jQuery.
Since then, I’ve strived to not use jQuery unless it is absolutely necessary and truly provides big improvement in efficiency and readability to our codebase (for example, heavy DOM manipulation).
Once again, don’t get me wrong, jQuery is great, but if I could go back in time and meet my past self that was just learning web development, I’d heavily advise myself against learning jQuery altogether until I’ve learned how to do things without it. If you are having trouble doing the switch like I did, check out You Might Not Need jQuery.
The secret sauce for success
I’ve met a lot of developers over the past year I’ve been a web developer. Along my journey, I’ve met a few developers who really stood out — developers who were clearly in a league of their own, and to whom me and everyone else looked up to. I found these individuals shared quite a few characteristics, which I’d like to share with you right now. These are in my opinion the secret sauce to being a successful web developer:
Always be on the lookout for new things. Most of the successful developers I’ve met share this common trait. Whether it be by reading blogs, spending lots of time in programming related discussions, or even talking about what’s new in web development during lunch breaks. Being on the lookout for new things all the time allows the best developers to always stay ahead of the curve.
I’d just like to say I really enjoyed writing this, and it makes me really happy to have been finally able to give something back to the incredibly supportive programming community everywhere.
I hope this was useful to you guys, until next time, Best!
This Post was Written for Toptal Application