Earlier this month, I started a free mentorship program for everyone who aspires to become a developer and wants a little nudge or tips and tricks from me. The response there was tremendous.
Almost a month in, after talking one-on-one with so many developers on WhatsApp, I have a much better understanding of the current generation of aspiring developers.
#1: Web Development is popular
Going by the messages exchanged between me and 2,500 other developers, people want to learn web development. Almost 80% of people want to learn, are learning, or want to switch careers into web development.
Why is that? Well, if you look at the data, it becomes much more clear:
- Almost every business that sells has a website.
- Web developers are needed to create/maintain/update and change the technologies powering so many websites.
- The web is rapidly expanding, improving, and growing. More people are getting online each day, the opportunity is tremendous for the people who control what millions of people could see through web pages.
- The web is vast - you can pick up your little tech stack, master it, and earn through freelancing, or as an independent contractor or firm.
Does that mean you should learn web development? Well, it depends. Keep reading the article to know why.
#2: A good chunk of people are doing it wrong
I won't write "most people", but yes, a lot of people are learning competitive programming when they should really be learning web development, or music, or anything else.
A lot of the people I talked to are "stuck" learning something because their job apparently demands it. Or because they are waiting for internships or on-campus placements 100 years from now (sarcasm). Or because that's what is taught in their universities. Or because their friends are doing it.
If you fall into one of those categories you're not doing yourself a favor.
Take a step back and seriously reconsider the road you're taking. If you're not happy with the end goal and the path, if you're not excited about programming, coding, doing and learning what you do right now, it's not going to be something you'll master – you are going to give up somewhere along the way.
Don't get twisted though. This doesn't mean the usual "because-it-does-not-work" code frustration that happens all the time when you're learning. Please reconsider your field, but make sure you're doing what makes and keeps you happy. There's no shame in picking up things you like and things you don't.
#3: You want to master everything
You can't imagine all the confusion I saw.
People want to become full-stack developers, contribute to all Open Source projects, get a job at Facebook, create a rocket at NASA, leave the solar system, and set up another civilization in another galaxy all at once.
This is not how any of this works. You cannot be a full-stack or even a frontend developer in a day. And if anyone says that to you, that person is lying.
Being a full-stack developer or mastering a tech stack isn't a destination. You would never wake up one day and say that this is the day when I become a full-stack developer.
It is a journey. You'll learn so much along the journey. And the journey is going to be a long one, whether you like it or not. You also cannot effectively master everything.
Remember that my definition of mastering is not watching a 4 hour YouTube video on React and considering yourself eligible to work on the flight control dashboard on SpaceX rocket. It takes time and experience to master a tech stack, and you probably won't feel that you know everything even when you really know a lot of stuff.
Although the secret of being successful is mastering one thing, I often tell people to try out as many things as they can – just to develop a taste of what they like and what they don't. Maybe you'll like Rust, maybe someone else will like C++.
You never know until you try.
#4: You don't want to put in the work
I contacted so many people and told them to report their progress in a week. What surprised me is that most of them didn't complete the work I assigned.
"I was busy this week due to work", "I had a test coming up", "I was busy learning X" – excuses. Plain excuses.
Please realize that putting in constant effort for a sustained amount of time is one of the few things which cannot be bought or transferred with a hyperlink. You have to do it.
If you're not doing it, figure out why – is it because you don't like the thing you're doing? If that's the case, consider point #2. Is it because you don't have resources/you get confused? – ASK me! Is it because of some other reason? – TELL me!
People don't like to share things online fearing that they will be judged. Trust me, neither of us are that interesting.
When you share things, you give someone in a similar situation a chance to relate, get motivated, and even help you out.
#5: Know your tools – Ask for help
A technology you're learning might not be for you at all.
I chatted with so many Python and ML/AI enthusiasts struggling to learn backend development because they couldn't make sense of Node.js. Why would you want to learn Node for backend when you already know Python? Go and learn about Flask and Linux systems.
This is just one example of many people who didn't have guidance and mentorship early on. And I wonder how many human hours could have been saved if everyone was mentored and given a slight push to correct their trajectory.
When in doubt, ask for help. Dev forums, Google, Reddit, StackOverflow, Twitter – there are so many places to ask for help!
It would be so easy for someone to get stuck without the internet and all the smart people on it. The internet is a blessing, so use it!
I'm trying my best to manage the 2,500 people the in the program now, and plan to open up for mentorship again when I can take on more people.
This mentorship is part of codedamn – a platform for developers to connect and learn. If you want, you can follow me on Twitter and Instagram to keep yourself updated about the things I code and my life in general.