// 01. Introduction
The road to becoming a software developer is not an easy one to complete. The road is long and, at times, may feel pointless. You might find yourself asking the question, “Why do I need to know this or that in order to build an app or a website?”. I hope that in this blog series, you will know the reason why, because I am going to tell you.
// 02. Do I need a degree?
Ah, I knew you were going to ask that question. Let me answer this one up front – NO! Now, let me qualify that statement. If your goal is to simply be a software developer, then there are plenty of fine institutions out there that have robust computer science departments that have excellent professors and a student body that is motivated to work hard, learn, and apply virtually every waking moment to learning software development (okay, let’s be honest… some schools may have terrible professors and great students, or terrible students and great professors. Do your homework on the school and choose wisely. Is it necessary? I’d say no. Here is that dirty little secret…
// 03. The Dirty Secret
Many programs just use Lynda.com, SafariBooks Online, and a Learning Management System (LMS) to track student progress. You could go to an institution and incur $70,000+ in financial debt, or you could spend a few hundred dollars on some great books, an annual subscription to Lynda.com, build your repository on Github or Bitbucket and apply for a few software development jobs. There are also several courses on Udemy, Udacity, and TeamTreehouse.com that can get you spun up to be useful on a software development team. This series of mine will hopefully cut your time in the developer cocoon to emerge useful to a team.
// 04. The Overview
Let’s get a 10,000 foot view of the road ahead! In the Basics of C#, you will learn how to literally manipulate electron flow inside a computer using a keyboard and your mind. How freaking cool is that! Okay, before you can build meaningful software, you need to be able to store information, manipulate that information, and organize data to be useful in a program. I am sure neither you, nor anyone else who will use your programs really want to stare at a blank screen…so, we have to learn the basics.
// 05. Why did you say electrons?
Well, ultimately, everything you write in a program will eventually make its way into the form of ones and zeros to a computer. This language is called binary. A one means that something just turned on and a zero..yep, you guessed it…that thing just turned off. We are talking about electricity here, and that, my friend is you wielding the power that influences the flow of electrons. So, let’s talk about those electrons!
// 06. What you will learn
Variables. These are the boxes that will hold electrons. Some boxes might be biased towards electrons that are from Character land, String land, Integer land, Decimal land, etc., so we have to make sure that we are putting the right electrons in the right box, otherwise mister compiler gets pretty mad. Oh, think of mister compiler as your boss.
Reading and Writing to the Console. Think of the console (or Command Line) as your web page or mobile app’s view. Again, unless you want your user to see a blank screen all day long, and maybe that’s your thing, then we need some way to display information to the user and get information from the user.
Converting Data Types. Think of this like a spy infiltrating into enemy territory. Yeah, those electron boxes (variables) can get really picky, and there are other areas within a program that really get on mister compiler’s case if the wrong electrons try to get into the wrong part of town. Hence, we need to figure out how to get our electrons to have a disguise.
Validating Input. There are two rules in software development, and one law…okay, maybe two. Rule one, computers are dumb and they only do what they are told to do. Rule two, users can be dumb too, intentionally or unintentionally, so we need to make sure that when we ask the user for some information, we get exactly what we are looking for or no soup for them!
If-Else Conditionals. At this stage, we have learned how to store our electrons, give them disguises, but now we learn how to bend light, and that’s pretty cool! This is where we ask the box, “hey, if you are this, then do this, otherwise do the other thing.” This could be, if the user said yes, then run this portion of the program, otherwise run this other portion.
Switch Statements. This is just an advanced way of dong the If-Else Conditional. Think higher class.
Loops. This is Groundhog Day for a program. We will go around and around, but with a purpose. The While Loop will be used a lot.
StringBuilder Class. Strings can be a pain in the butt to work with when you are trying to do the things you can do with numbers…oh, wait, what’s a string? It’s a string of characters that can become words, sentences, or an entire stream of electrons from another website. This class is perfect for validating input from a login page, so that’s what we will learn how to do: password, email, and phone input validation.
Menus. Finally, we will build some cool menus for future programs as we learn Object Oriented Programming.
// 07. Conclusion
Once you get through all of this stuff, you can learn how to organize the program in a way that makes the code reusable. I don’t know about you, but I kind of hate retyping things, and that’s a common thing with software developers; so important that we have a term for it: DRY coding, or Do not Repeat Yourself coding. So, buckle your seats, and let’s go!