learn-to-code

Learning To Code: Chapter 02

Reading Time: 4 minutes

The Tools:

Welcome back!  Today we’re going to cover the basic tools we’ll need through this course.  We’re going to keep in simple and easy on your pocket book by using free tools and frameworks.

Operating Systems will we support:

We’ll also be using tools that can be used on any operating system.  With the exception of SQL Server Express which only runs on Windows & Linux.  However our code will also work with MySQL which runs on Windows, Linux & Mac.  Yay!

Here’s the list of tools we’ll be using:

Editors:

Editors come in many flavors with many, many features.  The editor is the tool you will use to write, test and debug your code.  Editors range from basic features as simple as a text/code editor to a full feature IDE (integrated development environment).  Visual Studio 2017 is a full feature IDE offering a ton of bells and whistles.  VS Code is more stripped down.  With VS Code you’ll do some extra grunt work, e.g. type a lot of commands that would otherwise be point & click but the payoff is, you’ll learn a lot more on what’s going on under the hood.

In this course, we’ll give examples for both editors.  You are more than welcome to use a different tool however you’ll be on your own to figure out any of the nuances.

One other thing to note.  We’ll be building our user interfaces with HTML tools and using Angular as framework.  However if you wanted to build the user interface with WinForms or WPF then you’re better off using Visual Studio 2017.

Databases:

At some point we’ll want to store our data and in order to do that use a database.  For most of the lessons we’ll use a SQL (typically pronounced sequel or saying the letters pronouncing it as Ess Que Ell).  Later we’ll take a look at a NoSQL database.

  • SQL Server Express (download here) – windows only
  • MySQL (download here)
  • CouchDB or MongoDb (later in the course)
  • If you don’t want to download a database we’ll also look at using docker

Frameworks & Libraries:

In order to make our code work we’re going to use several popular tools.  The list may seem like a lot but each plays an important role and we’ll take step by step.

  • .net core (download here)
  • C# (pronounced as C sharp – installed w/ .net core)
  • Node.js w/ Npm  (download here)
  • Angular (we’ll installed via npm)
  • TypeScript (installed via npm)
  • Bootstrap (installed via npm)
  • HTML/HTML5 (no need to install)
  • Entity Framework (installed with NuGet)

Utilities:

Source Control:

Often overlooked when learning to code is your source control.  However I feel that it’s an essential part of the process.  One of, if not THE most popular source control systems is Git.  It can be a bit overwhelming at first but once you get the hang of it, it’s simple to use.  We’ll also introduce some tools you can use to make it even easier.

One of the great things source control offers is the ability to create a timeline of your code.  You can see how you got from point A to point B.  It can also be a life saver if you accidentally change some code you didn’t mean to.  You can simply go back to a previous point in time (e.g. a commit).

As you start working on teams, you’ll find using source control invaluable, not only for it’s ability to track the code you’ve spent hours fine tuning but for it’s ability to work in a distributed environment.  This means you can work at home in your PJ’s (no judgement) while others are working in a stuffy office all while working on the same code (even the same file).

What’s Next:

In this course you’re going to learn how to design, develop, test and deploy a web application.  The user interface (what you and users will interact with) will be written in HTML/HTML5, using the Angular 5 framework for functionality.  The middle-ware & business layer (logic layer) which in our case defines a bridge between the user interface through the web and back to the database will be written in the C# language using .net core.  The database will support both SQL Server and MySQL.  Technically it should support other databases such as Oracle or PostgreSQL but I haven’t tested them out.

We’ll install the tools as they are used, so this will allow you to skip a chapter if you feel like you already know it.  Also, I’ll do my best to keep the chapters as self contained units.  For example, when dealing with the initial stages of the UI, we’ll solely focus on the UI without calling on middle-ware pieces.  We might fake or mock them but we won’t suddenly start using them.  When we build the middle-ware pieces I’ll show you how to use some simple tools without connecting them to the UI.   This will technically allow you build either part in the order you choose.  Eventually, this will lead to a chapter that binds to the two or three or more resources into a functional application.

If you can’t wait until the next chapter feel free to get a head start by downloading your editor of choice (or both).  Feel free to install it and play around, try to get familiar with it.  There are a ton of great tutorials out there – hopefully this will become one of them as well.

Until next time, Happy (almost) Coding