Software development is an industry filled with people from different educational and economic backgrounds. Some developers get formal computer science education in colleges and universities, whereas some are self made, learning from the greatest teacher of modern times: the internet.
Just to be clear, I come from the former group but am very much part of the latter as well. I do have a computer science degree but learned development on my own using the resources on the internet.
Even though I studied computers at college for four years, I cannot stress enough that most of my software development education came from learning from the internet on my own. College education will not always prepare you for a development job. My curriculum didn’t, so I had to find resources and learn on my own. I often joke with my family that I would’ve done just as well had I not gone to college.
One of the main things that I took from my journey to become a professional is the importance of what you study. When you’re learning on your own, your resources are your teachers and determine what you can do in your career.
There are many fields in software development—you might want to become a web developer, a blockchain developer, a data science expert …The possibilities are endless. You need to choose a goal so that you can select what you want to study.
Or maybe you just want to improve on an existing skill in order to advance your career, complete a project, or to just satisfy your curiosity.
I learned from all sorts of resources—from books to YouTube videos to online study sites like Udemy. Whatever the resource, the most important thing is that you choose it carefully so that you don’t waste your time.
One of the biggest mistakes you can make as a self-teaching developer is to just dive into whatever resources you find first. Trust me, been there, done that.
Not only does that waste your time, but it also might cost you some money. I started reading a book about Ruby on Rails just because it was the first one that popped up on Amazon and later regretted not reading proper reviews of the book because it was of no help to a beginner.
The first thing you need to decide is what you are studying for. Are you studying to make a career change? Improve on an existing skill? Knowing your motivations will make it easier to choose a career path to aim for and, therefore, which resources to choose. First choose the goal carefully, and then start searching for the resources to achieve your goal.
Once you have a goal in mind about what you want to study, you need to choose your resources carefully and thoroughly. Think of it like buying a new cellphone. Would you just buy the first one that you find online? No, right? You’ll spend hours, possibly days, looking for the best phone for your needs within your planned budget. That is what you need to do while searching for study materials. Find out what resources will teach you what you need to know, and then read the reviews just like you would while buying a phone.
The internet is full of videos, podcasts, and books on all sorts of topics related to software development. Also, if you can afford it, there are online classes and seminars available that can turn out great. Go ahead and Google your chosen topic if you want to—you’ll see a staggering number of results pop up. Now, in this sea of results, you need to find what suits you best.
I used to spend days and days asking people and researching online for courses and books related to whatever I wanted to learn about. I thought of it as “The preparation before the preparation,” as in preparing the material properly before I start preparing for the job, or skill development, or whatever I’m studying for.
When you’re self taught , you know the importance of time and money, and choosing the wrong resource just to save a little time at the start can lead to much more time being wasted. Hence, you need to do your research well before you dive into the study.
As I mentioned, the internet is a sea of resources. Just Google whatever topic you’d like, say “Javascript for beginners.” What I got was about 18.4 billion results in 0.55 seconds. Good luck finding your resource among them.
Luckily, it doesn’t have to be that overwhelming. What you need is help from someone who has gone through the same dilemma as you.
One of the best pieces of advice I can give you is to join communities on social networks like Facebook groups, LinkedIn groups, and other communities related to your subject where you can raise your questions. People in those groups can help you choose resources and guide you through your confusion.
I did this all the time when I started learning web development, and I still do it to this date. I have gotten great suggestions from people in groups and communities about resources that may not be that popular yet but were really great. This is actually how I got to know about Simple Programmer in the first place!
Now, you may be a book person, or you may like learning from videos. This is something that you need to add when asking for resource suggestions.Whenever I was confused about where to find the best resources for me, helpful developers in communities came to my rescue and advised me on resources in my preferred medium.
If for some reason you do not want to join a community, then what I advise is to go through blog articles and YouTube videos about the best resources for what you want to study. Check out websites like Goodreads for reviews if the resource is a book. What you want is to do a thorough research on all the resources, weigh their pros and cons, and then decide which one you like best.
Time, ability, and economy are the three criteria that I use to choose my resources. Let’s take a look at all three one by one.
Time is of great essence when choosing a resource to learn from. Maybe you are learning a skill for a small feature in an application that you need to deliver by the weekend, or maybe you are learning to take one of your existing skills to an advanced level.
The motivation to study something can vary widely and so can the time one is willing to give to learn that skill. You cannot expect to take a 30-hour course on something that needs to be learned in a week (trust me, a 30-hour online course will take at least 15-20 days).
Also, you cannot equally weight the time you need to spend learning different skills—for example, learning to ride a bike and learning to operate a submarine don’t take the same amount of time. It took me months to get a proper hold on ReactJS but not more than a week to get comfortable with MongoDB.
You need to know how much time are you willing to spend on learning that skill. You need to choose a resource that can give you the essential skillset in the time you can afford to spend.
Ability is the major deciding factor in choosing resources as you progress from being a beginner to being a more advanced programmer. The internet is full of beginner-friendly resources, but the same cannot be said for some advanced material.
When trying to learn something advanced, you must properly research whether what you are about to study will be beneficial to your already existing skills or not. You should not buy a book thinking it will teach you new techniques when all is has is stuff you already know!
The third thing that plays a part if you are a self-taught programmer is how much money you can spend on a resource. Personally, I feel there’s no better investment you can make than to improve yourself as a programmer, but I do understand that sometimes money is a barrier.
You must try to not waste money on random resources that you end up not using at all. It’s better to spend more on a better resource that you will use extensively than to spend less on a resource that will just sit idle and you will never even care to open.
In my personal experience, courses on websites like Udemy and Udacity are great and very cheap compared to bootcamps and courses on personal websites, so you might try your luck there.
One thing I would like to make clear is that it will all pay off once you reach your goal of learning a skill—there’s a very famous monologue from my favorite movie 3 Idiots that goes “Do not strive for success, strive for excellence—success will follow itself.”
Some of the best places to find good material are:
Now, the actual resources vary from field to field, so I cannot pinpoint exactly what you might want, but this is a good place to start.
After a lot of effort and research, when you finally find the resource, don’t rush in assuming it’s the best resource in the world. I get that you might have researched a lot and compared a lot of similar stuff, but trust me, you can go wrong.
I have gone wrong in the past, and I still go wrong sometimes. I have wasted money and time on something that I did not even complete 10% of (it was a digital marketing course). The course itself wasn’t bad, but it just wasn’t a good time for me to pursue it. So, be sure of yourself as well before starting something. What is important is to figure out in the early stages whether the resource that you picked up is what you picked it up for or not.
Just because you put in some time researching that resource does not mean that you MUST keep studying it even if you do not feel comfortable with it. You can choose some other resource. Don’t waste your real study time, potentially weeks or months, on a resource that you do not like in the initial stages of studying.
Not all is gloomy, though. If you researched well according to your preferences and contacted some experienced people who have already gone through resources before you, you will get great results before long, and at the end of the day, what you read is what you become.
What you want to do is reach a goal. That goal here is probably to learn a skill, gain knowledge, or improve yourself in some way. What is important is that you choose your resources wisely and with lots of research because you’re only as good as what you’ll be learning from.
Remember to set the criteria for your resource on the basis of the time you can spend, the money you can afford, and the level (beginner, medium, advanced) of skill you want to learn. Also, keep in mind your preferred medium. You may like videos, books, podcasts, or maybe even learning from a mentor.
Don’t be disheartened if the resource does not turn out great even after a lot of research—trust me, everything will teach you at least something. However, chances are that if you’ve put in enough effort and research, you’ll end up with an ideal resource that will lead you toward your goals. Trust me, some resources are so great you might end up emailing the creator!
So, make complete use of the internet, and keep on learning skills and improving yourself through resources.