How to Become a 'Competent Junior': Personal Experience

There are already quite a few articles on Habr written by and for juniors. Some are astonishing in the level of arrogance shown by young professionals who, at the very beginning of their careers, are ready to give advice to corporations. Others, on the contrary, surprise with their somewhat puppy enthusiasm: "Oh, I got hired as a real programmer, now I’m ready to work even for free. Just yesterday, my team lead looked at me — I'm sure my future is secured." Such articles are mainly found in corporate blogs. So, I decided to share my experience of starting as a junior in Moscow because, why not? My grandma always told me there’s nothing wrong with that. As you might have noticed, I love long digressions and rambling thoughts, but there are lovers of this style — so pour yourself a big cup of tea — and let’s go.

So, a few years ago: I was in my fourth year at the polytechnic in my quiet provincial town. I was doing an internship at a semi-ruined (physically) research institute. I was "programming" in XML. My work was very important for the import substitution process in the instrumentation industry. Probably not. I hope not. I hope all the XMLs I mindlessly typed in that institute while half-asleep went straight to the trash as soon as I left. But mostly, I read forums and Habr. They write about the comfortable lives of programmers in the capitals who sit in cozy, bright offices, earn 300K per month, and choose which Bentley model to buy with their February salary. "To Moscow, to Moscow" became my motto, and "Three Sisters" my favorite work (okay, I mean the song by BŠ“, I haven’t read Chekhov, of course; he seems a bit bitter).

I write to my virtual acquaintance, a programmer from Moscow:

"Hey, are junior programmers in Moscow really needed?"
"Well, the competent ones are needed; the incompetent ones are useless to anyone (there was another word here, just to clarify)."
"What does 'competent' mean and what does 'incompetent' mean? And how do I figure out which one I am?"
"Dude, the first rule of a junior is not to be boring. Competent means competent; what’s unclear about that?"

Well, what can I say—Muscovites don't mince their words. But at least I learned the first rule of a junior.

However, I was very eager to become a 'capable junior'. So I started preparing for the move a year in advance. Naturally, I prepared during my internship at the research institute at the expense of my 'job', so if the import substitution project fails, you know who to blame. One downside was my less-than-stellar education—I lost enthusiasm for learning after the first exam (that is, after the first exam of the first semester). And also... I’m not very smart. Brilliant scientists and software architects leave me in silent awe. But still, I want it!

So, during my preparation, I:

  • Brushed up on the syntax of my main programming languages. It turned out to be C/C++, but if I were to start over, I’d choose others. I couldn’t handle Stroustrup, sorry, sir, but that’s beyond my ability; however, Lippman is just perfect. Kernighan and Ritchie provide an excellent tutorial for the language—kudos to those guys. In general, for any language, there are usually a few thick books, and a junior typically needs to read just one.
  • Learned algorithms. I couldn’t get through Cormen, but Sedgwick and the courses on Coursera are just right. Simple, accessible, and clear. I also mindlessly solved problems on leetcode.com. I managed all the easy problems; you could say I completed the game on easy mode, heh.
  • Pushed myself to create a pet project on GitHub. It was difficult and boring to write a project 'just for the future', but I understood it's necessary, as it comes up in interviews. It turned out to be a torrent client. When I got a job, I had great pleasure in deleting it from GitHub. A year after writing it, I was already embarrassed to look at its code.
  • Memorized a mountain of silly logic problems. Now I definitely know how to count the number of lit light bulbs in a circular carriage, what the colors of the hats on gnomes are, and whether a fox will eat a duck. But this knowledge is so useless... But it's really funny when some team lead presents, 'I have a special secret problem that determines whether a person can think,' and presents one of those clichĆ© problems that the whole internet knows.
  • Read a ton of articles about what HR ladies want to hear in interviews. Now I definitely know what my weaknesses are, what my 5-year development plans are, and why I chose your company specifically.

So, I graduated from college and began to execute my plan to move to Moscow. I posted my resume on hh.ru, naturally indicating Moscow as my location, and applied for all jobs that even remotely resembled my profile. I didn’t specify my desired salary because I had no idea how much they pay. But fundamentally, I didn’t want to work for mere survival. My grandmother used to tell me that money is a measure of respect from your employer, and you should not work with those who do not respect you.

