Crash Course — Learning a New Tech-Stack: A Junior Developer’s Perspective
Allow me to set the scene
You’ve just started a new job after graduating, and have been assigned to your first project. The problem is that you only know how to make native Android mobile applications in Kotlin, and haven’t worked with a .NET Core API before. But this project is a Flutter project, in which you send and receive data to and from a PostgreSQL database through endpoints in a .NET Core API. You’ve only worked with Firebase…
When you’re faced with what seems like the impossible, it can often feel overwhelming, and almost inevitably lead you on a journey to quench your thirst with some sweet, sweet procrastination juice. Fear not, because Uncle Mike is here to share a few tips and tricks to get you on your way.
What makes learning a completely new and different tech-stack so daunting for some of us? If you’ve been tasked to learn an unfamiliar tech-stack, in most cases it means you are, at the very least, already familiar with a tech-stack…right?
Now if that is the case, while there are differing nuances, syntaxes, data structures, frameworks etc., you do know the basics of using a programming language to develop some kind of software. So what could possibly be so tantalisingly difficult about broadening your horizons?
Well, even if you do know another tech-stack, there are still boat-loads of unknowns standing between you and a pat on the back. In fact, I’d be so bold as to say you don’t even know what you don’t know.
This article will be loosely based on what I have learned so far after working for about a year, as well as having studied IT for four years.
First things first, remain calm. The sky isn’t falling. Yes, you have a mountain to climb and you probably feel like you’re dressed for the beach, but luckily you have a one-stop-shop for anything and everything you could ever need to summit that bad boy: Google (or more accurately, the Internet).
1. Research the Topic to get a Basic Understanding
Whether you like it or not, you need to know the basics. Ideally, you’d have enough time to complete a Udemy or Udacity course, or even watch a free YouTube tutorial before you get your hands dirty. I highly recommend buying a course on Udemy to get you started (oftentimes they have massive discounts, too).
If you’re not in any position to buy a short course, the next best thing is to find a tutorial on YouTube. A good YouTube tutorial is basically the same thing in a slightly less structured manner, costing you little to even a lot less money. YouTube channels like Programming With Mosh, freeCodeCamp.org and Reso Coder are great examples.
Alternatively, you could even find a short article on Medium or other blog and tutorial sites such as W3Schools, MindOrks and GeeksforGeeks, that might tickle your fancy. However, the odds of you finding the most relevant content all depend on how you search for it, leading me to the next point - formulating your question properly.
2. Learn How to Formulate your Question, but First…
Disclaimer: I’m not going to show you how to use Google Search effectively. If you’d like to know that, click here. Instead, this section is more related to troubleshooting.
Look, we’ve all been stumped. We’ve all tried to use a piece of code incorrectly, or seen those dreaded red lines telling you that the elevator doesn’t quite go to the top floor after building your solution. And we will all continue to experience these things. Regardless, you’re typically the only one responsible for solving your own problems when it comes down to it.
Before consulting the high-minded people of the Internet, look inside. No seriously, your IDE or development environment very likely comes fitted with a very powerful tool: the debugger. It gives you key insight into what’s going on in the background of your application, so use it!
When you get runtime errors and have no idea where to begin, start planting some breakpoints in your code and run your solution in debugger mode. It can be painful sometimes, but if you do it right and stick with it, the reward is sweeter than buying an unsavoury amount of cryptocurrency before it moons.
Your immediate reaction to seeing a compilation (or any) error should be to read it thoroughly. Sometimes they aren’t ambiguous and tell you exactly which line in which file the error is occurring. Other times, you might not be so lucky.
So what do you do? The correct course of action should be to find official documentation, like Microsoft Docs and Android Developers Documentation, for example, and go down an endless, educational rabbit hole until you find something useful.
However, this is all provided you have some time on your hands. If you’re in a hurry, well, just copy and paste the entire error into Google! Is this great advice? Debatable. Does it get the job done? Oftentimes, yes, as long as you omit any keywords, variable names or classes that are exclusive to your project.
Finally, if you’re trying to find answers to a ‘how to…’ question, remember to include key constituents of the issue. Be as specific as possible, and include keywords like the framework or language you’re using.
3. Find Similar Solutions
Sometimes you’re looking for something a bit more relevant to your situation. Sometimes the content you find online just doesn’t suit the way your project is structured. So what you could do is source a similar project, be it a different application with the same design patterns or a project of a similar nature. Let me explain through an example.
If you’re working on creating a WhatsApp clone, for instance, and you can’t really find a way to implement the feature of swiping a message to reply to that message, sometimes finding a GitHub repository is a great way to tackle your task at hand.
4. Use the Website that Does 69% of a Software Developer’s Job
Don’t quote me on that statistic. Every single developer of the modern age has made use of StackOverflow. Whether you’re trying to solve an error or trying to find a nifty way to accomplish something, this website will save the day one way or another.
I cannot emphasise this enough. It is a goldmine consisting of an extremely helpful community of developers ready to answer any and all (reasonable) questions. Usually your question has already been asked, so you don’t even need to post anything. If you do post a question, however, please make sure to adhere to the guidelines.
Let’s say you do find a solution to your problem on that glorious website. Don’t just paste it in your code. Understand what that piece of code does, and (obviously) adapt it to your specific scenario. There’s nothing worse than trying find and fix an error caused by code you don’t understand.
5. Lean on Experience
Contrary to popular belief, unfortunately Google doesn’t have all the answers. If you’re part of a team, use that to your advantage.
Whether you’re asking for hands-on assistance or just to be pointed in the right direction, someone in your team can often offer valuable guidance. Everyone on your team is working towards the same thing, so every contribution matters, including yours. It’s in their best interest for you to succeed as well, and they should be willing to help.
Here’s the thing though, don’t expect them to do your work for you. Don’t ask for help without trying something at the very least. In fact, the best path to take here is to explain to someone what you need to do, show them what you’ve actually tried (maybe even explain why you think it may not be working), and then ask for help.
Side note: Don’t abuse people’s willingness to help you either. You have to remember that they have their own work to do and you might be annoying them. Don’t annoy your teammates, they’re supposed to like you, at least a little bit.
That’s it. That’s all I’ve got for you. Eventually you’ll find yourself naturally following some variation of this strategy. At the end of the day, it’s all about finding your groove.