← Back to home

Non-obvious Tips for Beginner Software Engineers

My name is Misha, and I’m a Senior Software Engineer currently working at Microsoft. I started my professional career in 2008. Since then, I’ve worked with several teams in Ukraine, Australia and Germany, and have learnt several tips that I never heard anybody sharing with others.

Here are some of these tips. I think they are targeted at beginners. If you find any of them helpful, I’d love to hear about it. Send me a direct message on Twitter or write me an email.

1. Use English for everything.

This is for the non-native speakers like myself. I can’t emphasize enough that being proficient in English is the most important skill in our industry.

Learning is most effective when one uses the knowledge proactively. When it comes to the language, one has to speak it in order to become more proficient in it.

Here’s what helped me to improve my English skills:

2. Learn grammar.

Your colleagues will judge you based on many things, and the way you write is one of them.

3. Use your real name online.

When your colleagues will try to mention you in a group chat, or send you an email, they always will start with typing in your first name. They will think, “I want to send an email to Peter”, and start typing p-e-t… And all of Peters are expected to popup with autocomplete. If the receiver is not there, the sender goes off on an unpleasant journey of looking up the receiver in the address book of sorts.

Make sure you use a combination of your first and last names when registering an email address, personal domains, a Twitter handle, a username in Slack and everything else. Not only it looks “professional”, it also saves your colleagues’ time.

4. Care about your online security.

When starting to work in an organisation, one is given access to private code repositories, group discussion, server credentials etc. It is a high risk for an employee or a contractor to use weak or repetitive passwords.

5. Learn how to use a Unix shell and a Unix-like OS.

Try using Linux as your main OS for a couple of months. Some things most likely won’t work, and you’ll learn many skills while fixing them.

Try using a Unix shell, like Bash or zsh, as your main interface to the computer. Navigate the file system using cd and ls, write code and texts using vim or less, check email using mutt etc. Knowing how to use shell will become one of the best tools in your professional toolbox.

6. Always have a personal computer and phone.

It’s a good idea to make a clear cut between home and work when using your employer’s hardware. I find it useful to think that everything one does on a) any device in their working hours or b) outside of the working hours but on employer’s devices belongs to the employer. Using work devices for private purposes or side projects might lead to legal consequences.

You will likely switch jobs at some point, and you want to give away the devices without being afraid of losing personal data.

7. Learn to type quickly.

Being a quick typist gives one an advantage of being able to try different code ideas fast. I often start writing code without a clear understanding of what the final result will be, and I try to “massage” the first working draft into something that is more readable and has better naming. Being able to type the code quick allows me to produce results faster.

Typing quickly is also helpful when communicating with others. Sending “Liz, thank you so much for your help yesterday!” instead of a short “Thanks” will make one’s relationship with Liz better. You want to be able to write nice messages quickly and without an effort.

That’ll do it for now. Thanks for reading!

Last edited on Dec 29, 2018