Hi there! 👋🏻 Hope this post finds you in good health.
Today I'd like to reflect on a few things I wish I knew before making my not-so-epic entrance into the tech space. 😅 Buckle up, this ones bound to be a fun ride. Let's go back to 2016, where it all started. 🚀 Better not cause a time paradox while at it...
Back in 2016...
...I enrolled at the university. I had little interest in things like finance and law, despite that being the track I followed back in high school. Don't judge me, I really thought I was cut to be an accountant! 🤣 Turns out that I liked my elective course better, that is information science. The course taught me nothing practical. Not even proper SQL normalization (hate to admit it, but I still suck at SQL 'til this day 😞. Though I shall redeem myself...someday).
Despite the little use of that course, it sparked something in me. I was curious about tech and dreamed of building awesome things with code. "That's it, it's decided! I want to be a Software Engineer!" I thought to myself. And so, after finally graduating from high school, I put my game face on, and I enrolled at the technical faculty. No idea whatsoever what I was getting myself into (well, that's a lie. I knew I was going to study Information & Communication Technology. More than enough, right?).
BUT OH BOY, was I clueless! Zero programming experience. Never even seen HTML tags in my whole life! The sole thought of command line interfaces made me shiver. Oh, and 2 years worth of math on the curriculum? "No way I'm gonna survive all that!" I thought. But here I am, 5 years later. About to get the shiny paper.
Still with me? Good. Let us move on to some of the things I wish I knew 5 years ago. Newcomers, take note! 🤓
The importance of version control
So you just learned that your uni or college Gmail comes with unlimited Google Drive storage... Shocking! 🤯 Oh, you have a project to work on? No problem, make a folder on GDrive and tell your fellow teammates to throw (yes, literally throw) their code on there. You'll figure something out and take it from there.
Or so you thought. Next thing you know, you don't have a web app (or whatever you were asked to build). Instead, you have a Frankenstein monster of your own! (Plus points for trying).
As your projects evolve (and grow in complexity), so should your code versioning strategy. I'd advice any newcomer to dive into a version control crash course ASAP. Promise you won't regret. 🍻
Prioritize vanilla skills over libraries and frameworks
Remember when you first learned about HTML and CSS? Pretty neat right? Until one day...you discover what Bootstrap is. Oh, is that jQuery I spot there? Boom, sayonara vanilla JS skills. We don't need you no mo'(more). (P.S. is jQuery a thing in this time and age? Please let me know).
If you were like me, you probably dropped everything you were doing to go grab that shiny Pokémon in town. You disregarded your vanilla skills (plain skills, no helper libs included. Just you and your big brain 🧠), to chase that Nyan cat of a library or framework. Welp, of you go. Back to the drawing board.
If you are a beginner in this field, doesn't really matter where, please focus on skills first. Tools, frameworks and libraries come second. They can wait. Get a solid foundation on the plain skill first, and then move on to the frameworks, libraries and tools that make your life rose-colored. Let me know how that went. ✌🏻
A laptop with good specs goes a long way... 💻🔥
-Sobs in 4GBs of RAM- 😭 Let's be real, you probably don't need the latest MacBook to get started. But boy do you need more RAM! This is especially true if you will be using heavy software and IDEs. -Glares at Android Studio...- (Android studio is the reason I bought a new laptop. It would take at least 20 minutes for it to build the simplest app, only for me to see it crash as soon as it launched 😐. 4GBs of RAM + Android Studio + crappy processor = formula for disaster).
If all you will be doing is web dev (highly unlikely if you are attending college or uni), then sure, 4GBs of RAM will probably suffice. However, for your own sanity, I'd advice you upgrade your specs sooner rather than later. Thank me later. 😜
Tools, tools everywhere 🔧
Y'all must know that feeling all too well. Look at all these shiny tools, IDEs, code editors! Oh I need 'em all! 🤩 I think this is best described as the-kid-in-the-candy-store-syndrome (thats DEFINITELY not a thing, but just go with it). Trust me, I've been there myself. I believe the first code editor I ever used was something called Brackets (think that's been discontinued though).
First IDE I ever worked with; the infamous NetBeans IDE. Those were the days! 🤣 We used NetBeans for Java programming and Brackets for web dev (or rather...for writing HTML and CSS. It had this "fancy" live preview thing. Don't judge me; that was state-of-the-art technology to me).
There was also Notepad++ (for me it was more like Notepad-- but okay). All jokes aside, Notepad++ was cool since it supported (and probably still supports) a myriad of programming languages. However, what I did not really like about it, was the UI. That was an eyesore (I happen to like pretty things, alright? Strong-believer that life is better in dark mode 😁).
So, my quest for the "perfect", sexiest, most amazing code editor and IDE continued. One day, I stumbled upon JetBrains and IntelliJ IDEA, and boom, bye-bye NetBeans. Hello IntelliJ IDEA! But I was still missing a code editor. So I tried Atom and Sublime Text. Nope, not for me. And then, on one good day, like a gift from above: VS Code. And so my quest came to an end. I settled down and I swore to myself I'd stick to IntelliJ IDEA exclusively for Java programming and VS Code for pretty much every other thing.
TL;DR: there's many, MANY, IDEs and code editors out there. Don't get overwhelmed. Try some, make them your own, customize them and stick to whatever suits your taste. If you are looking for quality IDEs, I'd recommend checking out JetBrains. You can sign up with your college or uni email and get access to many of their products (if not all) for as long as you are a student. NOTE: you must renew your license annually. (This post is not sponsored in case you are wondering).
Learning tech is hella time consuming ⏰
Learning anything tech-related takes a ton of time. I'm not exaggerating. The thing with tech is that for instance, you go to your classes (online, in person or otherwise) and the instructor covers a few topics. Then you pretend to pay attention and finally you get your assignment. From there onwards, it's hell. Why? Well, theory is one thing. Practice is a whole different ball game.
Understanding the theory, does not mean you will get your programming assignments done in the blink of an eye. Nope. You will have 30+ browser tabs open (good luck with those 4GBs of RAM and that hungry Chrome browser of yours). More than 20 of these tabs are Stack Overflow (SO) threads (shoutout to SO, total live saver 🙇🏻♀️🙇🏻♂️). And the remaining few are probably YouTube tutorials.
Long story short; you got the theory, but when theory meets practice, you are left with more questions than answers. But worry not, with SO by your side, a cup of coffee or your preferred drink, and some quality music, you are guaranteed to make it out alive (but kind of sleep deprived though 😪).
Closing thoughts 🤔
Oof, that was that. Still with me? Awesome, you deserve a medal! 🥇 Thanks for sticking around for so long and rest assured since this won't be the last thing you hear from me. I still got a lot to unpack with regards to this topic. This is merely part 1 of a series of 3 (most likely), so stay tuned for more!
As always, thanks for reading.! Is there anything you wish you knew before getting involved in tech? If so, let me know in the comments below. Come on, don't be shy!
Remember, keep calm and code on! 👩🏻💻👨🏻💻 See you next time!
Still here? Catch me on Twitter or find me elsewhere! If you like my blogs and are feeling generous, kindly consider to 👇🏻