mirror of
https://github.com/yangshun/tech-interview-handbook.git
synced 2026-04-24 02:22:39 +08:00
website: launch website
This commit is contained in:
20
website/.gitignore
vendored
Executable file
20
website/.gitignore
vendored
Executable file
@@ -0,0 +1,20 @@
|
||||
# dependencies
|
||||
/node_modules
|
||||
|
||||
# production
|
||||
/build
|
||||
|
||||
# generated files
|
||||
.docusaurus
|
||||
.cache-loader
|
||||
|
||||
# misc
|
||||
.DS_Store
|
||||
.env.local
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
33
website/README.md
Executable file
33
website/README.md
Executable file
@@ -0,0 +1,33 @@
|
||||
# Website
|
||||
|
||||
This website is built using Docusaurus 2, a modern static website generator.
|
||||
|
||||
### Installation
|
||||
|
||||
```
|
||||
$ yarn
|
||||
```
|
||||
|
||||
### Local Development
|
||||
|
||||
```
|
||||
$ yarn start
|
||||
```
|
||||
|
||||
This command starts a local development server and open up a browser window. Most changes are reflected live without having to restart the server.
|
||||
|
||||
### Build
|
||||
|
||||
```
|
||||
$ yarn build
|
||||
```
|
||||
|
||||
This command generates static content into the `build` directory and can be served using any static contents hosting service.
|
||||
|
||||
### Deployment
|
||||
|
||||
```
|
||||
$ GIT_USER=<Your GitHub username> USE_SSH=1 yarn deploy
|
||||
```
|
||||
|
||||
If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch.
|
||||
46
website/docusaurus.config.js
Executable file
46
website/docusaurus.config.js
Executable file
@@ -0,0 +1,46 @@
|
||||
module.exports = {
|
||||
title: 'Tech Interview Handbook',
|
||||
tagline:
|
||||
'Carefully curated content to help you ace your next technical interview',
|
||||
url: 'https://yangshun.github.io',
|
||||
baseUrl: '/tech-interview-handbook/',
|
||||
favicon: 'img/favicon.ico',
|
||||
organizationName: 'yangshun',
|
||||
projectName: 'tech-interview-handbook',
|
||||
themeConfig: {
|
||||
navbar: {
|
||||
title: 'Tech Interview Handbook',
|
||||
logo: {
|
||||
alt: 'Tech Interview Handbook Logo',
|
||||
src: 'img/logo.svg',
|
||||
},
|
||||
links: [
|
||||
{to: 'introduction', label: 'Getting Started', position: 'right'},
|
||||
{
|
||||
href: 'https://github.com/yangshun/tech-interview-handbook',
|
||||
label: 'GitHub',
|
||||
position: 'right',
|
||||
},
|
||||
],
|
||||
},
|
||||
footer: {
|
||||
style: 'dark',
|
||||
copyright: `Copyright © ${new Date().getFullYear()} Yangshun Tay. Built with Docusaurus.`,
|
||||
},
|
||||
},
|
||||
presets: [
|
||||
[
|
||||
'@docusaurus/preset-classic',
|
||||
{
|
||||
docs: {
|
||||
path: '../contents',
|
||||
routeBasePath: '',
|
||||
sidebarPath: require.resolve('./sidebars.js'),
|
||||
},
|
||||
theme: {
|
||||
customCss: require.resolve('./src/css/custom.css'),
|
||||
},
|
||||
},
|
||||
],
|
||||
],
|
||||
};
|
||||
31
website/package.json
Executable file
31
website/package.json
Executable file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"name": "website",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"docusaurus": "docusaurus",
|
||||
"start": "docusaurus start",
|
||||
"build": "docusaurus build",
|
||||
"swizzle": "docusaurus swizzle",
|
||||
"deploy": "docusaurus deploy"
|
||||
},
|
||||
"dependencies": {
|
||||
"@docusaurus/core": "^2.0.0-alpha.21",
|
||||
"@docusaurus/preset-classic": "^2.0.0-alpha.21",
|
||||
"classnames": "^2.2.6",
|
||||
"react": "^16.8.4",
|
||||
"react-dom": "^16.8.4"
|
||||
},
|
||||
"browserslist": {
|
||||
"production": [
|
||||
">0.2%",
|
||||
"not dead",
|
||||
"not op_mini all"
|
||||
],
|
||||
"development": [
|
||||
"last 1 chrome version",
|
||||
"last 1 firefox version",
|
||||
"last 1 safari version"
|
||||
]
|
||||
}
|
||||
}
|
||||
61
website/sidebars.js
Executable file
61
website/sidebars.js
Executable file
@@ -0,0 +1,61 @@
|
||||
module.exports = {
|
||||
docs: {
|
||||
Preface: ['introduction'],
|
||||
'Job Application': [
|
||||
// 'how-to-apply',
|
||||
'resume',
|
||||
'cover-letter',
|
||||
],
|
||||
'Interview Process': [
|
||||
// 'interview-stages',
|
||||
'company-interview-formats',
|
||||
'self-introduction',
|
||||
{
|
||||
type: 'category',
|
||||
label: 'Coding Round',
|
||||
items: [
|
||||
'coding-round-overview',
|
||||
'picking-a-language',
|
||||
'study-and-practice',
|
||||
'coding-round-phases',
|
||||
'cheatsheet',
|
||||
'mock-interviews',
|
||||
],
|
||||
},
|
||||
{
|
||||
type: 'category',
|
||||
label: 'Behavioral Round',
|
||||
items: [
|
||||
'star-framework',
|
||||
'behavioral-questions',
|
||||
'psychological-tricks',
|
||||
],
|
||||
},
|
||||
'questions-to-ask',
|
||||
'negotiation',
|
||||
],
|
||||
Algorithms: [
|
||||
'algorithms/algorithms-introduction',
|
||||
'algorithms/array',
|
||||
'algorithms/binary',
|
||||
'algorithms/dynamic-programming',
|
||||
'algorithms/geometry',
|
||||
'algorithms/graph',
|
||||
'algorithms/hash-table',
|
||||
'algorithms/heap',
|
||||
'algorithms/interval',
|
||||
'algorithms/linked-list',
|
||||
'algorithms/math',
|
||||
'algorithms/matrix',
|
||||
'algorithms/oop',
|
||||
'algorithms/permutation',
|
||||
'algorithms/queue',
|
||||
'algorithms/recursion',
|
||||
'algorithms/sorting-searching',
|
||||
'algorithms/stack',
|
||||
'algorithms/string',
|
||||
'algorithms/tree',
|
||||
'algorithms/trie',
|
||||
],
|
||||
},
|
||||
};
|
||||
9
website/src/css/custom.css
Executable file
9
website/src/css/custom.css
Executable file
@@ -0,0 +1,9 @@
|
||||
:root {
|
||||
--ifm-color-primary: #5252ee;
|
||||
--ifm-color-primary-dark: rgb(74, 74, 214);
|
||||
--ifm-color-primary-darker: rgb(70, 70, 202);
|
||||
--ifm-color-primary-darkest: rgb(57, 57, 167);
|
||||
--ifm-color-primary-light: rgb(108, 108, 241);
|
||||
--ifm-color-primary-lighter: rgb(134, 134, 243);
|
||||
--ifm-color-primary-lightest: rgb(169, 169, 247);
|
||||
}
|
||||
127
website/src/pages/index.js
Executable file
127
website/src/pages/index.js
Executable file
@@ -0,0 +1,127 @@
|
||||
import React from 'react';
|
||||
import classnames from 'classnames';
|
||||
import Layout from '@theme/Layout';
|
||||
import Link from '@docusaurus/Link';
|
||||
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
|
||||
import withBaseUrl from '@docusaurus/withBaseUrl';
|
||||
import styles from './styles.module.css';
|
||||
|
||||
function Home() {
|
||||
const context = useDocusaurusContext();
|
||||
const {siteConfig = {}} = context;
|
||||
return (
|
||||
<Layout title={siteConfig.title} description={siteConfig.tagline}>
|
||||
<header className={classnames('hero', styles.heroBanner)}>
|
||||
<div className="container">
|
||||
<img
|
||||
className={classnames(styles.heroBannerLogo, 'margin-vert--md')}
|
||||
src={withBaseUrl('img/logo.svg')}
|
||||
/>
|
||||
<h1 className="hero__title">{siteConfig.title}</h1>
|
||||
<p className="hero__subtitle">{siteConfig.tagline}</p>
|
||||
<div className={styles.buttons}>
|
||||
<Link
|
||||
className={classnames(
|
||||
'button button--primary button--lg',
|
||||
styles.getStarted,
|
||||
)}
|
||||
to={withBaseUrl('introduction')}>
|
||||
Get Started →
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<main>
|
||||
<div className="container margin-vert--xl">
|
||||
<div className="row">
|
||||
<div className="col col--10 col--offset-1">
|
||||
<h2 className="text--center margin-bottom--xl">
|
||||
Why Tech Interview Handbook?
|
||||
</h2>
|
||||
<div className="row margin-vert--lg">
|
||||
<div className="col">
|
||||
<h3>From Zero to Hero</h3>
|
||||
<p>
|
||||
Go from zero to tech interview hero with this handbook. No
|
||||
prior interview experience needed.
|
||||
</p>
|
||||
</div>
|
||||
<div className="col">
|
||||
<h3>Curated Practice Questions</h3>
|
||||
<p>
|
||||
No one has time to practice a few hundred Leetcode
|
||||
questions. We tell you which are the best questions to
|
||||
practice.
|
||||
</p>
|
||||
</div>
|
||||
<div className="col">
|
||||
<h3>Interview Cheatsheet</h3>
|
||||
<p>
|
||||
Straight-to-the-point Do's and Don'ts during an interview
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div className="row margin-vert--lg">
|
||||
<div className="col">
|
||||
<h3>Practical Algorithm Tips</h3>
|
||||
<p>
|
||||
Practical tips for every algorithm topic - common techniques
|
||||
and corner cases to look out for.
|
||||
</p>
|
||||
</div>
|
||||
<div className="col">
|
||||
<h3>Behavioral Questions</h3>
|
||||
<p>
|
||||
Check out what behavioral questions companies commonly ask
|
||||
and you can prepare your answers ahead of time.
|
||||
</p>
|
||||
</div>
|
||||
<div className="col">
|
||||
<h3>Tested and Proven</h3>
|
||||
<p>
|
||||
Countless engineers have gotten their dream jobs with its
|
||||
help.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="container margin-vert--xl">
|
||||
<div className="row">
|
||||
<div className="col col--6 col--offset-3">
|
||||
<div className="margin-vert--lg text--center">
|
||||
<h2>Many Success Stories</h2>
|
||||
</div>
|
||||
<div class="card margin-vert--lg">
|
||||
<div class="card__header">
|
||||
<div class="avatar">
|
||||
<img
|
||||
class="avatar__photo"
|
||||
src="https://avatars1.githubusercontent.com/u/1315101?s=460&v=4"
|
||||
/>
|
||||
<div class="avatar__intro">
|
||||
<h4 class="avatar__name">Yangshun Tay</h4>
|
||||
<small class="avatar__subtitle">
|
||||
Front End Engineer, Facebook
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card__body">
|
||||
<blockquote>
|
||||
"My job hunt was successful beyond my expectations thanks to
|
||||
this wonderful resource. Huge thanks to the author for
|
||||
sharing their knowledge!"
|
||||
</blockquote>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</Layout>
|
||||
);
|
||||
}
|
||||
|
||||
export default Home;
|
||||
22
website/src/pages/styles.module.css
Executable file
22
website/src/pages/styles.module.css
Executable file
@@ -0,0 +1,22 @@
|
||||
.heroBanner {
|
||||
padding: 4rem 0;
|
||||
text-align: center;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.heroBannerLogo {
|
||||
max-width: 240px;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 966px) {
|
||||
.heroBanner {
|
||||
padding: 2rem;
|
||||
}
|
||||
}
|
||||
|
||||
.buttons {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
BIN
website/static/img/favicon.ico
Executable file
BIN
website/static/img/favicon.ico
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 766 B |
43
website/static/img/logo.svg
Normal file
43
website/static/img/logo.svg
Normal file
@@ -0,0 +1,43 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 582.39 458.49">
|
||||
<defs>
|
||||
<style>
|
||||
.cls-1{fill:#eef2f5;}.cls-2{fill:#5252ee;}.cls-3{fill:#7f7ff0;}.cls-4{fill:#fff;}.cls-5{fill:#ffcb2c;}.cls-6{opacity:0.2;}.cls-7{fill:#363636;}.cls-8{opacity:0.1;}.cls-9{fill:#ffe400;}.cls-10{fill:#ff4585;}.cls-11{fill:#00e5a0;}
|
||||
</style>
|
||||
</defs>
|
||||
<g id="Layer_2" data-name="Layer 2">
|
||||
<g id="Layer_1-2" data-name="Layer 1">
|
||||
<ellipse class="cls-1" cx="291.19" cy="428.46" rx="291.19" ry="30.03"/>
|
||||
<rect class="cls-2" x="197.89" y="168.35" width="346.05" height="180.28" rx="30" ry="30" transform="rotate(-90 370.92 258.49)"/>
|
||||
<rect class="cls-3" x="189.19" y="168.35" width="346.05" height="180.28" rx="30" ry="30" transform="rotate(-90 362.22 258.49)"/>
|
||||
<path class="cls-4" d="M257.71 419.94V97.04h152.1a28.18 28.18 0 0 1 28.18 28.18v266.54a28.18 28.18 0 0 1-28.18 28.18h-152.1z"/>
|
||||
<path class="cls-2" d="M206.96 431.51v-346h151.11a29.17 29.17 0 0 1 29.17 29.08v287.75a29.17 29.17 0 0 1-29.17 29.17H206.96z"/>
|
||||
<rect class="cls-3" x="80.86" y="136.46" width="346.05" height="244.06" rx="33.94" ry="33.94" transform="rotate(-90 253.89 258.49)"/>
|
||||
<path class="cls-5" d="M131.87 397.57V119.41a33.94 33.94 0 0 1 33.94-33.94h5.06v346h-5.07a33.94 33.94 0 0 1-33.93-33.9z"/>
|
||||
<g class="cls-6">
|
||||
<circle cx="148.62" cy="375.73" r="11.84"/>
|
||||
<circle cx="148.62" cy="329.54" r="11.84"/>
|
||||
<circle cx="148.62" cy="283.35" r="11.84"/>
|
||||
<circle cx="148.62" cy="237.16" r="11.84"/>
|
||||
<circle cx="148.62" cy="190.96" r="11.84"/>
|
||||
<circle cx="148.62" cy="144.77" r="11.84"/>
|
||||
</g>
|
||||
<rect class="cls-7" x="129.79" y="362.01" width="11.93" height="27.44" rx="4.5" ry="4.5" transform="rotate(-90 135.755 375.735)"/>
|
||||
<rect class="cls-7" x="129.79" y="315.82" width="11.93" height="27.44" rx="4.5" ry="4.5" transform="rotate(-90 135.75 329.54)"/>
|
||||
<rect class="cls-7" x="129.79" y="269.63" width="11.93" height="27.44" rx="4.5" ry="4.5" transform="rotate(-90 135.75 283.35)"/>
|
||||
<rect class="cls-7" x="129.79" y="223.44" width="11.93" height="27.44" rx="4.5" ry="4.5" transform="rotate(-90 135.75 237.16)"/>
|
||||
<rect class="cls-7" x="129.79" y="177.24" width="11.93" height="27.44" rx="4.5" ry="4.5" transform="rotate(-90 135.755 190.965)"/>
|
||||
<rect class="cls-7" x="129.79" y="131.05" width="11.93" height="27.44" rx="4.5" ry="4.5" transform="rotate(-90 135.75 144.77)"/>
|
||||
<path class="cls-8" d="M396.07 97.04h2.47v189.3h-2.47zM396.07 330.16h2.47v90.57h-2.47zM411.51 222.19h2.47v197.75h-2.47zM427.57 232.87h-2.47V101.54l2.47 1.79v129.54zM425.1 291.58h2.47v45.59h-2.47zM411.51 128.58h2.47v45.59h-2.47z"/>
|
||||
<path class="cls-4" d="M237.95 271a5 5 0 0 1-3.54-1.46L211.9 247a5 5 0 0 1 0-7.07l22.51-22.51a5 5 0 0 1 7.07 7.07l-19 19 19 19a5 5 0 0 1-3.54 8.54zM302.77 271a5 5 0 0 1-3.54-8.54l19-19-19-19a5 5 0 0 1 7.07-7.07l22.51 22.51a5 5 0 0 1 0 7.07l-22.51 22.51a5 5 0 0 1-3.53 1.52zM261.19 285.87a5 5 0 0 1-4.84-6.27l19.72-74.85a5 5 0 1 1 9.67 2.55L266 282.14a5 5 0 0 1-4.81 3.73z"/>
|
||||
<path class="cls-9" d="M92.72 186.5l5 13.1A2.32 2.32 0 0 0 99 201l13.1 5a2.32 2.32 0 0 1 0 4.34l-13.1 5a2.32 2.32 0 0 0-1.35 1.35l-5 13.1a2.32 2.32 0 0 1-4.34 0l-5-13.1a2.32 2.32 0 0 0-1.35-1.35l-13.1-5a2.32 2.32 0 0 1 0-4.34l13.1-5a2.32 2.32 0 0 0 1.35-1.35l5-13.1a2.32 2.32 0 0 1 4.41-.05zM479.08 265.89l5.38 14.22a2.52 2.52 0 0 0 1.47 1.47l14.22 5.42a2.52 2.52 0 0 1 0 4.72l-14.22 5.38a2.52 2.52 0 0 0-1.47 1.47l-5.38 14.22a2.52 2.52 0 0 1-4.72 0L469 298.52a2.52 2.52 0 0 0-1.47-1.47l-14.22-5.38a2.52 2.52 0 0 1 0-4.72l14.22-5.38a2.52 2.52 0 0 0 1.47-1.47l5.38-14.22a2.52 2.52 0 0 1 4.7.01zM258.14 18l5.67 15a2.66 2.66 0 0 0 1.55 1.55l15 5.67a2.66 2.66 0 0 1 0 5l-15 5.67a2.66 2.66 0 0 0-1.55 1.55l-5.67 15a2.66 2.66 0 0 1-5 0l-5.67-15a2.66 2.66 0 0 0-1.55-1.55l-15-5.67a2.66 2.66 0 0 1 0-5l15-5.67a2.66 2.66 0 0 0 1.55-1.55l5.67-15a2.66 2.66 0 0 1 5 0zM208.45 362.87l5.67 15a2.66 2.66 0 0 0 1.55 1.55l15 5.67a2.66 2.66 0 0 1 0 5l-15 5.67a2.66 2.66 0 0 0-1.55 1.55l-5.67 15a2.66 2.66 0 0 1-5 0l-5.67-15a2.66 2.66 0 0 0-1.55-1.55l-15-5.67a2.66 2.66 0 0 1 0-5l15-5.67a2.66 2.66 0 0 0 1.55-1.55l5.67-15a2.66 2.66 0 0 1 5 0z"/>
|
||||
<rect class="cls-10" x="480.14" y="173.05" width="90.16" height="59.5" rx="11.44" ry="11.44" transform="rotate(30.42 525.27 202.83)"/>
|
||||
<path class="cls-10" d="M505.53 242.61a4.27 4.27 0 0 1-5.83-3.43l-1.49-11.87-1.1-8.77a4.27 4.27 0 0 1 6.4-4.21l10.94 6.42 10.94 6.42a4.27 4.27 0 0 1-.56 7.64l-8.19 3.31z"/>
|
||||
<circle class="cls-4" cx="507.01" cy="194.63" r="5.78" transform="rotate(-59.76 507.024 194.63)"/>
|
||||
<circle class="cls-4" cx="524.1" cy="204.6" r="5.78" transform="rotate(-59.76 524.112 204.598)"/>
|
||||
<circle class="cls-4" cx="541.31" cy="214.63" r="5.78" transform="rotate(-59.76 541.326 214.627)"/>
|
||||
<rect class="cls-11" x="69.02" y="11.6" width="86.2" height="56.89" rx="10.94" ry="10.94" transform="rotate(-24.07 112.12 40.037)"/>
|
||||
<path class="cls-11" d="M132.16 77.47a4.08 4.08 0 0 1-5.9 2.64l-10.06-5.43-7.43-4a4.08 4.08 0 0 1 .27-7.32l11.07-4.95 11.07-4.95a4.08 4.08 0 0 1 5.63 4.68l-2 8.21z"/>
|
||||
<path class="cls-4" d="M115.94 53.34l-17.08-5.28 2.41-7.83 9.67 2.99 7.81-21.18 7.68 2.84-10.49 28.46z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.2 KiB |
8513
website/yarn.lock
Normal file
8513
website/yarn.lock
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user