This is a blog post that at some point might get turned into a series.
In this potential series, I want to take a look at different stops on my journey to software engineering and elaborate on my struggles, wins, losses, and what I learned along the way.
This part of the story begins in the Technion - Israel Institute of Technology.
How did I get there? well, that’s a different part of the story, which I might expand on in a separate post.
So my first year is done, and I am headed into the summer break!
It is supposed to be the most worry-free part of the year, but I do have one worry… I have no money.
In Israel, education isn’t as expensive as in the US but still, for someone who was recently released from the army after 3 years (totally different story…), paying University tuition isn’t easy.
During my first year, I took part in a paid scholarship, where I was teaching Math to high school girls.
It paid my dorm rent and food, and everything else was more or less a luxury.
That meant that I didn’t have money saved up to pay the tuition at the beginning of the second year. Well then, it is time to find a job.
In the summer break between my first and second year, I understood I had to get a job to survive the upcoming year’s expenses.
Usually, computer science students try to get an internship after finishing data structure & algorithms courses, but I didn’t have that luxury, I needed to find a job much faster than that.
Trying to write my first resume I looked up many tips on how to stand out considering my position, and one advice that kept popping up is to have some projects you did on your outside of Uni classes.
Uni mostly taught me to write in C, and C++ (which was cool), but for my projects I also wanted to learn a new language and say “I learned that language on my own, I can learn whatever language you are working with!”
With that realization, I taught myself Python. I spent the entire summer break, watching tutorials, and coding projects from sunrise to sunset.
I had one goal in mind, and it was to get an internship as early as possible.
By the beginning of the second year, I had my resume ready, including my new Python projects. I thought I had a good chance.
I started applying to whatever internship/junior position I saw on LinkedIn.
Got a few interviews, even with big names like Microsoft and Intel, but I didn’t pass any of those.
I was super down each time I got rejected.
The imposter syndrome starts manifesting, you start feeling like “Maybe I am not as smart and talented as I thought I was”.
At the same time, I am constantly reminding myself “If you fail this, you might need to be a waiter or whatever”.
I put a lot of stress on myself, I didn’t take these rejections well, though I didn’t show it outwards.
For a month I tried to apply to more positions, and no luck. till one morning, on the student’s Facebook group, a Ph.D. doctorate posted that she was looking for a developer for her biology research lab.
I jumped on the opportunity. It was less glamorous than a big-tech job, but at this point, I am not fighting for glamour, I am fighting for not getting into debt.
I got a job at the research lab. there was a small team of around 5 developers and around 5 more researchers.
The thing I was most proud of, was that I was able to get the job and be effective in it on the language that I self-taught myself over the summer.
All the earlier disappointments didn’t matter, I had somebody acknowledging my ability to self-study and be effective, and that’s empowering.
I ended up working there for around 1.5 years, and although it didn’t teach me how to manage in a global team environment, with a complex distributed system I did learn quite a lot at this time.
It helped me focus on the basics.
You get a task -> you think it through -> you code your solution.
I feel like converting your thoughts to code is a big gap graduates sometimes struggle with, and I believe that working on this basic skill is super important. Interviewers can smell that you can’t code, and as a junior, this is what they hire you for, so make sure you can code well!
In my early days as a software engineering student at the Technion, I felt the weight of financial pressure. This led me on a quest for a job, with dreams of joining big tech names.
Rejections came, but they taught me resilience and adaptability. My decision to self-learn Python eventually landed me a role in a biology research lab. It might not have been the glamorous tech gig I initially envisioned, but it was a powerful testament to my self-driven learning journey.
Most importantly, this experience highlighted the essence of turning academic knowledge into practical application. My journey, filled with its ups and downs, taught me the invaluable lessons of persistence, adaptability, and the magic of finding opportunities in the most unexpected places.