{"version":1,"pages":[{"id":"-MX2m_xl76HrNJ-qUolL","title":"Welcome","pathname":"/topics","siteSpaceId":"sitesp_1ySDC","description":"This website is a free resource with everything you need to get started or level up as a web developer."},{"id":"-MX6qVKhotgbfHbJVCgX","title":"Introduction","pathname":"/topics/foundations/introduction","siteSpaceId":"sitesp_1ySDC","description":"This section intentionally covers a very broad range of topics. It's silly to go diving straight into programming without having a context for what it is and why it's useful.","breadcrumbs":[{"label":"Foundations"}]},{"id":"-MX6kF88VJ-1Iw6PO-k6","title":"Becoming a web developer","pathname":"/topics/foundations/introduction/becoming-a-web-developer","siteSpaceId":"sitesp_1ySDC","description":"Web development could be a good profession for you if you like solving logical problems, building useful things, and experimenting with new technologies.","breadcrumbs":[{"label":"Foundations"},{"label":"Introduction"}]},{"id":"-MX6nlaoIEQpgmZY83jH","title":"Motivation and mindset","pathname":"/topics/foundations/introduction/motivation-and-mindset","siteSpaceId":"sitesp_1ySDC","description":"In this course, \"Foundations\" you'll take a journey through the entire spectrum of topics that you will eventually need to know.","breadcrumbs":[{"label":"Foundations"},{"label":"Introduction"}]},{"id":"-MX6l5vb6MsVDJCUIx2l","title":"Join a supportive community","pathname":"/topics/foundations/introduction/join-a-supportive-community","siteSpaceId":"sitesp_1ySDC","description":"Learning web development will be a long and arduous journey, but you can make the marathon a lot more fun by pairing up with others.","breadcrumbs":[{"label":"Foundations"},{"label":"Introduction"}]},{"id":"-MX6oDvSwpEw_sWwIdq_","title":"How does the web work?","pathname":"/topics/foundations/introduction/how-does-the-web-work","siteSpaceId":"sitesp_1ySDC","description":"Before you can understand how to program the web, you need a more rigorous understanding of the web itself than you likely have now.","breadcrumbs":[{"label":"Foundations"},{"label":"Introduction"}]},{"id":"-MX6ql0KTYRM595bfg3E","title":"Requirements","pathname":"/topics/foundations/requirements","siteSpaceId":"sitesp_1ySDC","description":"Having the experience of setting up a development environment to run the code you'll write is an invaluable, real-world skill you'll carry with you for the rest of your career.","breadcrumbs":[{"label":"Foundations"}]},{"id":"-MX6sT3iEv6j5_53k7Zy","title":"Prerequisites","pathname":"/topics/foundations/requirements/prerequisites","siteSpaceId":"sitesp_1ySDC","description":"This curriculum only supports using a laptop, desktop or supported Chromebook. We cannot help you set up a developer environment on a RaspberryPi or any other device.","breadcrumbs":[{"label":"Foundations"},{"label":"Requirements"}]},{"id":"-MX6u_DHRsW__4eKWtF6","title":"Text editors","pathname":"/topics/foundations/requirements/text-editors","siteSpaceId":"sitesp_1ySDC","description":"You can think of code editors as specialized web development tools. They are highly customizable and offer many features that will make your life easier.","breadcrumbs":[{"label":"Foundations"},{"label":"Requirements"}]},{"id":"-MX6vCRTovlRKtpNbUxk","title":"Command line basics","pathname":"/topics/foundations/requirements/command-line-basics","siteSpaceId":"sitesp_1ySDC","description":"The command line is like our base of operations, from which we can launch other programs and interact with them.","breadcrumbs":[{"label":"Foundations"},{"label":"Requirements"}]},{"id":"-MX7D2Sfij77vpHOyDi-","title":"Setting up Git","pathname":"/topics/foundations/requirements/setting-up-git","siteSpaceId":"sitesp_1ySDC","description":"Git is like an epic save button that can keep track of all of the things you and others are working on.","breadcrumbs":[{"label":"Foundations"},{"label":"Requirements"}]},{"id":"-MX7F134lra8lH8BqF2L","title":"Setting up Node","pathname":"/topics/foundations/requirements/setting-up-node","siteSpaceId":"sitesp_1ySDC","description":"Node allows you to run JavaScript outside of your web browser, enabling you to build all kinds of applications.","breadcrumbs":[{"label":"Foundations"},{"label":"Requirements"}]},{"id":"-MX7EXPWK0vniJH6_RNS","title":"Git","pathname":"/topics/foundations/git","siteSpaceId":"sitesp_1ySDC","description":"Git is a very popular version control system. You'll become very familiar with this piece of software throughout the curriculum.","breadcrumbs":[{"label":"Foundations"}]},{"id":"-MX7HH_4itUykw7gj8Yj","title":"Git basics","pathname":"/topics/foundations/git/git-basics","siteSpaceId":"sitesp_1ySDC","description":"This is a reference list of the most commonly used Git commands. Try to familiarize yourself with the commands so that you can eventually remember them all.","breadcrumbs":[{"label":"Foundations"},{"label":"Git"}]},{"id":"-MX7IS_2tvVaF93Bdjni","title":"Project: Practicing Git","pathname":"/topics/foundations/git/project-practicing-git","siteSpaceId":"sitesp_1ySDC","description":"Walk through the basic Git workflow that you will use in all your projects.","breadcrumbs":[{"label":"Foundations"},{"label":"Git"}]},{"id":"-MX7JPTPctLg5w2UOARz","title":"Frontend","pathname":"/topics/foundations/frontend","siteSpaceId":"sitesp_1ySDC","description":"A frontend developer works between a designer on one end and a backend developer on the other, translating the design into code and plugging the data from the back-end into the right spots.","breadcrumbs":[{"label":"Foundations"}]},{"id":"-MX7N1IF3afhOW350OGl","title":"HTML and CSS","pathname":"/topics/foundations/frontend/html-and-css","siteSpaceId":"sitesp_1ySDC","description":"HTML codifies the structure and format of a page. CSS codifies the style to determine what it will look like.","breadcrumbs":[{"label":"Foundations"},{"label":"Frontend"}]},{"id":"-MX7NKh7OymTzmEP8c-X","title":"Developer Tools","pathname":"/topics/foundations/frontend/developer-tools","siteSpaceId":"sitesp_1ySDC","description":"Developer tools provide you with an incredibly powerful assortment of useful tools that will save you a lot of frustration and time as you develop your own websites.","breadcrumbs":[{"label":"Foundations"},{"label":"Frontend"}]},{"id":"-MX7NvkEaQ-Kwt1ORSsA","title":"Project: Create a web page","pathname":"/topics/foundations/frontend/project-create-a-web-page","siteSpaceId":"sitesp_1ySDC","description":"Build a basic web page to learn how elements get placed on the page, and how they get styled and aligned.","breadcrumbs":[{"label":"Foundations"},{"label":"Frontend"}]},{"id":"-MX7QSYt-8sNRzaqQ-bN","title":"JavaScript","pathname":"/topics/foundations/javascript","siteSpaceId":"sitesp_1ySDC","description":"Learn the basics about variables and frequently used operators in JavaScript.","breadcrumbs":[{"label":"Foundations"}]},{"id":"-MX7_yA_G-DmpyggKC6C","title":"Strings and Conditionals","pathname":"/topics/foundations/javascript/strings-and-conditionals","siteSpaceId":"sitesp_1ySDC","description":"Learn the basics about strings, booleans and conditionals in JavaScript.","breadcrumbs":[{"label":"Foundations"},{"label":"JavaScript"}]},{"id":"-MX7af-MowpckNylM303","title":"Using Developer Tools","pathname":"/topics/foundations/javascript/using-developer-tools","siteSpaceId":"sitesp_1ySDC","description":"Developer tools save you lots of time by helping you debug and analyze the effects of code in relation to web pages.","breadcrumbs":[{"label":"Foundations"},{"label":"JavaScript"}]},{"id":"-MX7bU9gjzi6NvgU6FLn","title":"Functions","pathname":"/topics/foundations/javascript/functions","siteSpaceId":"sitesp_1ySDC","description":"Functions bundle code into reusable chunks that can be utilized throughout an application.","breadcrumbs":[{"label":"Foundations"},{"label":"JavaScript"}]},{"id":"-MX7cCSQl64rPdnUhRFV","title":"Problem solving","pathname":"/topics/foundations/javascript/problem-solving","siteSpaceId":"sitesp_1ySDC","description":"The best way to improve your problem solving ability is by building experience by making lots of programs. The more practice you have the better you'll be prepared to solve real world problems.","breadcrumbs":[{"label":"Foundations"},{"label":"JavaScript"}]},{"id":"-MXCGSqtfZLfcYO_U-9s","title":"Project: Rock paper scissors","pathname":"/topics/foundations/javascript/project-rock-paper-scissors","siteSpaceId":"sitesp_1ySDC","description":"Make a basic version of the classic game, \"Rock, Paper, Scissors\"  with JavaScript.","breadcrumbs":[{"label":"Foundations"},{"label":"JavaScript"}]},{"id":"-MXCJM-3ZS8xYLm6kL7s","title":"Writing clean code","pathname":"/topics/foundations/javascript/writing-clean-code","siteSpaceId":"sitesp_1ySDC","description":"There are many different opinions on what constitutes great JavaScript code, but there are several things you can do to ensure that yours is hopefully easy for others to read.","breadcrumbs":[{"label":"Foundations"},{"label":"JavaScript"}]},{"id":"-MXCKFsKaY01V--oFfzm","title":"Arrays and Loops","pathname":"/topics/foundations/javascript/arrays-and-loops","siteSpaceId":"sitesp_1ySDC","description":"Learn the basics about arrays and loops in JavaScript.","breadcrumbs":[{"label":"Foundations"},{"label":"JavaScript"}]},{"id":"-MXCLUzELrARgY3I1EPS","title":"The DOM","pathname":"/topics/foundations/javascript/the-dom","siteSpaceId":"sitesp_1ySDC","description":"The Document Object Model is a tree-like representation of the contents on a webpage or document.","breadcrumbs":[{"label":"Foundations"},{"label":"JavaScript"}]},{"id":"-MXCvZ7p0Uv8cohg-3eK","title":"Project: Etch-A-Sketch","pathname":"/topics/foundations/javascript/project-etch-a-sketch","siteSpaceId":"sitesp_1ySDC","description":"Make a basic version of the classic \"Etch-A-Sketch\" toy with JavaScript.","breadcrumbs":[{"label":"Foundations"},{"label":"JavaScript"}]},{"id":"-MXCx91yQ86RlabMxapV","title":"Objects and More Arrays","pathname":"/topics/foundations/javascript/objects-and-more-arrays","siteSpaceId":"sitesp_1ySDC","description":"Learn the basics about objects and more detailed ways to leverage arrays in JavaScript.","breadcrumbs":[{"label":"Foundations"},{"label":"JavaScript"}]},{"id":"-MXCyE_xibtP3DF4cB8D","title":"Project: Calculator","pathname":"/topics/foundations/javascript/project-calculator","siteSpaceId":"sitesp_1ySDC","description":"Make a calculator with JavaScript.","breadcrumbs":[{"label":"Foundations"},{"label":"JavaScript"}]},{"id":"-MXCybSgknjcUTFscDeH","title":"Backend","pathname":"/topics/foundations/backend","siteSpaceId":"sitesp_1ySDC","description":"The backend is the server side of a web application.","breadcrumbs":[{"label":"Foundations"}]},{"id":"-MXCzdcGarQvGIYWLaA-","title":"Frameworks","pathname":"/topics/foundations/backend/frameworks","siteSpaceId":"sitesp_1ySDC","description":"Frameworks help prevent repetition and provide great organization. They tend to force you to organize your files and code in a way that keeps it highly modular and really clean.","breadcrumbs":[{"label":"Foundations"},{"label":"Backend"}]},{"id":"-MXD-6xEDoJSoGaNnhC3","title":"Next steps","pathname":"/topics/foundations/next-steps","siteSpaceId":"sitesp_1ySDC","description":"With what you now know you could start putting together some basic websites, but we're here to help you get a lot further than that!","breadcrumbs":[{"label":"Foundations"}]},{"id":"-MXD0HC7ZDd6Q14C-AH2","title":"Computer Science","pathname":"/topics/deep-dives/computer-science","siteSpaceId":"sitesp_1ySDC","description":"Learn everything you need to know in order to have a good grasp on the fundamentals of Computer Science.","breadcrumbs":[{"label":"Deep dives"}]},{"id":"-MXH6_oOIjUc8rVZJSgl","title":"Pseudocode and algorithms","pathname":"/topics/deep-dives/computer-science/pseudocode-and-algorithms","siteSpaceId":"sitesp_1ySDC","description":"Although you may read that you may not be involved in writing algorithms very often in web development; it's a good idea to at least develop an awareness of what algorithms and pseudocode are.","breadcrumbs":[{"label":"Deep dives"},{"label":"Computer Science"}]},{"id":"-MXH7AoAPNt8AaMKTS8H","title":"Recursion and algorithms","pathname":"/topics/deep-dives/computer-science/recursion-and-algorithms","siteSpaceId":"sitesp_1ySDC","description":"This lesson will cover what recursion is, when you may want to use it and when you really shouldn't, so that it is yet another tool in your problem-busting arsenal.","breadcrumbs":[{"label":"Deep dives"},{"label":"Computer Science"}]},{"id":"-MXH8TdiPQR_3cNTWhNK","title":"Project: Fibs and sorting","pathname":"/topics/deep-dives/computer-science/recursion-and-algorithms/project-fibs-and-sorting","siteSpaceId":"sitesp_1ySDC","description":"This project will help you understand that everything that can be done with recursion can be done with iteration; although the iteration solution may be more difficult to figure out.","breadcrumbs":[{"label":"Deep dives"},{"label":"Computer Science"},{"label":"Recursion and algorithms"}]},{"id":"-MXHAOS0_sHQ4dPul515","title":"More on algorithms","pathname":"/topics/deep-dives/computer-science/recursion-and-algorithms/more-on-algorithms","siteSpaceId":"sitesp_1ySDC","description":"In this lesson, we will be looking at an overview of different common categories of problems faced in computer science, and a few of their solutions algorithms.","breadcrumbs":[{"label":"Deep dives"},{"label":"Computer Science"},{"label":"Recursion and algorithms"}]},{"id":"-MXHBhbwR2VaCGmBGRrh","title":"Big O","pathname":"/topics/deep-dives/computer-science/recursion-and-algorithms/big-o","siteSpaceId":"sitesp_1ySDC","description":"Big O a kind of asymptotic notation that describes how an algorithm grows in time or space in relation to the size of it's input.","breadcrumbs":[{"label":"Deep dives"},{"label":"Computer Science"},{"label":"Recursion and algorithms"}]},{"id":"-MXHCRLS4FbWJwlSfbzF","title":"Project: Practicing Big O","pathname":"/topics/deep-dives/computer-science/recursion-and-algorithms/project-practicing-big-o","siteSpaceId":"sitesp_1ySDC","description":"In this project, you'll be using your language of choice for writing an insertion sort and a merge sort and testing them against large unsorted and sorted arrays.","breadcrumbs":[{"label":"Deep dives"},{"label":"Computer Science"},{"label":"Recursion and algorithms"}]},{"id":"-MXHDJkWNXXdYch1TL0q","title":"Data structures","pathname":"/topics/deep-dives/computer-science/data-structures","siteSpaceId":"sitesp_1ySDC","description":"A data structure is simply an object or collection of objects that is designed to enable you to store, access and manipulate data.","breadcrumbs":[{"label":"Deep dives"},{"label":"Computer Science"}]},{"id":"-MXHDOoo5qKRKa7Or0fG","title":"Maps, Stacks and Queues","pathname":"/topics/deep-dives/computer-science/data-structures/maps-stacks-and-queues","siteSpaceId":"sitesp_1ySDC","description":"In this lesson, we look at some of the more simple data structures that don't come in layers. We will be looking at Maps, Stacks and Queues.","breadcrumbs":[{"label":"Deep dives"},{"label":"Computer Science"},{"label":"Data structures"}]},{"id":"-MXIWe7BF7PGObvlWk1z","title":"Project: Stacks and Queues","pathname":"/topics/deep-dives/computer-science/data-structures/project-stacks-and-queues","siteSpaceId":"sitesp_1ySDC","description":"This is mostly an academic exercise, so you will be asked to refrain from using queue-like or stack-like methods in your solution, however tempting this otherwise sensible choice would be.","breadcrumbs":[{"label":"Deep dives"},{"label":"Computer Science"},{"label":"Data structures"}]},{"id":"-MXIX1T7Y40qWrQkbg6A","title":"Nodes, Linked Lists and Trees","pathname":"/topics/deep-dives/computer-science/data-structures/nodes-linked-lists-and-trees","siteSpaceId":"sitesp_1ySDC","description":"In this lesson, we will be doing more of this; but our approach won't think of data as an Array that needs to be accessed, but as Nodes that can be rearranged.","breadcrumbs":[{"label":"Deep dives"},{"label":"Computer Science"},{"label":"Data structures"}]},{"id":"-MXIYe9ibZ2zYDMT3RHR","title":"Project: Linked Lists","pathname":"/topics/deep-dives/computer-science/data-structures/project-linked-lists","siteSpaceId":"sitesp_1ySDC","description":"Learning how nodes work by writing them, and building a linked list, will give you a solid understanding for learning about a more complex subject in the next section, trees.","breadcrumbs":[{"label":"Deep dives"},{"label":"Computer Science"},{"label":"Data structures"}]},{"id":"-MXLFgiPI4tjJ8Ogf0oc","title":"Project: Trees","pathname":"/topics/deep-dives/computer-science/data-structures/project-trees","siteSpaceId":"sitesp_1ySDC","description":"In this project, we shall first do a relatively straightforward task in implementing a Binary Search Tree. Afterwards, we will be tackling a Chess related challenge.","breadcrumbs":[{"label":"Deep dives"},{"label":"Computer Science"},{"label":"Data structures"}]},{"id":"-MXLGbVKjcjXbNcuyJNI","title":"Next steps","pathname":"/topics/deep-dives/computer-science/data-structures/next-steps","siteSpaceId":"sitesp_1ySDC","description":"You've learned core concepts that are not exclusive to any language. The steps and pseudo-code you use for an algorithm will never change. This will help you be a more flexible developer.","breadcrumbs":[{"label":"Deep dives"},{"label":"Computer Science"},{"label":"Data structures"}]},{"id":"-MXDTNwehC-mEJ0XUUBD","title":"Databases","pathname":"/topics/deep-dives/databases","siteSpaceId":"sitesp_1ySDC","description":"SQL (Structured Query Language), which is used to query databases, is a very simple syntax... there are only a small handful of verbs to learn.","breadcrumbs":[{"label":"Deep dives"}]},{"id":"-MXDTd1xMYon4vOWx_8D","title":"Databases and SQL","pathname":"/topics/deep-dives/databases/databases-and-sql","siteSpaceId":"sitesp_1ySDC","description":"This is a very brief explanation of SQL. It won't be teaching you specific new tactics but instead will present a good general overview to help you get you started.","breadcrumbs":[{"label":"Deep dives"},{"label":"Databases"}]},{"id":"-MXDWoDKQb12vx7NuLvd","title":"Project: SQL Zoo","pathname":"/topics/deep-dives/databases/project-sql-zoo","siteSpaceId":"sitesp_1ySDC","description":"SQL Zoo will show you a table and have you run queries against it to answer specific questions. The queries start off simple and then gradually get harder as you go.","breadcrumbs":[{"label":"Deep dives"},{"label":"Databases"}]},{"id":"-MXGp5WnA9rRbOSxhju9","title":"Design / UX","pathname":"/topics/deep-dives/design-ux","siteSpaceId":"sitesp_1ySDC","description":"Learn everything you need to know in order to start designing web interfaces and shaping user experiences.","breadcrumbs":[{"label":"Deep dives"}]},{"id":"-MXGqI87KySwFMEwBF1f","title":"Fonts and typography","pathname":"/topics/deep-dives/design-ux/fonts-and-typography","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"Design / UX"}]},{"id":"-MXGqetoDELFXkGqGfQg","title":"Grids","pathname":"/topics/deep-dives/design-ux/grids","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"Design / UX"}]},{"id":"-MXGr1xvxLAxWJDzm9d9","title":"Project: Teardown","pathname":"/topics/deep-dives/design-ux/project-teardown","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"Design / UX"}]},{"id":"-MXGrTHa-g1yvhG8WP1O","title":"Responsive design","pathname":"/topics/deep-dives/design-ux/responsive-design-1","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"Design / UX"}]},{"id":"-MXGrnwn64ijYgAtUxi1","title":"Project: Mobile friendly","pathname":"/topics/deep-dives/design-ux/project-mobile-friendly","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"Design / UX"}]},{"id":"-MXGsJsDc6-UmcUI7pOT","title":"CSS frameworks","pathname":"/topics/deep-dives/design-ux/css-frameworks","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"Design / UX"}]},{"id":"-MXGsqbKMxqEuPuQd86S","title":"Project: Bootstrapping","pathname":"/topics/deep-dives/design-ux/project-bootstrapping","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"Design / UX"}]},{"id":"-MXGI-H5opwWC-z73sL0","title":"HTML / CSS","pathname":"/topics/deep-dives/html-css","siteSpaceId":"sitesp_1ySDC","description":"Learn everything you need to know in order to start building and styling content for the web.","breadcrumbs":[{"label":"Deep dives"}]},{"id":"-MXGIf5-onwwT7CVRYcM","title":"HTML Basics","pathname":"/topics/deep-dives/html-css/html-basics","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"HTML / CSS"}]},{"id":"-MXGIvo2iTl8fLGxwZJ6","title":"Linking","pathname":"/topics/deep-dives/html-css/html-basics/linking","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"HTML / CSS"},{"label":"HTML Basics"}]},{"id":"-MXGLQFAk0n3ErD7TK7p","title":"Images and media","pathname":"/topics/deep-dives/html-css/html-basics/images-and-media","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"HTML / CSS"},{"label":"HTML Basics"}]},{"id":"-MXGMEGjcTgEHfZB-d3O","title":"Project: Embedding media","pathname":"/topics/deep-dives/html-css/html-basics/project-embedding-media","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"HTML / CSS"},{"label":"HTML Basics"}]},{"id":"-MXGNezOKN92zknQaRKb","title":"HTML5","pathname":"/topics/deep-dives/html-css/html-basics/html5","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"HTML / CSS"},{"label":"HTML Basics"}]},{"id":"-MXGcUIAmN7OcUvRQba7","title":"Tables","pathname":"/topics/deep-dives/html-css/html-basics/tables","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"HTML / CSS"},{"label":"HTML Basics"}]},{"id":"-MXGceWGakl__pvU6qYm","title":"Lists","pathname":"/topics/deep-dives/html-css/html-basics/lists","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"HTML / CSS"},{"label":"HTML Basics"}]},{"id":"-MXGiw7mvYdg86w8QkCC","title":"Forms","pathname":"/topics/deep-dives/html-css/html-basics/forms","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"HTML / CSS"},{"label":"HTML Basics"}]},{"id":"-MXGjMsA5OPGNYssNCkq","title":"Project: Make a form","pathname":"/topics/deep-dives/html-css/html-basics/project-make-a-form","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"HTML / CSS"},{"label":"HTML Basics"}]},{"id":"-MXGjhum6zSFfKwqmxeF","title":"CSS Basics","pathname":"/topics/deep-dives/html-css/css-basics","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"HTML / CSS"}]},{"id":"-MXGlE-Ynk_QlcepHjtj","title":"Box model","pathname":"/topics/deep-dives/html-css/css-basics/box-model","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"HTML / CSS"},{"label":"CSS Basics"}]},{"id":"-MXGlTPyWH6g6m9kcKg9","title":"Floats and positioning","pathname":"/topics/deep-dives/html-css/css-basics/floats-and-positioning","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"HTML / CSS"},{"label":"CSS Basics"}]},{"id":"-MXGlgqRtOVdC_WS6nQZ","title":"Flexbox","pathname":"/topics/deep-dives/html-css/css-basics/flexbox","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"HTML / CSS"},{"label":"CSS Basics"}]},{"id":"-MXGlycWQCeKc6iKLzay","title":"Grids","pathname":"/topics/deep-dives/html-css/css-basics/grids","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"HTML / CSS"},{"label":"CSS Basics"}]},{"id":"-MXGmg3RhaR-2i1LJQHN","title":"Project: Breaking news","pathname":"/topics/deep-dives/html-css/css-basics/project-breaking-news","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"HTML / CSS"},{"label":"CSS Basics"}]},{"id":"-MXGnK5vzaICGULRYY6t","title":"Best practices","pathname":"/topics/deep-dives/html-css/css-basics/best-practices","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"HTML / CSS"},{"label":"CSS Basics"}]},{"id":"-MXGnc3hMCtOImEp__ef","title":"Backgrounds and gradients","pathname":"/topics/deep-dives/html-css/css-basics/backgrounds-and-gradients","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"HTML / CSS"},{"label":"CSS Basics"}]},{"id":"-MXGnzMX2--5agBEQIO2","title":"Project: One more thing","pathname":"/topics/deep-dives/html-css/css-basics/project-one-more-thing","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"HTML / CSS"},{"label":"CSS Basics"}]},{"id":"-MXGt6XreHG0xXSIUrcN","title":"CSS3","pathname":"/topics/deep-dives/html-css/css-basics/css3","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"HTML / CSS"},{"label":"CSS Basics"}]},{"id":"-MXGteGX8SPbvKPxgpE6","title":"Preprocessors","pathname":"/topics/deep-dives/html-css/css-basics/preprocessors","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"HTML / CSS"},{"label":"CSS Basics"}]},{"id":"-MXGtslliEqortgnLfrb","title":"Project: Your own framework","pathname":"/topics/deep-dives/html-css/css-basics/project-your-own-framework","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"HTML / CSS"},{"label":"CSS Basics"}]},{"id":"-MXGuLbJj-6noGP4Sl5o","title":"Next steps","pathname":"/topics/deep-dives/html-css/next-steps","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"HTML / CSS"}]},{"id":"-MXLJL9uOCDgjP7LIUAM","title":"JavaScript","pathname":"/topics/deep-dives/javascript","siteSpaceId":"sitesp_1ySDC","description":"Learn everything you need to know in order to start building web applications with JavaScript.","breadcrumbs":[{"label":"Deep dives"}]},{"id":"-MXLMUdy8CX2W15kJ7hL","title":"Refresher","pathname":"/topics/deep-dives/javascript/refresher","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"JavaScript"}]},{"id":"-MXLMu1HA1SWyocAe4sV","title":"Organization","pathname":"/topics/deep-dives/javascript/code","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"JavaScript"}]},{"id":"-MXLNLDiJMtnB84eAFcP","title":"Objects and constructors","pathname":"/topics/deep-dives/javascript/objects-and-constructors","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"JavaScript"}]},{"id":"-MXLO2q5hvxmbdsxM5Te","title":"Project: Library","pathname":"/topics/deep-dives/javascript/project-library","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"JavaScript"}]},{"id":"-MXLOOWCKL-P0AK2-4fX","title":"Factory functions and module patterns","pathname":"/topics/deep-dives/javascript/factory-functions-modules","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"JavaScript"}]},{"id":"-MXLPAve9vm6Y2Ukwwy3","title":"Project: Tic Tac Toe","pathname":"/topics/deep-dives/javascript/project-tic-tac-toe","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"JavaScript"}]},{"id":"-MXLPji-sFpoLNv7V-hs","title":"Classes","pathname":"/topics/deep-dives/javascript/classes","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"JavaScript"}]},{"id":"-MXLS8nG9EIeClTCgT-8","title":"ES6 Modules","pathname":"/topics/deep-dives/javascript/es6-modules","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"JavaScript"}]},{"id":"-MXLT02kkScyr6YcpMoZ","title":"Project: Restaurant","pathname":"/topics/deep-dives/javascript/project-restaurant","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"JavaScript"}]},{"id":"-MXLTg5sU7GM8XAprTX6","title":"Object Oriented Programming","pathname":"/topics/deep-dives/javascript/object-oriented-programming","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"JavaScript"}]},{"id":"-MXLUEgjL1o4nXGb6Ja8","title":"Project: Todo list","pathname":"/topics/deep-dives/javascript/project-todo-list","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"JavaScript"}]},{"id":"-MXLViYSafX7NwHhlA6m","title":"Linting","pathname":"/topics/deep-dives/javascript/linting","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"JavaScript"}]},{"id":"-MXLW1Nxt6ZQYMkBaTU4","title":"Menus and sliders","pathname":"/topics/deep-dives/javascript/menus-and-sliders","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"JavaScript"}]},{"id":"-MXLWODcXRnuVMP2hdZH","title":"Forms","pathname":"/topics/deep-dives/javascript/forms","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"JavaScript"}]},{"id":"-MXLWmT2UNN_hcaLtzGj","title":"ES6 features","pathname":"/topics/deep-dives/javascript/es6-features","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"JavaScript"}]},{"id":"-MXLfH5yoIjt4nNzdLr-","title":"JSON","pathname":"/topics/deep-dives/javascript/json","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"JavaScript"}]},{"id":"-MXLg44qA5X5vAzd5iz0","title":"Callbacks and promises","pathname":"/topics/deep-dives/javascript/callbacks-and-promises","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"JavaScript"}]},{"id":"-MXLgRDsNIK07lrJnbWZ","title":"Using APIs","pathname":"/topics/deep-dives/javascript/using-apis","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"JavaScript"}]},{"id":"-MXLgpKLQ8hC7SfpkHU7","title":"Async and Await","pathname":"/topics/deep-dives/javascript/async-and-await","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"JavaScript"}]},{"id":"-MXLhg1RRYhpYzvBUzou","title":"Project: Weather","pathname":"/topics/deep-dives/javascript/project-weather","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"JavaScript"}]},{"id":"-MXLhv9sQI_G1Ookx05O","title":"Testing","pathname":"/topics/deep-dives/javascript/testing","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"JavaScript"}]},{"id":"-MXLi9MzalAtS-2eK-b0","title":"Project: Testing 1-2-3","pathname":"/topics/deep-dives/javascript/project-testing-1-2-3","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"JavaScript"}]},{"id":"-MXLiUmokLv4ANSeg1tc","title":"Advanced Testing","pathname":"/topics/deep-dives/javascript/advanced-testing","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"JavaScript"}]},{"id":"-MXLj8-xdVUHtgbv39-d","title":"Project: Battleship","pathname":"/topics/deep-dives/javascript/project-battleship","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"JavaScript"}]},{"id":"-MXLjzBya05Y-QcetHWh","title":"Backends","pathname":"/topics/deep-dives/javascript/backends","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"JavaScript"}]},{"id":"-MXLkLOZDpLWxH5jzJDJ","title":"Project: Where's Waldo?","pathname":"/topics/deep-dives/javascript/project-wheres-waldo","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"JavaScript"}]},{"id":"-MXLlKo6OSVby_KAKx0c","title":"Project: All-Star","pathname":"/topics/deep-dives/javascript/project-all-star","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"JavaScript"}]},{"id":"-MXLm8A2pNCmKUhtcxjP","title":"Next steps","pathname":"/topics/deep-dives/javascript/next-steps","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"JavaScript"}]},{"id":"-MXLn7jru_tgb3HeMnrJ","title":"NodeJS","pathname":"/topics/deep-dives/nodejs","siteSpaceId":"sitesp_1ySDC","description":"Learn everything you need to know in order to start building applications with NodeJS.","breadcrumbs":[{"label":"Deep dives"}]},{"id":"-MXLo-78mawb3zIISidg","title":"Project: Going to school","pathname":"/topics/deep-dives/nodejs/project-going-to-school","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"NodeJS"}]},{"id":"-MXLouAmmAQ0h4mUEoCk","title":"Project: Passing the test","pathname":"/topics/deep-dives/nodejs/project-passing-the-test","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"NodeJS"}]},{"id":"-MXLpFiNDjWy5IeDxvAN","title":"Express","pathname":"/topics/deep-dives/nodejs/express","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"NodeJS"}]},{"id":"-MXLpZoQIxp6hc81QHs0","title":"Templates and middleware","pathname":"/topics/deep-dives/nodejs/express/templates-and-middleware","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"NodeJS"},{"label":"Express"}]},{"id":"-MXLqE_YI3EuceDZr1-t","title":"CRUD and MVC","pathname":"/topics/deep-dives/nodejs/express/crud-and-mvc","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"NodeJS"},{"label":"Express"}]},{"id":"-MXLr3YPyqrAnO7Ixreq","title":"Project: Message board","pathname":"/topics/deep-dives/nodejs/express/project-message-board","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"NodeJS"},{"label":"Express"}]},{"id":"-MXLrMSRfubC3MAaivbn","title":"Routes","pathname":"/topics/deep-dives/nodejs/express/routes","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"NodeJS"},{"label":"Express"}]},{"id":"-MXLs0tRt1uja4ih6ZCn","title":"Displaying data","pathname":"/topics/deep-dives/nodejs/express/displaying-data","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"NodeJS"},{"label":"Express"}]},{"id":"-MXLsIkWSR_S1kjuddjx","title":"Forms and deployment","pathname":"/topics/deep-dives/nodejs/express/forms-and-deployment","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"NodeJS"},{"label":"Express"}]},{"id":"-MXLsadzbKJqGz9FtPwE","title":"Project: Inventory","pathname":"/topics/deep-dives/nodejs/express/project-inventory","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"NodeJS"},{"label":"Express"}]},{"id":"-MXLuScH5Zi12f5lnfWb","title":"Authentication","pathname":"/topics/deep-dives/nodejs/authentication","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"NodeJS"}]},{"id":"-MXLx7QscsFpaWtWwASv","title":"Security","pathname":"/topics/deep-dives/nodejs/security","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"NodeJS"}]},{"id":"-MXLxXVjhyMN-dckgf6F","title":"Project: Clubhouse","pathname":"/topics/deep-dives/nodejs/project-clubhouse","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"NodeJS"}]},{"id":"-MXLxqr9GIiI6Od0aAuR","title":"APIs","pathname":"/topics/deep-dives/nodejs/apis","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"NodeJS"}]},{"id":"-MXLyKJJkhujdtaiRwnU","title":"Securing an API","pathname":"/topics/deep-dives/nodejs/securing-an-api","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"NodeJS"}]},{"id":"-MXLyy-YZ8EI7Fg8MX12","title":"Project: Blog","pathname":"/topics/deep-dives/nodejs/project-blog","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"NodeJS"}]},{"id":"-MXLzVoUntEmoQH_g2xk","title":"Testing","pathname":"/topics/deep-dives/nodejs/testing","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"NodeJS"}]},{"id":"-MXM-0V4tJ31wRhXiaI0","title":"Testing with a database","pathname":"/topics/deep-dives/nodejs/testing-with-a-database","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"NodeJS"}]},{"id":"-MXM-Y4SkBdNuwUZBmb5","title":"Project: Social network","pathname":"/topics/deep-dives/nodejs/project-social-network","siteSpaceId":"sitesp_1ySDC","description":"Build a social network with NodeJS.","breadcrumbs":[{"label":"Deep dives"},{"label":"NodeJS"}]},{"id":"-MXLY8QhAiGwj5svAK4p","title":"React","pathname":"/topics/deep-dives/react","siteSpaceId":"sitesp_1ySDC","description":"Learn everything you need to know in order to start building web applications with React.","breadcrumbs":[{"label":"Deep dives"}]},{"id":"-MXLYb4EEKsuyC8fu6lR","title":"Props and State","pathname":"/topics/deep-dives/react/props-and-state","siteSpaceId":"sitesp_1ySDC","description":"Learn more about props and state in React.","breadcrumbs":[{"label":"Deep dives"},{"label":"React"}]},{"id":"-MXLZI7pXGiCq-a2mHYF","title":"Render lists and handle inputs","pathname":"/topics/deep-dives/react/render-lists-and-handle-inputs","siteSpaceId":"sitesp_1ySDC","description":"Learn more about how to render lists and handle inputs in React.","breadcrumbs":[{"label":"Deep dives"},{"label":"React"}]},{"id":"-MXL_7XpvKZWKbZG7aGY","title":"Project: CV","pathname":"/topics/deep-dives/react/project-cv","siteSpaceId":"sitesp_1ySDC","description":"Learn how to build a CV with React.","breadcrumbs":[{"label":"Deep dives"},{"label":"React"}]},{"id":"-MXL_kWJD6PVo56QkZ4R","title":"Lifecycle methods","pathname":"/topics/deep-dives/react/lifecycle-methods","siteSpaceId":"sitesp_1ySDC","description":"Learn about lifecycle methods in React.","breadcrumbs":[{"label":"Deep dives"},{"label":"React"}]},{"id":"-MXLaOnithzfWtfYLsMq","title":"Hooks","pathname":"/topics/deep-dives/react/hooks","siteSpaceId":"sitesp_1ySDC","description":"Learn about hooks in React.","breadcrumbs":[{"label":"Deep dives"},{"label":"React"}]},{"id":"-MXLbH8IujR3D3q0w0V3","title":"Project: Memory card","pathname":"/topics/deep-dives/react/project-memory-card","siteSpaceId":"sitesp_1ySDC","description":"Learn how to build a memory card game.","breadcrumbs":[{"label":"Deep dives"},{"label":"React"}]},{"id":"-MXLbqvbB7S57SxXjped","title":"Router","pathname":"/topics/deep-dives/react/router","siteSpaceId":"sitesp_1ySDC","description":"Learn about routing in React.","breadcrumbs":[{"label":"Deep dives"},{"label":"React"}]},{"id":"-MXLcMo_LAc9Axu4nNqA","title":"Project: Shopping cart","pathname":"/topics/deep-dives/react/project-shopping-cart","siteSpaceId":"sitesp_1ySDC","description":"Learn how to build a shopping cart.","breadcrumbs":[{"label":"Deep dives"},{"label":"React"}]},{"id":"-MXLchHN7-G2zdokhLq2","title":"Advanced concepts","pathname":"/topics/deep-dives/react/advanced-concepts","siteSpaceId":"sitesp_1ySDC","description":"Learn more about advanced concepts in React.","breadcrumbs":[{"label":"Deep dives"},{"label":"React"}]},{"id":"-MXNEviFmQdDD9Y_ILff","title":"Ruby","pathname":"/topics/deep-dives/ruby","siteSpaceId":"sitesp_1ySDC","description":"Learn everything you need to know in order to start building applications with Ruby.","breadcrumbs":[{"label":"Deep dives"}]},{"id":"-MXNj-XTjem2PqnFU3vG","title":"Installation","pathname":"/topics/deep-dives/ruby/installation","siteSpaceId":"sitesp_1ySDC","description":"Learn how to install ruby.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXNkNfFOiOm7tkb_SdT","title":"Data types","pathname":"/topics/deep-dives/ruby/data-types","siteSpaceId":"sitesp_1ySDC","description":"Learn more about data types in Ruby.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXQliq6MwjJHGfAXcx7","title":"Variables","pathname":"/topics/deep-dives/ruby/variables","siteSpaceId":"sitesp_1ySDC","description":"Learn more about variables in Ruby.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXR48Q92m86ExxPRbkA","title":"Input and Output","pathname":"/topics/deep-dives/ruby/input-and-output","siteSpaceId":"sitesp_1ySDC","description":"All applications are fundamentally based on input and output.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXR4c49OIskjwv34exi","title":"Conditionals","pathname":"/topics/deep-dives/ruby/conditionals","siteSpaceId":"sitesp_1ySDC","description":"Conditional statements control the flow of code.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXR5NQOwIMmFhLgCmBG","title":"Loops","pathname":"/topics/deep-dives/ruby/loops","siteSpaceId":"sitesp_1ySDC","description":"Loops repeat an action in code based on one or more conditions.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXR7E7Sl4dOfm3N9vUu","title":"Arrays","pathname":"/topics/deep-dives/ruby/arrays","siteSpaceId":"sitesp_1ySDC","description":"An array is a collection of data that can contain any combination of variables, numbers, strings, or other Ruby objects (including other arrays).","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXR81JBVQ5ZoRAs6JFJ","title":"Hashes","pathname":"/topics/deep-dives/ruby/hashes","siteSpaceId":"sitesp_1ySDC","description":"Ruby hashes are collections of data, similar to objects in JavaScript and dictionaries in Python.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXR96284DL4xCLVv8xN","title":"Methods","pathname":"/topics/deep-dives/ruby/methods","siteSpaceId":"sitesp_1ySDC","description":"In this lesson, we're going to deconstruct what methods are, examine their behavior, and learn how to use them.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXRA1gYN0bAXx-Ku-5J","title":"Enumerables","pathname":"/topics/deep-dives/ruby/enumerables","siteSpaceId":"sitesp_1ySDC","description":"Learn more about some of the most frequently used enumerable methods.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXRB1RAqqZJAtyi_e6G","title":"More enumerables","pathname":"/topics/deep-dives/ruby/more-enumerables","siteSpaceId":"sitesp_1ySDC","description":"Learn more about predicate enumerable methods.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXXCvpsZ5pZDWi2X_GA","title":"Nested collections","pathname":"/topics/deep-dives/ruby/nested-collections","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXX7dhFDZkYZc4ZC0f6","title":"Blocks","pathname":"/topics/deep-dives/ruby/blocks","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXX9abptydQIEPxJcrR","title":"Pattern matching","pathname":"/topics/deep-dives/ruby/pattern-matching","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXRBcitSHO9jgz8GNJb","title":"Debugging","pathname":"/topics/deep-dives/ruby/debugging","siteSpaceId":"sitesp_1ySDC","description":"The debugging process is all about confirming assumptions about your code until you find something that goes against your assumptions.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXRCzOYqLlY0g-hWs85","title":"Project: Caesar cipher","pathname":"/topics/deep-dives/ruby/project-caesar-cipher","siteSpaceId":"sitesp_1ySDC","description":"Learn how to build a simple command-line application that takes in a string and the shift factor and then outputs an \"encrypted\" string.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXRDKktPddKtQG6PSnl","title":"Project: Substrings","pathname":"/topics/deep-dives/ruby/project-substrings","siteSpaceId":"sitesp_1ySDC","description":"Learn how to build a simple command-line application that returns a hash listing of substrings.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXRDaW-G7Ki4XkSmJUi","title":"Project: Stock picker","pathname":"/topics/deep-dives/ruby/project-stock-picker","siteSpaceId":"sitesp_1ySDC","description":"Learn how to build a simple command-line based stock picker.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXRDskxb-UHlR07hAcd","title":"Project: Bubble sort","pathname":"/topics/deep-dives/ruby/project-bubble-sort","siteSpaceId":"sitesp_1ySDC","description":"Learn how to build a bubble sort algorithm.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXREKnZEdZEDzwT7lJh","title":"Object oriented programming","pathname":"/topics/deep-dives/ruby/object-oriented-programming","siteSpaceId":"sitesp_1ySDC","description":"Learn more about object oriented programming.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXRG-3hS06o1R1Uytml","title":"Project: Tic Tac Toe","pathname":"/topics/deep-dives/ruby/project-tic-tac-toe","siteSpaceId":"sitesp_1ySDC","description":"Learn how to build a tic tac toe game.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXRGKZGQ5Qq0Djovriw","title":"Project: Mastermind","pathname":"/topics/deep-dives/ruby/project-mastermind","siteSpaceId":"sitesp_1ySDC","description":"Learn how to build a Mastermind game from the command line where you have 12 turns to guess the secret code.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXRGemeATMyhuhREbIG","title":"Serialization","pathname":"/topics/deep-dives/ruby/serialization","siteSpaceId":"sitesp_1ySDC","description":"Working with files gets you into the idea of serialization, which basically just means converting your data into a storable format like a string.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXRH2tW1IElpCtGD2yP","title":"Project: Event manager","pathname":"/topics/deep-dives/ruby/project-event-manager","siteSpaceId":"sitesp_1ySDC","description":"Learn how to build an event management app that pulls information from an external API.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXRJlJu1_sqtQcIoXOK","title":"Project: Hangman","pathname":"/topics/deep-dives/ruby/project-hangman","siteSpaceId":"sitesp_1ySDC","description":"Learn how to build a simple command line Hangman game where one player plays against the computer.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXRWjgVI21v6G63TwSN","title":"Computer Science","pathname":"/topics/deep-dives/ruby/computer-science","siteSpaceId":"sitesp_1ySDC","description":"We're taking a look at some more Computer Science-y concepts here because they are fundamental to your career as a developer.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXRXBrVNjz00rnKKinx","title":"Recursion","pathname":"/topics/deep-dives/ruby/computer-science/recursion","siteSpaceId":"sitesp_1ySDC","description":"Learn more about when and how to use recursion.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"},{"label":"Computer Science"}]},{"id":"-MXRXnmKJwpQbBc96jMa","title":"Project: Merge Sort","pathname":"/topics/deep-dives/ruby/computer-science/project-merge-sort","siteSpaceId":"sitesp_1ySDC","description":"Learn how to build a merge sort algorithm.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"},{"label":"Computer Science"}]},{"id":"-MXRYG0ZrxleAIcbY824","title":"Data structures and algorithms","pathname":"/topics/deep-dives/ruby/computer-science/data-structures-and-algorithms","siteSpaceId":"sitesp_1ySDC","description":"Learn more about data structures and basic algortihms.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"},{"label":"Computer Science"}]},{"id":"-MXRYZ0WyUSr1Spgu8TM","title":"Project: Linked Lists","pathname":"/topics/deep-dives/ruby/computer-science/project-linked-lists","siteSpaceId":"sitesp_1ySDC","description":"Learn how to build a linked list.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"},{"label":"Computer Science"}]},{"id":"-MXRZ0jO0lhSGB-PBxzE","title":"Project: Binary Search Trees","pathname":"/topics/deep-dives/ruby/computer-science/project-binary-search-trees","siteSpaceId":"sitesp_1ySDC","description":"Learn how to build a balanced binary search tree.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"},{"label":"Computer Science"}]},{"id":"-MXRZOTUIX3HDCVUhC3U","title":"Project: Knight Travails","pathname":"/topics/deep-dives/ruby/computer-science/project-knight-travails","siteSpaceId":"sitesp_1ySDC","description":"Learn how to build a method called \"knight_moves\" that shows the simplest possible way to get from one square to another by outputting all squares the knight will stop on along the way.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"},{"label":"Computer Science"}]},{"id":"-MXRZgUiMK_gzUElPTwE","title":"Testing","pathname":"/topics/deep-dives/ruby/testing","siteSpaceId":"sitesp_1ySDC","description":"Writing tests ensures that code that comes after has clearer design, purpose, and quality.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXR_F-IHCeqxbqjnvtd","title":"RSpec","pathname":"/topics/deep-dives/ruby/rspec","siteSpaceId":"sitesp_1ySDC","description":"RSpec and the \"red-green-refactor\" cycle will allow you to code with confidence, knowing that your classes and their behaviors continue to meet your specified expectations.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXR_tD-lLGwm3XSdQJu","title":"Project: Four in a row","pathname":"/topics/deep-dives/ruby/project-four-in-a-row","siteSpaceId":"sitesp_1ySDC","description":"Learn how to build a basic game where each player takes turns dropping pieces into the cage. Players win if they manage to get 4 of their pieces consecutively in a row, column, or along a diagonal.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXRajU7OorMfB1vzV7f","title":"Git","pathname":"/topics/deep-dives/ruby/git","siteSpaceId":"sitesp_1ySDC","description":"This section should help you take the first steps towards expanding your Git toolkit and understanding what's actually going on under the hood with Git.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXRbBPouqYB4q2c4W20","title":"Project: Open Source","pathname":"/topics/deep-dives/ruby/project-open-source","siteSpaceId":"sitesp_1ySDC","description":"Learn how to make a contribution to an open source project on GitHub.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXRe4QrmY7l4E-TxPGB","title":"Project: Chess","pathname":"/topics/deep-dives/ruby/project-chess","siteSpaceId":"sitesp_1ySDC","description":"Learn how to build a command line Chess game where two players can play against each other.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXRcwHZIFakqngnidb9","title":"Next steps","pathname":"/topics/deep-dives/ruby/next-steps","siteSpaceId":"sitesp_1ySDC","description":"If you know Ruby, the world is sort of opened up for you. Nervous about Rails? Don't be. Rails is just Ruby that's been packaged up to do lots of stuff for you.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby"}]},{"id":"-MXM0wp0u0-JQ5chfFtO","title":"Ruby on Rails","pathname":"/topics/deep-dives/ruby-on-rails","siteSpaceId":"sitesp_1ySDC","description":"Learn everything you need to know in order to start building web applications with Ruby on Rails.","breadcrumbs":[{"label":"Deep dives"}]},{"id":"-MXM4M4lolLR3BF_BHs2","title":"Using Heroku","pathname":"/topics/deep-dives/ruby-on-rails/heroku","siteSpaceId":"sitesp_1ySDC","description":"A straightforward setup for deploying web applications to the internet.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby on Rails"}]},{"id":"-MXM4mkrKBfPL5WM6rvc","title":"Installing Rails","pathname":"/topics/deep-dives/ruby-on-rails/installing-rails","siteSpaceId":"sitesp_1ySDC","description":"In this project, we're going to build a fully functional Rails application.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby on Rails"}]},{"id":"-MXM68HXe2-0l2nB3IFH","title":"Basics","pathname":"/topics/deep-dives/ruby-on-rails/basics","siteSpaceId":"sitesp_1ySDC","description":"A quick overview to get a better understanding of how the web works before diving deeper into Rails.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby on Rails"}]},{"id":"-MXM6lPcg14g1I-3aR7z","title":"Routing","pathname":"/topics/deep-dives/ruby-on-rails/basics/routing","siteSpaceId":"sitesp_1ySDC","description":"Routing is handled by the router, which is responsible for matching web requests with the appropriate controller actions to run them.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby on Rails"},{"label":"Basics"}]},{"id":"-MXM7W2rFfsote6M6YOs","title":"Controllers","pathname":"/topics/deep-dives/ruby-on-rails/basics/controllers","siteSpaceId":"sitesp_1ySDC","description":"Controllers are the equivalent of a \"middle-person\" in your application","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby on Rails"},{"label":"Basics"}]},{"id":"-MXM83eP84CA9a6lJ5Es","title":"Views","pathname":"/topics/deep-dives/ruby-on-rails/basics/views","siteSpaceId":"sitesp_1ySDC","description":"Views make up the user-facing side of your app.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby on Rails"},{"label":"Basics"}]},{"id":"-MXM8eNjUarzC2R5yD25","title":"Asset pipeline","pathname":"/topics/deep-dives/ruby-on-rails/basics/asset-pipeline","siteSpaceId":"sitesp_1ySDC","description":"The Asset Pipeline isn't something that you often think about, especially when just building little toy apps, but it becomes important to understand as soon as you want to deploy your application.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby on Rails"},{"label":"Basics"}]},{"id":"-MXM9bUoQ9UtxaeLYcIt","title":"Deployment","pathname":"/topics/deep-dives/ruby-on-rails/basics/deployment","siteSpaceId":"sitesp_1ySDC","description":"Deployment is one of the most satisfying parts of building an application.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby on Rails"},{"label":"Basics"}]},{"id":"-MXMA_Y4QIii9mV2trp7","title":"Project: Blog","pathname":"/topics/deep-dives/ruby-on-rails/basics/project-blog","siteSpaceId":"sitesp_1ySDC","description":"Learn how to build a blog with Rails.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby on Rails"},{"label":"Basics"}]},{"id":"-MXMAo_TPBrATzTuaacr","title":"Active Record","pathname":"/topics/deep-dives/ruby-on-rails/active-record","siteSpaceId":"sitesp_1ySDC","description":"Active Record is a powerful part of Rails and one of the trickiest to get the hang of. But don't worry, this section will make it easier.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby on Rails"}]},{"id":"-MXMBvBXigUUIpAcLL7R","title":"Project: Upvote","pathname":"/topics/deep-dives/ruby-on-rails/active-record/project-upvote","siteSpaceId":"sitesp_1ySDC","description":"Learn how to build a website that lets users upvote content.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby on Rails"},{"label":"Active Record"}]},{"id":"-MXMFDJYq2CmRupN53yg","title":"Forms","pathname":"/topics/deep-dives/ruby-on-rails/forms","siteSpaceId":"sitesp_1ySDC","description":"Most forms won't be that long or complicated for you, but it's useful to appreciate all the things you can (and one day will) do with them.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby on Rails"}]},{"id":"-MXMGElSj0_q4jlj2C5v","title":"Cookies, sessions, and authentication","pathname":"/topics/deep-dives/ruby-on-rails/forms/cookies-sessions-and-authentication","siteSpaceId":"sitesp_1ySDC","description":"Authentication can appear to be a fairly complicated topic -- there are a lot of moving parts. But this section will help you understand how it works.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby on Rails"},{"label":"Forms"}]},{"id":"-MXMH64-eagU3H85j_Jj","title":"Project: Password","pathname":"/topics/deep-dives/ruby-on-rails/forms/project-password","siteSpaceId":"sitesp_1ySDC","description":"In this project, you'll be building a private site where your members can write anonymous posts.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby on Rails"},{"label":"Forms"}]},{"id":"-MXMMhdxmFDTTurLgVb9","title":"Advanced forms and Active Record","pathname":"/topics/deep-dives/ruby-on-rails/advanced-forms-and-active-record","siteSpaceId":"sitesp_1ySDC","description":"In this lesson, we'll get into the more interesting and useful areas of Active Record queries.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby on Rails"}]},{"id":"-MXMMYH7HJu5CDiX9xg5","title":"Associations","pathname":"/topics/deep-dives/ruby-on-rails/advanced-forms-and-active-record/associations","siteSpaceId":"sitesp_1ySDC","description":"Associations are all over the place in Rails and are incredibly useful because of all the new methods they give you access to.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby on Rails"},{"label":"Advanced forms and Active Record"}]},{"id":"-MXMOMBeu_3DO3JfRhmn","title":"Project: Private Events","pathname":"/topics/deep-dives/ruby-on-rails/advanced-forms-and-active-record/project-private-events","siteSpaceId":"sitesp_1ySDC","description":"Learn how to build a site that allows users to create events and then manage user signups.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby on Rails"},{"label":"Advanced forms and Active Record"}]},{"id":"-MXMOsVmH75DkQHVlL5c","title":"Callbacks","pathname":"/topics/deep-dives/ruby-on-rails/advanced-forms-and-active-record/callbacks","siteSpaceId":"sitesp_1ySDC","description":"Callbacks provide hooks into specific points (either before, after, or sometimes \"around\") in the life cycle of an object.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby on Rails"},{"label":"Advanced forms and Active Record"}]},{"id":"-MXMP_647zQuwhVnvt8l","title":"Menus, helpers and nested forms","pathname":"/topics/deep-dives/ruby-on-rails/advanced-forms-and-active-record/menus-helpers-and-nested-forms","siteSpaceId":"sitesp_1ySDC","description":"Let's take a look at some of the options you have to make a form handle multiple model objects.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby on Rails"},{"label":"Advanced forms and Active Record"}]},{"id":"-MXMR3Z3nUw6RT1foLg5","title":"Project: Ticket agent","pathname":"/topics/deep-dives/ruby-on-rails/advanced-forms-and-active-record/project-ticket-agent","siteSpaceId":"sitesp_1ySDC","description":"Learn how to build the first few steps of a checkout process for a one-way flight.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby on Rails"},{"label":"Advanced forms and Active Record"}]},{"id":"-MXMyUPblOezOSkW7KPs","title":"APIs","pathname":"/topics/deep-dives/ruby-on-rails/apis","siteSpaceId":"sitesp_1ySDC","description":"In this lesson, we'll cover how to build your own API. In the following lesson, we'll cover how to interface with the APIs of other applications.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby on Rails"}]},{"id":"-MXMzkqLTzMo8_4ndy9j","title":"External APIs","pathname":"/topics/deep-dives/ruby-on-rails/apis/external-apis","siteSpaceId":"sitesp_1ySDC","description":"This lesson will cover common characteristics of external APIs (those you'll most likely encounter throughout the web) and methods for authenticating with them.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby on Rails"},{"label":"APIs"}]},{"id":"-MXN-sJHmcynI2h9ePLp","title":"Project: Animals","pathname":"/topics/deep-dives/ruby-on-rails/apis/project-animals","siteSpaceId":"sitesp_1ySDC","description":"Learn how to explore the Flickr API to retrieve pictures of animals.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby on Rails"},{"label":"APIs"}]},{"id":"-MXN19ou-LBRvE4ANu-a","title":"Project: Photo widget","pathname":"/topics/deep-dives/ruby-on-rails/apis/project-photo-widget","siteSpaceId":"sitesp_1ySDC","description":"Learn how to build a photo widget to display photos from your Flickr feed.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby on Rails"},{"label":"APIs"}]},{"id":"-MXN2C5oeBBFThCsXHcM","title":"Mailers","pathname":"/topics/deep-dives/ruby-on-rails/mailers","siteSpaceId":"sitesp_1ySDC","description":"In this lesson we'll cover the process that generates emails in Rails, and you'll get a chance to send your own.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby on Rails"}]},{"id":"-MXN336ETEnZtfmY40nb","title":"Project: Confirmation","pathname":"/topics/deep-dives/ruby-on-rails/mailers/project-confirmation","siteSpaceId":"sitesp_1ySDC","description":"You'll be dusting off your Ticket agent project (or one of the other projects that has users registering) and having it send out a \"You have booked your ticket\" email to all Passengers.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby on Rails"},{"label":"Mailers"}]},{"id":"-MXN4KVw2NssaqmPD_Uz","title":"Advanced topics","pathname":"/topics/deep-dives/ruby-on-rails/advanced-topics","siteSpaceId":"sitesp_1ySDC","description":"Learn more about advanced topics when working with Rails.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby on Rails"}]},{"id":"-MXX45of_N9FOSo59M52","title":"Action Cable","pathname":"/topics/deep-dives/ruby-on-rails/advanced-topics/action-cable","siteSpaceId":"sitesp_1ySDC","description":"","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby on Rails"},{"label":"Advanced topics"}]},{"id":"-MXN8227UKsnRycd_knG","title":"Project: Social network","pathname":"/topics/deep-dives/ruby-on-rails/project-social-network","siteSpaceId":"sitesp_1ySDC","description":"You'll be building a social network. As usual, any additional styling will be up to you but the really important stuff is to get the data and back end working properly.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby on Rails"}]},{"id":"-MXN9Dxxx-G8PvDfoXZG","title":"Next steps","pathname":"/topics/deep-dives/ruby-on-rails/next-steps","siteSpaceId":"sitesp_1ySDC","description":"The point of this course has been to get you to a place where you can start thinking about actually getting that first job.","breadcrumbs":[{"label":"Deep dives"},{"label":"Ruby on Rails"}]},{"id":"-MXDXZfMHpQx8BJ7MULN","title":"Preparing to find a job","pathname":"/topics/getting-hired/preparing-to-find-a-job","siteSpaceId":"sitesp_1ySDC","description":"Learn everything you need to know about preparing to find a job.","breadcrumbs":[{"label":"Getting hired"}]},{"id":"-MXDYeBv32ZPXkxZ8UH3","title":"Plan a strategy","pathname":"/topics/getting-hired/preparing-to-find-a-job/plan-a-strategy","siteSpaceId":"sitesp_1ySDC","description":"You've got to have a plan or you'll find yourself spamming your resume out to every job post on every job board and wondering why you haven't had any success.","breadcrumbs":[{"label":"Getting hired"},{"label":"Preparing to find a job"}]},{"id":"-MXD_1iTE04bEcRvxqZf","title":"What companies want","pathname":"/topics/getting-hired/preparing-to-find-a-job/what-companies-want","siteSpaceId":"sitesp_1ySDC","description":"Companies are looking for someone who can add value as soon as possible and who will be able to grow with the organization.","breadcrumbs":[{"label":"Getting hired"},{"label":"Preparing to find a job"}]},{"id":"-MXDZTrq926jlIL1AEgl","title":"Get yourself together","pathname":"/topics/getting-hired/preparing-to-find-a-job/get-yourself-together","siteSpaceId":"sitesp_1ySDC","description":"You should have at least an informal list of the things that matter to you. Now ruthlessly rank them. What are your non-negotiables and what are your nice-to-haves?","breadcrumbs":[{"label":"Getting hired"},{"label":"Preparing to find a job"}]},{"id":"-MXD_OZ6HImv6dPCrnyZ","title":"How to prepare","pathname":"/topics/getting-hired/preparing-to-find-a-job/how-to-prepare","siteSpaceId":"sitesp_1ySDC","description":"You may be uncomfortable \"selling yourself\" but that's exactly what you'll have to do.","breadcrumbs":[{"label":"Getting hired"},{"label":"Preparing to find a job"}]},{"id":"-MXD_zGxSG0tYSB09uIs","title":"Project: Make your website","pathname":"/topics/getting-hired/preparing-to-find-a-job/project-build-a-personal-website","siteSpaceId":"sitesp_1ySDC","description":"In general, it's best to keep your site simple and clean. Let your portfolio of work speak for itself.","breadcrumbs":[{"label":"Getting hired"},{"label":"Preparing to find a job"}]},{"id":"-MXDatuagAgtiiJdJpMn","title":"Applying and interviewing","pathname":"/topics/getting-hired/applying-and-interviewing-for-a-job","siteSpaceId":"sitesp_1ySDC","description":"Learn everything you need to know about applying and interviewing for a job.","breadcrumbs":[{"label":"Getting hired"}]},{"id":"-MXDbVzH-ef0PRQj113A","title":"Qualifying leads","pathname":"/topics/getting-hired/applying-and-interviewing-for-a-job/qualifying-leads","siteSpaceId":"sitesp_1ySDC","description":"Part of the reason for qualifying the leads is to make sure you don't get sucked into a process and waste a bunch of time applying to jobs that you wouldn't actually take anyway.","breadcrumbs":[{"label":"Getting hired"},{"label":"Applying and interviewing"}]},{"id":"-MXE6fem2SCKbnvJ0Ex3","title":"Project: Make your resume","pathname":"/topics/getting-hired/applying-and-interviewing-for-a-job/project-make-a-developer-resume","siteSpaceId":"sitesp_1ySDC","description":"A developer's resume is an interesting thing because so much of your value is demonstrated from your projects, which live in your GitHub (and are hopefully also deployed somewhere online).","breadcrumbs":[{"label":"Getting hired"},{"label":"Applying and interviewing"}]},{"id":"-MXE7eCMR4ow973RMydc","title":"Applying for jobs","pathname":"/topics/getting-hired/applying-and-interviewing-for-a-job/applying-for-jobs","siteSpaceId":"sitesp_1ySDC","description":"Start with companies that you're on the fence about. Once you feel comfortable with your application-sending and hopefully interviewing abilities, start tackling your top choices.","breadcrumbs":[{"label":"Getting hired"},{"label":"Applying and interviewing"}]},{"id":"-MXE8VDnk1g6cfmLxi6Z","title":"Preparing for an interview","pathname":"/topics/getting-hired/applying-and-interviewing-for-a-job/preparing-for-an-interview","siteSpaceId":"sitesp_1ySDC","description":"You'll want to figure out the questions you might expect to be asked (and the general responses you'll have for each which demonstrate your brilliance) and you'll want to research the company too.","breadcrumbs":[{"label":"Getting hired"},{"label":"Applying and interviewing"}]},{"id":"-MXEC-Q2fgk-cZydmu6N","title":"Handling an offer","pathname":"/topics/getting-hired/applying-and-interviewing-for-a-job/handling-an-offer","siteSpaceId":"sitesp_1ySDC","description":"Do not accept right away. This is doubly true if you don't think it's a good offer.","breadcrumbs":[{"label":"Getting hired"},{"label":"Applying and interviewing"}]},{"id":"-MXECcX4nu8i7fQ2IlG9","title":"Final words","pathname":"/topics/getting-hired/applying-and-interviewing-for-a-job/final-words","siteSpaceId":"sitesp_1ySDC","description":"Build some awesome software, learn as much as you can, and pay it forward when you're able to.","breadcrumbs":[{"label":"Getting hired"},{"label":"Applying and interviewing"}]}]}