<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: nineismine</title>
    <description>The latest articles on Forem by nineismine (@nineismine).</description>
    <link>https://forem.com/nineismine</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F298540%2F0d05d228-78c7-4fe2-b2df-6b57f8655382.jpeg</url>
      <title>Forem: nineismine</title>
      <link>https://forem.com/nineismine</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/nineismine"/>
    <language>en</language>
    <item>
      <title>Demystifying Methods and Functions in C# - When should I use them?</title>
      <dc:creator>nineismine</dc:creator>
      <pubDate>Tue, 18 Feb 2020 03:15:48 +0000</pubDate>
      <link>https://forem.com/nineismine/demystifying-methods-and-functions-in-c-when-should-i-use-them-3jen</link>
      <guid>https://forem.com/nineismine/demystifying-methods-and-functions-in-c-when-should-i-use-them-3jen</guid>
      <description>&lt;p&gt;When shoul&lt;/p&gt;
&lt;h3&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GqL2MBz4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.thedevelopingdeveloper.net/wp-content/uploads/2020/02/images.jpeg" alt="" width="299" height="168"&gt;&lt;/h3&gt;

&lt;h3&gt;&lt;span id="When_should_I_create_a_new_method"&gt;When should I create a new method when programming in C# (or other languages)?&lt;/span&gt;&lt;/h3&gt;

&lt;p&gt;Often as a software engineer you will be faced with the question of… “When should I create a new method?”&lt;/p&gt;

&lt;p&gt;The simple answer is: "When you encounter a verb."&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h5&gt;What's that? A Verb? I hated English class!&lt;/h5&gt;

&lt;p&gt;Don't worry! I hated it English class too!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.lexico.com/en/definition/verb"&gt;To break this down let's start with a definition of a verb.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VERB&lt;/strong&gt;&lt;br&gt;
a word used to describe an action, state, or occurrence, and forming the main part of the predicate of a sentence, such as hear, become, happen.&lt;/p&gt;

&lt;p&gt;OK so what do verbs have to do with programming?&lt;/p&gt;

&lt;h2&gt;Let’s break that down a bit!&lt;/h2&gt;

&lt;p&gt;Let's say that we wanted to create a program with a player character, and of course when we have a player, we probably want to have that player do stuff right?&lt;br&gt;
One of the things that we want to do might be to have the player move around. We might have a system where we trap the screen refresh or maybe we have a timer ticking.&lt;/p&gt;

&lt;p&gt;Whatever the case might be we have created an update method that runs at some interval and named it Update().&lt;/p&gt;

&lt;p&gt;In our program we are going to create a method called MoveCharacter(). We could just add the movement code to the Update() method but then later in our program, we might need to write the exact same code again (if we need to move again).&lt;/p&gt;

&lt;p&gt;This is a somewhat simple example but this type of situation comes up a lot when you are programming.&lt;/p&gt;

&lt;p&gt;Over my years of doing computer programming I have often asked myself if whatever I was working on should be contained in a more general method. (like Update)&lt;/p&gt;

&lt;p&gt;This question gets easier when you start to think of the programming terms like sentences. When we start to think of examples of things we do as programmers in these kinds of terms it removes the guess work.&lt;/p&gt;

&lt;p&gt;When it comes to deciding on when to create a new method you can can think of  the methods as verbs. “Brad wants to run”, “Brad attacks”…. In both of these sentences, if we are writing code to make our player do some action, it makes sense to create a method for both verbs.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h2&gt;Let’s take this one step farther now.&lt;/h2&gt;

&lt;p&gt;Let’s say that we want to write this code to handle PlayerMovement or “Move” (Player) if we are keeping with the Verb reference.&lt;/p&gt;

&lt;p&gt;Each time we get a frameUpdate, we want to evaluate if the user pressed a button to tell the computer to Move() (our verb!).&lt;br&gt;
What might happen in the Move() method then?&lt;br&gt;
Well as we discussed earlier, when we move, we need change our players X and Y position.&lt;/p&gt;

&lt;pre&gt;void MoveCharacter()
{


player.MovePostion(currentPostion +change)


}&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;So when we Move(), we are actually telling the computer to move our player, some amount of degrees X, and move our player some amount of degrees Y. (There are those dang verbs again!)&lt;br&gt;
We can boil that down to MoveX and MoveY. (TWO Verbs!)&lt;/p&gt;

&lt;p&gt;If we look back at the psuedocode above, what do we see ?&lt;/p&gt;

&lt;p&gt;We have a method that Moves the character and inside of it we have ANOTHER method call, which handles our MoveX and MoveY.&lt;/p&gt;

&lt;p&gt;Why is there another method there? Because we encountered another verb. (MoveX and MoveY)&lt;/p&gt;

&lt;p&gt;I can’t say that this is a hard and fast rule because when it comes to programming, there will always be exceptions to every rule. But if you can take that simple statement with you then you have a good baseline to answer the question.&lt;/p&gt;

&lt;p&gt;“When should I create a new method?”&lt;/p&gt;

&lt;p&gt;Hope that helps this next part make a little more sense for you!&lt;/p&gt;

&lt;p&gt;If you like this content , or it helped you to develop your skills... &lt;a href="https://www.thedevelopingdeveloper.net/"&gt;head on over to my blog&lt;/a&gt;.. Follow me on social media.. there is plenty more where this came from!&lt;/p&gt;

</description>
      <category>csharp</category>
      <category>beginners</category>
      <category>codenew</category>
    </item>
    <item>
      <title>Create your first game using Unity and C# – Part 2 Creating your first script to handle player movement.</title>
      <dc:creator>nineismine</dc:creator>
      <pubDate>Tue, 18 Feb 2020 02:24:29 +0000</pubDate>
      <link>https://forem.com/nineismine/create-your-first-game-using-unity-and-c-part-2-creating-your-first-script-to-handle-player-movement-915</link>
      <guid>https://forem.com/nineismine/create-your-first-game-using-unity-and-c-part-2-creating-your-first-script-to-handle-player-movement-915</guid>
      <description>&lt;p&gt;&lt;a href="https://www.thedevelopingdeveloper.net/2020/02/16/create-your-first-game-using-unity-and-c-part-1-getting-your-environment-set-up-and-importing-some-art/2020-02-16_7-16-33/" rel="attachment wp-att-950 noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F02%2F2020-02-16_7-16-33-213x300.png" alt="Character with collider"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;&lt;/h1&gt;

&lt;h1&gt;How to build a game in Unity and C# part 2 - Player Movement.&lt;/h1&gt;

&lt;p&gt;In the last tutorial we got our environment set up and worked through the process of adding a player character to our project. Now we are going to start doing some of the real work. Today we are going to learn how to build a game in Unity and C# .&lt;/p&gt;

&lt;p&gt;In this lesson we will learn how to :&lt;/p&gt;

&lt;ol&gt;
    &lt;li&gt;Add physics to our Player object&lt;/li&gt;
    &lt;li&gt;Add collision to the Player (so that he doesn't just run through walls)&lt;/li&gt;
    &lt;li&gt;Write the code that allows our player to move.&lt;/li&gt;
    &lt;li&gt;Test that our character can walk freely around our empty scene.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;Lets add some physics!&lt;/h2&gt;

&lt;p&gt;In the last lesson we added a player object to our "Hierarchy" window. In this section we will add physics to our player by adding what's called "RigidBody" to our character.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.thedevelopingdeveloper.net/2020/02/16/create-your-first-game-using-unity-and-c-part-1-getting-your-environment-set-up-and-importing-some-art/2020-02-16_13-08-40/" rel="attachment wp-att-985 noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F02%2F2020-02-16_13-08-40-300x137.jpg" alt="Name your new object"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h3&gt;&lt;/h3&gt;

&lt;h3&gt;
&lt;strong&gt;A&lt;/strong&gt;&lt;strong&gt;dd a RigidBody component to the player object&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Find the player in the Hierarchy and select it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Next look to the Inspector widow, at the bottom you should see a button..&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Press the "Add component" button.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Select the RigidBody2D item from the menu.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rigidbodies&lt;/strong&gt; enable your  &lt;span&gt;&lt;strong&gt;GameObjects&lt;/strong&gt;&lt;/span&gt;  to act under the control of physics. The Rigidbody can receive forces and torque to make your objects move in a realistic way. Any GameObject must contain a Rigidbody to be influenced by gravity, act under added forces via scripting, or interact with other objects.&lt;/p&gt;

&lt;p&gt;Make sure the player is still selected in the hierarchy window and add another component&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Press the Add Component button&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Add a Box Collider 2D Component  &lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;(be sure that the component that you add is a Box Collider 2D not the other one)&lt;/p&gt;

&lt;p&gt;Modify the collider to surround your players feet. This particular collision will be used to make sure that your character isn't able to walk through blocks or other terrain while moving around the map.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;With the player selected in the Hierarchy &lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Select the Box Collider from the Inspector &lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Then hit the Edit Collider button. &lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A green box that surrounds your character will appear it has little squares on it which you can drag to resize your collision.&lt;/p&gt;

&lt;p&gt;You can make this as big or as small as you want , but for right now you should make it look like mine. (Below)&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F02%2F2020-02-16_7-16-33-213x300.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F02%2F2020-02-16_7-16-33-213x300.png" alt="Character with collider"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h2&gt;&lt;strong&gt;Make a script for the player movement.&lt;/strong&gt;&lt;/h2&gt;

&lt;h3&gt;Add the script&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Find the project Window &lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Select the Scripts Folder &lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Right click on it &lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Select Create from the menu and C# Script from the menu that opens &lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Be sure to name the Script at this time&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Name it PlayerMovement.cs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here is what it looks like initially.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F02%2FSnag_62fa10e-300x148.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F02%2FSnag_62fa10e-300x148.png" alt="Viewing the script in the project window. "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Double click on the script in the project window&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you followed the instructions in the last Tutorial you will have set the External Editor to Visual Studio and when you double click the new script Visual Studio will open.&lt;/p&gt;

&lt;p&gt;You should now be looking at the project in Visual studio.&lt;/p&gt;

&lt;p&gt;If it didn't open &lt;a href="https://www.thedevelopingdeveloper.net/2020/02/16/create-your-first-game-using-unity-and-c-part-1-getting-your-environment-set-up-and-importing-some-art/" rel="noopener noreferrer"&gt;please refer to my last article&lt;/a&gt; and find the section on opening your External Editor.&lt;/p&gt;

&lt;h3&gt;Modify the Script in Visual Studio&lt;/h3&gt;

&lt;pre&gt;using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}&lt;/pre&gt;
First change the "class name" to match the name in the unity editor (this is important the script name MUST match the class name. More on this below)

Change this line:
&lt;pre&gt;public class NewBehaviourScript : MonoBehaviour&lt;/pre&gt;
to:
&lt;pre&gt;public class playerMovement: MonoBehaviour&lt;/pre&gt;
In Unity  when you create a script the class name must match the script name EXACTLY. If you do not do this correctly then you will get an error which says :
&lt;pre&gt;"Cant Add Script - "Can't add script behaviour VisualContainerAsset",
Can't Add Script "The script needs to derive from MonoBehaviour!"&lt;/pre&gt;
**You won't see this error though until you attempt to add the script to the player model later in this tutorial.**
&lt;h2&gt;Let's add our script to our player!&lt;/h2&gt;
&lt;strong&gt;Open Unity back up (make sure you save all the work you did in Visual Studio)&lt;/strong&gt;

&lt;strong&gt;Find the Hierarchy window&lt;/strong&gt;

&lt;strong&gt;Select your player from the Hierarchy&lt;/strong&gt;

&lt;strong&gt;Now direct your attention to the Project view&lt;/strong&gt;

&lt;strong&gt;Find your scripts folder&lt;/strong&gt;

&lt;strong&gt;Select it and then select your PlayerMovement script&lt;/strong&gt;

&lt;strong&gt;Drag the newly created script to the Inspector window. &lt;/strong&gt;

If you did it correctly you will now see a new component in the inspector window named Player Movement (Script)
&lt;h2&gt;Coding the Player Movement&lt;/h2&gt;
Now that we have a script we need to do a few things to handle the movement.
&lt;ol&gt;
    &lt;li&gt;Create variables.&lt;/li&gt;
    &lt;li&gt;Set their initial values&lt;/li&gt;
    &lt;li&gt;Modify them as required for the program.&lt;/li&gt;
    &lt;li&gt;Attach the script to an object in the editor.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Let's talk about variables! - (explanation)&lt;/h2&gt;
If you are working on this tutorial without a solid programming background. Understanding the code in a necessary part of learning to build a game in Unity and C#. You might find the use of public and private in front of the variables we are instantiating here a little confusing. Everything in this section is general knowledge about variables. If you want to just get the code thats going in the game... skip to the next section.

Without going into to much detail, let's just review a couple things about variables and how they are used in C#.
&lt;ul&gt;
    &lt;li&gt;Variables must be "declared".
&lt;ul&gt;
    &lt;li&gt;When you declare a variable you tell the compiler what the access level is "Public" Or "Private". Knowing how and when to use these is a whole topic in itself.
&lt;ul&gt;
    &lt;li&gt;When it comes to Unity you can get by knowing only this much (below) about "Public / Private"
Public variables will be available to modify in the Unity inspector.. private will not.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
    &lt;li&gt;In general you will declare the TYPE of a variable when you instantiate it. This is what determines what kinds of values can be stored in the variable.
&lt;ul&gt;
    &lt;li&gt;Often we think of a variable as single type like &lt;strong&gt;&lt;em&gt;public int myNumber = 10; &lt;/em&gt;&lt;/strong&gt; but you can also declare a variable to hold an entire object. An object could be much more complex than a standard variable. It could be a whole range of values. Like for instance the Player that we are creating... at some point we will probably want to give this object some properties that separate him from other objects. The properties are one of the reasons that we use classes in C#. A claa is simply an object and the object acts like a container for these properties.&lt;/li&gt;
    &lt;li&gt;Our player might have
