# Setting Up Your Development Environment This chapter will help complete beginners set up a programming development environment from scratch. We will introduce commonly used development tools and environments. ## Why Do You Need a Development Environment? Programming is like building a house; you need appropriate tools and a workspace. The development environment is your programming "workbench," which includes: - Code editor: for writing code - Operating system: the platform to run programs - Development environment: the workspace for coding - Necessary tools: compilers, interpreters, etc. ### Choosing a Code Editor: VSCode [Visual Studio Code (VSCode)](https://code.visualstudio.com/) is a free, powerful, and easy-to-use code editor developed by Microsoft. It supports many programming languages and has a rich ecosystem of extensions. ### Unix Like Environments For programming, especially in scientific computing, a Unix-like environment (Linux, MAC or WSL) is often preferred due to its powerful command line tools and compatibility with many programming languages and libraries. For Linux and MAC users, you can use the terminal directly. For Windows users, Windows Subsystem for Linux (WSL) provides a convenient way to run a Linux environment within Windows. One of the biggest challenges for beginners is transitioning from the familiar graphical user interface (GUI) to the command line. While GUIs are intuitive and visual, the command line offers unparalleled efficiency and control. Learning to use the terminal might feel daunting at first, but it's essential for programming because many tasks, such as running scripts, managing files, or automating workflows, are faster and more powerful via commands. Moreover, the command line is crucial for remote work: you'll often need to connect to servers using SSH (Secure Shell), which allows secure access to remote machines (or High Performance Computing clusters) for running computations, managing data, or deploying applications. Mastering these tools will significantly enhance your productivity and open up advanced possibilities in scientific computing. ## Development Environment Components ```{toctree} :maxdepth: 1 vscode wsl linux-basics mambaforge vim-intro ``` ## Summary After setting up your development environment, you can start learning programming. Remember: :::{admonition} Tips for Beginners - Start simple, don't rush - Practice more, try more - When encountering problems, learn to use **AI tools** and online resources to solve them. ::: The next chapter will introduce how to start learning your first programming language.