First step starts with realizing where we are within the hell. Also, Don’t worry, everybody’s been there at some point.
Do you feel blank when you try to think of what should you do as a developer when you have an idea of your volition and you don’t have a clue how to get around coding it?
Do you get frozen if there’s not a single youtube tutorial on the problem that holds your hand tighter than your lover?
Are you not able to code anything significant if there is no tutorial on youtube or a blogpost or a step by step guide that guides you through the forest of development nightmares?
If you said yes to either of these questions, chief i’m sorry but you are kind of, maybe, probably, surely in tutorial hell.
there’s nothing wrong about just looking up a tutorial once in a while, I want to address the dependence some people have on them
There’s depths to it just like the world ruled by hades. and you my lovely Zagreus, are going to clear it rise up to the top
I’ve got some
advice that will help you clear the hell faster, and might help you in your adventures beyond the hell. boons
PS- i’m a great fan of hades the game.
Build atomic projects
Build small, really small, I’ve created a project whose sole feature was that it was able to connect to a postgres db and run a simple query that returns a
Aur bhai!!! kya haal chaal
Also, There’s this other time when i created two different projects just so that i could understand how stateless auth and stateful auth.
Did I tell you i created a dummy project just to mess with tsconfig.json and certain options within it?
these are not meant to be projects that go on your github or go on your resume, these projects that you will start working on will have a single sole purpose when you write them, to teach you.
Having this clear understanding that this was not supposed to be a product, a portfolio project or anything of that sorts will free your mind to experimentation, tom foolery, and random bull shittery, some of my most valuable lessons learnt have been while i was just messing around. You end up tinkering a lot because there’s no responsibility on you.
My reasoning behind this is simple: i did not think anything about this (project), as a result i was not worried of what i might end up breaking, hence i was not afraid to break things, and then proceed to understand what broke and why it broke, which helped me understand a lot about internals better.
Teach yourself and others
It’s called the Protégé effect .
The protégé effect is a psychological phenomenon where teaching, pretending to teach, or preparing to teach information to others helps a person learn that information. For example, a student who is studying for an exam could benefit from the protégé effect and improve their understanding of the material, by teaching that material to their peers.
This is one of the selfish reasons that has kept me eager to answer people and be open to helping others and answering development questions. (mostly on discord servers)
Fun fact: I have a kindergarten panda that’s used as a puppet to sit through all my lectures, all my debugging sessions, all my rants, and all my coping sessions, with all that he’s been through, I bet he knows enough to be called a CSE and EE majors graduate.
Give yourself time
hold your horses before you think 3 months and i’mma be a awesome
Often times new concepts NEED, and i mean they really NEED time to seep into your brain. if you don’t take time to understand certain important concepts, chances are, you will just blackbox them (link what blackboxing).
You sometimes need to give your self time to learn some skills. don’t be too hard on yourself, don’t give up, don’t cheat by just going ahead and looking at tutorials right away, try spending significant time attempting to solve your issues yourself. these tutorials should be your last efforts, and once you do get your solutions, you should spend time reflecting on where we went wrong with this, what could we do differently to not struggle here with this sorts of problems, and what makes this solution in this tutorial work. See how you are asking questions that will really make you understand and learn instead of just gulping through tutorials?
Note: i don’t mean that black boxing is bad or something you should not do, I’m saying that black boxing basic concepts is a bad thing you could end up doing. different people have slightly different concepts of what qualify as basics. but the bulk list of topics remains the same for any field of development.
and i’m not saying the kings and queens reading this are no genius. i hope you are, but even the best of them need time for certain things, and it’s okay.
Learn to solve bugs/ troubleshoot
Troubleshooting and solving bugs is something that you only better at by experience and learning. Over the years I’ve seen myself get better at solving bugs and troubleshooting problems rather exponentially, I think the reason behind this is that I watch and learn from every possible place. I don’t do arduino development / aviation mechanics, but I still watch and follow tom stanton on youtube, Why? cause I like to look at his ways of iterative designs, how he trouble shoots and goes about problems, But carefully looking at other’s project journeys, I steal their techniques for troubleshooting and problem solving abilities.
There’s a treasure trove of youtubers who don’t produce content for developer/coders, But they have some of the best engineering skills, and learning from them has benefitted me immensely. I feel like many tech developer channels are just there for milking monies. Very few really give you really nice, actionable advice, and the ones that do don’t do it often.
There’s a bunch of challenges that are created for the sole purpose of teaching you some basics and helping you git gud at these skills you are struggling with.
But unlike tutorials and guids, they don’t hold your hand through the lands of perilous attacks filled with pitfalls orges and gotcha monsters and grim looking workarounds. They do be challenging you, challenging you to become a better developer.
I’m listing some challenge sets i’ve heard of
- cryptopals (taught me crytpography)
- Neetcode.io (interview problems mostly)
- cses problem set ( math + cs related mostly fun problems )
- SDE sheet (by striver)
- css challenge
- css battle
- daily UI
there’s probably more, I’m not aware of all of them
read more, watch less
Be comfortable to read a lot, i’ve seen people search for videos, instead of just going ahead and reading the documentations. Video or not, a structured blog/guide or not, you should be able to read a lot in order to find solutions to relatively small problems
GIT GUD KID: at reading documentation
This is the same point as the one above, no? NO, Reading documentation is a bit different.
There’s a lot of well documented libraries, but oh boy there’s libraries with awful documentation, even better there’s libraries with no documentations
willing to jump directly at api references, reading straight function implementations and the code comments within them, etc. Being proficient with things like these will make you feel that no matter what the library is, if “have” to use it, you can use it. This is a huge confidence boost
Learn how to Ask for help
Oh boy, the amount of times, i really won’t go into another one of these rants i promise myself.
Things to think about when you are asking someone for help.
- Am i precisely mentioning my problem?
- Have I tried my best to solve this and I’m not able to?
- Have I provided the details of what I’ve tried and it did not work?
- Have I told them what I think might be the problem? what my thoughts are?
- Can I provide them CSB links
or something similar that they can use to replicate my problem?
Don’t strive for learning cause a project demands it, but rather cause learning is fun.
This is not applicable to everyone, but I’ve found that people who are always learning about some xyz thing are more likely to solve a problem than people who’ve just learnt what was the absolute bare minimum for their project. This is also another reason I’m very slightly disappointed when people come up to ask whether they should learn Angular/rust/C++…. <insert language/framework/tech name here>. Yeah, you should just go ahead and give it a try. The concepts transfer, your brain struggles and ends up being a really nice thinking machine. it’s awesome to be constantly learning some xyz. it is a privilege many won’t be able to afford due to circumstances and I feel absolutely blessed to be among the folks who can.
- Build Atomic projects
- Give yourself some room to play. give yourself time.
- Learn how to solve bugs and troubleshoot.
- Coding Challenges
- read more, watch less
- Get better at reading docs
- Learn How to ask for help
- Learn cause it is fun, not cause you need to for a project.