&lt;ul&gt;
    &lt;li&gt;a name                        public string name = "chad";&lt;/li&gt;
    &lt;li&gt;hit points                     public int hitPoints = 10000000000000000;&lt;/li&gt;
    &lt;li&gt;lives                             public int remLives = 9;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
    &lt;li&gt;All of the values could be contained in a "class" class Player()
&lt;pre&gt;class Player()
{

    public string name = "chad";
    public int hitPoints = 100000000000;
    public int remLives = 9;
  

}

&lt;/pre&gt;




&lt;/li&gt;


    &lt;li&gt;Now that we have a class we can create a variable to hold the entire object. This is not a totally correct example but as long as you understand that a variable declaration can look a couple different ways you should be good to go for the rest of this .

&lt;pre&gt;public Player myPlayer = new Player();

myPlayer.name = "Chad"; 
myPlayer.hitPoints = 99999999999999999999;
myPlayer.remLives = 99999999999999999;

&lt;/pre&gt;




&lt;/li&gt;


&lt;/ul&gt;


&lt;/li&gt;


    &lt;li&gt;You are able to give the variable a value when you declare it, but you do not have to.&lt;/li&gt;


    &lt;li&gt;Variables must be assigned in order to use them.&lt;/li&gt;


&lt;/ul&gt;


&lt;/li&gt;


&lt;/ul&gt;
&lt;br&gt;&lt;br&gt;
Ok so back to the Public private thing....

&lt;p&gt;More specifically what that means is , once you add a script to an object in Unity. You can add variables to that script. In creating these variables you make a choice to either declare them public or private. A public variable will have a graphical representation in the editor that you can change via the Unity inspector interface. (see below)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F02%2F2020-02-16_9-32-15-281x300.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F02%2F2020-02-16_9-32-15-281x300.jpg" alt="view of public properties "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;As you can see above. The speed variable can be increased or reduced in the GUI.&lt;/p&gt;

&lt;p&gt;When you make a change to a public variable in the GUI, the game will apply this value at runtime every time you start the game. If you make changes to this value in the code though, that change happens after the intial start and will now be the new value. (until you restart the game)&lt;/p&gt;

&lt;h2&gt;Let's assign our variables&lt;/h2&gt;

&lt;p&gt;OK so now that we have reviewed how to use variables let's get back to building this movement script.&lt;/p&gt;

&lt;p&gt;Assign the three variables that we are going to need.&lt;/p&gt;

&lt;p&gt;We need a value to hold our:&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;Speed&lt;/li&gt;
    &lt;li&gt;A reference to the RigidBody that we added earlier&lt;/li&gt;
    &lt;li&gt;A value to tell Unity the change in position that we are expecting.&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;public class PlayerMovement : MonoBehaviour