I arrived in Moscow and tossed my backpack onto my bunk. Over the next month, I had an immense number of interviews, often several a day. If I hadn’t kept a diary, I would have forgotten everything, but I wrote everything down, so here are a few categories of companies and interviews from the perspective of a junior:

  • Russian IT giants. Well, you all know them. They can send you an invitation to 'interview' even if you haven’t submitted your resume, like we're still watching you and already know everything. At the interview, it’s about language nuances and algorithms. I saw one team lead's face light up when I gracefully manipulated a binary tree on a piece of paper. I wanted to say, 'easy, easy, real talk leetcode'. As for the salary, it’s about 50-60, and it’s assumed that for the 'great honor' of working for a company with a loud name, you will be modest about your salary.
  • Foreign IT giants. There are several offices of large foreign firms in Moscow. It sounds very cool, but I can only describe my interview experiences there as: WTF?! In one, they interviewed me for a long time with psychological questions like, 'Why do you think people work? What is the minimum amount you would work for at your dream job?'. After the idiocy reached its peak, they suggested I solve a couple of integrals. I can only integrate e to the power of x, which I informed the interviewer about. Most likely, after parting ways, we both thought the other was a fool, but he’s the old fool and won’t get any smarter, haha. In another firm, they said I was really cool, sent a vacancy for approval in America, and then disappeared. Perhaps the carrier pigeon didn’t make it across the ocean. In another company, they offered an internship for 40. Dunnoooooo.
  • Russian government agencies. They prefer graduates from prestigious universities (which is a problem for me). They value academic knowledge (which is also a problem for me). Plus, government agencies vary widely. In one, a lady who resembled a schoolteacher confidently offered 15,000. I even double-checked — really 15. In others, 60-70 without any issues.
  • Game development. It's like the joke, "everyone says it's a film for fools, but I liked it." Despite the industry's bad reputation, it's fine by me — interesting people, 40-70 in wages, well, normal.
  • All sorts of nonsense. In a genuine basement, 5-10-15 developers are sitting around working on blockchain/messenger/toy delivery/malware/browser/their own folly. Interviews vary — from intense scrutiny to a language test with 50 questions. Salaries also vary: 30,000, 50,000, "first 20, then 70," $2100. The common thread is dark prospects and a murky arrangement. My grandmother told me that in Moscow, everyone tends to try to deceive a little sparrow like me.
  • Adequate mid-tier companies. There are mid-tier firms that don’t have a loud brand but also don’t have any particular hang-ups about their uniqueness. They compete fiercely for talent, so they don’t have 5-stage interviews or try to intentionally provoke during interviews. They understand that besides salary and cool projects, other motivators are just extras. Interviews are reasonable — about your skills, what you want, what paths for development are available. Salaries range from 70-130. I chose one of these companies and have been successfully working there to this day.

Okay, if you've read this far, congratulations — you’re awesome. You’ve earned another dose of advice for juniors:

  • Know the syntax of your language well. Sometimes they ask about rare specifics.
  • Don't panic if an interview goes poorly. I had an interview where after almost every one of my replies, the interviewers started laughing loudly and mocking my answers. When I left the room, I really wanted to cry. But then I remembered that I had another interview in two hours, and I wished those #### elusive bugs in production a hard time.
  • Don't be aggressive in interviews with HR. Tell them what they want to hear and move on to the technical specialists. During interviews, I repeatedly assured HR that I simply dream of working in telecom/gaming/finance, developing microcontrollers and advertising networks. Of course, money isn't important to me; it's all about pure knowledge. Yes, I don’t mind overtime, I’m ready to obey my boss like a mother, and dedicate my free time to additional product testing. Yeah, whatever.
  • Write a proper resume. Clearly state which technologies you are proficient in and what you want. Phrases like 'good communication skills and stress resistance' are unnecessary, especially if you are categorically uncommunicative and not stress-resistant like I am.

We need to conclude this article somehow, so good luck to the juniors, and senior developers, don't get angry and don’t offend the youth, peace to all!

Source: habr.com

Buy reliable website hosting with DDoS protection, VPS VDS servers šŸ”„ Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster