<?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: Jonny Riecke</title>
    <description>The latest articles on DEV Community by Jonny Riecke (@jricecake).</description>
    <link>https://dev.to/jricecake</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%2F340221%2F5aaf7b71-1d84-428d-a383-92798435a033.png</url>
      <title>DEV Community: Jonny Riecke</title>
      <link>https://dev.to/jricecake</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jricecake"/>
    <language>en</language>
    <item>
      <title>Bootcamps: Should you?</title>
      <dc:creator>Jonny Riecke</dc:creator>
      <pubDate>Mon, 27 Jul 2020 06:51:30 +0000</pubDate>
      <link>https://dev.to/jricecake/bootcamps-should-you-496f</link>
      <guid>https://dev.to/jricecake/bootcamps-should-you-496f</guid>
      <description>&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Like many others with a desire to change their career, I spent a long time weighing the pros and cons of spending the money to attend a coding bootcamp. While I realize that people from many different backgrounds approach this from a variety of social and economic backgrounds, my own decision was spurred by the financial flexibility and inability to break through learning plateaus plaguing my attempts at self-teaching. Even fresh out now, chasing my first developer job, I feel that my experience attending a bootcamp granted me a solid technical foundation, introduced me to essential concepts in this field, and set me up to learn independently moving forward. 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;The program I chose was based on Software Engineering with a focus on Web Development. It was advertised as a full-stack program, so it began with the basics of programming concepts using Ruby. Starting from ground zero was nice, because it gave base to what little knowledge I retained from taking Udemy courses*. This base expanded into Ruby on Rails, detailing how calls from browsers to servers work, and an overview of how backends and APIs work. This expanded into Javascript and HTML/CSS to begin the journey into true front-end concepts, which ultimately amounted into learning Reactjs. This slow process acted as building blocks, forcing us to use only what we had to wrestle the problems of what individual projects we chose for ourselves. As we progressed, we knew why the technologies we learned were developed, what problems they solved, and how just how much easier they made our lives. &lt;/p&gt;

&lt;p&gt;As our frameworks expanded and became more complex, our teaching staff became less and less involved in our learning process. We would of course have lectures outlining introductions to concepts, but were usually sent off to work through labs individually or in pair programming sessions (ONE OF THE BEST THINGS EVER). Spending money to work alone, you ask? Well, that is not quite the case. Given a structured curriculum with clear goals identified, working alone (or with my peers, which was 75% of the time) allowed me to ask the questions I needed to succeed. It made my learning cohort band together to support eachother through failures and successes, making the intimidating task of asking "What the hell is going on?" so much easier. I have been to many talks from hiring managers, and one of the most common things I hear is "If you're not asking questions as a junior developer, that's a very big concern to your employer."&lt;/p&gt;

&lt;p&gt;As lectures became less frequent, our individual autonomy became more and more necessary. Outside of asking questions, we learned to consult the internet for all of our problems. A very common quip of development humor is the consultation of Google for everything. This is VERY TRUE, but how is it really to find the answer to your highly specific questions? If you make a website in React that makes sequential user-generated forms for recipe information that gets posted to your Rails backend that should accept nested form information, but the data is not being reflected in your front-end when the information should be displaying now that the user as submitted it all, do you think that is #1 in your search results? Probably not... But you will find that many have posted their development woes to Stack Overflow, which you can slowly begin to piece together a solution that works for you. In exploring this, you also get insight into the fantastic world that is software development: a shared struggle in wielding computers to perform tasks.&lt;/p&gt;

&lt;p&gt;So I've shared a very shallow overview of my bootcamp experience, but I cannot stress how much I learned from it. Do I think I am immediately employable? No. Do I think I have imposter syndrome? Yes. Do I think you should do one? Maybe- It all depends on you. I have some very close friends that read books on Javascript with no foundation and turned it into a job. I wish I could do that. If I could, I probably wouldn't be changing my career at this point. In reality, I need structure and guidance if I am to learn something and have it stick, so a bootcamp was a great fit for me. If you are looking for something that will immediately get you a great job, please know that, like anything in life, it depends on what you put into it. If you're serious and determined, a bootcamp will put you in a great position to start a new career in a surprising amount of time. What are you waiting for??? ** &lt;/p&gt;