{

    public float speed;

    private Rigidbody2D myRigidbody; //rigidBody gives the player physics 

    private Vector3 change; // the value we will use to tell unity where we moved 

 

    // Start is called before the first frame update

    void Start()

    {
        

    }&lt;/pre&gt;
**note RigidBody2D is a class and has several values attached to it. **
&lt;h3&gt;Get a reference to the Rigidbody component that we set up earlier.&lt;/h3&gt;
Now that we have the Rigidbody reference we need to populate it. We do this by adding a statement to the void Start() method.

Since Start() is called only once and at the beginning of an objects existence it only makes sense to do our initial setup for things in this method.

We can do this by using the built in Unity function named &lt;strong&gt;GetComponent&amp;lt;Rigidbody2D&amp;gt;();&lt;/strong&gt;

What this is going to do is look for the component that we named between the brackets, is it exists in the object to which we attach this script. (our player)

When we attach this script to the Player object. Unity knows that it should look at the collection of components (attached to player) and find the one that matches what is between the &amp;lt; &amp;gt;.

In other words we are telling Unity to look at the Player, and store a reference to the component named &lt;strong&gt;RigidBody2D&lt;/strong&gt; in the value myRigidbody.
&lt;h3&gt;&lt;/h3&gt;
&lt;h2&gt;Whats is happening with this change variable? - (explanation)&lt;/h2&gt;
**In this section all of the code is for explanation purposes. You do not need to use any of this code in your script.&amp;amp;&amp;amp;

Next we assign our change variable. Because this is something that will be constantly changing we choose to do this in the Update() method. (In this case we are working on player movement so logically you would have the game checking for movement each frame. In other words, we are going to check for key input ,which tells the game which direction we are heading. When we get a command we will run a routine to animate the character (animation will be covered in the next article), and move them in the desired direction. This is stored in the change variable  )

If that wasn't clear.... in the update method we will:
&lt;ul&gt;
    &lt;li&gt;set change to zero once per frame&lt;/li&gt;
    &lt;li&gt;check for movement&lt;/li&gt;
    &lt;li&gt;normalize the input (im not going into this too much just trust that we did it)&lt;/li&gt;
    &lt;li&gt;Have the character move to the new position&lt;/li&gt;
&lt;/ul&gt;
The change variable is just a set of values that represent changes to the players coordinates.

Something important to note here is that Vector2 is class. It contains a set of coordinates X and Y.

Unity will modify these coordinates to apply a simple movement algorithm.

You can think of this like an x and y on a graph. Moving in any direction one point results in a change in the x and y which is either positive or negative.

 

&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fencrypted-tbn0.gstatic.com%2Fimages%3Fq%3Dtbn%253AANd9GcR8wyvVEqGe5V6fZgtptng4CzvlxTzNOO4aPHrjAnpZQqJ9LUni" alt="Image result for x and y graph"&gt;

As we mentioned Vectors are classes and one Vector has multiple values assigned to it . These coordinates can be changed as you see below.
&lt;pre&gt;Vector2 change;

change.X = new value

change.Y = new value&lt;/pre&gt;
You do not have to change both values but each change represents movement on the graph.

In our code (which is below in full)  we are going to use some Unity libraries to get input in the form of keys pressed from the player. We will then covert that to our change variable. Don't think about this too hard right now, it just works. But later were going to use that movement along with another Unity function called MovePosition().

MovePostion() will take that change value that we stored and a couple other values to figure out where the player is moving and how fast.
(WASD  or the arrow keys are tracked within unity and are converted to movement (change data))
&lt;h2&gt;Make the changes to the change variable&lt;/h2&gt;
(This section might be hard to understand because there is a lot going on here and Unity is handling a lot of things for us with built in functions.

I will do my best to explain what is happening here, if you don't fully understand it you can always come back later and play around with it until you do.)

Now were going to tell Unity to make changes when the player moves.

We're also going to add a Debug statement to the log so we can view the changes that occur due to movement in the Unity Console.

Here is what our code looks like at this point.
&lt;pre&gt;using System.Collections;

using System.Collections.Generic;

using UnityEngine;

 

public class PlayerMovement: MonoBehaviour

{

    public float speed;

    private Rigidbody myRigidbody; //rigidBody gives the player physics 

    private Vector2 change; // the value we will use to tell unity where we moved 

    
    // Start is called before the first frame update

    void Start()

    {

        myRigidbody = GetComponent&amp;lt;Rigidbody&amp;gt;(); //add the rigidbody component to this script for use later. 

    }

 

    // Update is called once per frame

    void Update()

    {

        //Zero out the change

        change = Vector2.zero;
        

        //Get the current x and y as points on a graph

        change.x = Input.GetAxisRaw("Horizontal");

        change.y = Input.GetAxisRaw("Vertical");

        //print the change to the console 

        Debug.Log(change);
 

    }

}
&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;Input the code and then save your work  in Visual Studio. &lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Go back to the Unity Editor&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Select your player by either clicking on the sprite or selecting the node named "Player" in the Hierarchy tab of Unity.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;Let's talk about the code that makes the player move..(explanation of functions/ methods)&lt;/h2&gt;

&lt;p&gt;OK guys we are almost done with this lesson but before we finish up let's talk about what we are about to do and then let's get it done and tested!&lt;/p&gt;

&lt;p&gt;In the next section we are going to write our first "method". Methods , functions, sub routines.. these are all terms that get thrown around in programming but they are all basically the same thing.&lt;br&gt;
A method is a bit of code that you can call from somewhere in your program. When it is called, the code inside the method will be processed. When the code inside the method is finished executing, the program will resume execution where the method was called. The next line of code after the method was called will then execute.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h3&gt;When should I create a new method?&lt;/h3&gt;

&lt;p&gt;Often as a software engineer you will be faced with the question of... "When should I create a new method?"&lt;/p&gt;

&lt;p&gt;The simple answer is: When you encounter a verb.&lt;/p&gt;

&lt;p&gt;Let's break that down a bit!&lt;br&gt;
In our program we are going to create a method called MoveCharacter(). We could just add the movement code to the Update() method but then later in our program we might need to write the exact same code again (if we need to move again).&lt;/p&gt;

&lt;p&gt;When it comes to deciding on when to create a new method you can can think of them as verbs. "Brad wants to run", "Brad attacks".... In both of these sentences, if we are writing code to make our player do some action it makes sense to create a method for both verbs.&lt;/p&gt;

&lt;p&gt;Let's take this one step farther now.&lt;/p&gt;

&lt;p&gt;Let's say that we want to write this code to handle PlayerMovement or "Move" (Player) if we are keeping with the Verb reference.&lt;/p&gt;

&lt;p&gt;Each time we get a frameUpdate, we want to evaluate if the user pressed a button to tell the computer to Move() (our verb!).&lt;br&gt;
What might happen in the Move() method then?&lt;br&gt;
Well as we discussed earlier, when we move, we need change our players X and Y position.&lt;/p&gt;

&lt;pre&gt;void MoveCharacter()
{

     player.MovePostion(currentPostion +change) 

}&lt;/pre&gt;
So when we Move(), we are actually telling the computer to move our player, some amount of degrees X, and move our player some amount of degrees Y. (There are those dang verbs again!)
We can boil that down to MoveX and MoveY. (TWO Verbs!)

If we look back at the psuedocode above, what do we see ? We have a method that Moves the character a,nd inside of it we have ANOTHER method call, which handles our MoveX and MoveY.

Why is there another method there? Because we encountered another verb. (MoveX and MoveY)

I can't say that this is a hard and fast rule because when it comes to programming, there will always be exceptions to every rule. But if you can take that simple statement with you then you have a good baseline to answer the question.

"When should I create a new method?"

Hope that helps this next part make a little more sense for you!
&lt;h2&gt;Writing the movement code.&lt;/h2&gt;
OK so here it is.. all of the code we need for (now anyway) our player movement.
&lt;pre&gt;using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
    public float speed;
    private Rigidbody2D myRigidbody; //rigidBody gives the player physics 
    private Vector3 change; // the value we will use to tell unity where we moved 


    // Start is called before the first frame update
    void Start()
    {
        myRigidbody = GetComponent&amp;lt;Rigidbody2D&amp;gt;(); //add the rigidbody component to this script for use later. 
    }

    // Update is called once per frame
    void Update()
    {
       
        //Zero out the change
        change = Vector3.zero;
         //Get the current x and y as points on a graph
        change.x = Input.GetAxisRaw("Horizontal");
        change.y = Input.GetAxisRaw("Vertical");
        //print the change to the console 
        Debug.Log(change);
        if (change != Vector3.zero)
        {
            MoveCharacter();
        }

    }
    void MoveCharacter()
    {
        //transform.position is the player position
        // add the "change" (x and y modifications) 
        //Time.Delta is the amount of time that has passed since the previous frame 
        //So what we are saying here is: Move my character TO my current poistion + the changes I asked to make (direction) * my current speed * the amount of time that has passed.
        //this last piece about the time change is to make it look more smooth when your character moves. 
        myRigidbody.MovePosition(transform.position + change * speed * Time.deltaTime);
    }

}&lt;/pre&gt;
&lt;h3&gt;Breaking the code down&lt;/h3&gt;
Each frame  (the update() method)
&lt;pre&gt;void Update()
    {
       
        //Zero out the change
        change = Vector3.zero;
         //Get the current x and y as points on a graph
        change.x = Input.GetAxisRaw("Horizontal");
        change.y = Input.GetAxisRaw("Vertical");
        //print the change to the console 
        Debug.Log(change);
        if (change != Vector3.zero)
        {
            MoveCharacter();
        }
&lt;/pre&gt;

&lt;p&gt;Let's get our change x and change y and store it as our change variable.&lt;/p&gt;

&lt;pre&gt;change = Vector3.zero;
         //Get the current x and y as points on a graph
        change.x = Input.GetAxisRaw("Horizontal");
        change.y = Input.GetAxisRaw("Vertical");&lt;/pre&gt;
log to the console the change values
&lt;pre&gt;Debug.Log(change);
&lt;/pre&gt;

&lt;p&gt;and IF our change value is not 0 (&lt;a href="https://www.thedevelopingdeveloper.net/2020/02/14/understanding-the-c-if-statement/" rel="noopener noreferrer"&gt;you can read up on if statements an expressions here&lt;/a&gt; )&lt;/p&gt;

&lt;pre&gt;if (change != Vector3.zero)
       {
           MoveCharacter();
       }&lt;/pre&gt;
THEN MoveCharacter()

Within the Move character we use a unity function to Move an object to the given position.

There is some other math happening here but I'm not going to go into that today.
&lt;pre&gt;void MoveCharacter()
  {
      //transform.position is the player position
      // add the "change" (x and y modifications) 
      //Time.Delta is the amount of time that has passed since the previous frame 
      //So what we are saying here is: Move my character TO my current poistion + the changes I asked to make (direction) * my current speed * the amount of time that has passed.
      //this last piece about the time change is to make it look more smooth when your character moves. 
      myRigidbody.MovePosition(transform.position + change * speed * Time.deltaTime);
  }
&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h2&gt;Finally! We are done and we can test.&lt;/h2&gt;

&lt;p&gt;Go back to the unity editor.&lt;/p&gt;

&lt;p&gt;Hit play!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.thedevelopingdeveloper.net/2020/02/17/build-a-game-in-unity-and-c-create-your-first-game-learn-net-by-building-a-2d-game/2020-02-17_16-11-20/" rel="attachment wp-att-1008 noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F02%2F2020-02-17_16-11-20-300x215.jpg" alt="Hit the play button"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Your scene should start and now you should be able to see the first fruits of your labor.&lt;/p&gt;

&lt;p&gt;Try using the arrows keys or the WASD keys to move around. Your player should move around the screen!&lt;/p&gt;

&lt;h3&gt;One last thing for fun!&lt;/h3&gt;

&lt;p&gt;OK stop your game by pressing the Play button again.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Now go to your Hierarchy view &lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Select your player from the hierarchy window. (Or click on him in the scene)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Look over to the inspector and find the Player Movement (Script) component.&lt;/p&gt;

&lt;p&gt;As I mentioned earlier , because we made the speed variable public we can modify it in this view.&lt;/p&gt;

&lt;p&gt;Just for fun change it to 44. Hit play again and now try to move.&lt;/p&gt;

&lt;p&gt;If everything is working properly then you should run "a bit" faster than you did earlier.&lt;/p&gt;

&lt;p&gt;I hope you had fun learning how to build a game in Unity and C#&lt;/p&gt;

&lt;p&gt;If you like this series and want to see more &lt;a href="https://www.thedevelopingdeveloper.net/" rel="noopener noreferrer"&gt;head on over to my blog &lt;/a&gt;and sign up for my mailing list of leave me a comment.&lt;/p&gt;

&lt;p&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>gamedev</category>
      <category>beginners</category>
      <category>csharp</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Create your first game using Unity and C# - Part 1 Getting your environment set up and importing some art.</title>
      <dc:creator>nineismine</dc:creator>
      <pubDate>Mon, 17 Feb 2020 01:59:21 +0000</pubDate>
      <link>https://forem.com/nineismine/create-your-first-game-using-unity-and-c-part-1-getting-your-environment-set-up-and-importing-some-art-2n0i</link>
      <guid>https://forem.com/nineismine/create-your-first-game-using-unity-and-c-part-1-getting-your-environment-set-up-and-importing-some-art-2n0i</guid>
      <description>&lt;h2&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TQQL6ooA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://unity.com/logo-unity-web.png" alt="Image result for unity" width="720" height="412"&gt;&lt;/h2&gt;

&lt;h2&gt;&lt;/h2&gt;

&lt;h2&gt;Creating your first game in Unity and C#&lt;/h2&gt;

&lt;p&gt;This series of articles will guide you through the steps to create your first game using the Unity engine and C#. Throughout the course of this article we will be focusing mainly on the Unity engine.  In order to get this thing to work though, we are going to need to write a good deal of C# code. I am approaching this article with the idea that users will have basic programming knowledge but are new to the Unity platform.&lt;/p&gt;

&lt;p&gt;Because learning Unity is such a big task, we will not be covering the basic parts of computer programming in this article.  I will do my best to provide links to those concepts at a later date! For this tutorial we are going to work with a 2D project to make the early steps of learning the engine a little less complicated.&lt;/p&gt;

&lt;p&gt;By the end of this module you will have learned about:&lt;/p&gt;

&lt;ol&gt;
    &lt;li&gt;How to create a 2D project&lt;/li&gt;
    &lt;li&gt;The main screens in the Unity editor that you will interface with.&lt;/li&gt;
    &lt;li&gt;How to add art / graphics to your game.&lt;/li&gt;
    &lt;li&gt;How to parse a sprite &amp;lt;something&amp;gt;&lt;/li&gt;
    &lt;li&gt;How to add it to an object that represents a player character in your game.&lt;/li&gt;
    &lt;li&gt;how to apply physics to the player object.&lt;/li&gt;
    &lt;li&gt;how to add collision the player object.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;Get the tools you need and install them&lt;/h2&gt;

&lt;p&gt;Here are links to all of the software you will need to create this project. I will not be detailing the install process but it is very straight forward.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://unity3d.com/get-unity/download"&gt;Download Unity &lt;/a&gt;(main download page )&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;
&lt;a href="https://public-cdn.cloud.unity3d.com/hub/nuo/UnityHubSetup.exe?button=onboarding-download-btn-windows"&gt;Direct link to the free Unity Download &lt;/a&gt;(if you just want to skip right to the free one)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://visualstudio.microsoft.com/downloads/"&gt;Download Visual Studio 2019&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://opengameart.org/"&gt;Download some art to use in your project.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://opengameart.org/sites/default/files/gfx_3.zip"&gt;(Here is a direct link to the art that I am using)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Install Unity and Visual studio and unzip / extract the graphics folder that you have chosen for art.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When installing Visual Studio be sure that you install the Unity tools that are part of the installation process.&lt;/p&gt;

&lt;p&gt;( if you don't do this then later Visual studio intellisense won't know anything about the Unity package. )&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.microsoft.com/en-us/visualstudio/cross-platform/media/vstu_unity-workload.png?view=vs-2019"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--B5lYrqKs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://docs.microsoft.com/en-us/visualstudio/cross-platform/media/vstu_unity-workload.png%3Fview%3Dvs-2019" alt="Image result for visual studio installer unity tools" width="880" height="491"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h2&gt;Create a new project&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Open Unity and create a  new 2D project. (File &amp;gt; new project &amp;gt; )&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.thedevelopingdeveloper.net/?attachment_id=960"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tI-TTOe_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.thedevelopingdeveloper.net/wp-content/uploads/2020/02/Snag_698d58d-300x296.png" alt="Unity interface New project " width="300" height="296"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Select the 2D template.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.thedevelopingdeveloper.net/?attachment_id=961"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iZTD4K0W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.thedevelopingdeveloper.net/wp-content/uploads/2020/02/Snag_699f536-300x174.png" alt="Unity interface the 2d template" width="300" height="174"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Set the external editor in Unity to Visual Studio. (Edit &amp;gt; Preferences &amp;gt; External Tools &amp;gt; and then set this to Visual Studio 2019 )&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.thedevelopingdeveloper.net/2020/02/16/create-your-first-game-using-unity-and-c-part-1-getting-your-environment-set-up-and-importing-some-art/snag_6c38d09/" rel="attachment wp-att-968"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8KePdnnr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.thedevelopingdeveloper.net/wp-content/uploads/2020/02/Snag_6c38d09.png" alt="Setting your external editor in unity" width="880" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h2&gt;&lt;/h2&gt;

&lt;h2&gt;Getting to know the Unity Interface&lt;/h2&gt;

&lt;p&gt;Now that you have a new project created, and are looking at the unity interface I bet you are thinking... "WOW that's a lot of stuff to look at!"&lt;/p&gt;

&lt;p&gt;Don't worry that is a perfectly normal reaction! Let's walk through the interface and talk about each piece. There is a ton of information to learn here, so we will just focus on the stuff we need for now.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.thedevelopingdeveloper.net/2020/02/16/create-your-first-game-using-unity-and-c-part-1-getting-your-environment-set-up-and-importing-some-art/2020-02-16_11-38-02/" rel="attachment wp-att-999"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--67gPbleI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.thedevelopingdeveloper.net/wp-content/uploads/2020/02/2020-02-16_11-38-02.jpg" alt="The main Unity Windows" width="880" height="485"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
    &lt;li&gt;The Scene
The scene window is a graphical representation of the game and all of the objects that you have set up to interact with. You can think of this kind of like the stage that actors use when performing a play. Everything you create that you want to interact with in your game, will have some sort of representation in the scene. You will eventually be placing everything in this area. Every object that is part of the game from your light source , to audio, all the way to blocks that represent the boundaries and terrain of your game will be represented graphically in the scene.&lt;/li&gt;
&lt;/ol&gt;

&lt;ol&gt;
&lt;li&gt;Hierarchy
&lt;p&gt;The easiest way to understand the hierarchy is to think of it as a list of all of the things in your scene. While you can point and click to grab and examine items in your scene. At some point in a large game, you will have tons of objects in the scene and having a clean detailed interface to select from will invaluable. This is where the hierarchy comes in.&lt;/p&gt;
 3. Project
&lt;p&gt;The Project window displays all of the files related to your Project. It is the main way you can navigate and find Assets and other Project files in your application. This window is similar to the solution explorer in Visual Studio. I'm making this up off the cuff but essentially you have assets which are things like images, code files, config files and the folders that contain them. Pretty much everything that you build inside of the Unity Environment can be called an Object , and objects are contained in assets.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Inspector
&lt;p&gt;The inspector allows you to examine and modify individual objects in Unity. It is similar to the properties window in Visual Studio.  if we keep to the same logic above , when we modify an object in Unity its really just doing the work of finding the right asset and modifying it for you.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Console
&lt;p&gt;The Console is where you get information about what is happening in your program. You can use a statement like "Debug.Log("hello world"); to write information directly to the console.&lt;/p&gt;
 
&lt;h2&gt;Create folders to store your work&lt;/h2&gt;
Now that you know a little about the Unity interface and have created a new 2D project. It' time to do a few things that will help us keep the project organized and orderly.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In this step we will create a series of folders that we will use to store assets for the game.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Go to your project  window right click on assets &amp;gt; create folder&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Create a new folder for:&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;Art&lt;/li&gt;
    &lt;li&gt;Animations&lt;/li&gt;
    &lt;li&gt;Scenes&lt;/li&gt;
    &lt;li&gt;Scripts&lt;/li&gt;
    &lt;li&gt;TilesMaps&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--B_ILz7Aq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.thedevelopingdeveloper.net/wp-content/uploads/2020/02/Snag_5c8ff60.png" alt="initial project screenshot" width="328" height="497"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;This is what your project (above) should look like now.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h3&gt;&lt;strong&gt;Import a sprite set for your character&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;The first thing we need to do here is find the art set that we downloaded on your computer.&lt;/p&gt;

&lt;p&gt;Click on the "Art" folder that we created in the assets window and drag and drop the gfx folder from the art files into that the art folder.&lt;/p&gt;

&lt;p&gt;This will add all of the art to your project.&lt;/p&gt;

&lt;p&gt;Now that we have the art, we are going to tell the editor about our player character.&lt;/p&gt;

&lt;p&gt;In the project window:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open "Art" and then open the gfx2 folder.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In the gfx2 folder you will find several image files.&lt;/p&gt;

&lt;p&gt;For the most part we will only need to concern ourselves with the one named character. However we do need to make an adjustment to all of the files for this project first.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Select All of the images and then in the "Inspector window" &lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Find the setting for "Pixels Per Unit" and set it to 16 &lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Then hit the apply button.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.thedevelopingdeveloper.net/2020/02/16/create-your-first-game-using-unity-and-c-part-1-getting-your-environment-set-up-and-importing-some-art/snag_6f6a03b/" rel="attachment wp-att-971"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aABohq_z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.thedevelopingdeveloper.net/wp-content/uploads/2020/02/Snag_6f6a03b.png" alt="Pixels Per Unit" width="880" height="666"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(note that I have some files that aren't images if you have any of these and you select all of the files you will not get the right view in the inspector. it's no big deal you can just select each file one at a time and make this change to each of them.. it will only give you this option for pictures)&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Now choose your character image.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--m46Yjuuf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.thedevelopingdeveloper.net/wp-content/uploads/2020/02/Snag_6f0a087.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--m46Yjuuf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.thedevelopingdeveloper.net/wp-content/uploads/2020/02/Snag_6f0a087.png" alt="Assets &amp;gt; graphics &amp;gt; character" width="880" height="236"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;(This is actually a set of sprites that Unity can interpret as all of the basic data that we need for animation. I'm not going into detail as to how all of this works at the moment, just follow the steps. )&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;With the character image selected look to your inspector window and :&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Change the Sprite Mode to multiple&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Press the "Sprite Editor" button. &lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YCpZhw58--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.thedevelopingdeveloper.net/wp-content/uploads/2020/02/2020-02-16_12-31-06-1.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YCpZhw58--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.thedevelopingdeveloper.net/wp-content/uploads/2020/02/2020-02-16_12-31-06-1.jpg" alt="Sprite mode and sprite editor" width="589" height="767"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;This will open up our sprite editor. Here you will see all of the various facings and animations for the character. Above the pictures you will see that there are a few menus.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Select the one labeled "slice"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Set the Pixel size to x = 16 and Y = 32 &lt;/strong&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.thedevelopingdeveloper.net/2020/02/16/create-your-first-game-using-unity-and-c-part-1-getting-your-environment-set-up-and-importing-some-art/2020-02-16_12-52-06/" rel="attachment wp-att-977"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Spdvkc-5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.thedevelopingdeveloper.net/wp-content/uploads/2020/02/2020-02-16_12-52-06.jpg" alt="The Sprite editor" width="880" height="663"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Now with your character image selected in the project&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Look back to the inspector &amp;gt; Change the "Filter Mode" to point (no filter) &lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Change the compression to "High Quality"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hit Apply &lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.thedevelopingdeveloper.net/2020/02/16/create-your-first-game-using-unity-and-c-part-1-getting-your-environment-set-up-and-importing-some-art/2020-02-16_12-58-39/" rel="attachment wp-att-978"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0p7Z8VGM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.thedevelopingdeveloper.net/wp-content/uploads/2020/02/2020-02-16_12-58-39-227x300.jpg" alt="Import settings" width="227" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Grab your character from the assets window and drag it into the scene. &lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.thedevelopingdeveloper.net/2020/02/16/create-your-first-game-using-unity-and-c-part-1-getting-your-environment-set-up-and-importing-some-art/2020-02-16_13-07-20/" rel="attachment wp-att-984"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--C6UepSvk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.thedevelopingdeveloper.net/wp-content/uploads/2020/02/2020-02-16_13-07-20-300x120.jpg" alt="Drag character into the scene" width="300" height="120"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Then in the hierarchy rename it to "Player" &lt;a href="https://www.thedevelopingdeveloper.net/2020/02/16/create-your-first-game-using-unity-and-c-part-1-getting-your-environment-set-up-and-importing-some-art/2020-02-16_13-08-40/" rel="attachment wp-att-985"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--C5kIuUOi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.thedevelopingdeveloper.net/wp-content/uploads/2020/02/2020-02-16_13-08-40-300x137.jpg" alt="Name your new object" width="300" height="137"&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ok. So we learned how to create a new project , set it up , get some free art,  import a sprite sheet, set up our environment to use Visual Studio, create a "Object" for use in our game and finally put it on the stage (the scene) . I think that is enough for now! If you are still with me follow me on to my next article in this series:&lt;br&gt;
Handling Player movement. (it will be up shortly)&lt;/p&gt;

&lt;h3&gt;&lt;span&gt;If any of you have made it this far ... do me a favor and leave a comment or sign up to my mailing list so that I can gauge the interest in this type of content. &lt;/span&gt;&lt;/h3&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>unity3d</category>
      <category>gamedev</category>
      <category>csharp</category>
      <category>beginners</category>
    </item>
    <item>
      <title>What I learned in 10 weeks of trying to teach myself how to touch type.</title>
      <dc:creator>nineismine</dc:creator>
      <pubDate>Mon, 17 Feb 2020 01:28:56 +0000</pubDate>
      <link>https://forem.com/nineismine/what-i-learned-in-10-weeks-of-trying-to-teach-myself-how-to-touch-type-c51</link>
      <guid>https://forem.com/nineismine/what-i-learned-in-10-weeks-of-trying-to-teach-myself-how-to-touch-type-c51</guid>
      <description>&lt;h2&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TXQx3-qR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.psychologytoday.com/sites/default/files/styles/article-inline-half/public/blogs/75174/2013/12/139342-139717.jpg%3Fitok%3Dy-BwI4fH" width="320" height="213"&gt;&lt;/h2&gt;

&lt;h1&gt;10 weeks of trying to learn how to type.&lt;/h1&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h1&gt;Part 1&lt;/h1&gt;

&lt;p&gt;Hello all!&lt;/p&gt;

&lt;p&gt;This is a multi-part series that will attempt to detail the things I learned trying to teach myself to type.  I will detail the process of learning, the tools that I used and how they stack up.  Today we will focus on a little explanation of the challenges of not knowing how to type.  As well as my thoughts on the first typing teacher program that I used Typing.com. Over the next few weeks I will detail my experiences and the pros and cons of the tools that I have tried.&lt;/p&gt;

&lt;p&gt;As of today I have used&lt;/p&gt;

&lt;ol&gt;
    &lt;li&gt;&lt;a href="https://www.typing.com/"&gt;Typing..com&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://www.ratatype.com/"&gt;Ratatype&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://www.typingclub.com/"&gt; TypingClub (if you don't want to wait for my full reviews just go get started on this one. )&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;
&lt;a href="https://www.sega.com/games/typing-dead-overkill-0"&gt;Typing of the dead.&lt;/a&gt;I hope this proves useful for anyone stumbling across my site!&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;The unseen challenges of not knowing how to touch type.&lt;/h2&gt;

&lt;p&gt;Unlike most of the people reading this blog I didn't grow up around computers. As a matter of fact I bought and assembled my first computer at the age of 24. I quickly started to discover that I had a knack for all things computer (except maybe touch typing) . That unconventional history can come with some positives but no matter how you look at it there are some inherent downsides to starting so late.&lt;/p&gt;

&lt;p&gt;For one when you start in your 20's you simply aren't afforded that responsibility free play / learning time that many of my peers have described to me. Another thing (and more to the point of this article) when you start to late that means you are always playing catch up! For me, the biggest, most glaring hole, in my ability to get things done on the computer was learning how to properly type. As I moved into development that one became more and more of a liability.&lt;/p&gt;

&lt;p&gt;When you don't know how to touch type, you spend a good deal of time avoiding typing things. The sheer amount of time you spend correcting errors, backspacing,  using the mouse, or embarrassingly assuring people you communicate with on Instant messenger that you REALLY do know how to spell you just can't type... It is tedious and a little humiliating.&lt;/p&gt;

&lt;p&gt;Imagine trying to work in a bash shell /  command line and you have to double check all of those patchwork , abbreviations for words that serve as your command language! Imagine not being able to look at the screen when you type... this means that most of your errors escape you, it makes proofreading your own word a chore and it makes having to transpose ANY sort of data from one source to another feel impossible!&lt;/p&gt;

&lt;p&gt;When you don't know how to properly type you create work around for everything. You try to copy and paste everything, you hit enter on half sentences in your instant messenger (so that you have less words to work with when it comes to corrections), you avoid doing any sort of transposition, you live in fear of password policies that only allow X retries!&lt;/p&gt;

&lt;p&gt;This year I decided that I have suffered enough, and have committed to learning how to properly type. I started with a simple goal of spending the first 15 minutes of every day working on a typing trainer. Now while I have missed that goal more times than I care to mention, I am slowly getting better by not quitting! It is empowering to, for the first time in my life be good enough at typing to be able to look at the screen, and see the words coming out as I type.  I'm finally not staring at my hands and this helping me see each mistake as I make it.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;So that all being said....how did it go?&lt;/p&gt;

&lt;h2&gt;Week one: Typing.com&lt;/h2&gt;

&lt;p&gt;I settled on &lt;a href="https://www.typing.com/"&gt;typing.com &lt;/a&gt;as my first application to try to learn.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8jyKzRy4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.thedevelopingdeveloper.net/wp-content/uploads/2020/02/Snag_507c6e.png" class="article-body-image-wrapper"&gt;&lt;img title="" src="https://res.cloudinary.com/practicaldev/image/fetch/s--8jyKzRy4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.thedevelopingdeveloper.net/wp-content/uploads/2020/02/Snag_507c6e.png" alt="Typing.com main lesson screen." width="880" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;&lt;/h3&gt;

&lt;h3&gt;The pros:&lt;/h3&gt;

&lt;p&gt;Typing.com has a clean interface with lessons logically sorted into skill levels.&lt;/p&gt;

&lt;p&gt;The lessons are skill based with standard beginner , intermediate, advanced lessons plans.  Typing.com extends the basic lessons by having sections of the program devoted to real world categories of words. They offer lessons which are labeled Digital Literacy. These lessons are focused on Tech Readiness, Career Prep, and Coding essentials.&lt;/p&gt;

&lt;p&gt;In addition to the ones listed above they have a practice section. This is a dedicated section which lets you practice some kinda off the wall drills. They have a whole section devoted to "Common Medical Terms" which I guess if you are into medical billing would be pretty useful. Some of the other lessons in this section are "Jokes and Laughs" , "Interesting Facts" and "Alpha numeric data entry". Some of the lessons seem like they would be very useful but I sure gotta wonder why they decided to create 17 lessons for Medical Terms. (Is there really that much demand?)&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Finally they have a limited reporting section which will show you your problem keys. And you can do lessons based on the keys that they have detected you are having issues with. I only did the beginner level course and the majority of the intermediate course before I moved on though. I do plan to come back and do some more of these courses (and update this article when I do) though.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;They show you your hands and which finger you should be using for each key in real-time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LorhJYGY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.thedevelopingdeveloper.net/wp-content/uploads/2020/02/2020-02-15_5-26-11.png" class="article-body-image-wrapper"&gt;&lt;img title="" src="https://res.cloudinary.com/practicaldev/image/fetch/s--LorhJYGY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.thedevelopingdeveloper.net/wp-content/uploads/2020/02/2020-02-15_5-26-11.png" alt="Typing.com lesson interface" width="880" height="757"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;The cons:&lt;/h3&gt;

&lt;p&gt;The beginner lessons focus too much on repeating key patterns that you would never type in real life.&lt;/p&gt;

&lt;p&gt;Missed opportunities to teach you while having you practice sentences that explain how to use the app / teach you about typing.&lt;/p&gt;

&lt;p&gt;Very limited reporting options.&lt;/p&gt;

&lt;p&gt;Doesn't force you to learn keys / words by making you correct mistakes.&lt;/p&gt;

&lt;h3&gt;&lt;/h3&gt;

&lt;h3&gt;My feelings about Typing.com in detail&lt;/h3&gt;

&lt;p&gt;Typing .com at first seemed like a great teacher for me. It has a pretty nice user interface and  that shows you your hands. It also gives you visual input as to what fingers are used for each key.&lt;/p&gt;

&lt;p&gt;They have lessons broken up into exercises with 11 exercises per lesson. You can view how you did on each and how many "Stars" you got which can help you target lessons that you need to repeat.&lt;/p&gt;

&lt;p&gt;Typing.com is pretty great at some things. But to me it was lacking in too many others.&lt;/p&gt;

&lt;p&gt;Within no time I had progressed past the beginner lessons and was on to intermediate. The problems started , when I tried to use my new typing paradigm in the real world.   For me,  progress through lessons occurred a little too quickly. (maybe this was worse for me since I started with such bad habits)   It became obvious I was moving too quickly through this program when I realized that I didn't (and over a month later still dont) know all of the home row keys.&lt;/p&gt;

&lt;p&gt;As a matter of fact, on the day that I realized how far away I was from making progress that could carry over into my day to day duties, I really only KNEW a few of the 8 home row keys. Typing.com uses a method that you see in many typing teacher programs, where you are given keys to practice, and then you are drilled on those keys. This has you using those same keys over and over. The problem for me on this is that it is easy to alternate over a few keys like this "ddfd ffdf ddkk kjjk", but then totally forget which keys were when they turn around and have me do a similar drill with two different keys. The root of the problem is ...&lt;/p&gt;

&lt;h3&gt;Practicing real words is more effective than drilling keys...&lt;/h3&gt;

&lt;p&gt;Using the "2 key per finger" learning method. you only really have to remember 4 keys at a time. This first leg of the course really didn't teach me where these keys were on the keyboard and there is some actual science behind this.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.psychologytoday.com/us/blog/the-athletes-way/201312/the-mysterious-neuroscience-learning-automatic-skills"&gt;You see, your brain doesn't naturally learn things this way.&lt;/a&gt; Practicing these types of drills didn't teach me where the "d" key was! This method doesn't focus on what your brain &lt;strong&gt;does &lt;/strong&gt; do well. Your brain is better at remembering the specific movements and where your fingers have to move when you type out whole words. Those patterns become one of those automatic things that you do without thinking about it. You might eventually become such a good typist that you can remember where every key is.  I'd bet you will never be as good at finding one key as you are at finding all of the keys that it takes to create words.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h2&gt;The problem with these 2 finger drills is two fold&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;(and I can't say any of these programs except typing of the dead is good at feeding you whole words and skipping the drills)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;ol&gt;
    &lt;li&gt;You aren't really learning much during these types of drills. (at least if my experience is common and the quoted article is correct).&lt;/li&gt;
    &lt;li&gt;Because you aren't learning words early on, you tend to revert back to bad habits and don't know why.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It seems to me that typing.com spends too much time on these types of exercises at the beginning. It took me so long to get to a point where they had me practicing typing real words,  that I often felt frustrated. When I went back to doing my normal typing activities I would find myself reverting back to my old habits.  M&lt;em&gt;aking sure that new students understand how their brain will start to commit these lessons should be a priority for Typing.com&lt;/em&gt;. If those early lessons are needed, then they should at least prepare their students for that feeling of frustration.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you take anything from my diatribe today take this with you , you will not really start learning how to touch type until you start using the correct form to practice typing full words.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;To accent that further, if you have attempted to learn to type in the past and reverted... do you remember one day feeling like you were getting it and then suddenly after changing the TYPE of thing you are working on not being able to type at all? This is what got me each time. All of a sudden being ineffective  left me feeling like I wasn't progressing and in a sense I wasn't! If I had understood earlier that the trick to learning was really just commiting enough words to muscle memory so that I could stay somewhat efficient, I probably wouldn't have quit trying so many times.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h3&gt;Typing.com doesn't(really) make you  learn from your mistakes.&lt;/h3&gt;

&lt;p&gt;Another thing I do not like about Typing.com is when you make a mistake, it just let's you move on to the next key. This is great for progress through their lessons, but terrible for learning where keys are in relation to one another. It gives you a false sense of security and a feeling that the practice isn't paying off.  If you get 2 keys in a row wrong it WILL make you find correct key. But too often that troublesome key will be the only one I missed over and over and over.&lt;/p&gt;

&lt;p&gt;I could tell pretty early on that this SEEMED like a liability.  I always try to convince myself that I shouldn't presume to know more than the experts when trying something new and uncomfortable. (Isn't it human nature to look to escape things that are uncomfortable?)&lt;/p&gt;

