<?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: tanyaa-arora</title>
    <description>The latest articles on Forem by tanyaa-arora (@tanyaaarora).</description>
    <link>https://forem.com/tanyaaarora</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%2F712439%2Feaa545a7-5710-49d1-9b3a-e3c8d6074158.jpg</url>
      <title>Forem: tanyaa-arora</title>
      <link>https://forem.com/tanyaaarora</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/tanyaaarora"/>
    <language>en</language>
    <item>
      <title>Internship Experience: My First Week Unveiled</title>
      <dc:creator>tanyaa-arora</dc:creator>
      <pubDate>Sat, 20 Jan 2024 11:46:24 +0000</pubDate>
      <link>https://forem.com/tanyaaarora/internship-insights-my-first-week-unveiled-92b</link>
      <guid>https://forem.com/tanyaaarora/internship-insights-my-first-week-unveiled-92b</guid>
      <description>&lt;p&gt;For most of us, the first internship typically occurs in the third or last year of college, and that holds true in my case as well. I am currently in my last semester of Engineering and have recently joined a startup as a software development intern. In this blog post, I will cover all the things I have learned so far, discuss my assumptions about working in an IT company, outline what beginners need to know, and explore what one can expect from an internship.&lt;/p&gt;

&lt;h3&gt;
  
  
  Navigating Assumptions: What You Need to Know as a Beginner
&lt;/h3&gt;

&lt;p&gt;I used to believe that I needed to know a lot to land an internship, but to my surprise, that's not the case. Companies don't expect you to know everything; a basic understanding of even one programming language can help secure the position. More important than existing knowledge is your willingness to learn new things. In my office, I was assured that I could always approach any senior for help if I faced any problems. This emphasizes the importance of not hesitating to ask questions, even seemingly silly ones, and going the extra mile to learn something that might not be immediately useful but will benefit you in the future.&lt;/p&gt;

&lt;h3&gt;
  
  
  Overcoming Workload Myths
&lt;/h3&gt;

&lt;p&gt;Another misconception I had about being an intern was that the company would overload me with work. However, in my initial days, they allowed me time to get acquainted with everything before assigning small tasks. These tasks were either easy for me or involved a small concept I had to learn to complete. This experience taught me that companies won't burden you with excessive work from the beginning; they might start with manageable tasks that facilitate learning. It's crucial to be honest about what you don't know; maintaining transparency and a learning attitude is key. &lt;/p&gt;

&lt;h3&gt;
  
  
  The Development Cycle: Exploring Environments in Software Development
&lt;/h3&gt;

&lt;p&gt;Moving beyond assumptions and reality, I learned about the various environments used in the development and deployment cycle in my first week. These include the development environment for creating and testing the product, the QA environment for bug checking, and the staging environment—a replica of the production environment where we can preview the product's appearance and functionality for users. The final step is the production environment, where the code goes live for users. This cycle continues, enhancing the product's quality with each new version. &lt;/p&gt;

&lt;h3&gt;
  
  
  Overcoming Overwhelm: Consistency and Connection Building
&lt;/h3&gt;

&lt;p&gt;Feeling overwhelmed is normal, but consistent effort will help you overcome it. Building connections in the office, engaging in conversations with different people, and participating in various activities can lead to unexpected learning experiences. Remember, working all the time can be draining, so take breaks to refresh your mind. &lt;/p&gt;

&lt;h3&gt;
  
  
  Essentials for Internship Success: Language, Version Control, and Confidence
&lt;/h3&gt;

&lt;p&gt;Securing an internship requires only a basic understanding of one programming language, a bit of familiarity with version control, and self-confidence. This formula worked out well for me and I hope it does for you too! Expect significant professional and personal growth during your internship, and make it a goal to absorb as much knowledge as possible.&lt;/p&gt;

&lt;p&gt;So, for all the people out there who are going to kick off their internship journey anytime soon, I'd like to wish them luck and I hope you have a great learning experience!!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>softwaredevelopment</category>
      <category>career</category>
      <category>internship</category>
    </item>
    <item>
      <title>Making a stopwatch in React. The process, the challenges, and the takeaways</title>
      <dc:creator>tanyaa-arora</dc:creator>
      <pubDate>Sun, 07 Jan 2024 16:33:43 +0000</pubDate>
      <link>https://forem.com/tanyaaarora/making-a-stopwatch-on-react-the-process-the-challenges-and-the-takeaways-1c9n</link>
      <guid>https://forem.com/tanyaaarora/making-a-stopwatch-on-react-the-process-the-challenges-and-the-takeaways-1c9n</guid>
      <description>&lt;p&gt;For most of you, making a stopwatch using React might be an elementary problem. It was yesterday when I tried making one for the first time. In this blog, I will share with you all the challenges I faced as a beginner and how I overcame them while making the stopwatch.&lt;/p&gt;

&lt;h2&gt;
  
  
  The process
&lt;/h2&gt;

&lt;p&gt;The first thing I did was think about all the features I wanted my stopwatch to have and jot them down. They were as follows:-&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Create a display to show the time passed&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Give buttons (and keyboard controls) to start/stop the watch&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Give a lap button and display the lap time below the watch&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The next step was to create a workflow to have a clear vision of how to proceed ahead. For that, I went through several blogs and articles on how to create a stopwatch using React. That gave me an idea of how to go ahead with my project. So, I wrote down the steps to it, which were:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Create a component Stopwatch that displays time in hh: mm: ss: ms format with the control buttons&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a state timer that increases by 1 every 10 milliseconds using useState hook&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a state that checks if the stopwatch is active or not&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;create a useRef hook interval that stores the id of the interval started by setInterval()&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a useEffect that triggers every time the active state changes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Define functions to start/pause, restart the stopwatch&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Attach them to start/pause and restart buttons using event handlers&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a lap button to display the laps passed&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Create a state for storing lap values in an array

