<?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>DEV Community: Mariany</title>
    <description>The latest articles on DEV Community by Mariany (@marianyp).</description>
    <link>https://dev.to/marianyp</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%2F153228%2F4a7df5c7-dfa5-445b-b445-5ad8e7ce4069.png</url>
      <title>DEV Community: Mariany</title>
      <link>https://dev.to/marianyp</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/marianyp"/>
    <language>en</language>
    <item>
      <title>3 CSS Features That Make Styling Easier</title>
      <dc:creator>Mariany</dc:creator>
      <pubDate>Tue, 07 May 2019 01:31:44 +0000</pubDate>
      <link>https://dev.to/marianyp/3-css-features-that-make-styling-easier-1hin</link>
      <guid>https://dev.to/marianyp/3-css-features-that-make-styling-easier-1hin</guid>
      <description>&lt;p&gt;For some people, and probably most people, CSS can be a pain. However, CSS does come with a lot of useful utilities to make your life easier as a developer and website designer. So let’s get started and look at 3 of the many features that CSS provides.&lt;/p&gt;

&lt;h1&gt;
  
  
  1. Flexbox Center Alignment
&lt;/h1&gt;

&lt;p&gt;The first feature deals with laying out your page. Very often, you will find that you have some content that you’d like to center, rather on a page or inside of a parent. For the longest, though, centering both vertically AND horizontally has had a ‘hacky’ approach and could sometimes be unresponsive. Now, with flexbox and the alignment features it provides, we can do this in a very elegant way.&lt;/p&gt;

&lt;p&gt;On the parent of the element we want to center, we can apply the following styles&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;br&gt;
display: flex;  &lt;br&gt;
justify-center: center;  &lt;br&gt;
align-items: center;&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This will allow me to turn this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SE2JwLwr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://lh5.googleusercontent.com/LGwk_0ehE3_tQygCyobeCEVRjCt88dH53Pj-qj0MUhT2OvWoZwi6n9ynsqmkoHnGEfXJ-6a6k_v4JZTISNTs1v93__WeeII7YR-rjJYUbyvJ7NmS00ETX6Dr-XdbpIG0w6wSc4-C" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SE2JwLwr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://lh5.googleusercontent.com/LGwk_0ehE3_tQygCyobeCEVRjCt88dH53Pj-qj0MUhT2OvWoZwi6n9ynsqmkoHnGEfXJ-6a6k_v4JZTISNTs1v93__WeeII7YR-rjJYUbyvJ7NmS00ETX6Dr-XdbpIG0w6wSc4-C" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Into this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--znXiPtEV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://lh4.googleusercontent.com/qcJQkKhLPM7J_pThqMZAJul1HhzZA0kM7hoyfXHNdBo7jOi0oMaGs4-Jd9qx1gJWQ0FjxzWlFbqwEAMTCor2AuBcJYx3UDlmHH7O5tO9l0V_y8pR5l1wE_hgUBuP9NCDE1JUiepM" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--znXiPtEV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://lh4.googleusercontent.com/qcJQkKhLPM7J_pThqMZAJul1HhzZA0kM7hoyfXHNdBo7jOi0oMaGs4-Jd9qx1gJWQ0FjxzWlFbqwEAMTCor2AuBcJYx3UDlmHH7O5tO9l0V_y8pR5l1wE_hgUBuP9NCDE1JUiepM" alt=""&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  How does this work?
&lt;/h2&gt;

&lt;p&gt;In flexbox, you have two axes. You have something called the main axis and the cross axis. The main axis is essentially an X-axis, it holds content horizontally. In contrast, the cross axis is like a Y-axis, it will hold content vertically. The justify-center property and the align-items property will allow for you to change how items are aligned, respectively. Justify-center being the main axis modifier and align-items being the cross axis modifier.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="my-container"&amp;gt;  
  &amp;lt;div class="text"&amp;gt;Hi, my name is Mariany 😅&amp;lt;/div&amp;gt;  
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So we’re telling the parent element (my-container) to use the flex display. We need to define this in order to be able to use align-items and justify-center. We then add justify-center, which moves the text over to the middle. And then we add align-items, which slides the text down. This will leave our &lt;code&gt;my-container&lt;/code&gt; styles looking something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.my-container {

  display: flex;  
  align-items: center;  
  justify-content: center;


  background: #ddc942;  
  width: 100vw;  
  height: 100vh;

}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I recommend reading more about flexbox and it’s features at &lt;a href="https://css-tricks.com/snippets/css/a-guide-to-flexbox/"&gt;CSS-Tricks Guide to Flexbox&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  2. Transitions
&lt;/h1&gt;

