Tag: Interview Practice

Interview Practice: Graphs, Advanced Trees & RegEx

Interview Practice: Graphs, Advanced Trees & RegEx

We’ve just added three-brand new computer science topics to Interview Practice! Get ready to dive deep on Graphs, Trees: Advanced, and RegEx. We’ve added these topics to our Extra Credit learning plan, which covers all of the topics in Interview Practice. 

Why are these topics so important to know for technical interviews? Read on for a brief introduction to each concept!

Graphs

Graphs Interview Practice TopicA graph is an abstract data structure composed of nodes and the edges between nodes. Graphs are a useful way of demonstrating the relationship between different objects. For instance, did you know that you can represent social networks as graphs? Or that the 6 Degrees of Kevin Bacon game can be modeled as a graph problem? Graph questions are really common in technical interviews. In some cases, the question will be explicitly about graphs, but in other cases the connection is more subtle. Read our tutorial to get up to speed on this topic and to learn how to identify this kind of question. Then practice your skills on graph questions from real technical interviews!

Trees: Advanced

Trees: Advanced Interview Practice TopicA tree is a data structure composed of parent and child nodes. Each node contains a value and a list of references to its child nodes. Tree traversal and tree implementation problems come up a lot in technical interviews. Common use-cases for an interview are: needing to store and do searches on data that is sorted in some way; needing to manage objects that are grouped by an attribute (think computer file systems); or implementing a search strategy like backtracking. You need to be very familiar with how to deal with these kinds of questions! (The tasks in Trees: Advanced ramp up in difficulty from the ones you get in the Trees: Basic category, so make sure you finish those questions before moving on to these ones!)

RegEx

RegEx Interview Practice TopicA regex is a string that encodes a pattern to be searched for (and perhaps replaced). They let you find patterns of text, validate data inputs, and do text replacement operations. A well-written regex can make it easier to solve really tricky interview questions like “Find all of the 10-digit phone numbers in a block of text, where the area code might or might not be surrounded by parentheses and there might or might not be either a space or a dash between the first and second number groupings”. While the specifics of how to implement a regex can vary between languages, the basics are pretty much the same. In the topic tutorial, we cover regex character classes, quantifiers, anchors, and modifiers and how to use them to write a good regex.    

Start now

These topics might not get asked in every interview, but they’re important to know! Read the tutorials about each concept, then solve the real interview tasks to practice your skills and solidify your understanding of the topic. (Learn more about how we’ve updated the Interview Practice experience to make it an even better practice and preparation tool.)

If you’re signed up for the Extra Credit learning plan, these topics have been added to your Interview Practice page already. If you’re signed up for a different learning plan, you can switch over to Extra Credit. Or you can sign up for a customizable Freestyle plan and add these topics!

Intro to Hash Tables

Intro to Hash Tables

Hash tables are a must-know data structure for technical interviews. They’re used to store unordered collections of (key, value)pairs, in which the key must be unique. Item lookup by key, inserting a new item, or deleting an item are all fast operations – approximately O(1). Because they give you quick and cheap insertion, deletion, and lookups, you’ll be able to use them to solve many different types of interview questions.

When should you use a hash table?

Some common interview questions in which you should probably use a hash table are:

  • When there’s a unique, non-arbitrary identifier that you can use as a key for lookup. (Example: A caller ID function that uses a person’s phone number to retrieve their information.)
  • You need to quickly determine whether an element belongs to a collection. In these cases, you can represent the collection as a hash table with the elements as keys. (Example: A Scrabble checker that determines if a word is valid or not.)
  • You’re solving a problem about invariants. (Example: Checking whether a word has an anagram.)

To get a good basic introduction (or reintroduction) to hash tables and how you can use them, watch our Intro to Hash Tables tutorial video!

(For even more information about hash tables, check out the Hash Tables section in any of our Interview Practice learning plans.)

Practice makes perfect!

When you feel ready to practice on some real interview questions about this data structure, head to Interview Practice on CodeFights. Sign up for one of our technical interview learning plans. (No matter which one you choose, you’ll have access to the hash tables section.) You’ll learn more about them in our hash tables topic overview, and you’ll solve real interview questions about them. All that practice will get you good at recognizing when to use them and how to implement them during technical interviews!