&lt;p&gt;*Note: I am not throwing shade at Udemy courses or self learning for that matter. I am simply stating that while I learned things from Udemy, I ultimately learned how to make one specific thing instead of how to use knowledge to create whatever I wanted. I attribute this to a narrow field of view that is inevitable when exploring an unknown field.&lt;/p&gt;

&lt;p&gt;**Maybe wait for COVID-19 vaccines ;P&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Easy Project Management using Trello</title>
      <dc:creator>Jonny Riecke</dc:creator>
      <pubDate>Tue, 24 Mar 2020 22:45:03 +0000</pubDate>
      <link>https://dev.to/jricecake/easy-project-management-using-trello-dk1</link>
      <guid>https://dev.to/jricecake/easy-project-management-using-trello-dk1</guid>
      <description>&lt;p&gt;It is very easy to get bogged down when working on a project. Generally, the approach we take is to build out bits and pieces that make up the whole.&lt;br&gt;
In my limited experience, I find myself constantly getting distracted, which makes me lose my direction, and then my motivation is spent trying to realign my train of thought. When this continues to happen, begins adding up to a lot of wasted time.&lt;br&gt;
To combat this, I have been using Trello to manage tasks.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--w8998SNQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/2kfakiS.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--w8998SNQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/2kfakiS.jpg" alt="Imgur"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Trello gives you the ability to make columns based on whatever you want. For our purposes, I have followed a basic model of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tasks to Do&lt;/li&gt;
&lt;li&gt;Tasks current being worked on&lt;/li&gt;
&lt;li&gt;Tasks on hold (due to needing other implementations first)&lt;/li&gt;
&lt;li&gt;Tasks Finished&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For my team, we have also created a Resources column to dump any good info we can all use.&lt;/p&gt;

&lt;p&gt;Within these columns, we can create &lt;em&gt;cards&lt;/em&gt; for each task we assign for the project.&lt;br&gt;
Cards can hold more than just the name of the task itself. When clicking into the card, we can utilize a number of different features to better identify the task at home.&lt;br&gt;
Within the card, a very useful thing to do is to add a checklist for all the parts that make up the task. For example, we may be implementing a Game Over Function, but that only tells us so much. As below, we can break it down into the components that make up this function, and check them off as completed. This can signal to my group what is done, and what can still be worked on.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nLjNhcC2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/HvxgxWF.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nLjNhcC2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/HvxgxWF.png" alt="Imgur"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Labels are also very useful- I have seen them used to note urgency of the task needing completion, but we are using it in a way to categorize the different tasks to divide them up effectively.&lt;/p&gt;

&lt;p&gt;The due-date tool is useful as it will plot the card to a shared calendar, and supply alerts if you have a due-date approaching.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vSNAadwc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/YwrQBDF.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vSNAadwc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/YwrQBDF.png" alt="Imgur"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Members is useful to assign specific tasks to a specific person. This notifies users individually and allows tasks to be filtered by user assignments.&lt;/p&gt;

&lt;p&gt;On top of all of this, you can comment on cards, which will show up on the card itself, along with any history of activity that happened within the card.&lt;/p&gt;

&lt;p&gt;Cards can hold a ton of helpful information, and can easily be moved between columns just by dragging and dropping. All together, this makes task management much easier and can help direct your attention at any point.&lt;/p&gt;

&lt;p&gt;Note! I was NOT paid for this, but will happily accept any money :)&lt;/p&gt;

</description>
    </item>
    <item>
      <title>A Javascript Newbie's Reference</title>
      <dc:creator>Jonny Riecke</dc:creator>
      <pubDate>Wed, 11 Mar 2020 00:13:27 +0000</pubDate>
      <link>https://dev.to/jricecake/a-javascript-newbie-s-reference-guide-1ibh</link>
      <guid>https://dev.to/jricecake/a-javascript-newbie-s-reference-guide-1ibh</guid>
      <description>&lt;p&gt;Greetings!&lt;br&gt;
