Learning CS or CSharp – but mostly C#

Should I Learn C#?

Why should you choose to learn C# out of all the other languages? Perhaps you are trying to decided between it and Java, or Python, or C, or JavaScript, or [insert other great language choice]. Well quite simply you should choose C# to learn now, because C# is the best! … Is what I wish I could say, but truly there are many different programming languages and most have varying pros and cons for many applications. With the disclaimer that there is certainly no “best”, C# has many great features and is a good beginner language. People smarter than I have written great and thorough articles on why to choose C#, linked below is just a small sampling. I didn’t want to repeat them here, but have summarized what I think are some great points below. Additionally, I have included some content to get you on your way learning C#.

Sampling of why you should learn C# references:

Why Learn C#
6 Reasons To Learn C#
If You Had To Start Over Learning…

TL;DR

Common syntax – you’ll get used to {curly braces}. This should help make it easier for you to read other curly brace languages, at least enough to get the gist of what the code is doing. This is very helpful, as sometimes you will only be able to find code examples in other languages, so being able to quickly interpret other code and get your C# code underway is a big bonus.

High level language – takes care of a lot of the little details and lets you get going. Now this isn’t to say it handles everything for you, but you will get good mileage.

Huge community – If you are unfamiliar with Stack Overflow, you soon won’t be! C# has the 4th largest community on Stack Overflow. This means if you have a problem, someone else probably has had it too, and you can find a solution here quickly.

You can write pretty much anything, anywhere – Microsoft loves open source if you hadn’t heard! With the release of .Net Core, and Visual Studio – Code you can now program C# on any platform in Microsoft’s “best” C# IDE Visual Studio. This means yes to Windows, Mac OS X, and Linux; and this means yes to desktop, web, and mobile applications.

Getting Started Learning C#

Everyone learns differently so I’m going to include a couple different methods for learning C# which hopefully you will find useful.

I got started learning C# with the course C# For Beginners on Microsoft Virtual Academy. Microsoft Virtual Academy has a plethora of free content to help anyone at any level get underway with many Microsoft technologies, and the best part is it is all free! This is probably the best way to get your feet wet with C#, it has around 8 hours of video tutorials, split into 24 modules, with 21 assessments. The 24 modules are great for when you are busy and can’t allocate a big chunk of time to learning all at once. Just complete a module or two when you can.

Now I haven’t tried this one myself, but if you tend to learn more through reading another free learning service by Microsoft is Getting Started with C#. This text based tutorial appears to cover many of the same topics as the Microsoft Virtual Academy course. This could also be a great option for learning on the go on your mobile or if you live in a region with slow or intermittent internet access. These tutorials will even get you coding C# right in the browser, no need to download anything!

Well there you have it, you should consider learning C# as it has a bright future and seems like it should be an in demand language for years to come. Microsoft’s recent moves to open source the .Net Framework and huge cross platform support will only increase C#’s popularity.

I hope that the links above help you get started on C# and stay tuned for how to take your C# skills to the next level!

Note: When you are ready to take your C# to the next level check out my next blog post for you here : C# – Advanced Foundations

Thanks for reading,

Thomas


Pssssst!
If you want to type a ‘#’ in a markdown header, switch to using HTML tags:
“<h2> Should I Learn C#? </h2>”

Thomas’s First Tech Blog Post

Now for the content, hold onto your seats people. As a big podcast fan I often heard the benefits of sharing your knowledge from many people, such as Scott Hanselman and Jon Sonmez. They preach that sharing your journey will not only help you retain what you are learning, create an excellent portfolio, but you may also help/inspire someone else to tackle new challenges.

So I decided to leap and started this blog a little over a month ago, but like anyone who likes to tinker with technology, I took the long road.

Domains, Hosting, Servers, CMS, Oh WOW

The first technical challenge which will siphon hours of Google research is where will your blog live??

I knew I wanted my own domain and settled on Namecheap because they had the best value for domain registration and email hosting. Some services offer many more features, but seeing as I will not be requiring a lot of features for this simple blog, Namecheap’s offering was perfect.

Following my domain purchase and email setup, I stared down the barrel of hosting options and blogging platforms.

I reviewed hosting with Dreamhost, Digital Ocean, and a few others. I reviewed VPS options like Azure, and Linode (wouldn’t it be fun to admin a Linux server!). And I considered your classic WordPress, and the new blogging focused Ghost platforms. But at the end of the day, I didn’t really want to have to start paying for a hosting subscription at the start, and then I stumbled upon Github Pages.

Github Pages and Static Site Generators

Github Pages will serve the content in a Github repository as a website, with the catch that everything in the repository has to be static. So while you could create the content and HTML of each page, you can use a static site generator to take care of the HTML for you!

Now here is where the real fun begins, choosing a static site generator. StaticGen tracks the top Open-Source static site generators and their list contains well over 100!

Hexo.io was my first static generator. I chose Hexo, because it ranked high on the list of generators and runs a node.js server. I do not have much experience with JavaScript, but I felt that if I needed to code something to go along with node.js it would be good experience. Unfortunately, my love of Hexo was short lived. They have great tutorials, and I was able to get my site up very quickly, but when I wanted to dig into the theme and make some changes things got tricky. Hexo themes use either the template language EmbeddedJavaScript (EJS) or Swig, and I’m currently not interested in learning either of these. Thus, while I was able to get my Hexo site up and running smoothly, I didn’t want to tackle their foreign templating language just to make theme changes.

So I moved onto the next generator.

Seeing that some experience with the underlying language may be advantageous I decided to try Wyam.io next. Wyam is a static content generator written entirely in .NET, and allows for templating in Markdown and Razor. I used Wyam for a couple of days before deciding it was too complex. Wyam is a lot more than just a static site (simple blog) generator. Wyam is used by chaining together flexible modules to produce your end product, and while you can create a website this way it seemed like overkill (to me).

Finally, I stumbled upon goHugo.io (another .io)! Hugo is very similar to Hexo. Both have great documentation, easy setup guides, and awesome themes. Hugo was different for me because the entire application is written in Go. While Go is vastly less popular than JavaScript, I have been trying to find time to use Go all year. Hugo’s themes use Go templating and they have a great primer in their documentation. So far the minor changes I have wanted to make have been pretty simple. It feels more like I’m making simple HTML changes, with the power of Go objects and conditionals. Finally, another important aspect to me was that with Hugo you create your content in Markdown files.

There you have it, a short summary of the meandering trail I took to get here.

If you have any questions about my choices feel free to reach out to me with any of the links below.

Thanks for reading,

Thomas