&lt;p&gt;Here is the worst part about this weakness.... I later discovered that when I make a mistake I can backspace. (In my mind if you type anything other than what the typing tutor is telling you , that is an error!) Why wasn't this spelled out better?&lt;/p&gt;

&lt;h3&gt;Some simple things would fix some of their issues&lt;/h3&gt;

&lt;p&gt;I think Typing.com could learn a couple things from TypingClub.com . Typing.com should probably try to spend more time teaching sentences and words. (like TypingClub does) They should also bake information about their service into the lessons.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;TypingClub actually uses real sentences in their practice lessons that tell you things like "Did you know you can backspace to correct?"   As a matter of fact I learned about how your brain learns words better than individual keys in a lesson from a lesson on TypingClub.com. This is a missed opportunity. It is likely one that has contributed to frustrations and maybe even caused people to give up.&lt;/p&gt;

&lt;h3&gt;Weak Reporting&lt;/h3&gt;

&lt;p&gt;Lastly, Typing.com seems to have very little useful reporting. As you grow and progress, detailed reporting can help you understand where you you need to focus your attention. This detail  is an important part of being efficient in any learning program. This is literally all you get&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.thedevelopingdeveloper.net/2020/02/15/what-i-learned-in-10-weeks-of-trying-to-teach-myself-how-to-touch-type/snag_8414a80/" rel="attachment wp-att-996"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--d7i9hCh7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.thedevelopingdeveloper.net/wp-content/uploads/2020/02/Snag_8414a80-300x219.png" alt="Reporting?" width="300" height="219"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;I am working on completing my reviews of the other teaching tools that I mentioned above. Follow my &lt;a href="https://www.thedevelopingdeveloper.net/"&gt;blog&lt;/a&gt; to see these reviews and more on the overall experience of learning to type in the coming days.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

