{"id":801,"date":"2026-08-21T10:59:43","date_gmt":"2026-08-21T15:59:43","guid":{"rendered":"https:\/\/sts.doit.wisc.edu\/training-materials\/?post_type=manual&#038;p=801"},"modified":"2026-08-21T10:59:44","modified_gmt":"2026-08-21T15:59:44","slug":"vs-code-a-hands-on-introduction-to-the-developers-editor","status":"publish","type":"manual","link":"https:\/\/sts.doit.wisc.edu\/training-materials\/manual\/vs-code-a-hands-on-introduction-to-the-developers-editor\/","title":{"rendered":"VS Code: A Hands-On Introduction to the Developer\u2019s Editor"},"content":{"rendered":"\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"152\" src=\"https:\/\/sts.doit.wisc.edu\/training-materials\/wp-content\/uploads\/2025\/09\/sts-icon-notext.png\" alt=\"The STS logo of a cybernetically enhanced brain. Serious sci-fi.\" class=\"wp-image-196\" style=\"width:395px;height:auto\"\/><\/figure>\n\n\n\n<section class=\"wp-block-sts-block-sts-custom-sections\">\n<h2 class=\"wp-block-heading\">Tools<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Text Editors and IDEs<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What They Are:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Applications used for writing, editing, and managing code efficiently. <strong>VS Code<\/strong> is a lightweight yet powerful code editor with built-in features for development.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Popular Options:<\/strong><\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-b4b75a54 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<ul class=\"wp-block-list\">\n<li><strong>VS Code<\/strong> \u2013 Lightweight, extensible, with integrated Git, debugging, and vast extension support.<\/li>\n\n\n\n<li><strong>Sublime Text<\/strong> \u2013 Fast and minimalist editor with great performance.<\/li>\n\n\n\n<li><strong>JetBrains WebStorm<\/strong> \u2013 A full-fledged IDE designed specifically for JavaScript and front-end development.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Why It&#8217;s Helpful:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">These tools offer <strong>syntax highlighting, code completion, debugging capabilities, and integrations<\/strong> that enhance productivity and improve code quality.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Version Control with Git &amp; GitHub<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What It Is:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Built-in <strong>Git support<\/strong> in VS Code allows users to manage version control directly from the editor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Key Features:<\/strong><\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-b4b75a54 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<ul class=\"wp-block-list\">\n<li><strong>Source Control Panel (<code class=\"\" data-line=\"\">Ctrl + Shift + G<\/code>)<\/strong> \u2013 Stage, commit, and push changes easily.<\/li>\n\n\n\n<li><strong>GitLens Extension<\/strong> \u2013 Provides deeper Git insights, such as commit history and blame annotations.<\/li>\n\n\n\n<li><strong>Command Line Git (<code class=\"\" data-line=\"\">git init<\/code>, <code class=\"\" data-line=\"\">git add .<\/code>, <code class=\"\" data-line=\"\">git commit -m &quot;message&quot;<\/code>)<\/strong> \u2013 Run Git commands directly from the <strong>Integrated Terminal (<code class=\"\" data-line=\"\">Ctrl + ~<\/code>)<\/strong>.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Why It&#8217;s Helpful:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tracks changes, facilitates collaboration, and allows rollbacks to previous versions.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Integrated Terminal<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What It Is:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A built-in <strong>command-line interface<\/strong> within VS Code for running shell commands, Git operations, and package managers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Key Features:<\/strong><\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-b4b75a54 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<ul class=\"wp-block-list\">\n<li>Open the <strong>Terminal (<code class=\"\" data-line=\"\">Ctrl + ~<\/code>)<\/strong> to execute commands without leaving VS Code.<\/li>\n\n\n\n<li>Supports <strong>multiple shells<\/strong> (PowerShell, Bash, Zsh, CMD).<\/li>\n\n\n\n<li>Run <strong>scripts, package managers (npm, yarn), and Git commands<\/strong> directly.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Why It&#8217;s Helpful:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eliminates the need for switching between external terminals, increasing workflow efficiency.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Debugger<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What It Is:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A tool to set <strong>breakpoints<\/strong>, inspect variables, and troubleshoot issues in JavaScript, Python, and other languages.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Key Features:<\/strong><\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-b4b75a54 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<ul class=\"wp-block-list\">\n<li><strong>Run &amp; Debug Panel (<code class=\"\" data-line=\"\">Ctrl + Shift + D<\/code>)<\/strong> \u2013 Manage debugging sessions.<\/li>\n\n\n\n<li><strong>Breakpoints<\/strong> \u2013 Pause execution at specific lines for inspection.<\/li>\n\n\n\n<li><strong>Call Stack View<\/strong> \u2013 Track execution flow through function calls.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Why It&#8217;s Helpful:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Identifies and resolves errors efficiently without relying solely on <code class=\"\" data-line=\"\">console.log()<\/code>.<\/p>\n<\/section>\n\n\n\n<section class=\"wp-block-sts-block-sts-custom-sections\">\n<h2 class=\"wp-block-heading\">Techniques<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Efficient File Navigation<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What It Is:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quickly accessing and managing files inside VS Code using <strong>shortcuts and search tools<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Common Methods:<\/strong><\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-b4b75a54 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<ul class=\"wp-block-list\">\n<li><strong>Quick File Search (<code class=\"\" data-line=\"\">Ctrl + P<\/code>)<\/strong> \u2013 Instantly open files by name.<\/li>\n\n\n\n<li><strong>Explorer Panel (<code class=\"\" data-line=\"\">Ctrl + B<\/code>)<\/strong> \u2013 Browse project structure and manage files.<\/li>\n\n\n\n<li><strong>Split View (<code class=\"\" data-line=\"\">Ctrl + \\<\/code>)<\/strong> \u2013 Edit multiple files side by side.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Why It&#8217;s Helpful:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Boosts <strong>efficiency<\/strong> by reducing the time spent searching for files.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Code Formatting &amp; Linting<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What It Is:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ensuring <strong>consistent code style<\/strong> and identifying errors through formatting tools and linters.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Common Methods:<\/strong><\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-b4b75a54 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<ul class=\"wp-block-list\">\n<li>Install <strong>Prettier<\/strong> for automatic formatting (<code class=\"\" data-line=\"\">Ctrl + Shift + I<\/code>).<\/li>\n\n\n\n<li>Enable <strong>Format on Save<\/strong> in <code class=\"\" data-line=\"\">settings.json<\/code>.<\/li>\n\n\n\n<li>Use <strong>ESLint<\/strong> for JavaScript code quality.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Why It&#8217;s Helpful:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Improves <strong>readability<\/strong>, enforces best practices, and reduces syntax errors.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Working with Extensions<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What It Is:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Enhancing VS Code&#8217;s capabilities with plugins from the <strong>Extensions Marketplace (<code class=\"\" data-line=\"\">Ctrl + Shift + X<\/code>)<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Popular Extensions:<\/strong><\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-b4b75a54 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<ul class=\"wp-block-list\">\n<li><strong>Prettier<\/strong> \u2013 Code formatting.<\/li>\n\n\n\n<li><strong>Live Server<\/strong> \u2013 Auto-refreshes the browser when saving HTML\/CSS\/JS files.<\/li>\n\n\n\n<li><strong>GitLens<\/strong> \u2013 Enhances Git integration.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Why It&#8217;s Helpful:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adds <strong>custom functionality<\/strong> to streamline coding tasks.<\/p>\n<\/section>\n\n\n\n<section class=\"wp-block-sts-block-sts-custom-sections\">\n<h2 class=\"wp-block-heading\">Concepts<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Version Control with Git<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What It Is:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A system for tracking <strong>code changes and collaboration<\/strong> using Git.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Key Commands:<\/strong><\/p>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<pre class=\"wp-block-code has-base-color has-text-color has-background has-link-color has-small-font-size wp-elements-1\" style=\"background-color:#3c3c3c;padding-right:var(--wp--preset--spacing--80);padding-left:var(--wp--preset--spacing--80)\"><code class=\"\" data-line=\"\">&lt;strong&gt;&lt;em&gt;git init            # Initialize a repository\ngit add .           # Stage changes\ngit commit -m &quot;message&quot;  # Commit changes\ngit push origin main     # Push to GitHub&lt;\/em&gt;&lt;\/strong&gt;<\/code><\/pre>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Why It&#8217;s Helpful:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tracks project history and allows team collaboration without losing work.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Debugging Basics<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What It Is:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Using <strong>VS Code&#8217;s built-in debugger<\/strong> to <strong>find and fix errors<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Common Methods:<\/strong><\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-b4b75a54 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<ul class=\"wp-block-list\">\n<li><strong>Set Breakpoints<\/strong> \u2013 Pause code execution at specific lines.<\/li>\n\n\n\n<li><strong>Step Over\/Into<\/strong> \u2013 Navigate through function calls and execution flow.<\/li>\n\n\n\n<li><strong>Inspect Variables<\/strong> \u2013 View values inside the Debug Console.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Why It&#8217;s Helpful:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Reduces reliance on <code class=\"\" data-line=\"\">console.log()<\/code> debugging, making issue tracking more <strong>systematic<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Customization &amp; Workspaces<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What It Is:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Optimizing VS Code settings for <strong>better efficiency and a personalized experience<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Customization Examples:<\/strong><\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-b4b75a54 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<ul class=\"wp-block-list\">\n<li><strong>Change Themes (<code class=\"\" data-line=\"\">Ctrl + K, Ctrl + T<\/code>)<\/strong> \u2013 Adjust VS Code&#8217;s appearance.<\/li>\n\n\n\n<li><strong>Customize Keyboard Shortcuts<\/strong> \u2013 Modify hotkeys via <code class=\"\" data-line=\"\">keybindings.json<\/code>.<\/li>\n\n\n\n<li><strong>Workspaces<\/strong> \u2013 Save and organize settings for different projects.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Why It&#8217;s Helpful:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Creates a <strong>personalized workflow<\/strong>, reducing distractions and improving productivity.<\/p>\n<\/section>\n\n\n\n<section class=\"wp-block-sts-block-sts-custom-sections\">\n<h2 class=\"wp-block-heading\">Best Practices<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Organized Code Structure<\/h3>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-b4b75a54 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<ul class=\"wp-block-list\">\n<li>Use <strong>folders<\/strong> to separate files (<code class=\"\" data-line=\"\">src\/<\/code>, <code class=\"\" data-line=\"\">assets\/<\/code>, <code class=\"\" data-line=\"\">config\/<\/code>).<\/li>\n\n\n\n<li>Write <strong>modular, reusable code<\/strong> (<code class=\"\" data-line=\"\">.js<\/code> files instead of inline scripts).<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Comment and Document Code<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Add <strong>meaningful comments<\/strong> and use <strong>JSDoc<\/strong> for function documentation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example:<\/p>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<pre class=\"wp-block-code has-base-color has-text-color has-background has-link-color has-small-font-size wp-elements-2\" style=\"background-color:#3c3c3c;padding-right:var(--wp--preset--spacing--80);padding-left:var(--wp--preset--spacing--80)\"><code class=\"\" data-line=\"\">&lt;strong&gt;&lt;em&gt;\/**\n * Calculates the sum of two numbers.\n * @param {number} a\n * @param {number} b\n * @returns {number}\n *\/\nfunction sum(a, b) {\n    return a + b;\n}&lt;\/em&gt;&lt;\/strong&gt;<\/code><\/pre>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Debugging &amp; Troubleshooting<\/h3>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-b4b75a54 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<ul class=\"wp-block-list\">\n<li>Use <strong>Console Logs (<code class=\"\" data-line=\"\">console.log()<\/code>)<\/strong> for quick debugging.<\/li>\n\n\n\n<li>Set <strong>Breakpoints<\/strong> in the <strong>Debug Panel<\/strong> for step-by-step inspection.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Continuous Learning<\/h3>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-b4b75a54 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<ul class=\"wp-block-list\">\n<li>Stay updated with <strong>new VS Code features<\/strong> and <strong>shortcuts<\/strong>.<\/li>\n\n\n\n<li>Explore <strong>community extensions<\/strong> and <strong>custom settings<\/strong>.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/section>\n\n\n\n<section class=\"wp-block-sts-block-sts-custom-sections\">\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">VS Code is <strong>a powerful tool<\/strong> that can be optimized for maximum efficiency. By mastering <strong>shortcuts, debugging, extensions, and Git integration<\/strong>, you can streamline your <strong>development workflow<\/strong>.<\/p>\n<\/section>\n\n","protected":false},"author":19,"featured_media":0,"template":"","meta":{"_acf_changed":false,"_uw_seo_meta_title":"","_uw_seo_meta_description":"","_uw_seo_twitter_card_type":"summary_large_image","_uw_seo_meta_image":"","_uw_seo_meta_image_url":"","_uw_seo_meta_image_sizes":[],"_uw_seo_custom_meta_tags":[],"footnotes":""},"categories":[3],"class_list":["post-801","manual","type-manual","status-publish","hentry","category-coding-and-data"],"acf":[],"_links":{"self":[{"href":"https:\/\/sts.doit.wisc.edu\/training-materials\/wp-json\/wp\/v2\/manual\/801","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sts.doit.wisc.edu\/training-materials\/wp-json\/wp\/v2\/manual"}],"about":[{"href":"https:\/\/sts.doit.wisc.edu\/training-materials\/wp-json\/wp\/v2\/types\/manual"}],"author":[{"embeddable":true,"href":"https:\/\/sts.doit.wisc.edu\/training-materials\/wp-json\/wp\/v2\/users\/19"}],"version-history":[{"count":2,"href":"https:\/\/sts.doit.wisc.edu\/training-materials\/wp-json\/wp\/v2\/manual\/801\/revisions"}],"predecessor-version":[{"id":1094,"href":"https:\/\/sts.doit.wisc.edu\/training-materials\/wp-json\/wp\/v2\/manual\/801\/revisions\/1094"}],"wp:attachment":[{"href":"https:\/\/sts.doit.wisc.edu\/training-materials\/wp-json\/wp\/v2\/media?parent=801"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sts.doit.wisc.edu\/training-materials\/wp-json\/wp\/v2\/categories?post=801"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}