I am starting the dive into Javascript, and I would like to share a little reference cheatsheet I am looking at as a quick reminder for some of the basics.&lt;br&gt;
This post will hold very little conceptual significance and is more like a cheat-sheet for reference.&lt;/p&gt;

&lt;h3&gt;
  
  
  querySelector(); &amp;amp; querySelectorAll();
&lt;/h3&gt;

&lt;p&gt;Called on a document object, this is used to select anything within that matches the parameters passed in the argument.&lt;br&gt;
Searching by an ID can utilize the hashtag ex. querySelector("#exampleID");&lt;br&gt;
Searching by a Class can utilize the period ex. querySelector(".exampleClass");&lt;br&gt;
We can also call this to find any HTML elements ex. querySelector("h1");&lt;/p&gt;

&lt;h3&gt;
  
  
  findElementByID(); &amp;amp; findElementByClass();
&lt;/h3&gt;

&lt;p&gt;Similar to above, these functions will find anything matching the parameters given. As the title of these suggest, these are less flexible than the above choices, but technically run faster (though negligibly so from what I could find on the internet)&lt;/p&gt;

&lt;h3&gt;
  
  
  ARRAYS:
&lt;/h3&gt;

&lt;p&gt;Adding to one? &lt;strong&gt;UNSHIFT&lt;/strong&gt; is at the beginning. &lt;strong&gt;PUSH&lt;/strong&gt; is at the end.&lt;br&gt;
Removing from one? &lt;strong&gt;SHIFT&lt;/strong&gt; is at the beginning. &lt;strong&gt;POP&lt;/strong&gt; is at the end.&lt;/p&gt;

&lt;h3&gt;
  
  
  Target:
&lt;/h3&gt;

&lt;p&gt;This reminded me of params in Ruby. We call Target on events that we listen for- Once an event takes places, we can look at event.target to find a lot of attributes that we can play with. So far, we have only used this to pull out user to input, but given the list of attributes within target, I think that its flexibility is far grander than I can imagine.&lt;/p&gt;

&lt;p&gt;I WILL UPDATE THIS AS I LEARN MORE! :)&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>babycoder</category>
    </item>
    <item>
      <title>Pretty CLI Menus with TTY:Prompt!</title>
      <dc:creator>Jonny Riecke</dc:creator>
      <pubDate>Tue, 03 Mar 2020 00:31:16 +0000</pubDate>
      <link>https://dev.to/jricecake/pretty-cli-menus-with-tty-prompt-2mnh</link>
      <guid>https://dev.to/jricecake/pretty-cli-menus-with-tty-prompt-2mnh</guid>
      <description>&lt;p&gt;Here's a quick one for you:&lt;/p&gt;

&lt;p&gt;We were tasked with building a CLI application that demonstrated basic CRUD functionality. While getting CRUD to work well was an undertaking, making a basic interface for the user felt far more challenging.&lt;/p&gt;

&lt;p&gt;The initial thought for having menu selections, displayed by:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;menu_choices&lt;/span&gt;
&lt;span class="n"&gt;choice&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;gets&lt;/span&gt;
   &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"1. Option 1"&lt;/span&gt;
   &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"2. Option 2"&lt;/span&gt;
   &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"3. Option 3"&lt;/span&gt;
   &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"4. Option 4"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;You get the idea.&lt;br&gt;
We would have this as an early method in our run file to display this to accept input from the user. The functionality technically works, but we have to ensure that the user does not input something OTHER than a number, or god forbid they input the wrong number.&lt;br&gt;
That's where TTY:Prompt comes in!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ttytoolkit.org/"&gt;TTY&lt;/a&gt; is a really useful Ruby Gem specifically made for CLI apps. The Prompt component is just one of many available, and we're only going to scratch the surface.&lt;/p&gt;

&lt;p&gt;First, we will need to install the gem using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="n"&gt;install&lt;/span&gt; &lt;span class="n"&gt;tty&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;prompt&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;or by including it in your gemfile. Make sure to $ bundle after!&lt;/p&gt;

&lt;p&gt;The way it works is that it accepts an array of strings that are displayed as menu choices, to which the user can toggle between using their Up and Down arrow keys. Whichever option is selected is stored as a string that we can then use how we need.&lt;/p&gt;