</description>
      <category>productivity</category>
      <category>review</category>
      <category>typing</category>
      <category>todayilearned</category>
    </item>
    <item>
      <title>12 tips, tricks, and  Visual Studio 2019 shortcuts to increase efficiency  - Part 1</title>
      <dc:creator>nineismine</dc:creator>
      <pubDate>Fri, 07 Feb 2020 15:03:38 +0000</pubDate>
      <link>https://forem.com/nineismine/12-tips-tricks-and-visual-studio-2019-shortcuts-to-increase-efficiency-part-1-31on</link>
      <guid>https://forem.com/nineismine/12-tips-tricks-and-visual-studio-2019-shortcuts-to-increase-efficiency-part-1-31on</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F02%2Fimages.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F02%2Fimages.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;Visual Studio 2019 shortcuts&lt;/h1&gt;

&lt;h3&gt;&lt;/h3&gt;

&lt;h3&gt;Quickly add public properties&lt;/h3&gt;

&lt;p&gt;You can add properties to your classes the quick way by typing &lt;strong&gt;prop&lt;/strong&gt; and then tab tab&lt;/p&gt;

&lt;p&gt;In this case were going to make a property and name it hitPoints&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F02%2F894F3941-EAC2-4F0A-8A45-19EBD8D57D47.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F02%2F894F3941-EAC2-4F0A-8A45-19EBD8D57D47.gif" alt="example of creating property"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h3&gt;Quickly populate a full property with public and private members&lt;/h3&gt;

&lt;p&gt;you can do the exact same thing except type &lt;strong&gt;propfull&lt;/strong&gt; to get the full property&lt;/p&gt;

&lt;pre&gt;public int MyProperty
{
    get { return myVar; }
    set { myVar = value; }
}&lt;/pre&gt;

&lt;h3&gt;Quickly add a new class to your project&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;CTRL + Shift + A&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F02%2FSnag_f42c4d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F02%2FSnag_f42c4d.png" alt="Example of how to create a class from the keyboard"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;&lt;/h3&gt;

&lt;h3&gt;Go to the definition of any object&lt;/h3&gt;

&lt;p&gt;This is a quick way to navigate to the definition that is under your cursor. For bonus points try ALT + F12 which brings up the "peek" dialog for that item. From within that dialog box you can also CTRL click other items to go straight to them.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;F12&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F02%2F1AB1B8FE-6409-4596-9A04-BF180FB28179.gif" alt="example of navigation to property"&gt;&lt;/h3&gt;

&lt;h3&gt;&lt;/h3&gt;

&lt;h3&gt;Move lines up and down in the editor&lt;/h3&gt;

&lt;h3&gt;&lt;span&gt;You can move lines just by pressing&lt;/span&gt;&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;&lt;span&gt;Alt + up/down arrows. &lt;/span&gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You can also Shift-Select a bunch of lines and then Alt-Arrow them around as a group.&lt;/p&gt;

&lt;h3&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F02%2F6C334A20-9091-4345-A4D7-16F5292C9701.gif" alt="Example of moving text in the Visual Studio editor"&gt;&lt;/h3&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h3&gt;Quickly Launch a new project or search your solution , add a class and lots of other stuff.&lt;/h3&gt;

&lt;p&gt;Most of the things that you use in the menus, you know, when you open the menu Tools&amp;gt;Options and then just start until you find whatever you are looking for..&lt;/p&gt;

&lt;p&gt;&lt;code&gt;CTRL + Q&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F02%2F8560C830-1577-42FC-9054-FB035F3A88AC.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F02%2F8560C830-1577-42FC-9054-FB035F3A88AC.gif" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;&lt;/h3&gt;

&lt;h3&gt;Quickly populate Console.WriteLine()&lt;/h3&gt;

&lt;p&gt;Type&lt;/p&gt;

&lt;p&gt;&lt;code&gt;CW TAB TAB &lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F02%2F1A08AB9C-F179-46CD-B049-6BEBD53A657F.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F02%2F1A08AB9C-F179-46CD-B049-6BEBD53A657F.gif" alt="Example of quick console writeline"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;&lt;/h3&gt;

&lt;h3&gt;Quickly populate an IF statement, for loop , foreach loop , do , while, enums and others&lt;/h3&gt;

&lt;p&gt;This works for many of the common things we do in Visual Studio&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Type &lt;span&gt;&lt;b&gt;any of the above keywords &lt;/b&gt;&lt;/span&gt;and  TAB TAB&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;There are probably some others that I missed. (let me know in the comments!)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F02%2FA7A9F220-20CE-4292-95EB-8C885423A1C8.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F02%2FA7A9F220-20CE-4292-95EB-8C885423A1C8.gif" alt="example of populating loops with tab tab"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h3&gt;&lt;/h3&gt;

&lt;h3&gt;Open Quick actions and Refactoring (from here we can do a whole host of things)&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;CTRL + .&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;(control key + the period)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F02%2F7067F3A2-BE02-4E58-AD5E-250DBA6E1834.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F02%2F7067F3A2-BE02-4E58-AD5E-250DBA6E1834.gif" alt="example of quick actions and refactoring"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;&lt;/h3&gt;

&lt;h3&gt;Quickly Navigate to... well anything&lt;/h3&gt;

&lt;p&gt;Another useful shortcut to remember is the NavigateTo command  , this command lets you search for class names, files, members, types or even method names. This is super useful when working in a large project with many methods and classes&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Press CTRL +, and start typing.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Once you learn this command you will not really even need the Solution Explorer.  As long as you already know the name of the item you want to see.&lt;/p&gt;

&lt;p&gt;(Control + comma)&lt;/p&gt;

&lt;h3&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F02%2FC8DE171A-81F0-4AAB-9BA3-2C958F01EE92.gif" alt="Example of quick search"&gt;&lt;/h3&gt;

&lt;h3&gt;&lt;/h3&gt;

&lt;h3&gt;Quickly search your solution explorer&lt;/h3&gt;

&lt;p&gt;While I don't use this one very much because of the last tip. You CAN use this tip to search explicitly in the solution explorer.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;CTRL + ;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h3&gt;Quickly run an automated test&lt;/h3&gt;

&lt;p&gt;if you are using automated testing you can run a test from the keyboard by pressing&lt;/p&gt;

&lt;p&gt;&lt;code&gt;CTRL + R , T&lt;/code&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;I really hope these Visual Studio 2019 shortcuts help you as much as they have me. I only recently learned some of these and I sure wish I'd have know them earlier.&lt;/p&gt;

&lt;p&gt;If you like this or other posts by me check out the rest of my blog site &lt;a href="https://www.thedevelopingdeveloper.net/" rel="noopener noreferrer"&gt;TheDevelopingDeveloper.net&lt;/a&gt; and subscribe for updates!&lt;/p&gt;

</description>
      <category>visualstudio</category>
      <category>beginners</category>
      <category>dotnet</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How to use Visual Studio 2019 to access and check in code to GitHub in 15 minutes</title>
      <dc:creator>nineismine</dc:creator>
      <pubDate>Mon, 03 Feb 2020 14:46:19 +0000</pubDate>
      <link>https://forem.com/nineismine/how-to-use-visual-studio-2019-to-access-and-check-in-code-to-github-in-15-minutes-4lpn</link>
      <guid>https://forem.com/nineismine/how-to-use-visual-studio-2019-to-access-and-check-in-code-to-github-in-15-minutes-4lpn</guid>
      <description>&lt;h1&gt;Are you ready to learn how to check in code to GitHub in 15 minutes?&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F01%2FSnag_79afac2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F01%2FSnag_79afac2.png" alt=""&gt;&lt;/a&gt;&lt;br&gt;
Over the last couple years in my organization we have been tasked with moving from TFS to Git.  While Git is an awesome tool , it can be a little daunting if you have to pick it up and learn it on your own. There are plenty of great resources that explain WHAT git is.There are even plenty of articles that will go into detail about all of the things I am going to cover here! For that reason we are just going to focus on how to use it in, and specifically how to check in code to GitHub in 15 minutes!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.thedevelopingdeveloper.net/2020/02/03/how-to-sign-up-for-a-github-account/" rel="noopener noreferrer"&gt;One of the first things you will want to do is create a GitHub account if you do not already have one.&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Adding your GitHub Account to Visual Studio.&lt;/h2&gt;

&lt;p&gt;One of the first things we need to know about when using Git is how to access it. While there is a stand alone &lt;a href="https://git-scm.com/" rel="noopener noreferrer"&gt;Git client&lt;/a&gt;  and it can come in handy for certain things. The built in client for accessing Git In Visual studio really simplifies the steps required to download and check in code.&lt;br&gt;
To access Git related options in Visual Studio we need to look no farther than the "Team Explorer". Under the Team Explorer we have several options that we will be covering throughout this article.&lt;/p&gt;

&lt;h5&gt;In the menu select View &amp;gt; Team Explorer&lt;/h5&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F01%2FSnag_fcbb63f.png" class="article-body-image-wrapper"&gt;&lt;img title="" src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F01%2FSnag_fcbb63f.png" alt="Team Explorer"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Here you will be presented with the "Connect" dialog box.&lt;a href="https://www.thedevelopingdeveloper.net/2020/02/03/how-to-sign-up-for-a-github-account/" rel="noopener noreferrer"&gt; If you have created a GitHub Account for yourself&lt;/a&gt; now would be a good time to connect it.&lt;/p&gt;

&lt;h5&gt;Team Explorer &amp;gt; Manage Connections (it looks like a green plug) &amp;gt; Connect to Github&lt;/h5&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F01%2FSnag_6eddc94.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F01%2FSnag_6eddc94.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;Fill in your account data&lt;/h5&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F01%2FSnag_6ef5ff8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F01%2FSnag_6ef5ff8.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's it! You are connected and can now sync your local projects to GitHub! Speaking of which....&lt;/p&gt;

&lt;p&gt;Now that I am connected how do I get started with this GitHub thing? I'm Glad that you asked!&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h2&gt;&lt;strong&gt;How to create a local repository&lt;/strong&gt;&lt;/h2&gt;

&lt;p&gt;When it comes to GIT and creating and updating code in a repository we first need to understand the concept of the local and remote repository. The Local repository is the collection of files in their current state on your computer, git keeps track of the changes that occur on your local system, and then you give it the correct command it updates the local repository to a new version on your local system. After updating the local system however you still need to push your changes to the remote repository to complete the process of updating your remote repository.&lt;br&gt;
In order to get started with GIT this means that we need to either create a local repository or import one to our machine so that Git knows what files it is keeping track of. To do this with Visual Studio it's actually a pretty simple task.&lt;/p&gt;

&lt;ol&gt;
    &lt;li&gt;Open Team Explorer:&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F01%2FSnag_c41c578.png" alt=""&gt;
&lt;/li&gt;
    &lt;li&gt;Navigate to the lower pane of Team Explorer to the section labeled "Local Git Repositories"&lt;/li&gt;
    &lt;li&gt;Click "new" and specify a location.&lt;/li&gt;
    &lt;li&gt;Hit the "Create" button.&lt;/li&gt;
    &lt;li&gt;This simply adds adds git tracking to your local repository.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F01%2FSnag_4e217a2c.png" alt=""&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h4&gt;&lt;strong&gt;How to import a remote repository.&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;Now that we know how to build a project and create a local repository , let's look at how to pull a remote repository so that we can modify it. For this example we will use Github as the example.&lt;/p&gt;

&lt;ol&gt;
    &lt;li&gt;&lt;a href="https://github.com/nineismine/" rel="noopener noreferrer"&gt;Navigate to Github&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;Find a repository that you want to clone. In this example we will use one of mine.&lt;/li&gt;
    &lt;li&gt;Hit the "Clone or Download" button.&lt;/li&gt;
    &lt;li&gt;Hit Open in Visual Studio.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F01%2FSnag_5247ee3-300x284.png" class="article-body-image-wrapper"&gt;&lt;img title="" src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F01%2FSnag_5247ee3-300x284.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;or&lt;/p&gt;

&lt;ol&gt;
    &lt;li&gt;Copy the URL that is in the Clone with HTTPS dialog&lt;/li&gt;
    &lt;li&gt;Go back to Visual Studio &amp;gt; Team Explorer &amp;gt; Connect &amp;gt; Clone &amp;gt;&lt;/li&gt;
    &lt;li&gt;Paste the URL  into the Open from GitHub&lt;/li&gt;
    &lt;li&gt;Choose a Local Path&lt;/li&gt;
    &lt;li&gt;Hit Clone&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F01%2FSnag_7f6d5b6.png" alt=""&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F01%2FSnag_7f7c565.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F01%2FSnag_7f7c565.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Remote... Local? What's the difference?&lt;/h2&gt;

&lt;p&gt;I said I would avoid getting too deep into HOW Git works but I want to make sure I touch on this topic really quickly because it is important.&lt;/p&gt;

&lt;p&gt;I essence when you add a project to a Git Repo we now have 3 stages that we are tracking in terms of your stored files..&lt;/p&gt;

&lt;ol&gt;
    &lt;li&gt;
