Feb 18, 2021
I wanted to write this article for new web developers, in hopes of giving you some encouragement, hope, and peace of mind about this journey that you're embarking upon. If you're new to the world of web development - whether that means you're still in high school, a college student or intern, someone who is 1–2 years into your career, or even someone who is looking to start a whole new career - I give you kudos. You've stepped into a world that, at first glance, can be particularly intimidating and overwhelming.
When I first started into this field, the web was nowhere near what it is today. It was much simpler, and there weren't nearly as many technologies out there to learn. Being that everything was still so new, even when new technologies did come out, we were able to learn them over time. So - all of that is simply to say - "bravo", for bravely entering into a field that is, in my opinion, no longer quite so friendly to newcomers.
In the article that follows, I am going to give some practical tips, personal stories, and overall advice on how to successfully navigate this vast industry.
It is important to bear in mind that at the end of the day, page builders, WYSIWYG editors, and the various web-based programming languages (PHP, Ruby, React, Angular, Vue, etc.) all still spit out HTML, CSS and/or JS. So the more familiar you are with these foundational technologies, the better off you'll be.
I know that's easy for me to say. I've already succeeded in my career. I had it easy. I was able to grow my business early on, when all of this stuff wasn't around. Except, that's not actually true at all.
I, a 25 year veteran of this industry, am not at all immune to feeling overwhelmed by all of the technology out there, and all of the things we are expected to know. I often feel nervous about the fact that even though I've been doing this for so long, with so many new and emerging technologies, all of the skills I've built over the last two and a half decades may no longer be relevant.
Don't buy into these lies!
I totally get it. One only needs to look at pretty much any job posting to feel completely defeated. It's almost like businesses who are looking to hire web-developers just copy & paste a list of every web-related term they can find, having no idea that what they are asking for is almost impossible to find in one person.
It has been my personal experience that if a company is asking for a huge range of skills and languages, they don't actually know what they're looking for, and are really just seeking someone who can guide them. The companies out there who are seeking specialized developers are usually a much safer bet, as it implies they have already decided on a technology stack, and realize that the framework they've chosen doesn't particularly matter.
Which leads me to my next point…
A couple of points here.
A.) No matter what technology stack you choose, there are jobs to be found for that particular skillset.
B.) They all mostly do the same stuff. You can still solve the same general problems, and there are both good and bad practices no matter what languages you choose.
Choosing a technology stack is a lot like choosing a second language to speak. Are there languages that you'll get more use out of? Sure. But - no language is inherently bad, and almost any language will allow you to communicate with other people who also speak that language. The same can be said of programming languages. At the end of the day, they're just a way to speak to a compiler or rendering engine.
So - if you want to learn PHP, go for it. If Ruby is more your jam - that's fine too. Or maybe you have a book on Python laying around making it the most convenient option for you. Great! The reality is - there isn't really anything that you can do in any of these languages that you can't do in the others. So choose one, and be confident in that decision.
Let me tell you a little story.
I was once contracted to develop a web-app that let users track the measurements of trees that property owners wanted to sell.
And then the client dropped a bomb on me.
"What happens if we're out in the woods, and we don't have internet access?"
… uhhhh… yeah. I didn't think about that.
When he asked me this, after I recovered from the sinking feeling in the pit of my stomach, I went through the obligatory period of self-loathing, asking how I could have been so stupid to have made such a glaring oversight.
I had already spent the money I was given for the project, and wasn't in a position to offer any kind of a refund. I knew I had to figure out a way to make this work. And I knew that I really only had two options: I either had to figure out a way to make the existing web app work offline. Or, I would have to build a native mobile app. I had never done either of those things before.
I did some preliminary research on making a web app work offline, and quickly realized that the technology simply wasn't there yet - and even if it was, it was something I would have needed to implement from the very beginning.
I knew, in my gut, that a native app was the way to go - but I was intimidated, because I had never done anything even close to that.
So - I bought a "Sam's: Teach Yourself iOS Development in 24 Hours" book, locked myself in my office, and for the next week went through the entire book. Not only did I go through the exercises in the book, but after each chapter, I used what I learned to try to recreate functionality from my web app.
As I got somewhat comfortable with the software and the programming language, I was able to start seeing concrete obstacles and problems that I needed to overcome using the technology that I was working with. Clear hurtles started to show themselves, and it gave me direction in terms of the questions that I needed to be asking.
I needed a way to store data on the device, rather than an online database…
I needed a way to sync data from the device to an online database…
I needed a way to cumulatively add values based on multiple trees…
Admittedly, there was a lot of copying and pasting code that I found on Stack Overflow - but sure enough, after about 3 weeks, I had a fully functioning mobile app, that worked offline, and did everything it needed to. Incidentally, the mobile app actually ended up working much better than the web-based version I started with.
I tell this story to simply illustrate one single point: I got an entire degree's worth of education in about a month, by having a specific problem that I had no choice but to solve. At the end of the day, there is simply NO substitute for a real world scenario or problem.
So - if you want to radically improve your chances of getting hired, your best bet is not to focus on courses and learning MORE, but rather, actually building something with what you already know!
In this industry, the ability to execute will ALWAYS be a greater asset than quantity of knowledge.
An employer will always hire & promote a person who can effectively copy and paste code they found online to get a project across the finish line, than a person who takes 2 years to write it from scratch.
At the end of the day, results matter - and if you focus on being able to create results, no matter how you get there, it will serve you better than focusing on writing code that other programmers praise you for.
Don't get me wrong - the web development community is an amazing one, filled with incredibly bright, and thoughtful people.
But it can also be a toxic one.
I have seen so many examples of people getting ripped to shreds on sites like StackOverflow and Reddit, because they ask how to do something that is considered to be a "bad practice".
While I totally acknowledge that it is important to learn to code well, and to avoid bad-practices… to make someone feel bad about themselves for trying to solve a problem in a way that makes sense to them is terrible.
So, while I encourage every web developer to engage with the community and ask questions for things you can't figure out on your own - I also advise you to take the sometimes extremely biased opinions of other developers with a grain of salt. At the end of the day, results are what matter - and almost nobody (apart from other programmers) will care how something is built.
I will refrain from defending this argument at length here, as I know there will be other developers who read this, and are ready to pounce on some of the statements I've made thus far. Maybe I'll cover that in another article. For now though - I stand by my words: "done is better than perfect". A poorly coded, but well-functioning application will always be preferable to a well-coded app that never gets across the finish line.
Naturally, you don't want to be oblivious to what's happening in our industry. But at the same time, before you invest a ton of time learning something new, it's not a bad thing if you wait a few years before hopping on the bandwagon.
Over the past 25 years, I have seen countless technologies come and go. jQuery, while still around, is starting to see a mass departure in favor of lighter, more vanilla options. But there was a time when jQuery was the new kid on the block and everybody was singing its praises. jQuery was EVERYWHERE (and still kind of is). So - if even King jQuery is on the verge of being dethroned, it tells me that no technology is truly "safe".
For many of you, that might be a scary thing to hear. What if you spend a bunch of time learning something that eventually becomes irrelevant?
To that I say - "it's going to be okay." If there's one thing that I have learned, it is that no knowledge is wasted knowledge, and having experience in one technology will almost certainly lead to an improved understanding in other areas.
Years back, Adobe Flash was a massively popular platform for building interactive websites. It was as ubiquitous in websites then as jQuery is now. And I spent years of my career learning that software, and the programming language that came with it (Actionscript).
Though Flash, and its accompanying programming language is now defunct, I do not at all regret the time I spent learning it. Actionscript was my first foray into Object-Oriented Programming. Flash itself taught me how frame animation worked, as well as motion-tweening. I also learned a ton of stuff about user experience and interactivity that I would have never learned if it weren't for Flash.
So for you, even if you spend time learning something that eventually falls by the wayside - don't consider it wasted time. The concepts and principles you learn from that thing, will almost assuredly come in handy in other areas of your life.
If you've been drawn to this industry, there's gotta be at least something you like about it. The reality is, we get to be a part of something that is still in its infancy, and is continuing to grow. We get to contribute to it, refine it, and weed out the ineffective bits.
Knowing how tedious it used to be to code an interface, I think the technologies we have at our disposal these days is truly fantastic.
Overwhelming though it may sometimes be, things really have gotten better for web developers, and I wouldn't necessarily wish the old-school methods on anybody. Part of the fun of our industry is watching it change, evolve, and grow. It is truly a special feeling when something that used to be a huge headache, suddenly becomes a new feature of HTML or CSS, which makes it super simple. I've seen it happen numerous times now, and I still get excited every time it happens.
As I stated towards the beginning of this, I fully concede that stepping into web-development in 2021 can be intimidating, frustrating, and downright overwhelming. But it doesn't have to be. I hope this article will help you relax, and be content with the realization that you're never going to learn it all - but that doesn't mean you can't still be massively successful.
I hope this article will help you to see that being really great at a few things will always be better than being mediocre at everything.
And I hope this article shows you that even the things you learn that eventually fade away will not be wasted efforts, and will eventually contribute to a greater body of knowledge that makes you a genuine expert.
All of this is simply to say - just hang in there, and be patient with yourself. Give yourself some grace, and enjoy the ride!