In 2022, I set out on a journey to improve myself both professionally and personally. I decided to take on the challenge of learning a new language, contributing to open-source projects and keep practicing data structures and algorithms, all while working a full-time job. It was a year of hard work and dedication. In this article, I'll share my experiences and the lessons I learned along the way. Join me as I take a look back at my 2022 journey and how it helped me grow as a person and professional.
TL;DR at the bottom
Learning German
As a movie enthusiast, I prefer to watch films and series in their original language. Dubbed content does not appeal to me and I am a strong supporter of subtitles. I feel that movies and series are experienced best in their original language, that's why I decided to take on the challenge of learning German. One of the main reasons was to be able to fully enjoy the German series "Dark" in its original form.
I continued learning other languages too such as Japanese (for the same reason) and Arabic. This year I tried to focus more on one language. The trick to learning a foreign language, as it is with everything, is daily practice and clear core concepts. I've been using Duolingo on and off for a while now but this was the first time that I was able to maintain consistency. Well this year I cracked it, I still kept losing my streak here & there after a few weeks, sometimes a few months but I kept going at it. Today I have a 145-day streak and going to keep it till I get full professional proficiency. The Language Transfer app has been a valuable tool for me in learning German. Although it can be tedious, the app's approach to teaching concepts is effective. I have noticed significant progress in my proficiency in a relatively short time. While I cannot speak to the effectiveness of the app for other languages, it has worked well for me in learning German.
Learning a new language can be tough but its rewards are worth it. A new language can improve problem-solving skills, help meet new people and open tons of new job opportunities. Goes without saying that it'll come in handy if you ever want to migrate or just travel to that place.
Open Source
If this is the first you're reading about open source then you're missing out on the one utopian thing that I can think of in these troublesome times. Just to catch you up, open-source software is the software for which source code is publically accessible and is developed collaboratively.
I've contributed to open-source projects before but not like this year. This year was different. I managed to contribute to projects of 10+ organizations. Most of my contributions were a part of a month-long event named Hacktoberfest which happens every year in October. But I've managed to keep contributing after it.
It can be a bit intimidating to get started in this space but the community is awesome. You only need to ask and the help will present itself. If you're having a difficult time getting started with open source, reach out to me, and I'll see what I can do. There's not just one best part of doing this. It builds up your developer profile, showcases your work and expands your network in the global community. I've met some great people, seen innovative ideas and grown much as a developer due to these contributions. Just get started with something small and you'll see what I'm talking about.
Data Structures & Algorithms
In recent days, the DSA buzz has gone down. Mostly due to massive layoffs in the industry. Developers are re-evaluating whether it is even worth investing so much time and effort in DSA preparation if job security is off the table. I think when it comes to getting a job, DSA is still relevant but won't be for long. There are better opportunities available through open-source which just keep on increasing.
With that being said, DSA is not replaceable when it comes to increasing and optimizing any program. When millions of users are going to use the product or there is a huge amount of data involved that you're working on, it's important to design & develop for scalability & sustainability. That you can't do without knowing the right data structures and algorithms required for the job. You can't invent new algorithms without knowing what solutions already exist.
There are a ton of websites where anyone can practice DSA for free. I've tried a lot of them and can say that each of them has its pros and cons. This listed-out comparison is going to be long so I'm leaving it for an article in the future. If you're job hunting or just getting the hold of basic DSA, Leetcode is going to work just fine for you. If you want to get a better hold on DSA, go with CLRS. When that's done and you're still hungry for more, go with "The Art of Computer Programming" book series by Donald Knuth. If that's done too then you're already ahead of me and you need to get a life.
The Job
I was aware that a position at an early-stage start-up would come with its fair share of stress and opportunities for growth and learning. I did not get disappointed in either of those areas. The disappointment snuck up on me in an unexpected way, but we're not going to discuss that. This is not a diss track.
The fast-paced environment of the start-up allowed me to expand my knowledge and skills in areas such as message queues, multiple AWS cloud services, system design, Big Data, and more. The experience was not only professionally rewarding, but I also had the privilege of meeting many talented individuals. I believe that I learned more in a single year at the start-up than I did in four years at the university. This period of growth even resulted in a well-deserved (I hope so) promotion for me.
Dedicating 10+ hours a day to work and still maintaining other activities was challenging. Finding the right balance was key to maintaining my sanity. I can't say that I've found the perfect balance, and neither can I say that I'm fully sane.
The Balance
There are many steps or key points to attaining this balance, let's walk through the important points:
North star metric: When evaluating your progress, it is important to select a key metric to focus on for a specific time frame. This will help you in making tough decisions by always trying to improve this metric in a confusing situation. This metric can be anything you like, health, free time, money, etc. While it can be helpful to share this metric with friends and family, it is not necessary, as having strong internal motivation and drive is crucial. Albeit you can keep as many goals as you want but setting one at the top helps you focus. I try to keep it to myself, but my last chosen metric went quite well and now I have a new one. Keep this metric private or share it with those close to you for accountability, but ultimately, you should be able to maintain your progress without external pressure.
Discipline: Motivation is overrated, what you need is discipline. Whether it be self-discipline or pairing up with someone so one can get the other in line. I learned a few tricks from anime that work very well for me. When doing something becomes tough or I feel like I don't have it in me to do today, let's try tomorrow. I remind myself, of my origin, if I hadn't done anything I'd not be where I am. Some people remind themselves of everyone dependent on them. Some people envision the rewards. Anything works if it gets you going.
Prioritization: I'm not going to elaborate much on this one because there are a lot of resources already available online for these techniques. I use the Eisenhower matrix. Here's one good resource for many well-known techniques The best prioritization techniques and their benefits.
Wasting time: This is a significant step and its timing is crucial. You need to waste time! no need to read it again, YES! you need to waste time. By wasting time I mean doing something which does not align with your immediate goals, doing something which does not stress you. I've watched hundreds of movies & series this past year. I'm not particularly good at drawing or playing chess. I do all these to prevent myself from turning into Terminator. Relentlessly pursuing goals, eliminating problems, finding Sarah Connor. Do this step only after you feel satisfied with what you've achieved on that day. Do this step too much diverges you from your goal. Any activity is fine, but I advise against swinging from a ceiling fan as it can cause severe injury.
TL;DR
A new language offers many benefits, including improved problem-solving skills, new relationships, and job opportunities. Additionally, it will come in handy for traveling or migration. The right tools make learning easy & fun. I've been using Duolingo & Language Transfer for learning new languages.
The open source community is welcoming and helpful, and participating in it can boost a developer's profile, showcase their work, and expand their network globally. Contributing to open source has been a rewarding experience, allowing me to meet new people, see innovative ideas, and grow as a developer. If you're interested in getting started with open source, start small and reach out for help if needed.
The hype surrounding Data Structure and Algorithm (DSA) preparation has decreased recently due to massive layoffs in the tech industry. However, DSA is still relevant for job hunting, and it is important for designing and developing scalable and sustainable programs. There are numerous websites for practicing DSA for free, with Leetcode being a good start for basic DSA.
The fast-paced environment of an early-stage start-up is challenging but professionally rewarding and I met many talented individuals. This early exposure was really important for both personal & professional growth. Finding the right balance between work and other activities was key to maintaining sanity.
Key points to achieve balance in life include having a North Star metric to evaluate progress, discipline, prioritization, and wasting time. The North Star metric is a key metric to focus on for a specific time frame, which can be anything from health to free time to money. Discipline is necessary to keep progress moving forward, and use personal motivation or pairing up with someone for accountability. Prioritization techniques, such as the Eisenhower matrix, can help focus on what is important. The importance of wasting time is underrated, by doing something that does not align with immediate goals, to prevent burnout.
End? or a new beginning
In conclusion, the journey of balancing one's career, contribution and self-improvement is a continuous process that requires discipline and dedication. I shared how I learned foreign languages and kept contributing to open-source while excelling at my day job. Attaining balance between all this is a journey that requires discipline, prioritization, and clear focus. A north star metric serves as a guidepost for making tough decisions and helps you stay focused on your goals. Discipline is key to making progress, as motivation alone is not enough to keep you on track. Finally, it's important to take time to relax and recharge, as "wasting time" can help prevent burnout and keep you fresh and motivated. Maintaining this balance between work, personal growth and giving back to the community are all crucial in achieving a fulfilling life.
I'm already set for the upcoming challenges of 2023, finding a better job, increasing open-source contributions, blogging,... and I hope you're too.
Feel free to connect with me on Linkedin or follow me on Twitter and share your journey with me. Let's grow together.