&lt;ol&gt;
    &lt;li&gt;
&lt;ol&gt;
    &lt;li&gt;
&lt;strong&gt;Your active workspace.&lt;/strong&gt;
This is where your current files live any time you make a change and save it, you make real changes to your active workspace but they do not automatically apply to your Local repository.
(I think that this is one of the places people get confused with GIT)&lt;/li&gt;
    &lt;li&gt;
&lt;strong&gt;Your Local Repository.&lt;/strong&gt;
You can think of the magic behind git as a change tracker.. your local repository is a record of the last changes you made to any file that is being tracked by GIT as of your last commit.&lt;/li&gt;
    &lt;li&gt;
&lt;strong&gt;Your Remote repository.&lt;/strong&gt;
After making changes to your local repository you have to then commit them up to the remote repository. These are the three states of files being tracked by git. Understanding this process will make it much easier to understand what you are doing with GIT and WHY.&lt;/li&gt;
&lt;/ol&gt;




&lt;/li&gt;


&lt;/ol&gt;


&lt;/li&gt;


&lt;/ol&gt;

&lt;h2&gt;Ok! Now that I have a repository... What the heck do I do with it?&lt;/h2&gt;

&lt;p&gt;So keeping in mind the last section , we need to make changes to our code (our active workspace)  &amp;gt; Apply them to local and then apply them to remote.&lt;/p&gt;

&lt;h4&gt;How to modify your active workspace&lt;/h4&gt;

&lt;p&gt;This is the easiest one, just make a change and save it like any other file.  When you make an uncommitted change to the active workspace you will see a red checkbox next to the uncommitted file in the Visual Studio Solution Explorer. &lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F01%2FSnag_737a149.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F01%2FSnag_737a149.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h4&gt;How to commit your changes to the Local Repository.&lt;/h4&gt;

&lt;p&gt;Open Team Explorer &amp;gt; Click Changes &amp;gt; Enter a commit message to the Commit Dialog &amp;gt; Hit the "Commit All" button.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F01%2FSnag_7394a26.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F01%2FSnag_7394a26.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After the commit you get a message that shows you that you have made a &lt;strong&gt;Local Commit&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F01%2FSnag_73d0bc2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F01%2FSnag_73d0bc2.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now &lt;strong&gt;Sync&lt;/strong&gt; by clicking the blue text that says Sync in the message. (you can see it in the screenshot above)&lt;/p&gt;

&lt;p&gt;If we keep with the above explanation of the stages of git we are now in stage 2 , we have committed our changes locally.&lt;/p&gt;

&lt;p&gt;On the Synchronization tab, under outgoing, we have an uncommitted change that is waiting to be pushed to remote.&lt;/p&gt;

&lt;p&gt;Click push and it will push your changes to the master branch. That's it! you have learned how to check in code to GitHub in 15 minutes!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F01%2FSnag_c38d310.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F01%2FSnag_c38d310.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F01%2FSnag_c390a6c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F01%2FSnag_c390a6c.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

</description>
      <category>github</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Let’s build a basic Blackjack App using C# and the Console  Part 1 - The Design</title>
      <dc:creator>nineismine</dc:creator>
      <pubDate>Sat, 01 Feb 2020 15:46:32 +0000</pubDate>
      <link>https://forem.com/nineismine/let-s-build-a-basic-blackjack-app-using-c-and-the-console-part-1-the-design-jb7</link>
      <guid>https://forem.com/nineismine/let-s-build-a-basic-blackjack-app-using-c-and-the-console-part-1-the-design-jb7</guid>
      <description>&lt;h1&gt;Designing a Blackjack App&lt;/h1&gt;

&lt;h2&gt;&lt;img title="" src="https://res.cloudinary.com/practicaldev/image/fetch/s--iXPGz5TT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.thedevelopingdeveloper.net/wp-content/uploads/2019/12/spread-cards-1245868-300x200.jpg" alt="cards" width="300" height="200"&gt;&lt;/h2&gt;

&lt;h2&gt;&lt;/h2&gt;

&lt;h3&gt;&lt;strong&gt;Software design practices and good habits! &lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;When you are just starting out as a new software engineer it can be tempting to skip over some of the things that not only make your job easier , but also tend to make the quality of your code a little higher. As a freshman engineer I would often find myself skipping right to coding without even planning what I was going to code. So in the spirit of teaching you the RIGHT way to do things let's talk about the bare minimum we need to do , and then let's get to coding a more complicated app. We're going to build a Blackjack app using the Console the quickest way that we can and then after we will talk a little bit about some better ways to build this app.  Designing a Blackjack App will be a good way for us to talk a little bit about some of the different variable types, do some basic math functions, create and use methods, and even start to talk about classes. This will all be used to further our goal of learning about C# and software engineering.&lt;/p&gt;

&lt;h3&gt;&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PxpyVfxc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.thedevelopingdeveloper.net/wp-content/uploads/2019/12/startup-3267505_1920-1-300x200.jpg" class="article-body-image-wrapper"&gt;&lt;img title="" src="https://res.cloudinary.com/practicaldev/image/fetch/s--PxpyVfxc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.thedevelopingdeveloper.net/wp-content/uploads/2019/12/startup-3267505_1920-1-300x200.jpg" alt="Design" width="300" height="200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h3&gt;&lt;strong&gt;Requirements&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;Normally in a professional environment you will start with requirements for your project. These requirements will typically be provided by a stakeholder.  Since we don't have an external stakeholder lets take a second and write down some basic requirements for designing a BlackJack App and get a little closer to our goal of learning about C#.&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;The player will receive  2 cards&lt;/li&gt;
    &lt;li&gt;The dealer will receive 2 cards&lt;/li&gt;
    &lt;li&gt;Ask the player to hit or stay (and maybe split of double in a different version)&lt;/li&gt;
    &lt;li&gt;The players cards  will be totaled and displayed&lt;/li&gt;
    &lt;li&gt;The cards will emulate a the typical cards you see in a  card deck&lt;/li&gt;
    &lt;li&gt;Do not display Suits.&lt;/li&gt;
    &lt;li&gt;New cards will be from 2 to ACE&lt;/li&gt;
    &lt;li&gt;If the card is an ace the player or dealer will select 1 or 11 &lt;strong&gt;(out of scope for first build)&lt;/strong&gt;
&lt;/li&gt;
    &lt;li&gt;If any hand is over 21 the owner will bust and lose&lt;/li&gt;
    &lt;li&gt;Display all output to console&lt;/li&gt;
    &lt;li&gt;At the end of the game display an option to play another game or quit&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;&lt;strong&gt;Designing a Blackjack App- The Technical Design
&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;Now that we are on to talking about design.  It's good a good idea to mention there are many ways to complete a technical design. Some software development methods require very detailed technical designs others just focus on creating a rough idea of the application. In these cases you usually focus more on the acceptance criteria than writing out details about how we will get to the end result.&lt;/p&gt;

&lt;p&gt;Because we want to get to the coding as soon as possible we will just do a basic design. There are a lot of ways to tackle this so one persons design for a game like this might vary greatly from another persons.&lt;/p&gt;

&lt;h4&gt;&lt;strong&gt;Things that we will need to manage the game &lt;/strong&gt;&lt;/h4&gt;

&lt;ul&gt;
    &lt;li&gt;Create a class or some way to represent a card
&lt;ul&gt;
    &lt;li&gt;a card has a value&lt;/li&gt;
    &lt;li&gt;a type (king , queen , numeric etc)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
    &lt;li&gt;Create a collection for the players cards and the dealers&lt;/li&gt;
    &lt;li&gt;Create a method to calculate the numeric value of "hand"&lt;/li&gt;
    &lt;li&gt;Determine if the hand is over 21&lt;/li&gt;
    &lt;li&gt;Create a method to display the cards in a hand (possibly for the advanced version only)&lt;/li&gt;
    &lt;li&gt;Create a method to get a new card from the dealer by rolling a random number from 2 to 14 with 11 representing a jack 12 a queen 13 - king and 14 Ace&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;&lt;/h3&gt;

&lt;p&gt;[caption id="attachment_241" align="aligncenter" width="300"]&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZntUeunY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.thedevelopingdeveloper.net/wp-content/uploads/2019/12/traffic-signal-496790_960_720-2-300x298.jpg" class="article-body-image-wrapper"&gt;&lt;img title="" src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZntUeunY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.thedevelopingdeveloper.net/wp-content/uploads/2019/12/traffic-signal-496790_960_720-2-300x298.jpg" alt="The Loop" width="300" height="298"&gt;&lt;/a&gt; The Loop[/caption]&lt;/p&gt;

&lt;h3&gt;&lt;strong&gt;Designing a Blackjack App - The game loop &lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt; &lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;When the game starts we will get 2 new cards for the player and 2 for the dealer&lt;/li&gt;
    &lt;li&gt;Display the dealers &lt;strong&gt;second card&lt;/strong&gt; to the player&lt;/li&gt;
    &lt;li&gt;Total the players cards and display them&lt;/li&gt;
    &lt;li&gt;Ask the Player to type H for hit or S for stay
&lt;ul&gt;
    &lt;li&gt;Accept a uppercase or lower case response&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
    &lt;li&gt;If the player chooses to "&lt;strong&gt;hit"&lt;/strong&gt; another card will be drawn and the loop will continue until the player stays or busts&lt;/li&gt;
    &lt;li&gt;After the player decides to "&lt;strong&gt;stay"&lt;/strong&gt; the dealer's turn will commence&lt;/li&gt;
    &lt;li&gt;The dealer will follow&lt;a href="https://bicyclecards.com/how-to-play/blackjack/"&gt; Standard black jack rules&lt;/a&gt;

&lt;ul&gt;
    &lt;li&gt;When the &lt;b&gt;dealer&lt;/b&gt; has served every player&lt;/li&gt;
    &lt;li&gt;The &lt;b&gt;dealer's&lt;/b&gt; face-down card is turned up&lt;/li&gt;
    &lt;li&gt;If the total is 17 or more, the dealer must stand.&lt;/li&gt;
    &lt;li&gt;If the total is 16 or under, the dealer must hit.&lt;/li&gt;
    &lt;li&gt;The &lt;b&gt;dealer&lt;/b&gt; must continue to take cards until the total is 17 or more, at which point the &lt;b&gt;dealer&lt;/b&gt; must stand.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
    &lt;li&gt;When the dealer stands, or busts the game is over.&lt;/li&gt;
    &lt;li&gt;If the dealer busts, the player wins&lt;/li&gt;
    &lt;li&gt;If the dealer does not bust, the total of the two hands is compared and the person with the highest total wins.&lt;/li&gt;
    &lt;li&gt;Ask the Player to quit or play again&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.thedevelopingdeveloper.net/2020/01/15/the-basic-blackjack-app/"&gt;Now lets get to the learning about C# part...Next  up... lets code a basic version of Blackjack utilizing as few C# features as possible.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;




&lt;br&gt;
&lt;br&gt;








&lt;p&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;br&gt;&lt;br&gt;
&lt;br&gt;

&lt;p&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img id="hzDownscaled"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;br&gt;&lt;br&gt;
&lt;br&gt;

</description>
      <category>csharp</category>
      <category>beginners</category>
      <category>dotnet</category>
    </item>
    <item>
      <title>7 essential tips for the developing developer!</title>
      <dc:creator>nineismine</dc:creator>
      <pubDate>Sat, 01 Feb 2020 15:36:12 +0000</pubDate>
      <link>https://forem.com/nineismine/7-essential-tips-for-the-developing-developer-2b8m</link>
      <guid>https://forem.com/nineismine/7-essential-tips-for-the-developing-developer-2b8m</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--en4EPh2C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://us.123rf.com/450wm/trueffelpix/trueffelpix1404/trueffelpix140400005/27552656-software-engineering-is-the-study-and-application-of-engineering-to-the-design-development-and-maint.jpg%3Fver%3D6" class="article-body-image-wrapper"&gt;&lt;img id="compImg" title="" src="https://res.cloudinary.com/practicaldev/image/fetch/s--en4EPh2C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://us.123rf.com/450wm/trueffelpix/trueffelpix1404/trueffelpix140400005/27552656-software-engineering-is-the-study-and-application-of-engineering-to-the-design-development-and-maint.jpg%3Fver%3D6" alt="Software Engineering is the study and application of engineering to the design, development, and maintenance of software Keywords and icons Stock Vector - 27552656" width="450" height="347"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;7 tips on how to become a better software engineer&lt;/h1&gt;

&lt;p&gt;So you fancy yourself a software engineer? Maybe you've built an app, graduated with a degree, or heck maybe you have been working in the field a number of years. You feel like you have made to the end of the road. Well I hate to break it to you, but that road is just beginning!&lt;/p&gt;

&lt;p&gt;It's easy to be a software engineer but much hardware learning how to be a GOOD software engineer!&lt;/p&gt;

&lt;p&gt;If the above statement applies to you, I can assure you that you are not alone. Early on in my career as a software engineer I felt the same way. "The hard work was done and now I could go out and find a job". From that point on I would learn everything I needed to know while making fat stacks of cash!&lt;/p&gt;

&lt;p&gt;That isn't what happened to me and it probably isn't going to happen to you. In my experience, while the company you work for might have good intentions, they are likely not going to be effective at fostering an environment where you can stay up to date with current software engineering practices. In addition over time as you start to learn the code base, the types of work you will find yourself doing is likely going to cause you to stagnate in things that aren't specific to your current position. I don't care how good you are at your current engineering role, you are likely on slow walk to getting really good at working for the company you are employed with, while losing touch with the current developments and frameworks.&lt;/p&gt;

&lt;h2&gt;If you don't believe me ask yourself a few simple questions.&lt;/h2&gt;

