BlitzLiving

musings on startup, life, books and etc etc


Advice

I often get questions from juniors and friends asking for advice on ways to navigate their career in tech in general and software engineering in specific.

Though I’m not the best person for advice but over the years I’ve followed the best people whose advice has influenced my trajectory. I’ll try and summarize some of the key lessons that I’ve derived from years of reading blog posts, tweets and youtube videos in this blog.

Before you jump ahead and start reading, you should know I’m biased towards technology companies in general and startups in specific. So my advice is tailored for people who want to either to work as an engineer or get a job in any of the other generalist role inside a technology company.

If you’re currently in University

I assume you have picked up Computer Science because you are at least interested in the art of crafting softwares that can be used to solve problems.

You’ll probably have a few introductory subjects, the 101 to various subjects, just make sure, you’ve access to the notes and textbooks, do your assigments and you’ll be fine.

But other than your academics, you should spend most of your time improving your understanding of at least one programming language that you’ll primarily work with in the next four years. Throughout your career, you’ll probably end up learning more than a handful of programming languages but for now, stick to one - either C++ or Python.

You’ll probably not end up using C++ in an actual job unless you get a job at Google/FB/Finance but getting good at C++ will enable you to learn about the data structures and problem solving which is most often asked in programming interviews.

The Basics

  1. Learn the basics, type out the code on your IDE/Compiler use Visual Studio, at first you won’t be able to come up with your own solutions, so just type out the samples from the books/tutorials you follow along.
  2. If you picked Python, try out writing some basic scripts to automate stuff. Automate The Boring Stuff with Python is a great book and will keep you entertained for weeks.
  3. Pay attention to Data Structures lectures in class or Enroll in a Coursera course. - Make sure you learn about Linked Lists, Queues, Graphs, Trees, Hash Maps - Algorithms: Binary Search, Sorting Algorithms, Knapsack Problems. - You need to really get good at these in order to ace your interviews.
  4. If you’ve done step 1 and 2, you can go ahead and get started with solving practice problems on HackerRank/SPOJ/CodeChef.
  5. Having a good understanding of solving problems will come in handy throughout your life.

The Catch - I don’t really enjoy programming

If you find yourself not being interested in programming or getting frustrated with C++ and learning Data Structures and Algorithms, fret not! Software Engineering isn’t that dry, there are ways to get out of this rut.

You can get started with Web Devopment - creating websites (frontend) and dealing with servers and databases (the backend)

You can learn more about Frontend and Backend from here

Okay I’ve decided I want to become a software engineer

Congratulations! Please follow the path laid down below!

Learn Web Development

  1. Goto FreeCodeCamp and complete the first Responsive Web Design Fundamentals course
  2. After you are done with 1, complete the JavaScript Algorithms and Data Structures Certification on FreeCodeCamp.
  3. After you are done with the above, you would have already developed a handful of Frontend Projects and will feel pretty good about new found skill.
  4. You can continue crafting your frontend skills for a few more months, or if you’re feeling confident, you can go ahead and start with Backend Development, complete the “APIs and Microservices Certification”.
  5. If you’ve followed through the basics and have done some Python, you can actually skip step 4 and goto [https://www.fullstackpython.com/](Full Stack Python) and spend your next few months working on the tutorials.

Warning!

When you go through these tutorials, don’t just copy paste everything, type them with hands and try and come up with the solutions yourselves first.

Find a small project you want to work on and try building it yourself, if you get stack, ask questions on the FreeCodeCamp forum, on Dev.to

I REALLY don’t like programming

Hold on scout! You picked up Computer Science, but now that you’ve tried (at least I hope I did) but you found that you don’t really enjoy programming. Fret Not! The world is not over for you, you’ve a couple of different options.

TODOS - I’ll come to these later

Alternate Career Options

Design

Product Management

Writing and Marketing

Sales

Operations

How to find and apply for Internships?

How to write a good CV?

Cold Emails - a superpower?

How to plan your career?

I want to start my own company?