<?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: Amit Naipaul</title>
    <description>The latest articles on DEV Community by Amit Naipaul (@theomelette).</description>
    <link>https://dev.to/theomelette</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%2F577744%2F7eb76f04-cb82-411b-8823-12611a65743d.png</url>
      <title>DEV Community: Amit Naipaul</title>
      <link>https://dev.to/theomelette</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/theomelette"/>
    <language>en</language>
    <item>
      <title>What's Helped Me Learn</title>
      <dc:creator>Amit Naipaul</dc:creator>
      <pubDate>Thu, 22 Apr 2021 00:01:27 +0000</pubDate>
      <link>https://dev.to/theomelette/what-s-helping-me-learn-a0h</link>
      <guid>https://dev.to/theomelette/what-s-helping-me-learn-a0h</guid>
      <description>&lt;p&gt;As I've described in a previous post, going back to a learning environment in my mid 30's was difficult. In that post I outlined my experience (so far) during the Software Engineering bootcamp at Flatiron School. I described some ways that helped me learn, so let's see how that's holding up.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--n9ZrS0ls--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/758l2p7tb6kkigxkimu2.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--n9ZrS0ls--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/758l2p7tb6kkigxkimu2.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Taking good notes is still important. Having something you can refer to in an organized manner is incredibly helpful. Even finding and bookmarking outside resources or tutorials to go back to can be a great help. I still rewatch the lectures and take notes from there, focusing on absorbing information visually during the live lecture. It may not all make sense live, but when watching the recording it may finally make sense. My note taking hasn't changed much. I still take coding notes in OneNote, and conceptual stuff goes in an actual notebook. Things like term definitions or concepts should be written down, as it helps to remember them. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DEq1QtSf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5lvj44k4kw39aa314ft0.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DEq1QtSf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5lvj44k4kw39aa314ft0.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Breaks are good. But they have to be real 'breaks.' During a studying session recently I decided to step away from my desk as I was beginning to get frustrated with syntax and just couldn't get a lab to pass. I ended up taking a walk to my pharmacy as I'd gotten a text that my meds were ready. I get there are there's a major issue! It wasn't a real break from being stressed. A real break is putting yourself in a situation where you can think clearly, recharge, and destress. Don't take a break and risk putting yourself in a situation where you can just stress yourself out even more. I've learned to step away from my desk, go into my living room and just hang out for a bit. Watch something, listen to music, or just mellow out on the sofa for a little bit.&lt;/p&gt;

&lt;p&gt;Learning is still hard. I still feel like I fell behind some of my classmates, barely keeping up. But everyone learns at their own pace. Sometimes I'll be up until 10PM rewatching lectures or guides on coding just to get a better understanding of what I should be doing. But the best way to learn is:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6TZ2nL49--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qpv2kha3fbi8jn2tr299.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6TZ2nL49--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qpv2kha3fbi8jn2tr299.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;CODE! Do it yourself. Getting a bunch of practice in, whether it's redoing labs or just building something from scratch using the tools you've acquired goes a long way in getting that coding flow down. &lt;/p&gt;

&lt;p&gt;Even though I'm essentially out of the learning environment, moving on to the next phase where I have to code my own solo project, then graduation, I'm not going to stop learning. I'm not going to stop practicing. Repeatedly coding, looking at code, and being able to understand what you're looking at are what lands us jobs in the industry. &lt;/p&gt;

&lt;p&gt;If you're thinking of starting a coding bootcamp, I highly recommend it! It's definitely challenging, and will sometimes push you beyond what you think you can handle, but you walk away with a wealth of knowledge learned in a relatively short amount of time. We've learned Ruby, Rails, JavaScript, and React in just 12 weeks! Looking back on the pre-work for the bootcamp I was incredibly lost, as I had no coding experience whatsoever. But taking the initiative and fully throwing myself into the course, I can honestly say that I'm glad I did it, no matter how difficult it got.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>JavaScript Arrow Functions</title>
      <dc:creator>Amit Naipaul</dc:creator>
      <pubDate>Tue, 30 Mar 2021 02:26:07 +0000</pubDate>
      <link>https://dev.to/theomelette/javascript-arrow-functions-5a6b</link>
      <guid>https://dev.to/theomelette/javascript-arrow-functions-5a6b</guid>
      <description>&lt;p&gt;So we're getting to know JavaScript! One complaint I've been hearing with my peers is the syntax takes a while to get your head around. JavaScript is not forgiving when it comes to mistakes, especially when involving curly braces and parenthesis. Hunting for the missing closing curly braces in dozens, sometimes hundreds of lines of code can eat up a lot of time.&lt;/p&gt;

&lt;p&gt;Luckily JavaScript does give us some ways of easing our pain. Let's take a basic look at arrow functions&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is an arrow function?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An arrow function is a compact way of writing out functions! Sometimes they can even be condensed into one line. Let's take a look at some simple code;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GqqTGXHJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fa9w60mmqkt0h8izvtyt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GqqTGXHJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fa9w60mmqkt0h8izvtyt.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here we have a simple function. We'll get this down to a single line. First we remove the "function" declaration, and put an arrow (=&amp;gt;) between the argument and opening bracket.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ijEwclNB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ed2c42v4tbcrjr0glm87.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ijEwclNB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ed2c42v4tbcrjr0glm87.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then we can remove the curly braces, and the word "return." With arrow functions, the return is implied.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kHtfGjsO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v7hqlw2tvvs9xpzhgbwb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kHtfGjsO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v7hqlw2tvvs9xpzhgbwb.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Awesome. Now we can remove the argument parentheses and we have just one line of clean looking code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zl5er9zL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jwkbk57ja6wr9tfgg7cu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zl5er9zL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jwkbk57ja6wr9tfgg7cu.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;JavaScript syntax can get complicated. There are situations were you can't use arrow functions. For instance, if you have a function that contains more than one statement, you still have to use curly braces and the return keyword.&lt;/p&gt;

&lt;p&gt;Another case where you would have you use a regular function is if you have no arguments. If you want to leave those parenthesis empty, say if you don't know how many arguments you might need, arrow functions simply won't work. Go with a regular function. &lt;/p&gt;

&lt;p&gt;Also you can't name them. Arrow functions are all anonymous functions, as they can't have a name identifier.&lt;/p&gt;

&lt;p&gt;I hope this brief explanation of arrow functions have helped you understand it a little bit more. It was a foreign concept to me when starting to learn JavaScript  and for a while when practicing writing code, I stuck to regular functions. Only after I saw it broken down, step by step, did I understand the syntax a little better.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>The Request - Response Cycle</title>
      <dc:creator>Amit Naipaul</dc:creator>
      <pubDate>Mon, 08 Mar 2021 18:38:57 +0000</pubDate>
      <link>https://dev.to/theomelette/the-request-response-cycle-3hjg</link>
      <guid>https://dev.to/theomelette/the-request-response-cycle-3hjg</guid>
      <description>&lt;p&gt;So we've learned Ruby, and started thinking about building our own website. Most people, like myself, would want to just jump right in with Rails, HTML, and making everything look pretty with CSS.&lt;/p&gt;

&lt;p&gt;But first, we have to understand what's happening when it comes to browsing websites before we can code our own.&lt;/p&gt;

&lt;p&gt;So just how does the web work? There are many components to the web, like the internet itself, hardware we use to connect and browse, and they're all connected with HTTP (Hypertext Transfer Protocol). &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is HTTP?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;HTTP is a protocol that is used to transfer data over the web. HTTP &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods"&gt;uses a set of methods that perform various tasks.&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;To understand what happens when we browse the web, we need to know about the client and server interactions, and the "request-response" cycle.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is a client?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A client is us! Or more specifically, our computer, phone, or any other hardware that has a browser to access the internet (like Safari, Chrome, or Firefox). We type in a website, and get a response from a server.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is a server?&lt;/strong&gt;&lt;br&gt;
A server is a program or device that responds to client requests. It returns information to the browser so we can get the information we requested. Servers can access databases to retrieve and store information as needed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1sVeREwd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0uds20qr7ohdin8k2z5j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1sVeREwd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0uds20qr7ohdin8k2z5j.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If we have our browser open, we'll go to &lt;a href="http://www.https://flatironschool.com"&gt;www.https://flatironschool.com&lt;/a&gt;, we'll be taken to the Flatiron School main page. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BHKz61MM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q32jy1rc4lpdyliq5841.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BHKz61MM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q32jy1rc4lpdyliq5841.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Our browser (the client) submits a HTTP request to the server (where Flatiron's website is hosted). The server returns a response, and we get back a HTML page to our browser. &lt;/p&gt;

&lt;p&gt;So to simplify;&lt;/p&gt;

&lt;p&gt;The &lt;em&gt;client&lt;/em&gt; sends an HTTP request on the web.&lt;br&gt;
The &lt;em&gt;server&lt;/em&gt; receives the request, and returns an HTTP response to the browser.&lt;/p&gt;

&lt;p&gt;Another example would be checking your Facebook feed. When you access Facebook in the browser, you initiate a request to Facebook's server, and they respond with a display of the login page. You go ahead and log in (another request-response, as you're requesting to log in and the server accesses it database and says, "Hey, it's you, you're good!")&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fua_NOda--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vlq1gh6vzgjjsz6xix49.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fua_NOda--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vlq1gh6vzgjjsz6xix49.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then you're presented with your Facebook feed. All your family and friends selfies, status updates, and location tags are all products of Facebook getting a request to show your feed, then returning a bunch of information stored in its database. All of that information is displayed neatly in your browser.&lt;/p&gt;

