<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://stacky.net/wiki/index.php?action=history&amp;feed=atom&amp;title=Interview_advice</id>
	<title>Interview advice - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stacky.net/wiki/index.php?action=history&amp;feed=atom&amp;title=Interview_advice"/>
	<link rel="alternate" type="text/html" href="https://stacky.net/wiki/index.php?title=Interview_advice&amp;action=history"/>
	<updated>2026-04-19T22:17:29Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://stacky.net/wiki/index.php?title=Interview_advice&amp;diff=1447&amp;oldid=prev</id>
		<title>Anton at 18:28, 14 June 2021</title>
		<link rel="alternate" type="text/html" href="https://stacky.net/wiki/index.php?title=Interview_advice&amp;diff=1447&amp;oldid=prev"/>
		<updated>2021-06-14T18:28:10Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:28, 14 June 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l4&quot;&gt;Line 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Talk about tradeoffs. Interviewers will probably ask about this explicitly (e.g. &amp;quot;what if writes are super expensive&amp;quot; or &amp;quot;what if your input is a petabyte&amp;quot;), but you get bonus points for explicitly pointing out the places where you&amp;#039;re making some tradeoff, and where you might do it a different way if you had more knowledge about the specific application. Talking about tradeoffs is especially important for really broad design questions (e.g. &amp;quot;how would you design Google search?&amp;quot;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Talk about tradeoffs. Interviewers will probably ask about this explicitly (e.g. &amp;quot;what if writes are super expensive&amp;quot; or &amp;quot;what if your input is a petabyte&amp;quot;), but you get bonus points for explicitly pointing out the places where you&amp;#039;re making some tradeoff, and where you might do it a different way if you had more knowledge about the specific application. Talking about tradeoffs is especially important for really broad design questions (e.g. &amp;quot;how would you design Google search?&amp;quot;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Brush up on data structures and algorithms. I tell this to people because they tend to over-emphasize becoming super fluent in some language. You will write actual code at the interview, but errors in syntax aren&amp;#039;t a big deal (unless you claimed to be a language expert on your resume). Being able to find a good algorithm is worth way more points. Thinking about this stuff also addresses (2) above, because you end up thinking things like &amp;quot;I could have constant time reads and log(n) writes, or log(n) reads and constant time writes ... which do I want?&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Brush up on data structures and algorithms. I tell this to people because they tend to over-emphasize becoming super fluent in some language. You will write actual code at the interview, but errors in syntax aren&amp;#039;t a big deal (unless you claimed to be a language expert on your resume). Being able to find a good algorithm is worth way more points. Thinking about this stuff also addresses (2) above, because you end up thinking things like &amp;quot;I could have constant time reads and log(n) writes, or log(n) reads and constant time writes ... which do I want?&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Make sure you can code up a recursion (e.g. any problem with backtracking, or depth-first search of a tree). I was surprised how often it happens that a candidate can describe a recursive algorithm extremely clearly, but then falls apart when asked to code it up. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Also make sure you use a &lt;/del&gt;hash &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;table whenever possible &lt;/del&gt;(e.g. if you just need to detect collisions, or if you don&#039;t need to keep stuff sorted)&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Make sure you can code up a recursion (e.g. any problem with backtracking, or depth-first search of a tree). I was surprised how often it happens that a candidate can describe a recursive algorithm extremely clearly, but then falls apart when asked to code it up.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# Know that hash tables are in practice constant time insertion and lookup, and they&#039;re good for detecting duplicates of anything&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# Know that &lt;/ins&gt;hash &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tables are in practice constant time insertion and lookup, and they&#039;re good for detecting duplicates of anything &lt;/ins&gt;(e.g. if you just need to detect collisions, or if you don&#039;t need to keep stuff sorted).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Anton</name></author>
	</entry>
	<entry>
		<id>https://stacky.net/wiki/index.php?title=Interview_advice&amp;diff=1446&amp;oldid=prev</id>
		<title>Anton at 18:23, 14 June 2021</title>
		<link rel="alternate" type="text/html" href="https://stacky.net/wiki/index.php?title=Interview_advice&amp;diff=1446&amp;oldid=prev"/>
		<updated>2021-06-14T18:23:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:23, 14 June 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot;&gt;Line 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Think out loud. The interviewers aren&amp;#039;t looking for the right answer (and the questions often don&amp;#039;t have one right answer; see (2) below), but for how you think and how you interact with others while solving problems. Thinking out loud also makes it easier for the interviewer to direct the discussion where they want, and to push you in the right direction if you&amp;#039;re stuck.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Think out loud. The interviewers aren&amp;#039;t looking for the right answer (and the questions often don&amp;#039;t have one right answer; see (2) below), but for how you think and how you interact with others while solving problems. Thinking out loud also makes it easier for the interviewer to direct the discussion where they want, and to push you in the right direction if you&amp;#039;re stuck.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Talk about tradeoffs. Interviewers will probably ask about this explicitly (e.g. &amp;quot;what if writes are super expensive&amp;quot; or &amp;quot;what if your input is a petabyte&amp;quot;), but you get bonus points for explicitly pointing out the places where you&amp;#039;re making some tradeoff, and where you might do it a different way if you had more knowledge about the specific application. Talking about tradeoffs is especially important for really broad design questions (e.g. &amp;quot;how would you design Google search?&amp;quot;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Talk about tradeoffs. Interviewers will probably ask about this explicitly (e.g. &amp;quot;what if writes are super expensive&amp;quot; or &amp;quot;what if your input is a petabyte&amp;quot;), but you get bonus points for explicitly pointing out the places where you&amp;#039;re making some tradeoff, and where you might do it a different way if you had more knowledge about the specific application. Talking about tradeoffs is especially important for really broad design questions (e.g. &amp;quot;how would you design Google search?&amp;quot;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Brush up on data structures and algorithms. I tell this to people because they tend to over-emphasize becoming super fluent in some language. You will write actual code at the interview, but errors in syntax aren&#039;t a big deal (unless you claimed to be a language expert on your resume). Being able to find a good algorithm is worth way more points. Thinking about this stuff also addresses (&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1&lt;/del&gt;), because you end up thinking things like &quot;I could have constant time reads and log(n) writes, or log(n) reads and constant time writes ... which do I want?&quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Brush up on data structures and algorithms. I tell this to people because they tend to over-emphasize becoming super fluent in some language. You will write actual code at the interview, but errors in syntax aren&#039;t a big deal (unless you claimed to be a language expert on your resume). Being able to find a good algorithm is worth way more points. Thinking about this stuff also addresses (&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2&lt;/ins&gt;) &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;above&lt;/ins&gt;, because you end up thinking things like &quot;I could have constant time reads and log(n) writes, or log(n) reads and constant time writes ... which do I want?&quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Make sure you can code up a recursion (e.g. any problem with backtracking, or depth-first search of a tree). I was surprised how often it happens that a candidate can describe a recursive algorithm extremely clearly, but then falls apart when asked to code it up. Also make sure you use a hash table whenever possible (e.g. if you just need to detect collisions, or if you don&amp;#039;t need to keep stuff sorted).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Make sure you can code up a recursion (e.g. any problem with backtracking, or depth-first search of a tree). I was surprised how often it happens that a candidate can describe a recursive algorithm extremely clearly, but then falls apart when asked to code it up. Also make sure you use a hash table whenever possible (e.g. if you just need to detect collisions, or if you don&amp;#039;t need to keep stuff sorted).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Know that hash tables are in practice constant time insertion and lookup, and they&amp;#039;re good for detecting duplicates of anything.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Know that hash tables are in practice constant time insertion and lookup, and they&amp;#039;re good for detecting duplicates of anything.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Anton</name></author>
	</entry>
	<entry>
		<id>https://stacky.net/wiki/index.php?title=Interview_advice&amp;diff=1445&amp;oldid=prev</id>
		<title>Anton at 18:22, 14 June 2021</title>
		<link rel="alternate" type="text/html" href="https://stacky.net/wiki/index.php?title=Interview_advice&amp;diff=1445&amp;oldid=prev"/>
		<updated>2021-06-14T18:22:31Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:22, 14 June 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(0) Think out loud. The interviewers aren&lt;/del&gt;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;t looking for the right answer (and the questions often don&lt;/del&gt;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;t have one right answer; see (1) below), but &lt;/del&gt;for &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;how you think and how you interact with others while solving problems. Thinking out loud also makes it easier for the interviewer to direct the discussion where they want, and to push you in the right direction if you&#039;re stuck&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Here&lt;/ins&gt;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;s some advice I&lt;/ins&gt;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ve given people about interviewing &lt;/ins&gt;for &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;software engineering jobs&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;(&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1&lt;/del&gt;) Talk about tradeoffs. Interviewers will probably ask about this explicitly (e.g. &quot;what if writes are super expensive&quot; or &quot;what if your input is a petabyte&quot;), but you get bonus points for explicitly pointing out the places where you&#039;re making some tradeoff, and where you might do it a different way if you had more knowledge about the specific application. Talking about tradeoffs is especially important for really broad design questions (e.g. &quot;how would you design Google search?&quot;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# Think out loud. The interviewers aren&#039;t looking for the right answer (and the questions often don&#039;t have one right answer; see &lt;/ins&gt;(&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2) below&lt;/ins&gt;)&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, but for how you think and how you interact with others while solving problems. Thinking out loud also makes it easier for the interviewer to direct the discussion where they want, and to push you in the right direction if you&#039;re stuck.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# &lt;/ins&gt;Talk about tradeoffs. Interviewers will probably ask about this explicitly (e.g. &quot;what if writes are super expensive&quot; or &quot;what if your input is a petabyte&quot;), but you get bonus points for explicitly pointing out the places where you&#039;re making some tradeoff, and where you might do it a different way if you had more knowledge about the specific application. Talking about tradeoffs is especially important for really broad design questions (e.g. &quot;how would you design Google search?&quot;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(2) &lt;/del&gt;Brush up on data structures and algorithms. I tell this to people because they tend to over-emphasize becoming super fluent in some language. You will write actual code at the interview, but errors in syntax aren&#039;t a big deal (unless you claimed to be a language expert on your resume). Being able to find a good algorithm is worth way more points. Thinking about this stuff also addresses (1), because you end up thinking things like &quot;I could have constant time reads and log(n) writes, or log(n) reads and constant time writes ... which do I want?&quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# &lt;/ins&gt;Brush up on data structures and algorithms. I tell this to people because they tend to over-emphasize becoming super fluent in some language. You will write actual code at the interview, but errors in syntax aren&#039;t a big deal (unless you claimed to be a language expert on your resume). Being able to find a good algorithm is worth way more points. Thinking about this stuff also addresses (1), because you end up thinking things like &quot;I could have constant time reads and log(n) writes, or log(n) reads and constant time writes ... which do I want?&quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# &lt;/ins&gt;Make sure you can code up a recursion (e.g. any problem with backtracking, or depth-first search of a tree). I was surprised how often it happens that a candidate can describe a recursive algorithm extremely clearly, but then falls apart when asked to code it up. Also make sure you use a hash table whenever possible (e.g. if you just need to detect collisions, or if you don&#039;t need to keep stuff sorted).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(3) &lt;/del&gt;Make sure you can code up a recursion (e.g. any problem with backtracking, or depth-first search of a tree). I was surprised how often it happens that a candidate can describe a recursive algorithm extremely clearly, but then falls apart when asked to code it up. Also make sure you use a hash table whenever possible (e.g. if you just need to detect collisions, or if you don&#039;t need to keep stuff sorted).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# &lt;/ins&gt;Know that hash tables are in practice constant time insertion and lookup, and they&#039;re good for detecting duplicates of anything.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(4) &lt;/del&gt;Know that hash tables are in practice constant time insertion and lookup, and they&#039;re good for detecting duplicates of anything.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Anton</name></author>
	</entry>
	<entry>
		<id>https://stacky.net/wiki/index.php?title=Interview_advice&amp;diff=1444&amp;oldid=prev</id>
		<title>Anton at 15:18, 10 June 2021</title>
		<link rel="alternate" type="text/html" href="https://stacky.net/wiki/index.php?title=Interview_advice&amp;diff=1444&amp;oldid=prev"/>
		<updated>2021-06-10T15:18:52Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 07:18, 10 June 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot;&gt;Line 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;(2) Brush up on data structures and algorithms. I tell this to people because they tend to over-emphasize becoming super fluent in some language. You will write actual code at the interview, but errors in syntax aren&amp;#039;t a big deal (unless you claimed to be a language expert on your resume). Being able to find a good algorithm is worth way more points. Thinking about this stuff also addresses (1), because you end up thinking things like &amp;quot;I could have constant time reads and log(n) writes, or log(n) reads and constant time writes ... which do I want?&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;(2) Brush up on data structures and algorithms. I tell this to people because they tend to over-emphasize becoming super fluent in some language. You will write actual code at the interview, but errors in syntax aren&amp;#039;t a big deal (unless you claimed to be a language expert on your resume). Being able to find a good algorithm is worth way more points. Thinking about this stuff also addresses (1), because you end up thinking things like &amp;quot;I could have constant time reads and log(n) writes, or log(n) reads and constant time writes ... which do I want?&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;(3) Make sure you can code up a recursion (e.g. any problem with backtracking, or depth-first search of a tree). I was surprised how often it happens that a candidate can describe a recursive algorithm extremely clearly, but then falls apart when asked to code it up. Also make sure you use a hash table whenever possible (e.g. if you just need to detect collisions, or if you don&#039;t need to keep stuff &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;storted&lt;/del&gt;).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;(3) Make sure you can code up a recursion (e.g. any problem with backtracking, or depth-first search of a tree). I was surprised how often it happens that a candidate can describe a recursive algorithm extremely clearly, but then falls apart when asked to code it up. Also make sure you use a hash table whenever possible (e.g. if you just need to detect collisions, or if you don&#039;t need to keep stuff &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;sorted&lt;/ins&gt;).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;(4) Know that hash tables are in practice constant time insertion and lookup, and they&amp;#039;re good for detecting duplicates of anything.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;(4) Know that hash tables are in practice constant time insertion and lookup, and they&amp;#039;re good for detecting duplicates of anything.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Anton</name></author>
	</entry>
	<entry>
		<id>https://stacky.net/wiki/index.php?title=Interview_advice&amp;diff=1443&amp;oldid=prev</id>
		<title>Anton: Created page with &quot;(0) Think out loud. The interviewers aren&#039;t looking for the right answer (and the questions often don&#039;t have one right answer; see (1) below), but for how you think and how yo...&quot;</title>
		<link rel="alternate" type="text/html" href="https://stacky.net/wiki/index.php?title=Interview_advice&amp;diff=1443&amp;oldid=prev"/>
		<updated>2021-06-10T15:17:18Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;(0) Think out loud. The interviewers aren&amp;#039;t looking for the right answer (and the questions often don&amp;#039;t have one right answer; see (1) below), but for how you think and how yo...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;(0) Think out loud. The interviewers aren&amp;#039;t looking for the right answer (and the questions often don&amp;#039;t have one right answer; see (1) below), but for how you think and how you interact with others while solving problems. Thinking out loud also makes it easier for the interviewer to direct the discussion where they want, and to push you in the right direction if you&amp;#039;re stuck.&lt;br /&gt;
