Recommendations for the (Newly) Self-Taught Web Developer
Blog Barista: Tim Hollosy | Sept 10, 2018 | Career Hacks | Brew time: 7 min
My first programming mentor was Jason Kusnier, whom I still work with today. Jason is self-taught and the best programmer I have encountered, including my classmates at Michigan State University. I learned a ton of new things during my first few months working with him that were never covered in my college courses. How was a guy who grew up in a small town with no degree able to perform at such a high level, make a fair salary, and attain something like the “American Dream?” We’ve been told that unless you go to college there’s not a respectable, high-paying job available for you, that was only for previous generations, an artifact of a freak economy at the tail-end of the industrial revolution.
The ethos of the development culture started in a very inclusive way. It wasn’t about your degree or your appearance. It was about what you can build. You didn’t build things only for money, you built things because it was efficient or fun. Although the culture has changed over the years as money has poured into the IT sector, that core value is still there. I think that’s why people with non-traditional backgrounds are able to succeed.
So, maybe you’ve recently thought to yourself, “I’d like to work in development, but I can’t because I don’t have a computer science degree.” It’s no secret that there is a job shortage for developers, the media and probably your grandmother could tell you that. In fact, a computer science degree is one of the few bachelor’s degrees that offer a good return on investment right now. If you love making things and working with computers, how can you break in to the industry when every single job listing says a bachelor’s degree is required?
I’ve been working in the development world for the past 20 years and involved in hiring developers for the last 10. I have worked with many people including some self-taught developers, and I’ve discovered that there are certain commonalities that make those individuals successful.
So, here’s a few recommendations that will help get you coding and on your way to landing your first job as a web developer.
Luckily, there’s plenty of opportunities and resources available to get you started with programming. One of the best places to start is to simply take some online courses.
Sites such as Udacity and Udemy will provide structured courses, lesson plans, and lectures that guide you through the principles of development. You can take a full-blown bootcamp, or start small with a fundamentals course. You’re able to pick what’s best suited for you and best of all, some of these courses are FREE. And of course, you can utilize YouTube and online tutorials to help you through as well.
Most importantly, one of the best and quickest ways to learn, is by simply doing. Jump in, follow along, and try it out yourself. And then…do it again. See how you can update a feature to make it better, or how you can do a task more efficiently. And just as important, when you see a concept you don’t understand, look it up. When you see a term you don’t understand, look it up.
Also, just because you don’t need to have a computer science degree, doesn’t mean that computer science is useless. It’s important to understand how computers really work. You should understand the architecture of a computer. Disks are slow, RAM is fast, threading isn’t a magic bullet. So, don’t skip the theory or it will bite you later.
While working your way through these courses, you’ve probably started building an application of sorts. But now that you have a taste of what it’s like, it’s time to do something a little more fun and create an application that actually interests you.
A good starting point would be to create a “CRUD” application (Create Read Update and Delete) as this covers all the basic data manipulation you’ll need throughout your development career. If you can’t come up with an idea, try to think of a task that’s hard to do, and find a way to make it easier. Or think of a type of database that would allow you to get specific information you need.
Now that you have your idea, you need to pick your technologies. A good place to start is to choose a language that you want to learn. While Java or C# .NET are common, they’re not super fun to learn as your very first language and are total buzz kills. For starting languages, I’d suggest Python, Ruby or TypeScript.
Next, let’s pick a framework that fits your language preference. I’d recommend Django (Python), Ruby on Rails (Ruby), or Angular (TypeScript). These frameworks are some of the easiest to learn and can get you started quicker. If you’re interested in building web applications, I’d recommend Angular (or React) because it’s one of the most popular technologies of 2018 and has numerous resources available.
Now that you’ve spent time on your web app, and perhaps lucky enough to have enjoyed your project enough to add a bunch of features to it, it’s time to learn some unit testing. Although this may not seem fun, Test Driven Development is a very useful skill to have and many entry level jobs will involve writing these puppies. So, if you’re able to add this to your resume, it could really help if you’re interested in a development position.
Once you feel like you have a good grip on your application, it’s time to share it. Uploading your code to a version control platform, such as GitHub, will provide you many benefits. It will keep your code safe, make it accessible anywhere, and you won’t have to store different versions on your hard drive. It will also allow other people access to utilize your code, and open yourself up to feedback and collaboration. Not to mention, if you start looking for that developer job, employers can view your project(s) as well.
Getting involved in the open source community is a great way to network and feel what it’s like to work on a team. Learning the etiquette of branching, forking, pull requests, etc. will make it much easier for you to assimilate into a development team.
The world of technology is forever changing. Embrace the change and keep up to date on all the latest technology. Find some great books on coding that you can keep turning to, follow the scene on Twitter, join websites like StackOverflow and participate in forums, and watch as many college lectures as you can. Absorb as much information as you possibly can, and you’ll be just as successful.
But, it’ll take time.
One thing to keep in mind while working through this process is that it takes time. Learning how to code won’t happen overnight. Learning just the superficial idea of how to make a website, or how to make a little app that does something, is not enough. You need a wide depth of knowledge to do the job. Jason didn’t get good by spending only an hour once a week programming. Programming was his hobby. He liked doing it! This means you’ll be spending a lot of time on it. If it isn’t fun for you to spend time on, maybe that’s a good sign that it’s not a good career choice for you.
Other recent posts:
Blog Barista: Anthony Wolf | May 20, 2020 | Development Practices | Brew time: 6 min
Thinking About Your Data Model
I often read code in forums or Stack Overflow from people who are beginners at C#, and see them using FirstOrDefault in every situation where they need a single item from an IEnumerable. If I ask them why they made this choice, the reply is typically something like “it always works” or…
Blog Barista: Jonathan Nicholson | May 6, 2020 | Privacy & Security | Brew time: 7 min
There are many things that you can do to slightly increase your privacy in this digital age. A lot can be accomplished without being too extreme like swearing off all social media, self-encrypting all of your emails, and using Tor—a software tool for…