&lt;p&gt;Every step of loading Facebook.com, logging in, and viewing your feed is an example of the request-response cycle. Note that there can be multiple request and responses happening at the same time! That's how we get a bunch of information so quickly instead of having to wait for each bit to load one by one.&lt;/p&gt;

&lt;p&gt;The client side handles all the user interface, and the server stores and retrieves data, processes any logic built into the website, and many other things.&lt;/p&gt;

&lt;p&gt;To dive even further concerning the Client-Server, Mozilla's documentation &lt;a href="https://developer.mozilla.org/en-US/docs/Learn/Server-side/First_steps/Client-Server_overview"&gt;can be found here.&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;To learn more about HTTP, see &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview"&gt;their HTTP documentation.&lt;/a&gt; &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Learning to Learn</title>
      <dc:creator>Amit Naipaul</dc:creator>
      <pubDate>Tue, 16 Feb 2021 18:46:52 +0000</pubDate>
      <link>https://dev.to/theomelette/learning-to-learn-3lil</link>
      <guid>https://dev.to/theomelette/learning-to-learn-3lil</guid>
      <description>&lt;p&gt;Being in my mid 30's, I haven't been in a learning environment in more than a decade, but I have used learning in my day to day life working as a hotel manager. &lt;/p&gt;

&lt;p&gt;Learning new things is always a part of our daily lives, but learning a technical skill, such as coding, is much more in depth. You have to adhere to strict syntax or you'll produce an error. You have to map out your program or app, or else you'll be stuck in a loop you can't exit. &lt;/p&gt;

&lt;p&gt;I've always thought having a basic structure written out for what you want to accomplish is key. When I was training front desk staff at a hotel, I would give them a detailed outline of what needs to be done in order to complete the task at hand down to the keystroke. I took the check-in process and broke it down step by step, and unsurprisingly after a few times repeating the process, a brand new front desk agent understood how to do it without looking at notes!&lt;/p&gt;

&lt;p&gt;Coding, no matter what language you chose to work in, is complex. Just viewing a tutorial or watching a lecture might not be enough for you to be able to grasp higher level concepts right away. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Pw3LIso2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/itzze16chk6s9dhxougu.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Pw3LIso2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/itzze16chk6s9dhxougu.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Take notes!&lt;/p&gt;

&lt;p&gt;Taking notes is incredibly important when learning to code. When starting Flatiron School's software engineering program, I relearned my note taking process and adapted it coding. Here's a snippet of my notes from the creating migrations portion of ActiveRecord:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nipQ1cF8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ulncmc70zv6khnhres7m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nipQ1cF8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ulncmc70zv6khnhres7m.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What I did was type out the actual code that's needed for the process, and added my own notations to clarify where I'm doing that process (in the text editor terminal, or in the rake console for this example). I've also noted the proper syntax for creating a migration. &lt;/p&gt;

&lt;p&gt;Now, doing all of this was time consuming. I watched a YouTube video of the lecture, and while watching I paused the video to write down each step, then resumed. Repeat until all the steps for what I wanted to accomplish was laid out in a format I understood.&lt;/p&gt;

&lt;p&gt;Writing out your notes and adding comments in an easy to read format will definitely help a newbie to coding understand what's going on. Having each step written down one by one, especially if the video you're watching bounces around a bit to test out code or show a different example, will clarify the steps needed to accomplish your task.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