Ace Your Next Interview With CodeFights

Ace Your Next Interview With CodeFights

You know that you need to prepare for technical interviews – right? Of course you do! Companies rely on technical interviews to weed out people who can’t cut it. And for qualified candidates, they’re used to gauge aptitude, interest, and intelligence. So the stakes are really high, and you need to do everything you can to give yourself a competitive edge.

But it can be hard to know what exactly to study. There’s so much information out there, and sometimes it feels like you have to know everything. If you start studying without a plan, you risk wasting your time by preparing for the wrong sorts of questions, not studying enough, or any other issue that might hamper your ability to knock the interviewer’s socks off. And we want those interviewer’s socks to be knocked all the way off! In other words, we want to make sure that you ace your next technical interview.

That’s why we’ve made some changes to Interview Practice that make it an even better interview prep tool. Now you can join a study plan that gives you a timeline and a way to track your progress (or you can create your own plan). Each study plan has essential topic overviews and real interview questions from real companies. This makes it easy to know what topics to cover and how much to study.

Choose a study plan

Each study plan covers the most commonly-asked interview topics that you should prepare for, given the amount of time before your interview.

  • Crash Course: As the name implies, the Crash Course is perfect for when you have a technical interview coming up soon! This study plan will get you up to speed on computer science fundamentals. These are common topics that you must know in order to do well on interviews. Choose this plan if you have two weeks (or less) to prepare for an interview.
  • Fundamentals: If you have an interview coming up in the next 2-6 weeks, this is the perfect study plan for you. Since you’ve got a little more time to prepare, the Fundamentals plan covers some other common topics like bits, strings, sorting algorithms, and useful problem-solving techniques.
  • Extra Credit: If you plan to start interviewing at some point in the future, but don’t have any specific plans yet, check out the Extra Credit study plan. Extra Credit covers big topics like number theory, counting, and geometry. These concepts are really important but don’t get asked as often in interviews.
  • Freestyle: If none of these options is exactly what you need, don’t worry. It’s quick and easy to create a Freestyle plan! Just select the topics that you need to study and the amount of time you have before your interview, and our system will create a customized study plan for you to follow.

Once you’ve chosen a study plan, Interview Practice keeps you on track by recommending a minimum number of coding tasks to solve each day – and reminding you to start hustling if you’re not meeting your daily quota!

Study important concepts

A mainstay of the technical interview process is asking questions that help the interviewer determine how well you understand computer science fundamentals like data structures and algorithms. The interviewer is also assessing whether you can implement these concepts appropriately, and whether you take time and space complexity into account. Depending on where you are in your career, some of these topics might be ones that you haven’t touched since you were in school. Or maybe you’ve never formally studied them.

Interview Practice gives you a refresher course on these common interview topics. You need to be strong on these in order to do well in technical interviews, whether you’re a junior developer or have been in the field for years.

Study important interview concepts.

Solve actual coding problems

The questions you get asked in technical interviews are aimed at making sure that you have a fundamental understanding of how to write code. The interviewer also wants to make sure that you take edge cases and optimization into account. While you’re whiteboarding, interviewers are also gauging how you think while you’re working through a problem.

Actually writing code that solves the actual technical interview questions makes you more comfortable with the process. We can’t emphasize this enough. The absolute best way to ensure that you’re good at interviewing is to practice solving coding interview problems!

Each topic in Interview Practice has real interview questions from real companies for you to practice on, ordered by difficulty. As you solve them, you’re solidifying your knowledge of the topic and becoming familiar with this kind of problem.

Get going!

Interview Practice gives you a plan and helps you stick to it. This eliminates the guesswork about what you need to study,  how much you needs to study, and how you should organize your time. Work your way through each topic, reviewing each concept in the overview and solving the questions. As you practice, you’re becoming a better programmer. You’re also giving yourself a serious advantage in technical interviews!

Time to get started! Head to CodeFights and get started on the new and improved Interview Practice today.