&lt;br /&gt;
(1) Talk about tradeoffs. Interviewers will probably ask about this explicitly (e.g. &amp;quot;what if writes are super expensive&amp;quot; or &amp;quot;what if your input is a petabyte&amp;quot;), but you get bonus points for explicitly pointing out the places where you&amp;#039;re making some tradeoff, and where you might do it a different way if you had more knowledge about the specific application. Talking about tradeoffs is especially important for really broad design questions (e.g. &amp;quot;how would you design Google search?&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
(2) Brush up on data structures and algorithms. I tell this to people because they tend to over-emphasize becoming super fluent in some language. You will write actual code at the interview, but errors in syntax aren&amp;#039;t a big deal (unless you claimed to be a language expert on your resume). Being able to find a good algorithm is worth way more points. Thinking about this stuff also addresses (1), because you end up thinking things like &amp;quot;I could have constant time reads and log(n) writes, or log(n) reads and constant time writes ... which do I want?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
(3) Make sure you can code up a recursion (e.g. any problem with backtracking, or depth-first search of a tree). I was surprised how often it happens that a candidate can describe a recursive algorithm extremely clearly, but then falls apart when asked to code it up. Also make sure you use a hash table whenever possible (e.g. if you just need to detect collisions, or if you don&amp;#039;t need to keep stuff storted).&lt;br /&gt;
&lt;br /&gt;
(4) Know that hash tables are in practice constant time insertion and lookup, and they&amp;#039;re good for detecting duplicates of anything.&lt;/div&gt;</summary>
		<author><name>Anton</name></author>
	</entry>
</feed>