{"id":7876,"date":"2025-06-15T21:50:21","date_gmt":"2025-06-15T21:50:21","guid":{"rendered":"https:\/\/algocademy.com\/blog\/essential-development-tools-and-software-for-beginners-in-2023\/"},"modified":"2026-10-15T12:51:17","modified_gmt":"2026-10-15T12:51:17","slug":"essential-development-tools-and-software-for-beginners-in-2023","status":"publish","type":"post","link":"https:\/\/algocademy.com\/blog\/essential-development-tools-and-software-for-beginners-in-2023\/","title":{"rendered":"Essential Development Tools and Software for Beginners"},"content":{"rendered":"<p>You need five things to start programming: a code editor, a language runtime (Python or Node.js, for example), a terminal, Git, and a browser with developer tools. Everything else, including databases, Docker, API clients and design tools, can wait until a project asks for it. Installing twenty tools in week one is a common way to burn a weekend and learn nothing.<\/p>\n<p>This list was checked in October 2026. Prices and licensing terms change, so confirm them on the vendor&#8217;s site before you pay for anything.<\/p>\n<h2>The starter kit<\/h2>\n<table>\n<thead>\n<tr>\n<th>Need<\/th>\n<th>Pick this first<\/th>\n<th>Alternatives<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Code editor<\/td>\n<td>Visual Studio Code<\/td>\n<td>PyCharm or IntelliJ IDEA, Sublime Text<\/td>\n<\/tr>\n<tr>\n<td>Language<\/td>\n<td>Python or Node.js (current LTS)<\/td>\n<td>Java, C++ and others when a course needs them<\/td>\n<\/tr>\n<tr>\n<td>Terminal<\/td>\n<td>Built-in terminal in VS Code<\/td>\n<td>Windows Terminal, macOS Terminal, WSL on Windows<\/td>\n<\/tr>\n<tr>\n<td>Version control<\/td>\n<td>Git plus a GitHub account<\/td>\n<td>GitHub Desktop or another Git GUI<\/td>\n<\/tr>\n<tr>\n<td>Browser tools<\/td>\n<td>Chrome or Firefox DevTools<\/td>\n<td>Edge, Safari Web Inspector<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Code editors and IDEs<\/h2>\n<p>An editor gives you syntax highlighting, autocomplete and a way to run and debug code. Pick one and stay with it for a few months.<\/p>\n<h3>Visual Studio Code<\/h3>\n<p>VS Code is a free editor from Microsoft that runs on Windows, macOS and Linux. It has a built-in terminal, Git support, a debugger and a large extension marketplace. It is the default choice for JavaScript, TypeScript and web work, and works well for Python with Microsoft&#8217;s Python extension. Start with only the extension for your language; adding dozens of extensions mostly slows you down. See our <a href=\"https:\/\/algocademy.com\/blog\/mastering-visual-studio-code-a-comprehensive-guide-for-developers\/\">guide to VS Code<\/a> for setup and shortcuts.<\/p>\n<h3>JetBrains IDEs<\/h3>\n<p>JetBrains makes full IDEs: PyCharm for Python, IntelliJ IDEA for Java and Kotlin, WebStorm for JavaScript, and others. An IDE understands your project deeply, so refactoring, navigation and debugging are stronger than in a plain editor. The trade-off is a heavier install and more features than a first-week learner needs. Licensing has changed over the years; for example, since version 2025.1 PyCharm is a single product with a free core and a paid Pro tier. Check the JetBrains site for what is free today, including student options.<\/p>\n<h3>Sublime Text<\/h3>\n<p>Sublime Text is a fast, lightweight editor. It can be evaluated without a time limit, but continued use requires a paid license. Good if you like a minimal tool; VS Code gives most beginners more for free.<\/p>\n<h3>Atom is gone<\/h3>\n<p>Older lists, including an earlier version of this one, recommend Atom. GitHub stopped developing it and archived the project on December 15, 2022. Don&#8217;t install it; use VS Code instead.<\/p>\n<h3>No-install options<\/h3>\n<p>Online editors such as Replit, CodePen and StackBlitz run in the browser and are handy for the first few exercises or for sharing a snippet. Their free plans and features change often, so check what is included. Move to a local setup once you want to keep projects on your own machine, use Git and work offline.<\/p>\n<h2>A language runtime<\/h2>\n<p>An editor does not run code by itself. Install what your course uses:<\/p>\n<ul>\n<li><strong>Python:<\/strong> download the current release from python.org. On Windows, tick &#8220;Add python.exe to PATH&#8221; in the installer. Check with <code>python --version<\/code> (or <code>python3 --version<\/code> on macOS and Linux).<\/li>\n<li><strong>Node.js:<\/strong> install the LTS (long-term support) version from nodejs.org, not the &#8220;Current&#8221; one. Check with <code>node --version<\/code>. It comes with npm.<\/li>\n<\/ul>\n<p>If you later need several Node versions for different projects, a version manager such as nvm or fnm handles that. You don&#8217;t need one on day one.<\/p>\n<h2>The terminal<\/h2>\n<p>You will use a terminal to run programs, install packages and use Git. Learn about ten commands: <code>pwd<\/code>, <code>ls<\/code> (<code>dir<\/code> in Windows Command Prompt), <code>cd<\/code>, <code>mkdir<\/code>, <code>cp<\/code>, <code>mv<\/code>, <code>rm<\/code>, <code>cat<\/code>, <code>echo<\/code> and <code>grep<\/code>. That covers most of what a beginner does.<\/p>\n<ul>\n<li><strong>VS Code&#8217;s integrated terminal<\/strong> opens in your project folder, which is usually all you need.<\/li>\n<li><strong>Windows Terminal<\/strong> is Microsoft&#8217;s modern terminal app for Command Prompt, PowerShell and Linux shells.<\/li>\n<li><strong>WSL (Windows Subsystem for Linux)<\/strong> runs a real Linux environment on Windows. It is worth setting up if your course, job or tutorials assume Linux commands, since most deployment targets run Linux. Follow Microsoft&#8217;s official install guide.<\/li>\n<li><strong>iTerm2, Oh My Zsh and similar<\/strong> are optional comfort upgrades. Skip them until the default terminal annoys you.<\/li>\n<\/ul>\n<h2>Git and GitHub<\/h2>\n<p>Git records the history of your code so you can undo mistakes, try ideas on a branch and work with other people. GitHub (or GitLab, Bitbucket) hosts your repositories online, which doubles as a public portfolio. Learn these commands first:<\/p>\n<pre><code class=\"language-bash\">git init\ngit add .\ngit commit -m \"Add first version\"\ngit status\ngit log --oneline\ngit switch -c my-feature\n<\/code><\/pre>\n<p>If the command line feels like too much at once, GitHub Desktop and the Git panel in VS Code are fine for commits, branches and pushes. GUI clients such as GitKraken or Sourcetree add visual commit graphs, but the free tiers and terms differ, so check before relying on one. Still learn the command-line basics; they work everywhere. See <a href=\"https:\/\/algocademy.com\/blog\/how-to-use-github-to-showcase-your-coding-projects\/\">how to use GitHub to showcase your projects<\/a> once you have something to show.<\/p>\n<h2>Browser developer tools<\/h2>\n<p>If you do any web work, DevTools are the most useful debugging tool you will use. Open them with F12, or Ctrl+Shift+I (Cmd+Option+I on macOS). In Chrome, the panels to learn first are:<\/p>\n<ul>\n<li><strong>Elements:<\/strong> inspect and edit HTML and CSS live.<\/li>\n<li><strong>Console:<\/strong> see errors and run JavaScript.<\/li>\n<li><strong>Network:<\/strong> see every request, status code and response.<\/li>\n<li><strong>Sources:<\/strong> set breakpoints and step through JavaScript.<\/li>\n<\/ul>\n<p>Firefox and Edge have equivalents. The tool matters less than getting in the habit of reading the Console before guessing.<\/p>\n<h2>Package managers<\/h2>\n<p>You get one with your language: <code>pip<\/code> with Python and <code>npm<\/code> with Node.js. Use them to install libraries, and keep each Python project in its own virtual environment:<\/p>\n<pre><code class=\"language-bash\">python -m venv .venv\nsource .venv\/bin\/activate      # Windows: .venv\\Scripts\\activate\npip install requests\n<\/code><\/pre>\n<p>Yarn and pnpm are alternatives to npm for JavaScript. They are common in existing projects, but you do not need them to learn. Use whichever the project you are working on already uses.<\/p>\n<h2>Tools to add later<\/h2>\n<p>These are good tools. Install them when a project needs them, not before.<\/p>\n<ul>\n<li><strong>API clients:<\/strong> Postman, Insomnia and Bruno send HTTP requests to test APIs. Bruno stores requests as local files and works without an account; Postman is the most feature-rich but leans toward cloud accounts. For simple tests, <code>curl<\/code> or your browser&#8217;s Network panel is enough.<\/li>\n<li><strong>Databases:<\/strong> start with SQLite, which needs no server (Python includes it). When you need a server database, install PostgreSQL or MySQL, with pgAdmin or MySQL Workbench as GUIs, or MongoDB with MongoDB Compass for document data.<\/li>\n<li><strong>Docker:<\/strong> packages an app and its dependencies into containers. Useful once you deploy or need to reproduce a server environment. Docker Desktop is free for personal use and education, with paid plans for larger companies; read the current terms.<\/li>\n<li><strong>Local web servers (XAMPP, MAMP, WAMP):<\/strong> only for PHP and WordPress style projects. For plain HTML and JavaScript, VS Code&#8217;s Live Server extension or <code>python -m http.server<\/code> is enough.<\/li>\n<li><strong>Design tools:<\/strong> Figma is the standard for sharing UI designs and has a free plan (check its limits). Adobe XD is in maintenance mode and no longer sold on its own, so don&#8217;t start with it.<\/li>\n<li><strong>Notes and tasks:<\/strong> a plain notes app, Notion or Trello. Slack or Discord only if your course or team uses them.<\/li>\n<\/ul>\n<h2>AI assistants<\/h2>\n<p>Autocomplete and chat assistants (GitHub Copilot, ChatGPT, Claude and others) are now part of many developers&#8217; routine. While you are learning, use them to explain an error or a concept, not to write every solution. If you can&#8217;t explain the code it gave you, you haven&#8217;t learned it, and interviews will test exactly that.<\/p>\n<h2>Documentation worth bookmarking<\/h2>\n<ul>\n<li><strong>MDN Web Docs<\/strong> for HTML, CSS, JavaScript and web APIs.<\/li>\n<li>The official docs for your language, such as docs.python.org, which are better than most tutorials once you can read them.<\/li>\n<li><strong>Stack Overflow<\/strong> for specific error messages. Search the exact message in quotes.<\/li>\n<\/ul>\n<h2>Suggested installation order<\/h2>\n<ol>\n<li>VS Code and your language&#8217;s extension.<\/li>\n<li>Python or Node.js (LTS), then verify the version in a terminal.<\/li>\n<li>Git, a GitHub account, and a first repository with one committed file.<\/li>\n<li>Browser DevTools, opened on any web page, to look around.<\/li>\n<li>Everything else, one tool at a time, when you hit a real need.<\/li>\n<\/ol>\n<h2>Common mistakes<\/h2>\n<ul>\n<li>Switching editors every week. Features matter far less than hours of practice.<\/li>\n<li>Installing a tool because a tutorial mentioned it, without knowing which problem it solves.<\/li>\n<li>Skipping Git because &#8220;my project is small&#8221;. The first time you break working code, you will wish you had it.<\/li>\n<li>Installing Python or Node.js packages globally and ending up with version conflicts. Use virtual environments and per-project installs.<\/li>\n<li>Copying commands into a terminal without reading them, especially anything with <code>sudo<\/code> or <code>rm -rf<\/code>.<\/li>\n<\/ul>\n<h2>Where to practice<\/h2>\n<p>Tools only help if you write code with them. The <a href=\"https:\/\/algocademy.com\/link\/?lang=py&amp;problem=arrays&amp;solution=1\">Lists lesson<\/a> and the <a href=\"https:\/\/algocademy.com\/link\/?lang=py&amp;problem=functions&amp;solution=1\">Functions lesson<\/a> in our Python course are good first exercises to run in your new setup, and <a href=\"https:\/\/app.algocademy.com\/\">app.algocademy.com<\/a> has more.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The few tools a beginner programmer actually needs: an editor, Git, a terminal, a language runtime and browser DevTools, plus what to skip until later.<\/p>\n","protected":false},"author":1,"featured_media":7875,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23],"tags":[],"class_list":["post-7876","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-problem-solving"],"_links":{"self":[{"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/posts\/7876"}],"collection":[{"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/comments?post=7876"}],"version-history":[{"count":1,"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/posts\/7876\/revisions"}],"predecessor-version":[{"id":8944,"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/posts\/7876\/revisions\/8944"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/media\/7875"}],"wp:attachment":[{"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/media?parent=7876"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/categories?post=7876"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/tags?post=7876"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}