So, you want to learn how to code. You’re determined. You’re ready. You’re completely lost on where to start.
No problem. That’s what this blog is all about.
Before we start in earnest, let’s talk about the tools you’ll need to learn to code. Today I’ll describe what needs to go into your first toolbox. This toolbox is called a stack or application stack. It outlines the necessary tools needed to code in a specific environment.
I’ll concentrate on a Microsoft centric stack for a few reasons. One reason, and probably the most important reason, is that this stack is used by a large number of enterprise level companies for day-to-day development. It is what you will likely encounter when getting a job as a coder. Another reason is that in my 30 years of development, it has been the stack I used the most. Finally, I’ll concentrate on this stack as there is a huge community of other coders using this stack. You will be able to get answers to your questions without waiting on me to post them.
To start, you’ll need a computer. You might look at that sentence and say “Duh!” but not any computer will work. You don’t need a high-end gaming station. You aren’t playing Baldur’s Gate or a heavy graphical game. But, there are some requirements that will make your coding experience more enjoyable.
First you need a computer with a decent processor with at least 4 cores; six or eight cores would be even better. You need that many cores because Visual Studio and SQL Server benefit from multiple cores. You also need at least 16 GB of memory, 32 GB is better. You’ll need that much memory because you’ll, minimally, have Visual Studio, your application, SQL Server, and a web browser open at the same time. Eight GB of memory will be frustrating with the tools you will be using. Sixteen GB of memory is quite workable. However, thirty two GB of memory will make your development time more comfortable.
Drive space will also be important. The latest long-term supported version of Microsoft Windows is Windows 11. At a minimum Windows 11 takes about 64 GB of space. The other software tools will take up to another 210 GB of space. On a 256 GB drive, that will not leave much room for temp space and documents. I would suggest a 1 TB solid state drive. At a minimum, 512 GB will work, but assume you will be moving files off of your local drive to keep space available. Also, stick with a solid state drive. Avoid spinning disks. Your tool set will grow rapidly. You want them to load quickly.
Finally, as I have mentioned, the latest, long-term support version of Windows is Windows 11. To get the most out of Visual Studio, look at Windows 11 Home or Windows 11 Pro. This gives you the best experience for beginners. Everything will be easier to set up and maintain. It also matches what you would likely encounter as a developer in an enterprise environment.
This all leads to the question, desktop or laptop. I personally use a laptop both at home and at work. Desktops will also work. You need to decide if you value mobility or large monitors. I’m good with a “small” monitor. I have a 17 inch monitor on my laptop. On my desk at work, I have two 32 monitors. I’m fine with the 17 inch monitor when I work remotely. I love having multiple, large monitors. But all I really need is that 17 inch monitor.
Look at the best business-class computer you can afford. Always consider if you need to be mobile when deciding on a laptop or a desktop. You will probably look at spending up to $1,200 for a quality computer. Don’t let cost prevent you from getting into coding. You can find secondhand and refurbished computers that are perfectly usable. There are also organizations who provide technology for low prices.
Before getting into what needs to be in your stack, let’s go over what does not need to be in your stack right now. I’m preparing you to be an entry-level coder, that means you don’t have much, or any development experience. Because of that, you don’t need Linux. It is a useful skill, but Linux is an operating system you really don’t need to know initially. Likewise, you don’t need to know Docker. Docker is a fantastic tool, but it is beyond what an entry-level developer needs to know. You don’t need cloud hosting. I love Azure and Amazon Web Services (AWS). There are fantastic tools there. You can learn that later. Finally, you don’t need paid tools. When you start looking for a job as a developer, you might sign up for the free resources in Azure or AWS. Save your dollars for keeping yourself fed.
Now that I have discussed hardware, let’s look at what you will run on that computer. I’m going to highlight freely available development applications in the preferred stack discussed earlier. For a few reasons, including long-term support, what I’m familiar with, and what you might encounter in an enterprise, I will concentrate on .NET 8 development. .NET is Microsoft’s preferred programming framework. It allows developers to access many core processes in a “sandbox” without having to write many of the tedious processes yourself.
The first tool in the stack you will need is an Integrated Development Environment (IDE). In my preferred stack, that is Visual Studio. For a beginner I recommend Visual Studio Community Edition. This is a free download for students, amateur developers, and small professional teams. Visual Studio is the standard, professional IDE used by most enterprises. The Community Edition is full featured, giving you everything in the Professional edition. There are other perks of buying the Professional edition, but these are not needed as a beginner.
We won’t start with Visual Studio Code. I understand that it is an open source application. I understand that it is the basis of many Microsoft development tools. It is an awesome application. You will likely use it later. Let’s stick with Visual Studio Community. Doing that will better prepare you for an enterprise level position. That will remove a lot of friction you would otherwise encounter.
For data persistence, an SQL server is standard for most work. This is another critical part of your stack. You could use an open-source database like MariaDB or MySQL, but to most closely match what is found in an enterprise environment, use Microsoft SQL Server Express. There is a large community of SQL Server developers who will help you, and there are many free tools available to learn it.
You will need someplace to store your code, called a repository. This is another key part of your stack. The storage could be as simple as an external hard drive or a set of thumb drives, but I don’t suggest that. Even though that storage works, you really need tools for source-code version control and collaboration. For that I suggest GitHub. GitHub is a community-based repository, freely available to developers. It is built on top of the Git source control application. In addition to being a free place to store your code, GitHub also interfaces with Visual Studio as one of the team collaboration tools. There are options, but GitHub is the best to start with as a new developer.
Additionally, GitHub has the benefit of having a desktop application, GitHub Desktop. This gives you all of the controls you need, as either a beginner or an experienced developer, to manage your code repository.
Another important tool for your stack is Postman. This is a tool that allows you to connect to various application programming interfaces (API). You won’t really need to use it immediately, but for true enterprise coding, it is a tool that will save hours, if not days, of design and testing.
To bring this all together, I will be concentrating on two programming techniques to add to your stack, techniques that are complementary. The first technique is Blazor. This is a framework that allows coders to build high performance, interactive web applications. It won’t be the first technique I teach, but it will be the most marketable for a beginning coder.
The second technique is called domain driven design (DDD). This is a technique used to match the logic to the domain, or the targeted subject area. In the case of my professional work, that would be electrical construction or accounting. As we go through my lessons, I will dive into this further. Just understand that the application logic, or rules, will be applied as necessary to meet the requirements with them placed as close to the appropriate objects as possible.
Let’s take all of this and put together a simple checklist we can follow:
- Procure a Windows 11 Home or Pro PC
- Download and Install Visual Studio Community
- Download and Install SQL Server Express
- Create a GitHub Account
- Create a Repository for your first set of code
- Download and Install GitHub Desktop
- Download and Install Postman
- Download and Install the .NET 8.0 Software Development Kit
While this was a lot to cover, don’t worry. You don’t need to master these tools, you just need to get them installed. This post outlines the hardware and software you need to get started. Come back next week. I’ll have a lesson soon where we create a “Hello World” program (). Don’t expect a complex program but do expect to write something that will run. After you have built and successfully run your first application, we’ll begin working on some additional console exercises in preparation for moving on to a Blazor application. I’ll also work on building a community of readers.
As I said in the last post, I’m adopting the mission of teaching coding, especially for my brother and sister veterans. This mission will work better if we have a community. You won’t need to be a veteran to join that community. We will welcome everyone but just expect bad senses of humor and foul language. We were all beginners once; even us dinosaurs.
Russel, still coding.