&lt;p&gt;Lets build a character creator as an example. Assuming we already have a Character class built that we can create new instance of..&lt;/p&gt;

&lt;p&gt;First, we will have to define a variable as a new instance of the TTY::Prompt class.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;create_a_character&lt;/span&gt;
    &lt;span class="n"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;TTY&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Prompt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;We will call on this variable with a method called select that takes 2 arguments, but first, lets define an array that will hold our options for the user. Following the conventions of The Forgotten Realms, we will have options for a class type and a race.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;create_a_character&lt;/span&gt;
    &lt;span class="n"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;TTY&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Prompt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;
    &lt;span class="vi"&gt;@classes_type&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"Barbarian"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Bard"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Cleric"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Druid"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Fighter"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Monk"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="s2"&gt;"Paladin"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Ranger"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Rogue"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Sorcerer"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Warlock"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Wizard"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="vi"&gt;@races&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"Human"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Dragonborn"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Dwarf"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Elf"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Half-Elf"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Gnome"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="s2"&gt;"Halfing"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Half-Orc"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Tiefling"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Now, we add a line that establishes a variable for each prompt, so we can use the choice for instantiation of our new hero. We will make this variable but using prompt.select, to which we provide two arguments. The first is a string that the user sees, the second is an array of strings that are the options.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight ruby"&gt;&lt;code&gt;    &lt;span class="n"&gt;hero_class&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;select&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"What is your class?"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="vi"&gt;@classes_type&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;All together, this will now display the following:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0LoDzzJr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/dRSaREC.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0LoDzzJr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/dRSaREC.png" alt="Imgur"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nice! &lt;br&gt;
Now, we can follow up with another select list for the user to select their race:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight ruby"&gt;&lt;code&gt;    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;create_a_character&lt;/span&gt;
        &lt;span class="n"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;TTY&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Prompt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;
        &lt;span class="vi"&gt;@classes_type&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"Barbarian"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Bard"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Cleric"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Druid"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Fighter"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Monk"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Paladin"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Ranger"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Rogue"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Sorcerer"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Warlock"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Wizard"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="vi"&gt;@races&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"Human"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Dragonborn"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Dwarf"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Elf"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Half-Elf"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Gnome"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Halfing"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Half-Orc"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Tiefling"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="n"&gt;hero_class&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;select&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"What is your class?"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="vi"&gt;@classes_type&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;hero_race&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;select&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"What is your race?"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="vi"&gt;@races&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;TTY Prompt will give the next prompt once an option for the first is chosen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ku6fveEA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/cj26XXY.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ku6fveEA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/cj26XXY.png" alt="Imgur"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With our variables defined by the choices made, we can finally ask the user for their character's name, and create a new instance using all of these variables.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight ruby"&gt;&lt;code&gt;    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;create_a_character&lt;/span&gt;
        &lt;span class="n"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;TTY&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Prompt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;
        &lt;span class="vi"&gt;@classes_type&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"Barbarian"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Bard"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Cleric"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Druid"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Fighter"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Monk"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Paladin"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Ranger"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Rogue"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Sorcerer"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Warlock"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Wizard"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="vi"&gt;@races&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"Human"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Dragonborn"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Dwarf"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Elf"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Half-Elf"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Gnome"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Halfing"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Half-Orc"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Tiefling"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="n"&gt;hero_class&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;select&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"What is your class?"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="vi"&gt;@classes_type&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;hero_race&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;select&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"What is your race?"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="vi"&gt;@races&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"What is your Name:"&lt;/span&gt;
        &lt;span class="n"&gt;hero_name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;gets&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;strip&lt;/span&gt;
        &lt;span class="vc"&gt;@@new_hero&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Character&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;name: &lt;/span&gt;&lt;span class="n"&gt;hero_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;character_class: &lt;/span&gt;&lt;span class="n"&gt;hero_class&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;race: &lt;/span&gt;&lt;span class="n"&gt;hero_race&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;And that's it! Again, this is barely scratching the surface, as &lt;a href="https://github.com/piotrmurach/tty-prompt"&gt;TTY Prompt&lt;/a&gt; alone has a huge range of functionality, as does &lt;a href="https://ttytoolkit.org/components/"&gt;TTY's other 21 components.&lt;/a&gt; If you're trying to make a CLI application, be sure to check it out!&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;