&lt;ol&gt;
    &lt;li&gt;What version of your preferred language are you using?&lt;/li&gt;
    &lt;li&gt;Is it the latest version?&lt;/li&gt;
    &lt;li&gt;What are some of the differences between the version you are on and the most current version?&lt;/li&gt;
    &lt;li&gt;What version of .net framework are you using? How many versions have been released between that one and the current? How many breaking changes have been  circulated between them?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These questions will likely go a long way toward showing you just how far behind you are on &lt;strong&gt;just the baseline stuff.&lt;/strong&gt;  This says nothing about open source and supporting frameworks, new development styles, new development tools and all of the other wonderful stuff that is constantly changing in the software engineering world.&lt;/p&gt;

&lt;p&gt;I used to think that these things didn't matter.&lt;/p&gt;

&lt;p&gt;It didn't matter to me that I was developing on Visual Studio 2013 instead of Visual Studio 2019.&lt;/p&gt;

&lt;p&gt;  I didn't realize that all those things that I saw in job postings we ACTUALLY big gaping holes in my knowledge. These things are important to hiring managers (I'd done some work in ASP.net. That's close enough right?). But once I started finding the avenues to easily start learning these things it really opened my eyes as to the sheer volume of information that I was missing just because I wasn't  working on my craft outside of work.&lt;/p&gt;

&lt;h2&gt;So what should we do to become a better software engineer?&lt;/h2&gt;

&lt;ol&gt;
    &lt;li&gt;
&lt;h4&gt;&lt;strong&gt;Start listening to Podcasts.&lt;/strong&gt;&lt;/h4&gt;
Podcasts huh? If you'd have told me 5 years ago that I'd be here today recommending that someone else , or even that I myself would become a regular podcast listener. I would not have believed you. But here is the thing with podcasts, if you can find a few good podcasts tailored to your industry and listen to a few episodes a month on your commute or some other designated alone time, you can find yourself with a ton of great "pointers to things for yourself to learn and explore later when you have focused time to study" What I find is that when I am working on a training course, these courses tend to focus on the small details, and often I find myself having memorized a set of instructions which I might be able to repeat later but with a tenuous grasp on the higher level stuff. It's almost like I have a pocket full of arrays of data when I was hoping to have a neatly organized jagged array of new cool things I learned.
I think it takes a mix of these two elements to really learn something and this is where the podcasts come in, while you are doing essentially nothing you can start priming yourself for what you need to learn and then taking that learning to a higher level. This really helps to hone in on where your attention needs to be while studying the details. If time is money then this is free money!&lt;/li&gt;
    &lt;li&gt;
&lt;h4&gt;&lt;strong&gt;&lt;a href="https://amzn.to/2u2ksZX"&gt;Get an Audible account. &lt;/a&gt;
&lt;/strong&gt;&lt;/h4&gt;
Ok so you have bought in on the podcasts idea and you've started to learn how to learn passively, now it's time to take it up a level! Get an Audible account! Audible is a service by amazon which costs $9.99 a month and allows you to choose ANY audio book in the library each month. You are awared 1 credit a month to purchase a book and after your purchase it you own it. Podcasts are great for absorbing general discussions about things you want to learn about, but they don't always have more specific informationThey often don't go into detail about the topics discussed. For that reason, I suggest you get an Audible account and start amassing a collection of technical material. The $9.99 a month cover charge for Audible is a great investment!&lt;/li&gt;
    &lt;li&gt;
&lt;h4&gt;&lt;strong&gt;Get a PluralSight account.
&lt;/strong&gt;&lt;/h4&gt;
(Or another service that provides the same thing) PluralSight is a video training sight with a wealth of video course that can teach you about just about anything in the technical field. Get a PluralSight account and designate some time to work through a course or at least a few sections of whatever it is you have decided is important for your professional development. I have likely learned more from PluralSight than I have from the bulk of the college courses I have taken.&lt;/li&gt;
    &lt;li&gt;
&lt;h4&gt;&lt;strong&gt;Start looking for Meetups around you.
&lt;/strong&gt;&lt;/h4&gt;
Meetups! Meetups are local groups, usually dedicated to specific technical disciplines that that allow you to sit down for a period of time and talk shop with your peers. Even if you are working consistently with peers at your day time job you likely aren't replicating this experience. As a bonus meetups allow you to extend your professional network which is going to make finding a job and gaining new perspectives much easier in the future.&lt;/li&gt;
    &lt;li&gt;
&lt;h4&gt;&lt;strong&gt;Force yourself to practice.
&lt;/strong&gt;&lt;/h4&gt;
Practice , practice and more practice. If you want to be good at something you have to make yourself practice. I recommend making a goal to practice programming every day. This isn't always fun and it is easy to fool yourself into thinking that it is not necessary.  It's easy to convince yourself after spending all day working on code, it isn't reasonable to come home and work on more code. My advice here is to look ahead to projects or responsibilities that you expect to tackle your current job. (or your future job) Use PluralSight to target courses that teach you NEW ways to tackle these projects! Start working on classes that prepare you for your immediate future as a developer.  Complete the work, become good at it , and then go pitch your solution as THE solution for the upcoming problem. This helps  you to stand out to your peers and your boss! Go get that money guys!&lt;/li&gt;
    &lt;li&gt;
&lt;h4&gt;&lt;strong&gt;Constantly look at job postings
&lt;/strong&gt;&lt;/h4&gt;
Even if you aren't looking for a job (and you should be always) start looking at postings. Looking at job postings give you an idea of what skills you are missing should a time come that you NEED to find a job, using all of the aforementioned tips on how to self study, if you are doing them right, you are less likely to find yourself in the oh too familiar situation of looking for a job but only having experience in half of the common concepts and frameworks that are currently in demand. Also, don't fool yourself into thinking that these requirements are beneath you , or the skills you have already learned make up for not having them or even that due to your vast experience a hiring manager will choose you instead of a candidate that already has them. That is self sabotage at it's best!&lt;/li&gt;
    &lt;li&gt;
&lt;h4&gt;&lt;strong&gt;Refactoring is your friend. Do not settle for your first solution.
&lt;/strong&gt;&lt;/h4&gt;
Lastly learn to love to refactor your code. Do it once, make it pretty and then refactor it again. keep a list of items you want to improve while you are building your code and then do them when you have time. I can't stress enough how important it is to be able to critique your own methods or how much you learn from rewriting your code and chipping away are assumptions while you implement best practices.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt; &lt;/p&gt;



&lt;br&gt;&lt;br&gt;
&lt;br&gt;

</description>
      <category>beginners</category>
      <category>sideprojects</category>
    </item>
    <item>
      <title>Demystifying the C# Interface</title>
      <dc:creator>nineismine</dc:creator>
      <pubDate>Thu, 30 Jan 2020 18:57:23 +0000</pubDate>
      <link>https://forem.com/nineismine/demystifying-the-c-interface-3fen</link>
      <guid>https://forem.com/nineismine/demystifying-the-c-interface-3fen</guid>
      <description>&lt;p&gt;Interfaces in programming are a subject that I have sometimes grappled with in C#. When should I use them? Why would I want to spend time writing this extra code that doesn't seem to do anything? How many methods does it take to make a good interface(and justify their existence)?&lt;/p&gt;

&lt;p&gt;I've spent a good bit of time puzzling over thee questions. (and even outright avoiding interfaces)&lt;/p&gt;

&lt;p&gt;I finally have a grasp on them and hopefully over the course of this post, I can explain them in a way that will demystify the concept for you.&lt;/p&gt;

&lt;p&gt;If these are the types of questions that you have struggled with or you are just new to the concept then read on! I got you covered.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h2&gt;How do interfaces work in C# and what is this contract nonsense?&lt;/h2&gt;

&lt;p&gt;Interfaces in C# are often described as:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;An interface is a contract that guarantees to a client how a class or struct will behave. When a class implements an interface, it tells any potential client “I guarantee I’ll support the methods, properties, events, and indexers of the named interface.” &lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;An interface offers an alternative to an abstract class for creating contracts among classes and their clients. These contracts are made manifest using the &lt;code&gt;interface&lt;/code&gt; keyword, which declares a reference type that encapsulates the contract."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Pardon me while I put on my "What the heck does that mean face". So while this is technically correct I had a really hard time puzzling those words into actionable code or a solid understanding of when to use them.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Interfaces started making more sense to me when I started thinking of them as behaviors.&lt;/em&gt; &lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As a beginner I tried to reconcile interfaces into a similar bucket as classes , abstract classes  and other constructs. Interfaces aren't really like them at all though!&lt;/p&gt;

&lt;p&gt;While classes define how a construct behaves , &lt;em&gt;interfaces simply just ensure that we know that the construct will have a behavior&lt;/em&gt; .&lt;/p&gt;

&lt;h2&gt;OK, so what does that mean?&lt;/h2&gt;

&lt;p&gt;The two main questions that I needed to understand about interfaces we're not well defines in any of the material I viewed when reading about them.&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;
&lt;strong&gt;When do I use an interface?&lt;/strong&gt;
&lt;ul&gt;
    &lt;li&gt;When I have a group of objects that I want to be able to collect and ultimately use based on the Interface defined behavior(s)&lt;/li&gt;
&lt;/ul&gt;




&lt;/li&gt;


    &lt;li&gt;

&lt;strong&gt;How many methods do I need to apply to an interface to justify the work of building one?&lt;/strong&gt;

&lt;ul&gt;
    &lt;li&gt;Just 1! (if you have the need to loop over disparate types based on their behavior)&lt;/li&gt;
&lt;/ul&gt;




&lt;/li&gt;


&lt;/ul&gt;
&lt;br&gt;&lt;br&gt;
Often when I have seen interfaces explained in other mediums they use examples where similar things have behaviors that are similar and then they try to explain to us that the interface just means each of these similar things.

&lt;p&gt;In &lt;a href="https://amzn.to/315nlpe" rel="noopener noreferrer"&gt;Head First Design Patterns&lt;/a&gt; (which I think is a great book) they explain interfaces in the context of animals, and the need for those animals to make sounds.&lt;/p&gt;

&lt;p&gt;This example was really difficult for me to wrap my head around because why would I do this? Where would I use this?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F01%2FSnag_84a70b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F01%2FSnag_84a70b.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It took a long time of my playing around with interfaces to really put together a good example of when and why I would use them.&lt;/p&gt;

&lt;p&gt;Finding this understanding also helped me answer the question I had  about &lt;em&gt;"How many methods justify the use of an interface?". (&lt;strong&gt;hint&lt;/strong&gt; the answer is 1!)&lt;br&gt;
&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Here is an example that explains a situation that helped the idea click for me.&lt;/p&gt;

&lt;p&gt;Instead of thinking about cats and dogs lets thing about all the different things that we can power on in our house.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F01%2FSnag_8c303e.png" class="article-body-image-wrapper"&gt;&lt;img title="" src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevelopingdeveloper.net%2Fwp-content%2Fuploads%2F2020%2F01%2FSnag_8c303e.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the above example we can see that each of the different types of devices turn on in a very different way.&lt;/p&gt;

&lt;h2&gt;&lt;/h2&gt;

&lt;h2&gt;Let's look at some code&lt;/h2&gt;

&lt;p&gt;Now what if we wanted to write code to play a prank and turn on everything in the house at once?&lt;/p&gt;

&lt;p&gt;Let's assume that we have a program which has a list of all of the devices in the house. Oh wait! How do we even add a Computer , a Car and a Motion Activated Light to a collection? Don't we need to cast a List by type?&lt;/p&gt;

&lt;p&gt;So I guess we can make three lists (and one more for every type of other device)&lt;/p&gt;

&lt;pre&gt;List&amp;lt;Computer&amp;gt; computers = new List&amp;lt;Computers&amp;gt;();

computers.Add(cpu1);

computers.Add(cpu2);

List&amp;lt;Car&amp;gt; cars = new List&amp;lt;Car&amp;gt;();

cars.Add(car1);

cars.Add(car2);

List&amp;lt;MotionActivatedLight&amp;gt;  mals = new List&amp;lt;MotionActivatedLight&amp;gt;();

mals.Add(mal1);

mals.Add(mal2);&lt;/pre&gt;

&lt;p&gt;Then we could do something like this :&lt;/p&gt;

&lt;pre&gt;Program Main()

{

foreach (Computer computer in Computers )

{

computer.TurnOn();

}

foreach (Car car in Cars)

{

car.TurnOn()

}

foreach (MotionActivatedLight mal in mals)


//turn them on

}
}&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;The thing to note here is that we need to treat each object as their own type, put them in collections by type and then iterate through each one to turn everything on.&lt;/p&gt;

&lt;p&gt;This is where interfaces can be used to make your job sooooooooo much less tedious.&lt;/p&gt;

&lt;p&gt;See with an interface what we are doing is guaranteeing that an object will know how to do some behavior. The objects don't really need to be related by anything other than the interface (or the shared behavior) ...&lt;/p&gt;

&lt;p&gt;So how does this make our programming task easier???&lt;/p&gt;

&lt;p&gt;Instead of making a list object for each type (Computer , car, Light, TV , Hair dryer, Washing Machine etc)  we can make one collection and cast it as the Interface type&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Then we can add every device in the house to this one collection! Let look at what the code above would look like using this knowledge.&lt;/p&gt;

&lt;pre&gt;List&amp;lt;IPowerable&amp;gt; powerableDevice = new List&amp;lt;IPowerable&amp;gt;();

powerableDevice.Add(cpu1);

powerableDevice.Add(car);

powerableDevice.Add(Light);

powerableDevice.Add(TV );

powerableDevice.Add(Hair dryer,);

powerableDevice.Add(Washing Machine );&lt;/pre&gt;

&lt;p&gt;As you can see we have already simplified things now because we have ONE list but now lets look at the code to turn it on.&lt;/p&gt;

&lt;pre&gt;Program Main()

{

foreach (IPowerable powerable in powerableDevice )

{

powerable .TurnOn();

}

}&lt;/pre&gt;