- Create a function to capture lap value and store it in the lap array

- Attach the function with the onClick event of the lap button

- Display the array using the .map() function

- Re-initialize the array on restart
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Calculate the time passed as follows:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;const milliseconds = (timer%100).toString().padStart(2,"0"); //padStart(target,"str") function is used to add padding(str) to the start of a string until it reaches the target length.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;const seconds = Math.floor((timer 100)%60).toString().padStart(2,"0")&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;const minutes = Math.floor((timer / 6000)%60).toString().padStart(2,"0")&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;const hours= Math.floor((timer/360000)%24).toString().padStart(2,"0")&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Display the time passed.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The challenges and the takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;There were some new things that I learned along the way. One of them was the discovery ofsetInterval(callback,interval) function. I came to understand that this function executes the callback function after every interval and to stop it from executing I should use clearInterval(intervalID) function. I learned that setInterval() function is used for making stopwatches.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I used this function inside the useEffect hook that would get triggered every time I changed the state of my timer. This led me to understand the working of useEffect hook in-depth and its life-cycle phases (mounting phases, unmounting phase, updating phase).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;One major challenge for me was to stop the timer by clicking the pause button and for that, I needed to have the interval ID of the interval that was currently executing. That led me to find out about useRef hook which once set, persists the same value and does not change over re-renders. That helped me to store the interval ID and pause it using the clearInterval(intervalID) function when needed.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>react</category>
      <category>learning</category>
    </item>
    <item>
      <title>What is aliasing in Ubuntu?</title>
      <dc:creator>tanyaa-arora</dc:creator>
      <pubDate>Wed, 03 Jan 2024 15:22:09 +0000</pubDate>
      <link>https://forem.com/tanyaaarora/what-is-aliasing-in-ubuntu-4692</link>
      <guid>https://forem.com/tanyaaarora/what-is-aliasing-in-ubuntu-4692</guid>
      <description>&lt;h2&gt;
  
  
  Problem
&lt;/h2&gt;

&lt;p&gt;So, I have recently started using Ubuntu and I often face the problem of typing the same commands again and again. We know that 80% of the commands that we use everyday are only 4 or 5 of them. It sometimes becomes frustrating as well as time-consuming. Well, this is not how I want to make use of my precious time. What should I do then?&lt;/p&gt;

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

&lt;p&gt;Well, I came across the concept of aliasing today which made me realise that this is the exact solution to my problem. You must be wondering that what does aliasing mean? Let me try to tell what I understand by it. Aliasing simply means giving a nickname to something. &lt;/p&gt;

&lt;p&gt;Suppose, a friend of yours has a name "Ramakrishna". You'd rather call him R.K. instead of addressing him by his name everyday. So, R.K. is his nickname. Similarly, we can give nicknames to our daily use commands. Thus, this is called aliasing.&lt;/p&gt;

&lt;p&gt;In order to make aliases, you can use the following steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Firstly, go to your terminal and open the &lt;code&gt;.bashrc&lt;/code&gt; file on &lt;code&gt;gedit&lt;/code&gt; so that you can edit your file.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;gedit ~/.bashrc&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Once, the &lt;code&gt;gedit&lt;/code&gt; text editor is opened, create the alias and save the file.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;alias &amp;lt;nickname&amp;gt; ='The command you want to give a nickname to'&lt;/code&gt;&lt;br&gt;
&lt;code&gt;alias ll='ls -l' //Command to show all the files in your system&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Kill the current terminal and reopen it. Then execute ll&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr7h59lcrtw8tmtjkxbkw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr7h59lcrtw8tmtjkxbkw.png" alt="Image description" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Voila!! Now you can view all the files in detail. This is one such example of aliasing.&lt;/p&gt;

&lt;p&gt;One specific use case of aliasing is when there's a file that's nested deeply within multiple directories. In such scenario, writing the whole path to access it would be a waste of time. &lt;/p&gt;

&lt;p&gt;It can also be used when we are regularly pulling and pushing our code to remote repositories such as on GitHub. Suppose, we can give an alias to git add as:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;alias ga='git add .'&lt;/code&gt;&lt;/p&gt;

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

&lt;p&gt;We know that every thing has its own benefits and limitations. This goes for aliasing as well.&lt;br&gt;
It is very important for us to know when is it of use and when it's not. &lt;/p&gt;

&lt;p&gt;Let's take an example where you have created some aliases on your own system and you are so dependent on them, that if given another system, you wouldn't be able to execute the actual commands. So depending entirely on anything is wrong.&lt;/p&gt;

&lt;p&gt;Also, aliasing should be used only when you need to repeatedly use some command. Creating an alias for a command that only needs to be used once does not make any sense. Suppose, you can execute a direct command in one minute, whereas creating an alias and executing it takes more time that to when that command only needs to be run once. &lt;/p&gt;

&lt;p&gt;Thus, I would like to conclude by saying that aliasing can be greatly useful to us provided we keep in mind its use cases. &lt;/p&gt;

</description>
      <category>beginners</category>
      <category>ubuntu</category>
      <category>discuss</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