&lt;p&gt;When animating things like buttons or link hovers, or practically anything for that matter, that is considered simplistic; Using animations and keyframes can be overkill. Thankfully, we have transitions that come in handy. Transitions allow for us to transition our elements when certain properties on them change. Just think! Making a hover animation in just 2 lines of CSS!&lt;/p&gt;

&lt;p&gt;We can do this with the transition property. The transition property can take up to 4 values but a minimum of 2. Add the transition to whatever element selector you want to target. For example, if I wanted a transition to the background of an element whenever it gets covered, I could do something like this.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.box {  
  width: 300px;  
  height: 300px;  
  background: red;  

  transition: background 1s;  
}  

.box:hover {  
  background: blue;  
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Essentially, we’re telling the box element to animate or transition whenever the background changes, instead of just instantly changing it. We then add a selector for whenever the user hovers the box element, to change to pink.&lt;/p&gt;

&lt;p&gt;You can read more on transitions at the &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/transition"&gt;MDN Docs&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  3. The calc() function
&lt;/h1&gt;

&lt;p&gt;You may be surprised to know that CSS has functions. Well, it does! And they can be quite useful. One of the most useful in my opinion is the calc() function. The calc function allows you to essentially use two different types of units when dealing with sizes. For example, say I want to set a box’s border-radius to 30%, but I want an extra 44px with it? Without this function, it would take a lot of trial and error figuring out what percentage would equal that exact amount. Using the calc() function, I could perform something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.my-box {  
  border-radius: calc(30% + 44px);  

  width: 400px;  
  height: 400px;  
  background: orange;  
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The calc function can do addition, subtraction, multiplication, and division. So it gives you a lot of opportunities to make ‘dynamically’ styled content. It especially becomes useful when dealing with 100vh and navigation bars.&lt;/p&gt;

&lt;p&gt;If you’d like to learn more about the calc function, read more on the &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/calc"&gt;MDN Docs&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>css</category>
      <category>tips</category>
      <category>basics</category>
    </item>
    <item>
      <title>Git &amp; GitHub Put in 5 Simple Steps ✔️</title>
      <dc:creator>Mariany</dc:creator>
      <pubDate>Tue, 30 Apr 2019 20:04:19 +0000</pubDate>
      <link>https://dev.to/marianyp/git-github-put-in-5-simple-steps-egl</link>
      <guid>https://dev.to/marianyp/git-github-put-in-5-simple-steps-egl</guid>
      <description>&lt;p&gt;I'm going to try to write this article with as little mumbo jumbo as possible, so you don’t get unnecessarily confused. I’m assuming you understand the difference between Git and GitHub, as well as the ‘usefulness’ of the two. This post is going to show, in plain English, the steps that go into starting a repository. And then after, show how we do those steps.&lt;/p&gt;

&lt;p&gt;To start, make a GitHub repository. Navigate to “New Repository” on &lt;a href="https://www.github.com/" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;. You should then be on a page that looks like 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%2Flh4.googleusercontent.com%2FADCuH3CorO3D_thyYqW_if5mg9_XwMaTSv_x-_rWIS_8m5AJTKX-tFyiY7TKvQfGUv-LGFRyBTrPLXUW6pmdaPZd6EZgDxDsKM9Tbc_uFKsTa7Skw8RxjUZ5tWg2qw056rgGGjPk" 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%2Flh4.googleusercontent.com%2FADCuH3CorO3D_thyYqW_if5mg9_XwMaTSv_x-_rWIS_8m5AJTKX-tFyiY7TKvQfGUv-LGFRyBTrPLXUW6pmdaPZd6EZgDxDsKM9Tbc_uFKsTa7Skw8RxjUZ5tWg2qw056rgGGjPk"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Simply give your repository a name, relative to whatever project you’re working on or going to be working on. Additionally, you can add a description if you’d like and do things like change the publicity of the repository.&lt;/p&gt;

&lt;p&gt;At the bottom of the page, are a handful of other options to start your repository off with. This part can throw off beginners, as I will explain later on, but if you’d like to add a README, .gitignore, and/or license, go ahead.&lt;/p&gt;

&lt;p&gt;Now that you have your GitHub repo, we can go over the 5 simple steps that will take place when working with Git and GitHub. These steps are as so:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Initiate a local git repository on your computer.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add your remote repository.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Start coding and add your files.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Commit your code&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Push your local repo state to your GitHub repo.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now that you have the steps, let’s break them down and explain how we go about doing them.&lt;/p&gt;

&lt;h1&gt;
  
  
  1. Initiate a local git repository on your computer
&lt;/h1&gt;

&lt;p&gt;The idea behind using Git and GitHub is that you have a git repository online, which we created earlier on GitHub, and that we also have our own local Git repo on our local computer. To make a local Git repo, open the terminal/console in your projects folder and run the command&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git init&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This command creates a .git file in the directory that you are currently in. This .git file makes the directory it’s in a local git repository. So now that we have a local git repository, we can now connect it to our GitHub repository.&lt;/p&gt;

&lt;h1&gt;
  
  
  2. Add your remote repository
&lt;/h1&gt;

&lt;p&gt;So we have our local repository, but how do we connect it to our GitHub repo we made earlier? This command allows for us to connect our local repo to our GitHub repo.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git remote add origin [repo url]&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Let’s break this command down to make sense out of it. We are working with the git remote functionality, which is why the first two arguments are &lt;code&gt;git remote&lt;/code&gt;, so that’s simple enough. But what’s this &lt;code&gt;add origin [repo url]&lt;/code&gt;?&lt;/p&gt;

&lt;p&gt;We are adding a remote to our local repository named ‘origin’. The name ‘origin’ is not necessary either. If we wanted to, instead of ‘origin’, we could name the remote ‘purplecow’ or anything we want really. But the standard is to name it origin.&lt;/p&gt;

&lt;p&gt;The last argument is the link to your repository, which looks a little like this: &lt;a href="https://github.com/user/repo.git" rel="noopener noreferrer"&gt;https://github.com/user/repo.git&lt;/a&gt;. You can find this link by clicking this button on your GitHub repo.&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%2Flh5.googleusercontent.com%2FFyXFgD_tsIhus-sFrpf4o5QMgwoQPOhJ5yfPVXM3IH-QbJDVYCr0WG43-hDOisw5CyyJSSqgxoqbj9ZDIIrsXvtJYXhvL4eWlKKVqtNVxHs-U9hYxvOz049Xura8jV69rrXmSYvc" 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%2Flh5.googleusercontent.com%2FFyXFgD_tsIhus-sFrpf4o5QMgwoQPOhJ5yfPVXM3IH-QbJDVYCr0WG43-hDOisw5CyyJSSqgxoqbj9ZDIIrsXvtJYXhvL4eWlKKVqtNVxHs-U9hYxvOz049Xura8jV69rrXmSYvc"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;h2&gt;
  
  
  (Part 2)
&lt;/h2&gt;

&lt;p&gt;If you added a README, or any other initial file when creating your GitHub, you NEED to follow this step. Otherwise, you may encounter some trouble. If you didn’t initialize with any files, you can skip this and go to Step 3.&lt;/p&gt;

&lt;p&gt;The problem present is that your GitHub repo has a file that your local repository doesn’t have, which is whatever file you initialized with (README, .gitignore, etc). Your local repository is considered behind. To fix this, you now need to pull the files from your GitHub repo to your local repo. To do this we do:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git pull origin master&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This will pull the README.md file or any files that GitHub started off with, into your local repo. It’s important that you do this now in the process. Otherwise, when you start committing changes, your repos will be considered ‘desynced’, and you’ll have to go thru a tedious process to get things right.&lt;/p&gt;

&lt;h1&gt;
  
  
  3. Start coding and add your files
&lt;/h1&gt;

&lt;p&gt;Our GitHub repo and our local repo are all set up! Now it’s time to add files to the staging area. The staging area is basically just the “area” or list of updated files that are ‘appended’ to be committed. To ‘append’ a file, we use the ‘git add’ command. You can add individual files by doing something like this.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git add file1.js file2.js file3.js&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;However, if we already have our project developed and fleshed out, and want the entire directory to be staged, we can do something like this.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git add *&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This is going to add every file, in the current directory to the staging area, that Git detects has changed. But what if there are some files that you don’t want added? Perhaps you have a file with sensitive information that you don’t want Git having access to? This is where .gitignore comes in handy.&lt;/p&gt;

&lt;p&gt;.gitignore is a file that allows for you to blacklist other files to not be tracked. So when doing ‘git add’, you don’t accidentally add unwanted files.&lt;/p&gt;

&lt;p&gt;To make a .gitignore file from the terminal, you may do this.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;touch .gitignore&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;We then open the .gitignore file and filter unwanted files on separate lines. For example, on one line I may put &lt;code&gt;node_modules&lt;/code&gt; to blacklist a folder named node_modules. On another line I may add &lt;code&gt;.png&lt;/code&gt;, to blacklist all png files if I wanted to.&lt;/p&gt;

&lt;h1&gt;
  
  
  4. Commit your code
&lt;/h1&gt;

&lt;p&gt;Almost done! We now need to commit our work. We added our files using &lt;code&gt;git add&lt;/code&gt; and now need to save those changes to our local repository, as those are only in the staging area. To do this, run:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git commit -m "Initial Commit"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;As mentioned, this command will commit any changes/additions we did using &lt;code&gt;git add&lt;/code&gt; to our repo. The &lt;code&gt;-m&lt;/code&gt; allows for us to put a message inside of our command, which we did after in quotation marks. Traditionally, on your first commit, you’ll have the message say “Initial Commit”.&lt;/p&gt;

&lt;h1&gt;
  
  
  5. Push your local repo state to your GitHub repo.
&lt;/h1&gt;

&lt;p&gt;Now all that’s left is to update the state of our GitHub repository. We’ve been running all these commands and doing all these changes, but it’s only been affecting our local repo on our computer. So let’s run a command to update, or &lt;strong&gt;push&lt;/strong&gt;, our GitHub repo.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git push origin master&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Essentially what’s happening is, we’re pushing our master branch to our origin. Origin was one of the things we defined early on, being our GitHub repo's URL.&lt;/p&gt;

&lt;p&gt;So now, look at your GitHub repo page. If all went well, your push should be successful and you should see your files online! Simple enough, right?&lt;/p&gt;

&lt;h1&gt;
  
  
  Post-Tutorial + Tips
&lt;/h1&gt;

&lt;p&gt;Boiled down, these 5 steps can be converted to a list of these commands:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;git init&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;git remote add origin (repo url)&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;git add&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;git commit -m “your message”&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;git push origin master&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;But what do you do while you’re working on a project and you make changes? How do you keep your repo updated as you code? Well, just re-iterate steps 3 - 4.&lt;/p&gt;

&lt;p&gt;For example, what if I fix a bug in my code, so I want to update my repo. I’d do something like this.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git add modifiedFile1.php modifiedFile2.txt&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;As taught earlier, I'd then have to commit those changes by doing running, &lt;code&gt;git commit -m “Fixed a bug where taco was displayed as toast”&lt;/code&gt;. As you can see, I gave a detailed but short description as to what changes I made in the iteration.&lt;/p&gt;

&lt;p&gt;Finally, I push those changes to my GitHub with &lt;code&gt;git push origin master&lt;/code&gt;. And that’s pretty much all there is to Git and GitHub. There are also many array of commands and functionality that Git and GitHub hold, but you’ll slowly learn these as you need them, or by looking at documentation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Thanks for reading! If you have any tips or suggestions, leave them down below.
&lt;/h3&gt;

</description>
      <category>beginners</category>
      <category>git</category>
      <category>github</category>
      <category>versioncontrol</category>
    </item>
    <item>
      <title>How to Answer — “What Programming Language Should I Learn First?”</title>
      <dc:creator>Mariany</dc:creator>
      <pubDate>Mon, 22 Apr 2019 19:50:16 +0000</pubDate>
      <link>https://dev.to/marianyp/how-to-answer-what-programming-language-should-i-learn-first-24i4</link>
      <guid>https://dev.to/marianyp/how-to-answer-what-programming-language-should-i-learn-first-24i4</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Beginners in the software development field ask this question quite often. Yet, it doesn’t seem to have a straightforward answer. This article is going to explain why you should be careful when choosing your first language and how you can answer this question for yourself. So let’s get started!&lt;/p&gt;

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

&lt;p&gt;Usually, when this question gets answered, you may get one of two possible answers. One may say, “Learn X language! It’s the best and is the future”. Which in some sense, may be true. Or they may say, “It doesn’t matter, just pick one”. I have a problem with the latter one because while it is somewhat true, it’s also misleading.&lt;/p&gt;

&lt;p&gt;To illustrate this issue, I want you to imagine that you’re buying a car. You go to the car dealership near town and ask the dealer, “What car should I get?” and in response the dealer says, “Does it matter? Just pick one and go!”. So you take his advice and pick a car at random, pay, and then leave. What happens? Well more than likely, you’re left with a car that you don’t like. The car is worn and is pre-destined to break down soon. Not only that, but it’s appearance isn’t favorable. You ended up spending your money on a vehicle that you don’t even like, and now you’re back at square one. Picking another car and spending more money all over again.&lt;/p&gt;

&lt;p&gt;Similar issues may arise when choosing your first programming language at random. Picking a random programming language may lead you into a field that you aren’t interested in. Leading you to wasting time. Leaving you drained or discouraged from progressing in the field. &lt;/p&gt;

&lt;p&gt;That is why you need to answer the question for yourself. Only you know your strong points and interests.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Fields Interest You?
&lt;/h2&gt;

&lt;p&gt;With this information, we actually need to change the question. Instead of asking, “What Programming Language Should I Learn First?”, you need to be asking “What Fields Interest Me?”. To answer that, though, you’d need to know what fields are out there in software development. This requires some research on your part, but I’ll jumpstart it for you. Here’s a list of some popular fields in 2019.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Frontend Web Development &lt;/li&gt;
&lt;li&gt;Backend Web Development &lt;/li&gt;
&lt;li&gt;Mobile Development &lt;/li&gt;
&lt;li&gt;Game Development &lt;/li&gt;
&lt;li&gt;Data Science &lt;/li&gt;
&lt;li&gt;Cyber Security &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Upon researching some of these, you may come upon one or two that interest you. You may then decide to look into what languages are used in the field and go from there right?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0dle3wEf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.kym-cdn.com/entries/icons/original/000/028/596/dsmGaKWMeHXe9QuJtq_ys30PNfTGnMsRuHuo_MUzGCg.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0dle3wEf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.kym-cdn.com/entries/icons/original/000/028/596/dsmGaKWMeHXe9QuJtq_ys30PNfTGnMsRuHuo_MUzGCg.jpg" alt="Well yes, but actually no" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now you may be wondering, what now? Well, it’s important to note that just because a field/industry interests you, doesn’t mean that it’s right for you. I remember when I was in the same position, I was very fond of the Game Development field. I decided to spend many months attempting to learn many languages and game engines (a mistake in itself). I then came to the realization that game development uses math on a constant basis. And being that I am a person who sucks at math and hates it, I decided that Game Development wasn’t for me. It wasn’t only that I wasn’t good at math, because there are so many online resources to fix that*. But it was the fact that I was not willing to learn these things. I was interested and willing to learn Game Development. But I was uninterested and unwilling in learning the prerequisites of Game Development.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where Should You Go From Here?
&lt;/h2&gt;

&lt;p&gt;So you’ve already done your research on your field of preference, and have a pretty decent mindset towards what to expect when diving into the field. You should now be on to the next step to choosing your language, meaning your question is almost answered! But being that you’ve made it to this step, you’ve probably noticed that there are many tools and technologies out there. Don’t get caught up and spend too much time deciding which one of these to use. Now that you know what field you want, getting into the field is your main priority. So you want to choose something, not necessarily at random, but promptly.&lt;/p&gt;

&lt;p&gt;Each programming language has it’s pros and cons that you will eventually learn, but for the most part they will all do the same thing. Simplifying the list you found, and then picking the most useful and beginner friendly, is usually the answer to the prompted question. So how do we do this?&lt;/p&gt;

&lt;p&gt;Well this takes more research on your part. To start, ask yourself if you plan on using this field for income. If so, try looking up jobs in your area for the field that you chose. Go on sites like Indeed, Glassdoor, LinkedIn, etc., and see what technologies are being used the most. Next, you want to see which technologies have the most online resources available. Language A may have poor documentation, with very little tutorials to get you started. But Language B may have good documentation and very good courses for you to follow.&lt;/p&gt;

&lt;p&gt;Does that mean Language B is better than Language A? Not at all! But for a beginner, Language B would be friendlier, and would aid you in learning how to think like a programmer.&lt;/p&gt;

&lt;p&gt;This is a key element to remember also. Being that this is your first programming language, you do not yet have the mindset of a programmer. While learning the language you chose, you are going to want to learn how to use it's features practically.&lt;/p&gt;

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

&lt;p&gt;While this all may seem like a lot, I can assure you it’s not. This whole process of carefully picking your first language may take anywhere from a day or up to a month. But it will save you so much more time than blindly jumping in with no plan, and will all pay off in the long run.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.khanacademy.org/"&gt;Khan Academy&lt;/a&gt; is a great, free online resource for learning anything from Math to Computer Science.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>beginners</category>
      <category>career</category>
      <category>codenewbie</category>
      <category>discuss</category>
    </item>
  </channel>
</rss>