&lt;p&gt;See how much easier that is? This is where the "contract" that people mention comes in . See we know that IPowerable anything will always have a TurnOn() method and even though the means to do it might be totally different for each type we know that the device will know how to manage it. That is what the interface gives us.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

</description>
      <category>oop</category>
      <category>csharp</category>
    </item>
    <item>
      <title>Visual Studio: How to Quickly Instantiate classes</title>
      <dc:creator>nineismine</dc:creator>
      <pubDate>Thu, 30 Jan 2020 16:46:33 +0000</pubDate>
      <link>https://forem.com/nineismine/visual-studio-how-to-quickly-instantiate-classes-4bfb</link>
      <guid>https://forem.com/nineismine/visual-studio-how-to-quickly-instantiate-classes-4bfb</guid>
      <description>&lt;h2&gt;Visual Studio: How to Quickly Instantiate classes&lt;/h2&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Early on in my career I found myself questioning the Object Oriented approach at every turn. Implementing and using classes can be a little intimidating when you are first starting to use them . It can also feel like a waste of time, because not only do you need to spend time planning them out, and utilizing precious extra keystrokes to create them. Each time you want to use a class, it requires you to remember each of the member variables and exactly how you spelled them. If we go a little deeper into an actual use case it can be troublesome having to write test cases for each class that we built. To build test cases we need to populate sample data into each of our classes. How can we do that quickly and easily?&lt;/p&gt;

&lt;h3&gt;&lt;strong&gt;Here is a quick tip that will help you quickly and efficiently instantiate classes while using Visual Studio.&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;Let's say that we have a Customer class that has a whole range of members defined and now it comes time to instantiate a customer object in our program.&lt;/p&gt;

&lt;p&gt;One way to do this is to create a new Customer object.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Customer customer = new Customer();&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;and after instantiating  the customer object we can fill in each of the members with test data like so.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;customer.Address = "something";&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;customer.TelephoneNumber = "something";&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;customer.NextMember = "something";&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This is not a real world example, most of the business objects we use in the workplace have 20+ members. On top of that we often create classes in batches.&lt;/p&gt;

&lt;p&gt;When it comes time  to write test cases it can be difficult to remember what all the naming conventions were if we attempt to populate them as I did above.&lt;/p&gt;

&lt;h3&gt;A simple trick to make this process a little more palatable is to instantiate your class as i do below.&lt;/h3&gt;

&lt;p&gt;Instead of creating a new empty class and then assigning the members after. Use curly braces after the "new Customer" declaration.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Customer customer = new Customer&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;};&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Then place your cursor somewhere in the body of the curly braces and hit "ctl + spacebar". This will bring up auto complete which will display a list of all of the member variables that are available to the class.&lt;/p&gt;

&lt;p&gt;Then hit "Tab" which will auto select and populate the first member.&lt;/p&gt;

&lt;p&gt;Then "spacebar" , "=" and give it a value.&lt;/p&gt;

&lt;p&gt;Hit comma "," and then repeat the process until you have finished.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Iokz3xgl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.thedevelopingdeveloper.net/wp-content/uploads/2020/01/Snag_2580e4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Iokz3xgl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.thedevelopingdeveloper.net/wp-content/uploads/2020/01/Snag_2580e4.png" alt="" width="447" height="247"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Visual Studio is smart enough to only give you values that you have not set. You can use this method to work your way through every member until you have them all filled out.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

</description>
      <category>beginners</category>
      <category>productivity</category>
      <category>csharp</category>
    </item>
    <item>
      <title>7 Tips to get into IT without experience </title>
      <dc:creator>nineismine</dc:creator>
      <pubDate>Fri, 03 Jan 2020 03:25:29 +0000</pubDate>
      <link>https://forem.com/nineismine/7-tips-to-get-into-it-without-experience-5cd3</link>
      <guid>https://forem.com/nineismine/7-tips-to-get-into-it-without-experience-5cd3</guid>
      <description>&lt;p&gt;A common question I am asked is how to get into the IT field with no experience?&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Computers are part of everything that we do on a day to day basis at home and in the workplace. &lt;a href="https://www.monster.com/career-advice/article/shrm-industries-need-more-workers-1216"&gt;In addition the industry is facing a massive shortage of skilled employees&lt;/a&gt; , the IT industry as a whole has seen steady growth in salary over the last decade. So how do you get into the IT field with no experience? &lt;/p&gt;

&lt;p&gt;If you are a regular reader of my blog than you may know that&lt;a href="https://www.thedevelopingdeveloper.net/116-2/"&gt; I am a software engineer by trade.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You may have even read one of my other blog posts:&lt;/p&gt;

&lt;ol&gt;
    &lt;li&gt;&lt;a href="https://www.thedevelopingdeveloper.net/2019/12/14/7-essential-tips-for-the-developing-developer/"&gt;7 essential tips for the developing developer!&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://www.thedevelopingdeveloper.net/2019/12/14/hello-world/"&gt;Hello world!&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://www.thedevelopingdeveloper.net/2019/12/14/naps-are-for-real-men/"&gt;Naps are for real men!&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;






&lt;h3&gt;How to get into the IT field with no experience.&lt;/h3&gt;

&lt;h4&gt;The next decade will likely consist of a transformation in the IT Industry.&lt;/h4&gt;

&lt;p&gt;As government agencies complete a transition to more digitized record keeping and workflow which means more jobs. Information Security is becoming front and center in the industry. All the while machine learning is starting to take off and these are all signs that point to a very busy decade for people in this field. If you are thinking about transitioning, now is a great time!&lt;/p&gt;

&lt;h4&gt;Ok sounds good but how can I do it?&lt;/h4&gt;

&lt;p&gt;As a guy who grew up in a small town with very little technology footprint, in a family that didn't even own a computer, it's fair to say that I started at the bottom. I didn't own a computer until my 20's and even after I got one that idea that I could break into this industry seemed like a pipe dream. Never the less I did it and I'm here to share some of the ways that I used to get into the IT field with no experience! &lt;/p&gt;

&lt;ol&gt;
    &lt;li&gt;
&lt;h3&gt;Make friends with "computer guys"&lt;/h3&gt;
&lt;a href="https://www.youtube.com/watch?reload=9&amp;amp;v=KdDIPLGKNCI"&gt;Jim Rohn famously said "you are the average of the five people you spend the most time with" &lt;/a&gt;.

While I don't think this is necessarily a hard and fast rule there is some truth to it for sure! You want to get into computer science right? Well one of the easiest ways to get started is to simply immerse yourself in it! There is probably a department at your work where people are already doing the kind of job that you are hoping to land so why not: 

     - Make an effort to chat some of them up. 
     - Spend more time in their work area.
     - Find assignments that get you near those work areas.
     - Make it a point to make conversation and let people know that you are interested in computers! 

These are some of the  things that I did (mostly organically) when I was working outside of the IT field. These things are effective for multiple reasons. When you surround yourself with people in the field you are both networking, and immersing yourself with the day to day terms and operations of people who are working where you want to be. You are also building a support system which will be useful when you stumble at trying to learn on your own. &lt;/li&gt;
    &lt;li&gt;
&lt;h3&gt;Get a computer and build it yourself.&lt;/h3&gt;
&lt;h4&gt;My story &lt;/h4&gt;
My first job was in warehousing, I worked many hours doing manual labor. Doing this I quickly realized that I was more interested in the computer inventory systems , than I was picking and packing orders. Luckily for me I had made friends with a "computer guy" at work. I can't even say that I know what he did there but I knew it had to do with computers.
&lt;h4&gt;Getting Started&lt;/h4&gt;
I asked him if he could help me pick out my first computer. How he chose to tackle that request changed my life forever. Instead of getting some "off the shelf" computer that I could just walk into a store and buy. He gave me a list of parts from a local PC store (shout out to PC Club in Arizona) and I over the next couples months went in on my payday and purchased as many parts as I could. After several weeks (man this part sure was tough! I wanted that computer sooooooo bad!) finally one day I had them all.
&lt;h4&gt;Putting it together &lt;/h4&gt;
I was so excited to bring them over to my friends house and watch him put it together. (We hadn't talked about this part and myself not really being handy at putting anything together, didn't even consider that I could take my pile of computer parts that I had been so diligently collecting and then risk putting them together) I called him up and he told me "Ok put it together", and then proceeded to walk me through how to do that over about an hour on the phone. He explained to me what things looked like, why they were and how they went together.  
&lt;h4&gt;The Payoff&lt;/h4&gt;
Putting a computer together is really easy if you just get over the feeling that its some high tech thing! It's easier than working on a car, or wiring up power in your house, it is certainly easier (and less smelly) than replacing or maintaining your toilet! After I put a computer together for the first time, from that point on I was no longer afraid to get under the hood. I had taken my first step toward becoming one of those "computer guys" we mentioned earlier. If you are asking how to get into the IT field with no experience... this is one of the most important steps. &lt;/li&gt;
    &lt;li&gt;
&lt;h4&gt;Install Windows and then break it , then reinstall it.&lt;/h4&gt;
(OK, you don't really need to break it but that's how it went for me. )

After I got my shiny new computer put together I still needed to install Windows on it. While it has gotten much easier to install Windows over the years. It is an important step toward getting over the fear of not knowing things about your computer AND doing this is going to have you touching on some important things that you should understand about how all that magic happens on your computer. 
&lt;h4&gt;The Bios?&lt;/h4&gt;
Get in there , install it, break it, fix it! One of the things that you learn about while doing this is &lt;a href="https://www.lifewire.com/bios-basic-input-output-system-2625820"&gt;the BIOS&lt;/a&gt;. I'm not going to go into any detail here but to me the BIOS is like an underlying operating system that controls the hardware of your machine and allows it to boot up to a real  operating system. Understanding how to access the BIOS, and configure it (they are all pretty similar in my experience) is going to take you a even farther down the path of getting ready for your new career. 

Understanding how to install and configure Windows is another important step in our goal, how to get into the IT field with no experience.&lt;/li&gt;
    &lt;li&gt;
&lt;h3&gt;Find a project / Start learning / Pursue a degree?&lt;/h3&gt;
&lt;h4&gt;OK so which one?&lt;/h4&gt;
How you tackle this can really vary and I would suggest that you do what is right for you. I will tell you about some of the first things that I did though! 
Let's tackle college first. I am just about to wrap up my Masters Degree in Information Technology. When I look back at my time in school it definitely is not the deciding factor in my success.  If you have to pay for your own schooling and work while doing it, without a doubt, you will learn far more from personal projects than from anything else in my lifetime (especially college).
&lt;h4&gt;Is college for me?&lt;/h4&gt;
Colleges these days are pretty far behind current technologies. (Books take a long time to write publish and get approved for curriculum! ) The new fad seems to be online college in compressed time frames to churn students through the rankings. On top of that you could very easily come out of a degree program (like me) owing a ton of money.  I'm just not sure that it is necessary. While the structure of a college curriculum can take away the burden of self-motivating and self-directing. If you aren't careful you will find yourself pushed down the wrong path, learning the wrong things. It's easy to find yourself with a schedule that's been assembled by a student support system whose main goal is to enroll students , not ensure they are taking the right classes. 
&lt;h4&gt;OK so if not college then what?&lt;/h4&gt;
I think it is a good idea to start some personal projects! Do some free online classes , set up something in your home that stretches what you know! Take control of your networking environment , set up your router , make a network diagram, find a video series and follow it but put your own spin on it! Adapt that tutorial to something specific in your home environment.&lt;/li&gt;
    &lt;li&gt;
&lt;h3&gt;Start reading job postings (and applying to them)&lt;/h3&gt;
Here is the thing about job hunting. It takes up a bunch of time, employers have more tools than ever to screen out candidates and there is more information then ever out there about what skills employers are looking for than at any time before. 
&lt;h4&gt;So what does that mean for us? &lt;/h4&gt;
First off , one of the hardest things about getting into the IT field is just how many different avenues of learning there are to pursue. In addition, how much do you need to know about each? How do you find a good learning path to ensure you have the required skills? 
&lt;h4&gt;This is where job hunting comes in. &lt;/h4&gt;
Looking over job postings (at least monthly) will give you an idea of what kinds of jobs are available and what skills are required for them. Start looking and applying as soon as possible. Even before you feel 100% that you can land a job get the process going. Understand that this time is an investment in your career and while it might not land you a job. You will see over time how much more prepared you are as a result of it. &lt;/li&gt;
    &lt;li&gt;
&lt;h3&gt;Don't forget about networking&lt;/h3&gt;
&lt;h4&gt;First off get on LinkedIn... NOW. &lt;/h4&gt;
I know I know , you are anti conformist and you "Don't do that social media stuff".. well you do now! Every job I have accepted since my first job in the technical field has been at least partially due to networking. Get on Linked In, start giving your coworkers referrals and start making connections.  The more people you have access to the more information you have about jobs and the better chance you have of landing them. This doesn't mean that you should make an effort to create superficial connections. We aren't looking for an "instagram likes count" we want to make strong connections with people who know what kind of worker you are and can vouch for you. Also remember to do the same for others too! &lt;/li&gt;
    &lt;li&gt;
&lt;h3&gt;Start looking for crossover positions&lt;/h3&gt;
&lt;h4&gt;Last but not least start looking for things in your current role, that work as a crossover into the IT world.&lt;/h4&gt;
- If there is a spreadsheet to maintain... maintain it.
- Look for a manual process in your area and  automate / digitize it.
- Find a pain point in your department, find a solution and sell it to your manager.

If you can do these sorts of things long enough, ask for a title change to reflect the work you are doing. Even if you can't get a title change (bigger companies often have inflexible title structures) these kinds of activities can go on your resume. Do them long enough and you now have real experience which might actually qualify you for a new job in your chosen field. If you do this you can go from "how to get into the IT field with no experience" to "How to find a job in the IT field WITH experience".&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>career</category>
    </item>
  </channel>
</rss>
