Ever since I left college and started working at Cloudoki, I have come to learn A LOT about the real world of development - lessons that no amount of formal education could possibly pay for! 👀 Bold statement, I know, but believe me when I tell you that most of these lessons have been invaluable for me, and that you'll probably get some value out of them too (no matter what stage you're in, career-wise)!
Coding has a very human side to it
When I was in school, I got to write a whole lot of code, and more often than not, I did so in a way that made sense to me, and everyone (my teachers and fellow schoolmates) was okay with it because hey, the code did what everyone expected it to do, deadlines didn't allow for much in the way of code refactoring, and results were all that mattered in the end!
Well, in the real world, you will most likely be working in a team, and it's very important that you get features done - and bugs solved - with code that is simple, easy to read, and consistent to what your teammates have created up until that point. Why? Because 1) it's not good for the business, your teammates, and yourself to be the only one that understands a particular piece of code; and 2) reading and trying to understand other people's code is already a challenging sport as it is. I mean, think about it - do you want to be the guy or gal whose code reduces your teammates to swearing fits? 👀 Do you want them to wonder if you were on drugs at the time of writing some tidbit of code, and whether or not those drugs are legal where they live? 👀 No, no, no - these are no bueno!
In the end, coding is not exclusively about writing instructions that a computer can successfully turn into zeros and ones so as to send a rocket ship to the moon - it's about doing that in a way that clearly communicates (to yourself, your teammates, and the business) how that rocket ship does so 🚀 .
Patience is key, and so is not taking things personally
You need to be patient - with yourself, and with your teammates.
When I first started working for Cloudoki, I really wanted to show everyone that I was a competent professional (I still do, mind you!), so whenever I did something silly, I was extremely hard on myself. With time, and with the help of a team that has been continually nurturing me, I came to learn that... well, it's okay if you don't know how to do something that's apparently simple; it's okay if you make mistakes and, from time to time, leave some trailing code behind (I totally don't do this 😶 ); it's okay when you ask questions that you later come to find were illogical or nonsensical. All in all, it's okay (and when it's not, take accountability - 💩 is bound to happen from time to time)!
Now, even if you don't do any of the above, your peers might point out things that you could improve upon, and when they do, you need to realise that they are not doing it to take a stab at you or your work - they are doing it so that you level up, or so that you avoid making the same mistakes they did in the past. Don't take it personally!
Other (small) things I came to learn
Feeling lost is natural - In your first few weeks, you'll probably spend more time trying to get your bearings than you will in the process of writing code. You'll also feel like you're not contributing to whatever project you happen to be involved with, and that you're not bringing value to the company. Well, I know that this is easier said than done, but stop thinking like this (for real!) because the more time you spend understanding a project and your company's inner workings, the more productive you'll be later down the line.
Don't be afraid (or feel bad) about taking a break - I know that this will sound contradictory, but taking a break from time to time boosts your productivity. If you run into an issue, and you feel like you're not making any progress on it for hours on end, just take a break to do something else. I, for instance, like to look into Nelma Serpa Pinto's stunning green eyes (and I'm not ashamed to say it! 😍 ), but you can do whatever you like, just as long as it takes you out of that frustrating "I'm not getting anywhere" mode. I promise that once you come back, you'll feel refreshed and ready to tackle any and all challenges!
Learn to pick your battles - If you just can't get around an issue, Google hasn't given you any insight into what might be wrong, and staring into Nelma Serpa Pinto's eyes isn't getting you anywhere as well, don't be afraid to "bother" your teammates. They are there for you, and they want you to succeed, because ultimately, your success is their success.
Wrapping things up
Over the last year, I feel like I've evolved from a conventional chicken to a free-range one, in the sense that I'm still a very scaredy animal, who has its very own fears and doubts, and that there are still rules I need to abide by for things to properly flow between myself and my fellow chickens, but ultimately, through the lessons I've learned, I feel looser, more at ease, and I hope this helps you do your thing more at ease as well - I mean, I get that these might be obvious to you, but just like in the world of development, when we think that something is obvious to everyone, it often isn't! So I hope you get something out of these! And, of course, I thank you for taking the time to read this!
All the best! 😎🤜🤛😎
Follow our open source projects on Github! https://github.com/Cloudoki