</description>
      <category>ruby</category>
      <category>beginners</category>
      <category>easy</category>
    </item>
    <item>
      <title>Why I'm Here From Where I Came</title>
      <dc:creator>Jonny Riecke</dc:creator>
      <pubDate>Mon, 24 Feb 2020 23:41:16 +0000</pubDate>
      <link>https://dev.to/jricecake/why-i-m-here-from-where-i-came-56id</link>
      <guid>https://dev.to/jricecake/why-i-m-here-from-where-i-came-56id</guid>
      <description>&lt;p&gt;Hello! My name is Jonny Riecke, and I am a current student at FlatIron School in Seattle. I am at the beginning of my 5th week here, and we have been tasked with reflecting on why we are here in the first place. Looking back, there was never a point where I considered moving into this field. If you would have told 20-year-old Jonny that 30 year-old-Jonny would be going back to school for Web Development, he'd probably be very confused. While I don't think that I've ever had a concrete idea of what I wanted to do for the rest of my life, something like this was never in the cards. Now that I am here, I am very excited to see what 40-year-old Jonny will have to say.&lt;/p&gt;

&lt;p&gt;I originally moved to Seattle from Denton, Texas two years ago. Unsatisfied with life stagnating after college, I managed to convince myself that picking up my life and moving across the country would solve all of my problems. I accepted a job offer that would change my career from production work at a small screenprinting shop to running sales support at a gigantic corporation that manufactured computer room air conditioning and battery backup systems.&lt;br&gt;
How &lt;strong&gt;COULDN'T&lt;/strong&gt; this solve all of my problems??? Of course this was the answer!&lt;/p&gt;

&lt;p&gt;Turns out, the adhesive of my bandaid would wear off over the course of the next two years and I'd find a similar dissatisfaction looming over me. What is different now is that I am in one of the biggest tech hubs in the country, now befriended with a lot of people that work in the tech world. I was no foreigner to coding, as anyone that grew up in a pre-iPhone world had a high probability of at least learning just enough HTML to change their MySpace profile. Both I and technology have changed a lot since then, so would this even be something I could do? I dipped my toes into self-teaching, trying things like Harvard's CS50 and courses on Udemy and got a small look into the gigantic, seemingly endless world of programming. Seeing the number of paths you can go down with coding is thrilling, and I was very encouraged to find that learning one language only makes learning your next easier. It seemed flexible, challenging, and rewarding- things I had not experienced from a job in a very long time. &lt;/p&gt;

&lt;p&gt;I knew that I could not go the fully-self-taught route. I am my own worst enemy when it comes to learning. I am easily distracted and even easierly (that's a word) unmotivated, so I knew I had to get into a classroom of some kind. I considered going back to college for a second degree, but the prospect of taking on more debt and being in school for a few more years was daunting. I was trying to convince myself this was the right move until I heard of a friend nearing graduation at a bootcamp. I had not considered a bootcamp as I was not convinced of the legitimacy of alternative-schools. I began researching them, and the general consensus was that, like any other education, it's only as good as the effort you put into it.&lt;/p&gt;

&lt;p&gt;Now here I am, 5 weeks in. I keep being asked, "How is it going so far?" and my response has yet to change: I have never been so utterly defeated and completely motivated at the same time. The coursework is challenging and dense, but I had forgotten how rewarding learning is. Working a problem forever and finally solving it is so gratifying and empowering. I have goals again. I am working towards something with a future that I'm excited for. &lt;strong&gt;I HAVE PURPOSE!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In conclusion, the need for more brought me here. I'm not sure if I'll ever be completely satisfied with my life, and I don't think I'll ever change the world with programming (or blog posting) but I at least can get the satisfaction of knowing that I'm no longer settling for whatever the bare minimum is.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>codenewbie</category>
      <category>bootcamp</category>
    </item>
  </channel>
</rss>
