<?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: Sadanand Pai</title>
    <description>The latest articles on Forem by Sadanand Pai (@sadanandpai).</description>
    <link>https://forem.com/sadanandpai</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%2F339349%2F2187f8e1-6e93-4cca-a055-32dc00c73592.jpeg</url>
      <title>Forem: Sadanand Pai</title>
      <link>https://forem.com/sadanandpai</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/sadanandpai"/>
    <language>en</language>
    <item>
      <title>DSA for Frontend devs</title>
      <dc:creator>Sadanand Pai</dc:creator>
      <pubDate>Thu, 22 Jun 2023 08:12:43 +0000</pubDate>
      <link>https://forem.com/sadanandpai/dsa-for-frontend-devs-51mp</link>
      <guid>https://forem.com/sadanandpai/dsa-for-frontend-devs-51mp</guid>
      <description>&lt;p&gt;Hello folks,&lt;/p&gt;

&lt;p&gt;Today, we'll discuss a contentious issue that is frequently raised. Do frontend developers require DSA? I'll discuss the value of DSA and the interview environment that surrounds it with you. We'll try to ultimately uncover the unknowns and let us get clarity on the same.&lt;/p&gt;



&lt;h3&gt;
  
  
  What is DSA
&lt;/h3&gt;

&lt;p&gt;Data Structures and Algorithms is what DSA stands for. It is one of the key areas of computer science and involves math, justifications, problem-solving strategies, optimizations, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data structure:&lt;/strong&gt; The way data is stored or represented&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Algorithms:&lt;/strong&gt; A step-by-step process to solve a problem&lt;/p&gt;

&lt;p&gt;Each day, we write tens of thousands of lines of code as software developers. The majority of the code is often written in JavaScript by frontend developers. Our projects present us with several everyday coding problems that we must resolve to finish our work. One of the key competencies that any front-end developer should possess is the ability to solve problems and consistently finish their logic.&lt;/p&gt;

&lt;p&gt;Before proceeding further with the discussion of DSA, let's look at the importance of DSA in general.&lt;/p&gt;



&lt;h3&gt;
  
  
  How does DSA help a programmer?
&lt;/h3&gt;

&lt;p&gt;I would like to start by giving an analogy. Assume there is an &lt;em&gt;artist&lt;/em&gt;. His or her job is to draw or paint. To become an artist, one needs mainly two things.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The first is the &lt;strong&gt;tools&lt;/strong&gt;. He/she needs to have brushes, pencils, colors, paper, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The other thing which makes a painter needs to have is a way to use these tools, a &lt;strong&gt;process,&lt;/strong&gt; or a &lt;strong&gt;procedure&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The artist will need a variety of colored pencils, brushes, and shading techniques to draw complicated art, such as a person's face. A beautiful drawing will be produced if the artist properly employs the correct tools. Furthermore, if the artist lacks some of the required equipment or is unable to use some of it, the quality of the artwork may suffer. Additionally, a lot of time and work may be required to create the same painting. In other cases, an artist may not even be able to sketch if they lack the necessary supplies or drawing techniques.&lt;/p&gt;

&lt;p&gt;Why did we talk about art? Here, the art tools stand in for the &lt;em&gt;data structures.&lt;/em&gt; Additionally, the act of drawing is a representation of &lt;em&gt;algorithms&lt;/em&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Programming is no less than an art&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Developers must use the appropriate set of data structures and algorithms when writing code, much like when creating a beautiful painting. If a developer writes code without the proper DS or algorithm, writing and running the code may require a lot of work and time. And in many situations, having a lack of knowledge may also prevent you from coming up with a solution.&lt;/p&gt;



&lt;h3&gt;
  
  
  Importance of DSA
&lt;/h3&gt;

&lt;p&gt;With the help of a simple coding example, I will highlight the importance of DSA in our daily programming.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Problem statement&lt;/strong&gt;: You are asked to find the students who have scored highest and lowest in a class.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First Solution&lt;/strong&gt;: The simple procedure you follow might be to sort the list of students according to their marks. And then pick the names from the start and end of the list. It is simple.&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq46xs0iezqjoxxlmck5f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq46xs0iezqjoxxlmck5f.png" alt="Sorting the list"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If a class has 30 students, sorting the students by marks is an easy task. What if you are asked to find the students with the highest and lowest marks from the whole college? The total number of students may reach 300 or 3000. It is not easy for humans to perform sorting, but for computers, it may look almost the same. No big deal. But what if you are asked to find students from a country? The solution proposed may take years for humans and a huge amount of time for computers. Something that makes you think now.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Second solution:&lt;/strong&gt; We just need to find the highest and lowest-scored students. Check the marks of each student and keep a note of who has scored highest and lowest. No sorting is needed for this.&lt;/p&gt;

&lt;p&gt;The second solution is much better than the first one for the given question. But how was I able to tell that the second solution was better? This is one of the places where knowledge of data structures and algorithms comes into play.&lt;/p&gt;



&lt;h3&gt;
  
  
  Where the hell is DSA?
&lt;/h3&gt;

&lt;p&gt;You may argue that the above-given task is not a DSA problem. Where is the data structure like a Tree or Graph and where the hell is the algorithm in there?&lt;/p&gt;

&lt;p&gt;Read the definitions of &lt;em&gt;data structures &amp;amp; algorithms&lt;/em&gt;. Here, the list of students stored in an array or list is a &lt;em&gt;data structure&lt;/em&gt;. The procedure to get the highest and lowest marks for students is the &lt;em&gt;algorithm&lt;/em&gt;. We stored the student data in the right data structure and then ran the algorithm to find the required students.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We discussed a lot about DSA without using a code snippet of any programming language. DSA is about concepts and is not particularly related to any programming language.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Before moving on, let us be on the same page. DSA is not only about fancy and advanced concepts of problem-solving such as graphs and dynamic programming. DSA starts with the basics of programming and optimization. DSA is not only about problems that we solve on &lt;em&gt;Leetcode&lt;/em&gt;.&lt;/p&gt;



&lt;h3&gt;
  
  
  DSA for interviews
&lt;/h3&gt;

&lt;p&gt;DSA was not heavily involved in interviews in the past. Different digital products were being built by businesses using the waterfall process. As electronic gadgets became more widely available, there was an exponential rise in demand for better softwares. More softwares were being created by businesses, and these products were receiving numerous updates. Businesses began implementing &lt;a href="https://frontendpro.hashnode.dev/agile-methodology-for-everyone" rel="noopener noreferrer"&gt;&lt;em&gt;agile methodologies&lt;/em&gt;&lt;/a&gt;. Robust, scalable, and highly efficient code is increasingly needed to meet the expanding demand and adapt to the changing requirements. So there is a need for competent developers.&lt;/p&gt;

&lt;p&gt;Companies, particularly those that manufacture products, started looking for talented programmers to design excellent code so that the items they create can be updated or improved more affordably. Additionally, the program should be lightning-fast to draw in more clients to their merchandise. The necessity to overcome challenging programming problems grew. It has also become necessary to provide effective frameworks and libraries. The performance (duration of execution) of the code becomes crucial.&lt;/p&gt;

&lt;p&gt;Companies began structuring the interviews so that they could find qualified programmers. DSA became so common in interviews that most businesses now have at least one round specifically for it. The DSA round required difficult problems to be solved by the candidates to pass the interviews because the real-world challenges that had to be solved were challenging in a number of scenarios.&lt;/p&gt;

&lt;p&gt;The DSA round was eventually added to the interviews by all companies, and the tendency persisted. The majority of businesses never even consider whether they need a specific DSA round for the position they are hiring for. Additionally, they frequently use medium- or difficult-level problems pulled at random from Leetcode.&lt;/p&gt;

&lt;p&gt;Companies must be aware of the DSA requirements for the positions for which they are hiring and adjust the DSA interview process accordingly. But on the other hand as a candidate, you don't have control over it. It is a game. They are rule setters. Play the game as per their game rules if you want to win it.&lt;/p&gt;



&lt;h3&gt;
  
  
  Is DSA needed for Frontend developers?
&lt;/h3&gt;

&lt;p&gt;There is a huge debate everywhere nowadays around a few questions related to DSA in the frontend world,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Should frontend developers learn DSA?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Should there be a DSA round for frontend developers?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How much DSA is needed for frontend developers?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;"DSA is not required for frontend developers", according to a lot of individuals on YouTube and other channels. They mean to argue that frontend developers won't require advanced DSA. There is no clear line between what is basic and what is advanced, and we won't get into that issue here. The phrase "whether DSA is needed or not" is not a boolean thing. &lt;strong&gt;There isn't a yes/no answer to this&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;We have advanced much if we consider the development of the frontend ecosystem. There was a time when JavaScript was primarily used for simple UI tasks, but today we utilize JavaScript to construct complete end-to-end systems. Frontend web development now includes everything from interactive online editors to graphically intensive games. Frameworks and libraries for the front end have never been so plentiful. Various frontend areas desperately need DSA.&lt;/p&gt;

&lt;p&gt;This does not imply that frontend devs in every project or firm are required to have extensive DSA knowledge. A few frontend positions only need a working grasp of JavaScript. We must assess our objectives and job descriptions to modify the need for DSA for roles. We need to stop fearing or disliking the word DSA, and instead embrace the knowledge it offers to aim to become highly competent programmers and good developers.&lt;/p&gt;



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

&lt;p&gt;All of us are engineers. Building high-quality products that are scalable, reliable, and efficient should be our main priority. If DSA can assist us in this, we ought to choose it rather than reject it. Problem-solving in the real world is what we prioritize.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A good engineer is a good problem solver too.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I hope I was able to shed some light on the confusion around DSA and help you to get some clarity. Also, I expect that you are now in a better place to judge whether as a frontend developer, should you focus on DSA for your work or interviews.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>algorithms</category>
      <category>programming</category>
    </item>
    <item>
      <title>High-quality resources for frontend web devs</title>
      <dc:creator>Sadanand Pai</dc:creator>
      <pubDate>Fri, 09 Jun 2023 04:45:12 +0000</pubDate>
      <link>https://forem.com/sadanandpai/high-quality-resources-for-frontend-web-devs-1cna</link>
      <guid>https://forem.com/sadanandpai/high-quality-resources-for-frontend-web-devs-1cna</guid>
      <description>&lt;h2&gt;
  
  
  High-quality resources that every frontend web dev should be aware of
&lt;/h2&gt;

&lt;p&gt;(most of them are free)&lt;/p&gt;

&lt;p&gt;Source: &lt;a href="https://github.com/sadanandpai/frontend-learning-kit"&gt;Frontend Learning Kit&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;HTML&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📗  &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTML"&gt;MDN HTML&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📗  &lt;a href="https://www.w3schools.com/html/"&gt;W3 Schools&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📗  &lt;a href="https://www.scaler.com/topics/html/"&gt;HTML Tutorial&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;CSS&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📗  &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS"&gt;MDN CSS&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📗  &lt;a href="https://web.dev/learn/css/"&gt;Web Dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://www.udemy.com/course/css-the-complete-guide-incl-flexbox-grid-sass/"&gt;CSS Complete Guide - Udemy&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📘  &lt;a href="https://css-for-js.dev/"&gt;CSS for JS developers&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;Advanced CSS&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📘  &lt;a href="https://debuggingcss.com/"&gt;Debugging CSS&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://cssdemystified.com/"&gt;CSS Demystified&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📗  &lt;a href="https://eloquentjavascript.net/"&gt;Eloquent JavaScript&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📗  &lt;a href="https://javascript.info/"&gt;JavaScript Info&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📗  &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript"&gt;MDN JavaScript&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📗  &lt;a href="https://www.javascripttutorial.net/"&gt;JavaScript Tutorial&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📘  &lt;a href="https://exploringjs.com/impatient-js/toc.html"&gt;JavaScript for Impatient Programmers&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📘  &lt;a href="https://justjavascript.com/"&gt;Just Javascript&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://www.udemy.com/course/the-complete-javascript-course/"&gt;Complete JavaScript&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://www.udemy.com/course/javascript-the-complete-guide-2020-beginner-advanced/"&gt;Javascript Complete Guide&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;Advanced JavaScript&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📗  &lt;a href="https://github.com/getify/You-Dont-Know-JS"&gt;You don't know JS&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📗  &lt;a href="https://www.manning.com/books/secrets-of-the-javascript-ninja-second-edition"&gt;Secrets of the JavaScript Ninja&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📘  &lt;a href="https://exploringjs.com/deep-js/toc.html"&gt;Deep JavaScript&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📘  &lt;a href="https://www.oreilly.com/library/view/professional-javascript-for/9781119366447/"&gt;Professional JavaScript for Web developers&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://frontendmasters.com/courses/deep-javascript-v3/"&gt;Deep JavaScript Foundations&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://frontendmasters.com/courses/javascript-hard-parts-v2/"&gt;JavaScript Hard Parts&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://www.udemy.com/course/understand-javascript/"&gt;JavaScript: Understanding the Weird Parts&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;TypeScript&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📗  &lt;a href="https://basarat.gitbook.io/typescript/"&gt;TypeScript Deepdive&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📗  &lt;a href="https://exploringjs.com/tackling-ts/index.html"&gt;Tackling TypeScript&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📗  &lt;a href="https://www.typescripttutorial.net/"&gt;TypeScript Tutorial&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📗  &lt;a href="https://www.typescriptlang.org/docs/handbook/intro.html"&gt;TypeScript Handbook&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📘  &lt;a href="https://www.oreilly.com/library/view/programming-typescript/9781492037644/"&gt;Programming TypeScript&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://www.udemy.com/course/understanding-typescript/"&gt;Understanding typescript&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://ui.dev/typescript/"&gt;TypeScript Course by ui.dev&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;React&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📗  &lt;a href="https://react.dev/"&gt;React Dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://www.udemy.com/course/react-the-complete-guide-incl-redux/"&gt;React - The Complete Guide&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://epicreact.dev/"&gt;Epic React&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://scrimba.com/learn/learnreact"&gt;Scrimba - Learn React for free interactively&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;React Repos&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📁  &lt;a href="https://github.com/typescript-cheatsheets/react"&gt;React TypeScript Cheatsheet&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📁  &lt;a href="https://github.com/Bogdan-Lyashenko/Under-the-hood-ReactJS"&gt;Entire React code base explanation by visual block&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📁  &lt;a href="https://github.com/alan2207/bulletproof-react"&gt;Bulletproof React&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;Other frameworks&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🎥  &lt;a href="https://www.udemy.com/course/nextjs-react-the-complete-guide/"&gt;NextJS&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://www.udemy.com/course/the-complete-guide-to-angular-2/"&gt;Angular&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://www.udemy.com/course/vuejs-2-the-complete-guide/"&gt;Vue:Complete guide&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://www.udemy.com/course/sveltejs-the-complete-guide/"&gt;Sveltejs: Complete Guide&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;HTTP&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📗  &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTTP"&gt;MDN HTTP&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📘  &lt;a href="https://livebook.manning.com/book/http2-in-action/about-this-book/"&gt;HTTP2 in Action&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;Git&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📗  &lt;a href="https://www.atlassian.com/git/tutorials"&gt;Become a git guru&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📗  &lt;a href="https://git-scm.com/book/en/v2"&gt;Pro Git&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📗  &lt;a href="https://gitexplorer.com/"&gt;Git Explorer&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📁  &lt;a href="https://github.com/sadanandpai/git-guide"&gt;Practical Git Guide&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;Web Performance &amp;amp; Security&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📗  &lt;a href="https://developer.mozilla.org/en-US/docs/Learn/Performance"&gt;MDN Performance&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📗  &lt;a href="https://web.dev/learn/#performance"&gt;Web Dev Performance&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📗  &lt;a href="https://developers.google.com/web/fundamentals/performance/get-started"&gt;Google Dev - Performance&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📗  &lt;a href="https://www.smashingmagazine.com/guides/performance/"&gt;Smashing Magezine - Performance&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://frontendmasters.com/courses/web-perf/"&gt;Web Performance Fundamentals&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://frontendmasters.com/courses/web-security/"&gt;Web Security&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;Accessibility&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🎥  &lt;a href="https://frontendmasters.com/courses/javascript-accessibility/"&gt;Accessibility in JavaScript Applications&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://egghead.io/courses/develop-accessible-web-apps-with-react"&gt;Develop Accessible Web Apps with React&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;JS Design Patterns&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📗  &lt;a href="https://www.patterns.dev/"&gt;Modern Web App Design Patterns&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📗  &lt;a href="https://addyosmani.com/resources/essentialjsdesignpatterns/book/"&gt;JS Design Patterns&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📁  &lt;a href="https://github.com/kamranahmedse/design-patterns-for-humans"&gt;Design Patterns for Humans&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;JS Best practices&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📘  &lt;a href="https://refactoringjs.com/files/refactoring-javascript.pdf"&gt;Refactoring JavaScript&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://www.udemy.com/course/writing-clean-code/"&gt;Writing Clean Code&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📘  &lt;a href="https://www.manning.com/books/the-art-of-unit-testing-third-edition"&gt;The art of unit testing&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;Functional JavaScript&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📗  &lt;a href="https://mostly-adequate.gitbook.io/mostly-adequate-guide/"&gt;Mostly adequate Guide&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📗  &lt;a href="https://aguru.gitbooks.io/functional-light-javascript/content/"&gt;Functional Light JavaScript&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://frontendmasters.com/courses/functional-javascript-v3/"&gt;Functional JavaScript&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;Frontend youtube channels&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🎥  &lt;a href="https://www.youtube.com/c/TraversyMedia"&gt;Traversy Media&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://www.youtube.com/c/CleverProgrammer"&gt;Clever Programmer&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://www.youtube.com/c/TheNetNinja"&gt;Net Ninja&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://www.youtube.com/c/WebDevSimplified"&gt;Web Dev Simplified&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://www.youtube.com/c/Academind"&gt;Academind&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://www.youtube.com/c/DevEd"&gt;Dev Ed&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://www.youtube.com/kepowob"&gt;Kevin Powell&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://www.youtube.com/c/Codevolution"&gt;Codevolution&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://www.youtube.com/@javascriptmastery"&gt;JavaScript Mastery&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;Interview Prep Resources&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📁  &lt;a href="https://github.com/yangshun/front-end-interview-handbook"&gt;Front End Interview Handbook&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📁  &lt;a href="https://github.com/sudheerj/javascript-interview-questions"&gt;JavaScript Interview Questions&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📁  &lt;a href="https://github.com/sadanandpai/javascript-code-challenges"&gt;JavaScript Code Challenges&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📁  &lt;a href="https://github.com/sudheerj/reactjs-interview-questions"&gt;React Interview Questions&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📁  &lt;a href="https://github.com/yangshun/tech-interview-handbook"&gt;Tech Interview Handbook&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📁  &lt;a href="https://github.com/lydiahallie/javascript-questions"&gt;JavaScript Questions MCQ&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📁  &lt;a href="https://github.com/freeCodeCamp/freeCodeCamp/tree/main/curriculum/challenges/english/10-coding-interview-prep"&gt;FreeCodeCamp Interview Prep&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📗  &lt;a href="https://www.interviewant.com/"&gt;Interview Ant&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📁  &lt;a href="https://github.com/sadanandpai/frontend-mini-challenges"&gt;Frontend Mini Challenges&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📁  &lt;a href="https://github.com/devkodeio/the-dom-challenge"&gt;The DOM Challenge&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;Interview Prep channels&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🎥  &lt;a href="https://www.youtube.com/watch?v=pN6jk0uUrD8&amp;amp;list=PLlasXeu85E9cQ32gLCvAvr9vNaUccPVNP"&gt;Namaste JavaScript&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://www.youtube.com/c/engineerchirag"&gt;Chirag Goel&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://www.youtube.com/watch?v=qMkUziVZvzs&amp;amp;list=PL4ruoTJ8LTT96O258zzjRwdiNxzDoas-G&amp;amp;index=2"&gt;Devtools Tech Frontend Interview Series&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://www.youtube.com/@RoadsideCoder"&gt;RoadsideCoder&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://www.youtube.com/c/FrontEndEngineer"&gt;Front-End Engineer&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://www.youtube.com/@js_cafe"&gt;JS Cafe&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://www.youtube.com/watch?v=qcixpy3HQ9s&amp;amp;list=PLmcRO0ZwQv4QMslGJQg7N8AzaHkC5pJ4t"&gt;Uncommon Geeks&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;Coding challenges&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🚉  &lt;a href="https://bigfrontend.dev/"&gt;Big Frontend Dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🚉  &lt;a href="https://www.greatfrontend.com?fpr=sadanand83"&gt;Great Frontend Dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🚉  &lt;a href="https://www.frontendmentor.io/"&gt;Frontend Mentor&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🚉  &lt;a href="https://www.jschallenger.com/"&gt;JS Challenger&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🚉  &lt;a href="https://www.devtools.tech/?ref=frontend-learning-kit"&gt;Devtools Tech&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🚉  &lt;a href="https://practice.learnersbucket.com/"&gt;Learners Bucket&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🚉  &lt;a href="https://exercism.org/tracks/javascript"&gt;Exercism&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🚉  &lt;a href="https://www.frontendpro.dev/"&gt;FrontendPro&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;DSA resources&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📘  &lt;a href="https://www.manning.com/books/grokking-algorithms"&gt;Grokking Algorithms&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📘  &lt;a href="https://www.amazon.com/gp/product/3030542556/"&gt;The Algorithm Design Manual&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📘  &lt;a href="https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850"&gt;Cracking Coding Interview&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📁  &lt;a href="https://github.com/trekhleb/javascript-algorithms"&gt;Javascript Algo&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://frontendmasters.com/courses/data-structures-algorithms/"&gt;DataStructues Algorithms&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://frontendmasters.com/courses/practical-algorithms/"&gt;Practical Algorithms&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://pro.academind.com/p/javascript-algorithms-the-fundamentals"&gt;JavaScript Algorithms fundamentals&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;DSA youtube&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🎥  &lt;a href="https://www.youtube.com/watch?v=0IAPZzGSbME&amp;amp;list=PLDN4rrl48XKpZkf03iYFl-O29szjTrs_O"&gt;Adbul Bari&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://www.youtube.com/watch?v=AT14lCXuMKI&amp;amp;list=PLdo5W4Nhv31bbKJzrsKfMpo_grxuLl8LU"&gt;Jenny's Lectures&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://www.youtube.com/channel/UCRPMAqdtSgd0Ipeef7iFsKw"&gt;Gaurav Sen&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://www.youtube.com/channel/UCZLJf_R2sWyUtXSKiKlyvAw"&gt;Tushar Roy - Coding Made Simple&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎥  &lt;a href="https://www.youtube.com/channel/UC9fDC_eBh9e_bogw87DbGKQ"&gt;Rachit Jain&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;Coding platforms&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🚉  &lt;a href="https://leetcode.com/"&gt;Leetcode&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🚉  &lt;a href="https://www.hackerrank.com/"&gt;Hackerrank&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🚉  &lt;a href="https://www.interviewbit.com/practice/"&gt;Interviewbit&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Peerlist: A simple but powerful portfolio</title>
      <dc:creator>Sadanand Pai</dc:creator>
      <pubDate>Sun, 25 Sep 2022 11:07:53 +0000</pubDate>
      <link>https://forem.com/sadanandpai/peerlist-a-simple-but-powerful-portfolio-2jmm</link>
      <guid>https://forem.com/sadanandpai/peerlist-a-simple-but-powerful-portfolio-2jmm</guid>
      <description>&lt;p&gt;Hello folks,&lt;/p&gt;

&lt;p&gt;In this blog, I will briefly talk about building a clean portfolio and how Peerlist does the job perfectly for our needs. If you have not heard about &lt;a href="https://peerlist.io/"&gt;Peerlist&lt;/a&gt; you should visit the website right away. &lt;/p&gt;

&lt;h3&gt;
  
  
  Developer portfolio
&lt;/h3&gt;

&lt;p&gt;Nowadays every engineer should have a portfolio website. Be it a basic HTML portfolio or an animated visually attractive portfolio, everyone is supposed to have one. Especially when you are a developer, a portfolio website is asked in resumes, interviews, freelancing, etc. Many people also use the GitHub readme page itself as their Portfolio showcasing the different repositories as the projects.&lt;/p&gt;

&lt;p&gt;As I am a frontend developer, I was looking for a neat and simple portfolio that can be used to showcase my work. After the recent introduction of Github readme profiles, I updated the same with my details. This does the job to some extent. &lt;/p&gt;

&lt;p&gt;I joined Peerlist when I came across a post on my Twitter feed that had an invite to join its beta. I visited Peerlist and the UI was catchy. The design of the portfolio suited my requirements. I just started creating my profile on the Peerlist. Also, I referred a few of my friends to Peerlist.&lt;/p&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%2Fbfd0osfz8xb56zmx50bz.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%2Fbfd0osfz8xb56zmx50bz.png" alt="Portfolio" width="800" height="482"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is the link to my &lt;a href="https://peerlist.io/sadanandpai"&gt;Peerlist profile&lt;/a&gt;. The profile/portfolio can be accessed by anyone on the internet without the need for a login, unlike Linkedin which asks you for login or registration sometimes to view the profile. Above you can see the hero section, designed in a simple way highlighting the skills and the social media links. &lt;/p&gt;

&lt;p&gt;The best part about the portfolio is that it integrates well with the Github account. You can provide the username and list the important Github repositories to showcase on the page. Peerlist portfolio also supports adding your custom project and blog integrations.&lt;/p&gt;

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

&lt;p&gt;Many of the above features may not be present in other social profiles but are not something new. What is unique in Peerlist is the authenticity of the profiles when it comes to your work.&lt;/p&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%2F7g1m990i52inqdnt3p8m.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%2F7g1m990i52inqdnt3p8m.png" alt="Resume" width="568" height="699"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You should be able to see a green tick mark displayed in front of my latest work experience in the resume tab. Peerlist helps to increase the genuineness of the profile by verifying my current work email address. Similar things you would have noticed against the Github profile as well. It is very easy to create a fake profile by adding the top companies to one's profile. This is a very good feature to have on any social media platform and Peerlist is one of the earliest adopters of this.&lt;/p&gt;

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

&lt;p&gt;Peerlist has also added a new section called "Find Jobs". This is for searching the jobs suitable for your skills. You have the option to save the jobs to which you think you can apply in the future and also can track the jobs applied to, in the "Applied" tab.&lt;/p&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%2F9k2glm7fba2vh43j4cuj.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%2F9k2glm7fba2vh43j4cuj.png" alt="Jobs" width="800" height="454"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can mark if you are open to the opportunities along with your other job preferences. You can also opt for posting the jobs in your company but at the moment only allowed if you are having an invite for the same.&lt;/p&gt;

&lt;h3&gt;
  
  
  What can be different?
&lt;/h3&gt;

&lt;p&gt;As we know there are a lot of social media platforms out there, and it is not easy to have an edge. A few of the things which I feel Peerlist can do differently are&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Client details in the resume&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Many of us would have worked or known the people who work on a contract basis or as a consultant. Such roles require working for a specific client at the client location with the payroll from the parent company which is the consulting firm. Usually, in such cases, the client company is more popular than the parent company. Also, the chances are that the person might have worked for multiple clients from the same parent company. In such cases, it would very helpful to have the feature in the resume to have the client and parent company details.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Advanced filter for Jobs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Peerlist has recently added the Jobs section. A must-have feature for a website like this. When I was actively searching for a job, it was hard to get the right match. The major issue I faced was that the proficiency of expected skills was not aligned with the proficiencies I had. Either it was too low or too high.&lt;/p&gt;

&lt;p&gt;Let me take an example to explain this. The skillset for an open position might be React, Redux, TypeScript, JavaScript, and CSS. I may be having knowledge and experience in all of these. But the proficiency levels are not known. The position may demand the highest level of expertise in React and Redux which is not known to us. Let's assume I have the highest level of expertise in JavaScript and CSS. Though there is an exact match in the skillset I may not be the best suited for this position. &lt;/p&gt;

&lt;p&gt;Having such an advanced filter where the candidate can search the jobs depending on his/her expertise level in the expected skills may be hard to have as a feature but it is definitely a good feature for job seekers to get a better and more accurate match.&lt;/p&gt;

&lt;h3&gt;
  
  
  Final words
&lt;/h3&gt;

&lt;p&gt;As a Peerlist user, I know the team is working on a lot of new features and also taking feedback from the users to improve the existing functionalities in the web application. I am also glad that I could have a conversation with one of the founders and get to know some challenges which a startup faces.&lt;/p&gt;

&lt;p&gt;If you are not already a member of the Peerlist, go ahead and create one. Thanks to &lt;a href="https://peerlist.io/yogini"&gt;Yogini&lt;/a&gt; and &lt;a href="https://peerlist.io/designerdada"&gt;Akash&lt;/a&gt; for creating such a wonderful social platform. I hope to see the product growing exponentially in the coming days. We are all excited !!!&lt;/p&gt;

</description>
      <category>portfolio</category>
    </item>
    <item>
      <title>Practical Git Guide</title>
      <dc:creator>Sadanand Pai</dc:creator>
      <pubDate>Fri, 05 Aug 2022 07:45:38 +0000</pubDate>
      <link>https://forem.com/sadanandpai/practical-git-guide-3eig</link>
      <guid>https://forem.com/sadanandpai/practical-git-guide-3eig</guid>
      <description>&lt;h4&gt;
  
  
  Practical guide to everyday Git commands
&lt;/h4&gt;

&lt;h5&gt;
  
  
  Solutions to 80% of your daily git challenges
&lt;/h5&gt;




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

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;I want to clone a project and start going through the code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I have cloned the repo. But I am not able to see the proper code!!!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Someone has made a few changes in the code and asked me to pull those changes. What should I do?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I have modified the code and added changes. How do I commit my changes?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What if I want only some of my files added and pushed instead of all the changes?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I have modified/formatted some code while going through it. Now I want the code to be back to the state as it was.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I have committed my changes. How can I undo my change?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I have made some changes to the branch. Also, I wanted to pull the new changes. But it is not working.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After applying the stash, I am getting a lot of conflicts in the code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I have made some code changes. But I want to commit to a new separate branch.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I just committed but forgot to add a few files to the commit. Is there a way to update the same commit with some modifications?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I am asked to raise a Pull Request (PR) to a branch. What am I supposed to do?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I do not want a branch anymore. How can I delete the branch?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I want to rename my local and remote branches. How can I do it?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I have made some changes to the code on the branch on which all of the developers are working. How can I publish my changes?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I created a commit and also pushed it. Is it possible to update that commit now?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I have created single/multiple commits. When I am trying to push my changes, getting a rejected message. I am stuck!!!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I followed the above steps but got conflicts after git pull.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I have created single/multiple commits. When I am trying to push my changes, getting a rejected message. Can I pull the new changes without merging the commit (Rebase)?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I have raised a PR (Pull Request). But it is showing conflicts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I have many commits. How can I transform them into a single commit (squash)?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I have many commits. How can I transform them into a single commit (squash) with just commands?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I am trying to rebase my branch with the same or another branch. As I have many commits, I am getting a lot of conflicts on every commit to rebase.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I have made changes and committed to a branch. I want to copy the same changes to another branch.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I have tried to cherry-pick as shown in [24]. But I am getting conflicts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I have multiple commits which I want to move to a different branch.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I have pushed my changes and got it merged. I want to revert it immediately.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How do I reset the code of my branch to the code of a different branch?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I want to delete/undo the previous commit from my branch which I have already pushed. I am not looking for a revert. I just want to delete it.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  1. I want to clone a project and start going through the code.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Get the repo URL/link&lt;/li&gt;
&lt;li&gt;Open your terminal&lt;/li&gt;
&lt;li&gt;Navigate to the location in the terminal where you want your project to be cloned&lt;/li&gt;
&lt;li&gt;Enter the command &lt;code&gt;git clone URL&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The repo URL can be found inside the repo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VH9D1Nw5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/170861577-d7111658-96df-4b43-918b-2e2ab3395efd.png" class="article-body-image-wrapper"&gt;&lt;img alt="repo clone" src="https://res.cloudinary.com/practicaldev/image/fetch/s--VH9D1Nw5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/170861577-d7111658-96df-4b43-918b-2e2ab3395efd.png" width="800" height="503"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Github repo link example&lt;/b&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_xA4yXeF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/182018086-bea2688f-baf8-47ab-9d27-4c390355464f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_xA4yXeF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/182018086-bea2688f-baf8-47ab-9d27-4c390355464f.png" alt="image" width="800" height="343"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Bitbucket repo link example&lt;/b&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--y4OV1nTl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/182018164-7d2f6bcd-517e-4793-925d-afe61c39032c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--y4OV1nTl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/182018164-7d2f6bcd-517e-4793-925d-afe61c39032c.png" alt="image" width="800" height="434"&gt;&lt;/a&gt;&lt;/p&gt;






&lt;h3&gt;
  
  
  2. I have cloned the repo. But I am not able to see the proper code!!!
&lt;/h3&gt;

&lt;p&gt;By default the main/master branch is active. Ask which branch has the relevant code&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Navigate inside the cloned folder &lt;code&gt;cd repo&amp;lt;-name&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Enter the command &lt;code&gt;git checkout &amp;lt;branch-name&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RnTEPLua--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/180643741-f3f3fd37-a8d0-459e-b261-4fb4303f80d0.png" class="article-body-image-wrapper"&gt;&lt;img alt="checkout" src="https://res.cloudinary.com/practicaldev/image/fetch/s--RnTEPLua--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/180643741-f3f3fd37-a8d0-459e-b261-4fb4303f80d0.png" width="800" height="432"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  3. Someone has made a few changes in the code and asked me to pull those changes. What should I do?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Pull the changes &lt;code&gt;git pull&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aGl7mZJd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/173235993-7f2ba191-d9bb-4a78-aec3-35f326e46325.png" class="article-body-image-wrapper"&gt;&lt;img alt="pull" src="https://res.cloudinary.com/practicaldev/image/fetch/s--aGl7mZJd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/173235993-7f2ba191-d9bb-4a78-aec3-35f326e46325.png" width="800" height="294"&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;br&gt;
&lt;br&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  4. I have modified the code and added changes. How do I commit my changes?
&lt;/h3&gt;

&lt;p&gt;First stage all the files and then commit your changes. You can create multiple commits.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stage the files &lt;code&gt;git add *&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Commit the changes &lt;code&gt;git commit -m 'Your commit message'&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--o7nX2Zc7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/180645381-c77af0e5-6d4c-4991-84d7-1572636e34a3.png" class="article-body-image-wrapper"&gt;&lt;img alt="commit" src="https://res.cloudinary.com/practicaldev/image/fetch/s--o7nX2Zc7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/180645381-c77af0e5-6d4c-4991-84d7-1572636e34a3.png" width="800" height="258"&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;br&gt;
&lt;br&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  5. What if I want only some of my files added and pushed instead of all the changes?
&lt;/h3&gt;

&lt;p&gt;You can add files by mentioning the file/files with relative or full path. You can add files one by one or multiple files at a time using the commands&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add single file &lt;code&gt;git add &amp;lt;file-path&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Add multiple files &lt;code&gt;git add &amp;lt;file1-path&amp;gt; &amp;lt;file2-path&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_6TuoBAw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/180643543-7ca529df-5126-4a73-9dd1-703af2f03fba.png" class="article-body-image-wrapper"&gt;&lt;img alt="add" src="https://res.cloudinary.com/practicaldev/image/fetch/s--_6TuoBAw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/180643543-7ca529df-5126-4a73-9dd1-703af2f03fba.png" width="800" height="610"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Similarly, to unstage a file use the command &lt;code&gt;git reset &amp;lt;file&amp;gt;&lt;/code&gt;&lt;/p&gt;






&lt;h3&gt;
  
  
  6. I have modified/formatted some code while going through it. Now I want the code to be back to the state as it was.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;To reset all the changes &lt;code&gt;git reset --hard&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;To reset a single file &lt;code&gt;git checkout HEAD -- &amp;lt;file-path&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9SolzO_m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/180649258-1dddabf1-bdc2-4706-a537-26eaad4ba99e.png" class="article-body-image-wrapper"&gt;&lt;img alt="reset" src="https://res.cloudinary.com/practicaldev/image/fetch/s--9SolzO_m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/180649258-1dddabf1-bdc2-4706-a537-26eaad4ba99e.png" width="800" height="191"&gt;&lt;/a&gt;&lt;/p&gt;






&lt;h3&gt;
  
  
  7. I have committed my changes. How can I undo my change?
&lt;/h3&gt;

&lt;p&gt;You can undo the commit by resetting the HEAD. If you just want to undo the commit but let the changes be present then use the &lt;code&gt;soft&lt;/code&gt; attribute else if you do want the commit along with the changes then use the &lt;code&gt;hard&lt;/code&gt; attribute&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;git reset --soft HEAD~1&lt;/code&gt; (undo with changes preserved)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;git reset --hard HEAD~1&lt;/code&gt; (undo with changes removed)&lt;/li&gt;
&lt;/ul&gt;






&lt;h3&gt;
  
  
  8. I have made some changes to the branch. Also, I wanted to pull the new changes. But it is not working.
&lt;/h3&gt;

&lt;p&gt;The command &lt;code&gt;git pull&lt;/code&gt; may not work if the changes are done by someone else to the same files which you have also modified.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stash the changes &lt;code&gt;git stash save &amp;lt;name of the change&amp;gt; -u&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Pull the changes now &lt;code&gt;git pull&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Retrieve the changes &lt;code&gt;git stash apply &amp;lt;n&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;where n is the stash number. To get the list of stashes &lt;code&gt;git stash list&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Z5PsUOo0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181293105-77ec0867-0d95-4f44-99e4-0b1003a6310b.png" class="article-body-image-wrapper"&gt;&lt;img alt="stash" src="https://res.cloudinary.com/practicaldev/image/fetch/s--Z5PsUOo0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181293105-77ec0867-0d95-4f44-99e4-0b1003a6310b.png" width="800" height="610"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note: You can stash multiple changes and bring them back as and when you like to&lt;/p&gt;






&lt;h3&gt;
  
  
  9. After applying the stash, I am getting a lot of conflicts in the code.
&lt;/h3&gt;

&lt;p&gt;If there are changes in the code on the region of the stashed code, it is expected to get conflicts. You will have to manually resolve all the conflicts. (Do it carefully)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pkG4F4Pk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/180613095-a8e08426-1d15-4a31-956b-55bfdfbdb84d.png" class="article-body-image-wrapper"&gt;&lt;img alt="stash conflicts" src="https://res.cloudinary.com/practicaldev/image/fetch/s--pkG4F4Pk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/180613095-a8e08426-1d15-4a31-956b-55bfdfbdb84d.png" width="800" height="230"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Below is the view of the VSCode, which helps in easily resolving the conflicts.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--i04ruuWg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/180612978-fffd4307-0045-4fd3-b52c-394d1d9a0059.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i04ruuWg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/180612978-fffd4307-0045-4fd3-b52c-394d1d9a0059.png" alt="VSCode conflict" width="800" height="195"&gt;&lt;/a&gt;&lt;/p&gt;






&lt;h3&gt;
  
  
  10. I have made some code changes. But I want to commit to a new separate branch.
&lt;/h3&gt;

&lt;p&gt;You can create a separate branch out of the current branch and commit it. This works both if you have already made changes or are yet to start making changes.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a new branch &lt;code&gt;git checkout -b &amp;lt;my-branch-name&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Stage all the changes &lt;code&gt;git add *&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Commit the changes &lt;code&gt;git commit -m "&amp;lt;some commit message&amp;gt;"&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To switch between the branches use the command &lt;code&gt;git checkout &amp;lt;original-branch-name&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LsC6yKgX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/173236172-30ccb855-0b2c-47ae-a711-152f20bc3b67.png" class="article-body-image-wrapper"&gt;&lt;img alt="branch out" src="https://res.cloudinary.com/practicaldev/image/fetch/s--LsC6yKgX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/173236172-30ccb855-0b2c-47ae-a711-152f20bc3b67.png" width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note: &lt;code&gt;my-branch-name&lt;/code&gt; is your local branch and not available for anyone else unless you push it&lt;/p&gt;






&lt;h3&gt;
  
  
  11. I just committed but forgot to add a few files to the commit. Is there a way to update the same commit with some modifications?
&lt;/h3&gt;

&lt;p&gt;Yes. You can update the commit by amending your changes.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To add files &lt;code&gt;git add &amp;lt;file-name&amp;gt; &amp;lt;file-name&amp;gt; ...&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;To update the commit &lt;code&gt;git commit --amend --no-edit&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To update with new commit message &lt;code&gt;git commit --amend -m 'My new commit message'&lt;/code&gt; (This command can also be used to simply update the previous commit message without any code modifications)&lt;/p&gt;

&lt;p&gt;&lt;code&gt;--no-edit&lt;/code&gt; is used to avoid the prompt to edit the commit message. If you want to modify the commit message as well during the update of the commit, then do not include &lt;code&gt;-m&lt;/code&gt; along with your commit message&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aVZjC3gP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/180615625-baa2b6f5-2ca5-454a-bfbf-d7115537cdbf.png" class="article-body-image-wrapper"&gt;&lt;img alt="amend" src="https://res.cloudinary.com/practicaldev/image/fetch/s--aVZjC3gP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/180615625-baa2b6f5-2ca5-454a-bfbf-d7115537cdbf.png" width="800" height="481"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note: The &lt;code&gt;amend&lt;/code&gt; updates the previous commit without creating a new one on top of the previous. (in reality, Git discards the previous commit and replaces it with a new commit)&lt;br&gt;
&lt;br&gt;&lt;br&gt;
&lt;br&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  12. I am asked to raise a Pull Request (PR) to a branch. What am I supposed to do?
&lt;/h3&gt;

&lt;p&gt;You can follow the same steps as given in the previous question. Once done you will push the code and raise a PR. It's that simple. Here we assume you are on the 'develop' branch and raising PR to the 'main' branch.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a new branch &lt;code&gt;git checkout -b &amp;lt;my-branch-name&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Stage all the changes &lt;code&gt;git add *&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Commit the changes &lt;code&gt;git commit -m "&amp;lt;some commit message&amp;gt;"&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Push the changes &lt;code&gt;git push&lt;/code&gt; (as the branch is not present on the remote, it will show the command to use)&lt;/li&gt;
&lt;li&gt;Enter &lt;code&gt;git push --set-upstream origin &amp;lt;my-branch-name&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8gChQrSU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/180644568-b2fc1d78-399c-443d-b714-3ab1cafb83bd.png" class="article-body-image-wrapper"&gt;&lt;img alt="" src="https://res.cloudinary.com/practicaldev/image/fetch/s--8gChQrSU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/180644568-b2fc1d78-399c-443d-b714-3ab1cafb83bd.png" width="800" height="536"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The URL to raise the PR will be automatically available as shown above. Use the link and open it in the browser.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ouE8yRsw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/180644608-ad9175df-64cd-4f8e-930c-64333ea2222a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ouE8yRsw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/180644608-ad9175df-64cd-4f8e-930c-64333ea2222a.png" alt="image" width="800" height="478"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now select the base branch to which you want to raise a PR and click on 'Create a PR'&lt;/p&gt;






&lt;h3&gt;
  
  
  13. I do not want a branch anymore. How can I delete the branch?
&lt;/h3&gt;

&lt;p&gt;To delete a branch locally, check out a different branch than the one you want to delete. Here we will delete the branch named 'develop'&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Switch to other branch &lt;code&gt;git checkout &amp;lt;other-branch&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Delete branch &lt;code&gt;git branch -d &amp;lt;branch-name&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To delete the branch from remote as well&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Delete remote branch &lt;code&gt;git push -d &amp;lt;remote&amp;gt; &amp;lt;branch-name&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7vULxsSn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181604592-a08d6cd4-105e-460b-b694-558f4fcf9680.png" class="article-body-image-wrapper"&gt;&lt;img alt="image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--7vULxsSn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181604592-a08d6cd4-105e-460b-b694-558f4fcf9680.png" width="800" height="489"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note: If &lt;code&gt;-d&lt;/code&gt; does not allow to delete a branch, use the &lt;code&gt;-D&lt;/code&gt;. Example: &lt;code&gt;git branch -D &amp;lt;branch-name&amp;gt;&lt;/code&gt;&lt;/p&gt;






&lt;h3&gt;
  
  
  14. I want to rename my local and remote branches. How can I do it?
&lt;/h3&gt;

&lt;p&gt;To rename a branch, checkout to the branch and rename it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Check out other branch &lt;code&gt;git checkout &amp;lt;your-branch-name&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Rename your branch &lt;code&gt;git branch -m &amp;lt;new-branch-name&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Push to remote &lt;code&gt;git push &amp;lt;remote&amp;gt; :&amp;lt;your-branch&amp;gt; &amp;lt;new-branch-name&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Set upstream &lt;code&gt;git push &amp;lt;remote&amp;gt; -u &amp;lt;new-branch-name&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&amp;lt;remote&amp;gt; is usually origin&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aWYGbAZO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181599454-22970ea6-8ee4-424c-acfb-5c0c17179c4a.png" class="article-body-image-wrapper"&gt;&lt;img alt="image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--aWYGbAZO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181599454-22970ea6-8ee4-424c-acfb-5c0c17179c4a.png" width="800" height="602"&gt;&lt;/a&gt;&lt;/p&gt;






&lt;h3&gt;
  
  
  15. I have made some changes to the code on the branch on which all of the developers are working. How can I publish my changes?
&lt;/h3&gt;

&lt;p&gt;To move the changes from your local machine to remote (called origin), follow the below steps in your terminal&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stage the files &lt;code&gt;git add *&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Commit the changes &lt;code&gt;git commit -m "&amp;lt;some commit message&amp;gt;"&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Push the changes &lt;code&gt;git push&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--E1iSq9xg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/170865776-dea5f82e-6ae6-4f60-b70a-0fc8d37fd741.png" class="article-body-image-wrapper"&gt;&lt;img alt="image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--E1iSq9xg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/170865776-dea5f82e-6ae6-4f60-b70a-0fc8d37fd741.png" width="800" height="455"&gt;&lt;/a&gt;&lt;/p&gt;






&lt;h3&gt;
  
  
  16. I created a commit and also pushed it. Is it possible to update that commit now?
&lt;/h3&gt;

&lt;p&gt;Yes. You can update the commit even after it is pushed. Everything will follow as mentioned in the previous question, but you will have to force push.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git add &amp;lt;file-name&amp;gt; &amp;lt;file-name&amp;gt; ...&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;git commit --amend --no-edit&lt;/code&gt; or &lt;code&gt;git commit --amend&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;git push -f&lt;/code&gt; or &lt;code&gt;git push --force&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Jetflwh9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/180615816-743abb81-765c-4723-b44f-faf00da3a820.png" class="article-body-image-wrapper"&gt;&lt;img alt="image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--Jetflwh9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/180615816-743abb81-765c-4723-b44f-faf00da3a820.png" width="800" height="479"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note: You need to be very careful while pushing forcefully, as it may eliminate other commits if someone has done in between. Make sure you are working on the branch and no one else is simultaneously working on the same or branching out from the branch at your commit.&lt;/p&gt;






&lt;h3&gt;
  
  
  17. I have created single/multiple commits. When I am trying to push my changes, getting a rejected message. I am stuck!!!
&lt;/h3&gt;

&lt;p&gt;The rejection could be because the remote branch might be ahead of the local branch. Different techniques can be used here to achieve sync.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pull the changes &lt;code&gt;git pull&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Continue with the merge commit created automatically&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git push&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CnCcbT7C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/180632103-bc118a25-eb58-4032-bc12-128b2c506e0c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CnCcbT7C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/180632103-bc118a25-eb58-4032-bc12-128b2c506e0c.png" alt="image" width="800" height="786"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If there are conflicts, then resolve them manually to proceed ahead as shown below.&lt;/p&gt;






&lt;h3&gt;
  
  
  18. I followed the above steps but got conflicts after git pull.
&lt;/h3&gt;

&lt;p&gt;If there are code changes on the same region from multiple commits, conflicts will occur. You need to resolve all the conflicts and proceed.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Resolve all the conflicts&lt;/li&gt;
&lt;li&gt;Stage files &lt;code&gt;git add &amp;lt;file-path&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Continue the merge &lt;code&gt;git merge --continue&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Push the changes &lt;code&gt;git push&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2VTM5jBs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/180636539-cad6c7ae-ec56-41e0-9ff0-21dd5e95382f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2VTM5jBs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/180636539-cad6c7ae-ec56-41e0-9ff0-21dd5e95382f.png" alt="pull conflict" width="800" height="729"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note: If something goes wrong, in any of the above steps, then there is nothing to panic about. Just run &lt;code&gt;git merge --abort&lt;/code&gt; and redo the steps.&lt;/p&gt;






&lt;h3&gt;
  
  
  19. I have created single/multiple commits. When I am trying to push my changes, getting a rejected message. Can I pull the new changes without merging the commit (Rebase)?
&lt;/h3&gt;

&lt;p&gt;Yes. You can pull the changes without a merge. This is called &lt;strong&gt;Rebase&lt;/strong&gt;. I know you have heard it a lot. It is very simple though.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pull with rebase &lt;code&gt;git pull --rebase&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Push the changes &lt;code&gt;git push&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Z5ZcUORC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181307242-3b2ff96a-1896-43b2-814c-e22cfbc50320.png" class="article-body-image-wrapper"&gt;&lt;img alt="rebase" src="https://res.cloudinary.com/practicaldev/image/fetch/s--Z5ZcUORC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181307242-3b2ff96a-1896-43b2-814c-e22cfbc50320.png" width="800" height="646"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you get conflicts, then solve all the conflicts. Then&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git rebase --continue&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Resolve all conflicts&lt;/li&gt;
&lt;li&gt;Push the changes &lt;code&gt;git push&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--S68d8fWN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181306723-5d1929bf-2d7f-4648-bb2e-534f26ae4a34.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--S68d8fWN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181306723-5d1929bf-2d7f-4648-bb2e-534f26ae4a34.png" alt="image" width="800" height="770"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note: If something goes wrong, in any of the above steps, then there is nothing to panic about. Just run &lt;code&gt;git rebase --abort&lt;/code&gt; and redo the steps.&lt;/p&gt;






&lt;h3&gt;
  
  
  20. I have raised a PR (Pull Request). But it is showing conflicts.
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ii_5hPmd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181507186-92a6c427-553c-4c1e-b87a-0394d23a1bad.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ii_5hPmd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181507186-92a6c427-553c-4c1e-b87a-0394d23a1bad.png" alt="pr conflict" width="800" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;PR will show conflicts if the new changes added to the source branch are conflicting with your changes or your branch is lagging.&lt;/p&gt;

&lt;p&gt;There are 2 main approaches to solve this.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Merge approach&lt;/li&gt;
&lt;li&gt;Rebase approach&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Follow any one of the approaches.&lt;/strong&gt; Don't try both of them.&lt;/p&gt;

&lt;p&gt;Assuming that your branch is &lt;code&gt;develop&lt;/code&gt; and the source branch is &lt;code&gt;main&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  Merge approach
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Checkout to main branch &lt;code&gt;git checkout main&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Pull changes &lt;code&gt;git pull&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Checkout to your branch &lt;code&gt;git checkout develop&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Merge the changes &lt;code&gt;git merge main&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Resolve all the conflicts and add to staging &lt;code&gt;git add &amp;lt;files&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;If conflicts are present &lt;code&gt;git merge --continue&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Push the changes &lt;code&gt;git push&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--t_eAGwnq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181508483-a0b79ea8-431f-499f-b802-522b2e9fd02f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--t_eAGwnq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181508483-a0b79ea8-431f-499f-b802-522b2e9fd02f.png" alt="merge" width="800" height="841"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  Rebase approach
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Checkout to main branch &lt;code&gt;git checkout main&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Pull changes &lt;code&gt;git pull&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Checkout to your branch &lt;code&gt;git checkout develop&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Rebase the branch &lt;code&gt;git rebase main&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Resolve all the conflicts and add to staging &lt;code&gt;git add &amp;lt;files&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;git rebase --continue&lt;/code&gt; after resolving the conflicts&lt;/li&gt;
&lt;li&gt;Push the changes &lt;code&gt;git push -f&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NUrysmpp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181511250-658f490b-0bfe-4d17-bae6-485a1c1d1692.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NUrysmpp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181511250-658f490b-0bfe-4d17-bae6-485a1c1d1692.png" alt="rebase" width="800" height="919"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note: You may have to run &lt;code&gt;git rebase --continue&lt;/code&gt; multiple times if there are multiple conflicts on your multiple commits.&lt;/p&gt;






&lt;h3&gt;
  
  
  21. I have many commits. How can I transform them into a single commit (squash)?
&lt;/h3&gt;

&lt;p&gt;Converting multiple commits into one is known as &lt;strong&gt;Squashing&lt;/strong&gt;. We will achieve this by rebasing with the help of the interactive feature of the editor (VSCode). This will be both easier and simple.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run &lt;code&gt;git rebase -i HEAD~&amp;lt;n&amp;gt;&lt;/code&gt; (where n refers to the number of commits to squash)&lt;/li&gt;
&lt;li&gt;Mark all the commits as 'Squash' except the oldest one&lt;/li&gt;
&lt;li&gt;Click on 'Start rebase'&lt;/li&gt;
&lt;li&gt;Enter the commit message&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wcgPPvSv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181516582-3493d359-0e04-4679-9b9b-2c120aa1adf9.png" class="article-body-image-wrapper"&gt;&lt;img alt="squash" src="https://res.cloudinary.com/practicaldev/image/fetch/s--wcgPPvSv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181516582-3493d359-0e04-4679-9b9b-2c120aa1adf9.png" width="800" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jGZ25Xzc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181514663-9e04cc4a-45f3-41b5-9a4b-bde2f6fda1d5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jGZ25Xzc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181514663-9e04cc4a-45f3-41b5-9a4b-bde2f6fda1d5.png" alt="image" width="800" height="402"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gDFaCGft--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181516003-21e0a84f-30c5-47ce-9466-f1a68b7dc697.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gDFaCGft--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181516003-21e0a84f-30c5-47ce-9466-f1a68b7dc697.png" alt="image" width="800" height="402"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note: If you had already pushed the commits, then you will have to use the command &lt;code&gt;git push -f&lt;/code&gt; to reflect squash on the remote branch as well.&lt;/p&gt;






&lt;h3&gt;
  
  
  22. I have many commits. How can I transform them into a single commit (squash) with just commands?
&lt;/h3&gt;

&lt;p&gt;You can use the technique of undoing to achieve this easily.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Undo the number of commits you need to squash &lt;code&gt;git reset --soft HEAD~&amp;lt;n&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Commit them again &lt;code&gt;git commit -m 'Commit message'&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Note: If you had already pushed the commits, then you will have to use the command &lt;code&gt;git push -f&lt;/code&gt; to reflect squash on the remote branch as well.&lt;/p&gt;






&lt;h3&gt;
  
  
  23. I am trying to rebase my branch with the same or another branch. As I have many commits, I am getting a lot of conflicts on every commit to rebase.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;You can first squash all commits to one commit (Refer 21).&lt;/li&gt;
&lt;li&gt;Once done, rebase the branch and resolve all conflicts in a single go. (Refer 20)&lt;/li&gt;
&lt;/ul&gt;






&lt;h3&gt;
  
  
  24. I have made changes and committed to a branch. I want to copy the same changes to another branch.
&lt;/h3&gt;

&lt;p&gt;To copy the changes of a commit from one branch to another, you can use &lt;strong&gt;cherry pick&lt;/strong&gt;. First obtain the commit id of the commit, which you want to copy.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Checkout the branch &lt;code&gt;git checkout &amp;lt;destination-branch&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Cherry-pick the commit &lt;code&gt;git cherry-pick &amp;lt;commit-id&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yRmaVtpb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181609051-5ced1192-0372-45f9-97bf-3491ce070fbf.png" class="article-body-image-wrapper"&gt;&lt;img alt="cherry pick" src="https://res.cloudinary.com/practicaldev/image/fetch/s--yRmaVtpb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181609051-5ced1192-0372-45f9-97bf-3491ce070fbf.png" width="800" height="564"&gt;&lt;/a&gt;&lt;/p&gt;






&lt;h3&gt;
  
  
  25. I have tried to cherry-pick as shown in 24. But I am getting conflicts.
&lt;/h3&gt;

&lt;p&gt;If you get any conflicts, resolve the conflicts first. Once all the conflicts are resolved, they continue the cherry-pick.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add resolved files to stage &lt;code&gt;git add &amp;lt;file-paths&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Continue cherry-pick &lt;code&gt;git cherry-pick --continue&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Qk7w9pLV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181591132-b43e8c0c-609b-4a25-9150-58d7e66b2d5e.png" class="article-body-image-wrapper"&gt;&lt;img alt="cherry pick conflict" src="https://res.cloudinary.com/practicaldev/image/fetch/s--Qk7w9pLV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181591132-b43e8c0c-609b-4a25-9150-58d7e66b2d5e.png" width="800" height="783"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note: If something goes wrong in between, reset the process by using the command &lt;code&gt;git cherry-pick --abort&lt;/code&gt; (You can start the process again)&lt;/p&gt;






&lt;h3&gt;
  
  
  26. I have multiple commits which I want to move to a different branch.
&lt;/h3&gt;

&lt;p&gt;To copy a range of commits from one branch to another, you can note down the older commit id from history and the newer commit id.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Checkout the branch &lt;code&gt;git checkout &amp;lt;destination-branch&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Cherry pick the commit &lt;code&gt;git cherry-pick &amp;lt;old-commit-id&amp;gt;..&amp;lt;new-commit-id&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---lT-m0sE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181591920-d5c07c1e-3347-4ec5-8352-b3dd7561e109.png" class="article-body-image-wrapper"&gt;&lt;img alt="cherry pick multiple" src="https://res.cloudinary.com/practicaldev/image/fetch/s---lT-m0sE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181591920-d5c07c1e-3347-4ec5-8352-b3dd7561e109.png" width="800" height="759"&gt;&lt;/a&gt;&lt;/p&gt;






&lt;h3&gt;
  
  
  27. I have pushed my changes and got it merged. I want to revert it immediately.
&lt;/h3&gt;

&lt;p&gt;Revert creates a reverse commit where the changes made will reverse and is created as a new commit. To revert a particular commit first, obtain its commit id.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Revert the commit &lt;code&gt;git revert &amp;lt;commit-id&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Push the commit &lt;code&gt;git push&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--thUgwm-I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181597059-5d121194-9f29-425a-bcc1-7cb466856187.png" class="article-body-image-wrapper"&gt;&lt;img alt="revert" src="https://res.cloudinary.com/practicaldev/image/fetch/s--thUgwm-I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181597059-5d121194-9f29-425a-bcc1-7cb466856187.png" width="800" height="560"&gt;&lt;/a&gt;&lt;/p&gt;






&lt;h3&gt;
  
  
  28. How do I reset the code of my branch to the code of a different branch?
&lt;/h3&gt;

&lt;p&gt;When resetting a branch to a different branch, the codebase on your branch will become the same as the other branch. To achieve this, you can use the 'reset' command.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Checkout to the branch &lt;code&gt;git checkout &amp;lt;your-branch-bame&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Reset with the branch name &lt;code&gt;git reset --hard &amp;lt;source-branch&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In this case, 'your-branch-name' will match the codebase of 'source-branch'&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6IvDoZIB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181597315-05e8bd39-f9af-40f3-a104-8a11b8ffb52b.png" class="article-body-image-wrapper"&gt;&lt;img alt="reset" src="https://res.cloudinary.com/practicaldev/image/fetch/s--6IvDoZIB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181597315-05e8bd39-f9af-40f3-a104-8a11b8ffb52b.png" width="800" height="267"&gt;&lt;/a&gt;&lt;/p&gt;






&lt;h3&gt;
  
  
  29. I want to delete/undo the previous commit from my branch which I have already pushed. I am not looking for a revert. I just want to delete it.
&lt;/h3&gt;

&lt;p&gt;Revert will reverse the changes creating a new commit. If you want to remove the previous commit, then you can undo and force push the branch.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reset by undoing &lt;code&gt;git reset --hard HEAD~&amp;lt;n&amp;gt;&lt;/code&gt; (n is the number of commits to undo)&lt;/li&gt;
&lt;li&gt;Push the changes &lt;code&gt;git push -f&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--S1E4Vn7g--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181600183-a5fb2095-d0cc-4c4e-ae68-3f4eea209979.png" class="article-body-image-wrapper"&gt;&lt;img alt="undo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--S1E4Vn7g--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/181600183-a5fb2095-d0cc-4c4e-ae68-3f4eea209979.png" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note: Force push is needed as the history of the branch is changing in this. If the commit is not pushed then it is not needed.&lt;/p&gt;






&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A9-wwsHG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/sadanandpai"&gt;
        sadanandpai
      &lt;/a&gt; / &lt;a href="https://github.com/sadanandpai/git-guide"&gt;
        git-guide
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Practical guide to everyday Git commands
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div&gt;
  &lt;h1&gt;
Practical Git Guide&lt;/h1&gt;
  &lt;h3&gt;
Practical guide to everyday Git commands&lt;/h3&gt;
  &lt;p&gt;
    &lt;a href="https://github.com/sadanandpai/git-guide"&gt;&lt;img src="https://camo.githubusercontent.com/cf7d3c296635e4b602638a126f20db00be94017cadb4d5f561ca5f2e8b044fa5/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f736164616e616e647061692f6769742d6c65616e2d67756964653f7374796c653d666f722d7468652d6261646765"&gt;&lt;/a&gt;
    &lt;a href="https://github.com/sadanandpai/git-guide"&gt;&lt;img src="https://camo.githubusercontent.com/8d25047bd0b5a8ba925532f6a4ee00807bcee18329225c7532db04dc567ca9c9/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f736164616e616e647061692f6769742d6c65616e2d67756964653f6c6f676f436f6c6f723d677265656e267374796c653d666f722d7468652d6261646765"&gt;&lt;/a&gt;
    &lt;a href="https://github.com/sadanandpai/git-guide"&gt;&lt;img src="https://camo.githubusercontent.com/91aa572011cac4ed04103d95b569014c71f2a332d4adb016c9237965d058f518/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f736164616e616e647061692f6769742d6c65616e2d67756964653f7374796c653d666f722d7468652d6261646765"&gt;&lt;/a&gt;
  &lt;/p&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://user-images.githubusercontent.com/12962887/170864903-b331fc72-71f6-429b-81d4-b5cceb9d4b9f.png"&gt;&lt;img width="654" alt="image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--zTaGdrsX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/170864903-b331fc72-71f6-429b-81d4-b5cceb9d4b9f.png"&gt;&lt;/a&gt;
  &lt;h4&gt;
Solutions to 90% of your daily git challenges&lt;/h4&gt;
&lt;p&gt;Show your support by giving a ⭐ to this repo&lt;/p&gt;
&lt;/div&gt;
&lt;br&gt;

&lt;h3&gt;
Contents&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://github.com/sadanandpai/git-guide#1-i-want-to-clone-a-project-and-start-going-through-the-code"&gt;I want to clone a project and start going through the code.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sadanandpai/git-guide#2-i-have-cloned-the-repo-but-i-am-not-able-to-see-the-proper-code"&gt;I have cloned the repo. But I am not able to see the proper code!!!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sadanandpai/git-guide#3-someone-has-made-a-few-changes-in-the-code-and-asked-me-to-pull-those-changes-what-should-i-do"&gt;Someone has made a few changes in the code and asked me to pull those changes. What should I do?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sadanandpai/git-guide#4-i-have-modified-the-code-and-added-changes-how-do-i-commit-my-changes"&gt;I have modified the code and added changes. How do I commit my changes?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sadanandpai/git-guide#5-what-if-i-want-only-some-of-my-files-added-and-pushed-instead-of-all-the-changes"&gt;What if I want only some of my files added and pushed instead of all the changes?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sadanandpai/git-guide#6-i-have-modifiedformatted-some-code-while-going-through-it-now-i-want-the-code-to-be-back-to-the-state-as-it-was"&gt;I have modified/formatted some code while going through it. Now I want the code to be back to the state as it was.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sadanandpai/git-guide#7-i-have-committed-my-changes-how-can-i-undo-my-change"&gt;I have committed my changes. How can I undo my change?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sadanandpai/git-guide#8-i-have-made-some-changes-to-the-branch-also-i-wanted-to-pull-the-new-changes-but-it-is-not-working"&gt;I have made some changes to the branch. Also, I&lt;/a&gt;…&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/sadanandpai/git-guide"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


</description>
      <category>git</category>
      <category>github</category>
      <category>productivity</category>
      <category>programming</category>
    </item>
    <item>
      <title>Git Practical Guide</title>
      <dc:creator>Sadanand Pai</dc:creator>
      <pubDate>Mon, 01 Aug 2022 07:32:35 +0000</pubDate>
      <link>https://forem.com/sadanandpai/git-practical-guide-101d</link>
      <guid>https://forem.com/sadanandpai/git-practical-guide-101d</guid>
      <description>&lt;p&gt;Hello folks,&lt;/p&gt;

&lt;p&gt;I have created a &lt;strong&gt;Git Practical Guide&lt;/strong&gt; which will be helpful for everyone who is facing challenges with Git. This guide covers most of the daily scenarios &amp;amp; challenges with solutions and screenshots.&lt;/p&gt;

&lt;p&gt;I hope you find it useful.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A9-wwsHG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/sadanandpai"&gt;
        sadanandpai
      &lt;/a&gt; / &lt;a href="https://github.com/sadanandpai/git-guide"&gt;
        git-guide
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Practical guide to everyday Git commands
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div&gt;
  &lt;h1&gt;
Practical Git Guide&lt;/h1&gt;
  &lt;h3&gt;
Practical guide to everyday Git commands&lt;/h3&gt;
  &lt;p&gt;
    &lt;a href="https://github.com/sadanandpai/git-guide"&gt;&lt;img src="https://camo.githubusercontent.com/cf7d3c296635e4b602638a126f20db00be94017cadb4d5f561ca5f2e8b044fa5/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f736164616e616e647061692f6769742d6c65616e2d67756964653f7374796c653d666f722d7468652d6261646765"&gt;&lt;/a&gt;
    &lt;a href="https://github.com/sadanandpai/git-guide"&gt;&lt;img src="https://camo.githubusercontent.com/8d25047bd0b5a8ba925532f6a4ee00807bcee18329225c7532db04dc567ca9c9/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f736164616e616e647061692f6769742d6c65616e2d67756964653f6c6f676f436f6c6f723d677265656e267374796c653d666f722d7468652d6261646765"&gt;&lt;/a&gt;
    &lt;a href="https://github.com/sadanandpai/git-guide"&gt;&lt;img src="https://camo.githubusercontent.com/91aa572011cac4ed04103d95b569014c71f2a332d4adb016c9237965d058f518/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f736164616e616e647061692f6769742d6c65616e2d67756964653f7374796c653d666f722d7468652d6261646765"&gt;&lt;/a&gt;
  &lt;/p&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://user-images.githubusercontent.com/12962887/170864903-b331fc72-71f6-429b-81d4-b5cceb9d4b9f.png"&gt;&lt;img width="654" alt="image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--zTaGdrsX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://user-images.githubusercontent.com/12962887/170864903-b331fc72-71f6-429b-81d4-b5cceb9d4b9f.png"&gt;&lt;/a&gt;
  &lt;h4&gt;
Solutions to 90% of your daily git challenges&lt;/h4&gt;
&lt;p&gt;Show your support by giving a ⭐ to this repo&lt;/p&gt;
&lt;/div&gt;
&lt;br&gt;

&lt;h3&gt;
Contents&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://github.com/sadanandpai/git-guide#1-i-want-to-clone-a-project-and-start-going-through-the-code"&gt;I want to clone a project and start going through the code.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sadanandpai/git-guide#2-i-have-cloned-the-repo-but-i-am-not-able-to-see-the-proper-code"&gt;I have cloned the repo. But I am not able to see the proper code!!!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sadanandpai/git-guide#3-someone-has-made-a-few-changes-in-the-code-and-asked-me-to-pull-those-changes-what-should-i-do"&gt;Someone has made a few changes in the code and asked me to pull those changes. What should I do?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sadanandpai/git-guide#4-i-have-modified-the-code-and-added-changes-how-do-i-commit-my-changes"&gt;I have modified the code and added changes. How do I commit my changes?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sadanandpai/git-guide#5-what-if-i-want-only-some-of-my-files-added-and-pushed-instead-of-all-the-changes"&gt;What if I want only some of my files added and pushed instead of all the changes?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sadanandpai/git-guide#6-i-have-modifiedformatted-some-code-while-going-through-it-now-i-want-the-code-to-be-back-to-the-state-as-it-was"&gt;I have modified/formatted some code while going through it. Now I want the code to be back to the state as it was.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sadanandpai/git-guide#7-i-have-committed-my-changes-how-can-i-undo-my-change"&gt;I have committed my changes. How can I undo my change?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sadanandpai/git-guide#8-i-have-made-some-changes-to-the-branch-also-i-wanted-to-pull-the-new-changes-but-it-is-not-working"&gt;I have made some changes to the branch. Also, I&lt;/a&gt;…&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/sadanandpai/git-guide"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Agile methodology for everyone</title>
      <dc:creator>Sadanand Pai</dc:creator>
      <pubDate>Sun, 10 Jul 2022 05:57:22 +0000</pubDate>
      <link>https://forem.com/sadanandpai/agile-methodology-for-everyone-3f0o</link>
      <guid>https://forem.com/sadanandpai/agile-methodology-for-everyone-3f0o</guid>
      <description>&lt;p&gt;Hello folks,&lt;/p&gt;

&lt;p&gt;Today, we will be discussing the processes that every software engineer should be aware of, in the world of agile software development. Also, this can be a useful guide if you are a new engineer or an engineer from a non-agile background. We will try to discuss the important yet boring processes that are playing a crucial role in increasing the number of meetings in the engineers day to day work.&lt;/p&gt;

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

&lt;p&gt;Most of the product development life cycles happening nowadays are using agile methodology. What is agile methodology? At the core, the agile methodology focuses on building the product in parts, feature by feature, and delivering them in multiple stages. Almost opposite of this would be the waterfall methodology which focuses on delivering the product end to end completely without multiple iterations or changes in the requirement.&lt;/p&gt;

&lt;p&gt;Earlier, the waterfall methodologies were used majorly. But rapidly changing technologies and customer demands have forced software development to move towards the agile way of working. This is very suitable for working on frequently changing requirements with quicker deliveries.&lt;/p&gt;

&lt;p&gt;In this article, we will try to walk through the whole agile process from scratch considering the requirement of building a product.&lt;/p&gt;

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

&lt;p&gt;We will try to start with the agile methodology by considering a real-world scenario. Assume we have got a requirement from a person to build a messenger which is nothing other than WhatsApp. Now the person who has given this requirement will be our client for whom we will build the product and he/she/they will be paying us the money in return.&lt;/p&gt;

&lt;p&gt;What next?&lt;/p&gt;

&lt;p&gt;Now we need to plan a team comprising of developers and testers to build this product. But there has to be a person who can talk to the client on a regular basis to discuss the features, improvements, changes, and progress of the product. So this person can be called a point of contact for the client. Let us give a fancy name to the person &lt;strong&gt;Product Owner&lt;/strong&gt; (PO). Yes, you may have heard it a lot of times. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The requirements to build or modify some product features may not always need to come from the client. The requirements may flow from different directions such as end-users (customers), feature bugs, suggestions within the organization, etc.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The product owner would talk to the client and get the requirements. Also, the clients in most cases will not have technical knowledge. The requirement which comes will not be usually clear. PO will try to transform these abstract ideas into detailed descriptions so that both technical and non-technical people will be able to understand them. In many organizations, there will be a person called Business Analyst (BA), who will handle this.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Why? If the product and requirements are huge and complex, everything cannot be managed well by the Product owners. In such cases, you would require BAs who can clearly write the details of the requirements, acceptance criteria, and other implementation details.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Acceptance criteria&lt;/strong&gt; is a set of end goals that have to be met in order to confirm that the requirement mentioned is done (also called &lt;em&gt;definition of done&lt;/em&gt;). It can be present in the form of a word document or in &lt;em&gt;Jira&lt;/em&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Breaking down the product
&lt;/h3&gt;

&lt;p&gt;Now that the overall requirements of Whatsapp messenger are clear to the Product Owner, the team can start working on building the product. But we are not yet there. The end-to-end completion of requirements may take up to 2 years of time. The client may not spend money and wait for the next 2 years to release it to the customers. The client may expect the product to be released to the customers in the next 3 months. &lt;/p&gt;

&lt;p&gt;At this point, it is clearly known to us that we may not be able to complete all the features of 2 years in 3 months, we will have to identify the crucial functionalities and features which the product requires to release to the customers as early as possible. This is called a Minimum Viable Product (MVP).&lt;/p&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%2F3srnx423oszdzh53okgc.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%2F3srnx423oszdzh53okgc.png" alt="MVP" width="800" height="705"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;For a messenger like Whatsapp, the MVP functionality might be&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;add a phone number to the Whatsapp&lt;/li&gt;
&lt;li&gt;ability to send messages to other mobile numbers&lt;/li&gt;
&lt;li&gt;provision to add profile details&lt;/li&gt;
&lt;li&gt;to store the history of messages&lt;/li&gt;
&lt;li&gt;secure way of communication&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;The MVP design functionalities given above are for demo purposes only. Remember, MVP is not only about building it fast due to time crunch. But also the functionalities which would be added in the future will depend on the feedback received for the initial versions. It is a continuous feedback loop in which the product keeps improving.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What about the other features such as &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ability to send media, and voice messages&lt;/li&gt;
&lt;li&gt;create a group of multiple people&lt;/li&gt;
&lt;li&gt;react to a message&lt;/li&gt;
&lt;li&gt;delete the sent messages&lt;/li&gt;
&lt;li&gt;add Whatsapp status&lt;/li&gt;
&lt;li&gt;Whatsapp web to access outside application&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are also the items to be considered but not immediately for the initial releases. Each of these items is called a &lt;strong&gt;Story&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Now to execute/implement these Stories we would require a plan. &lt;/p&gt;

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

&lt;p&gt;One of the famous strategies to execute these stories is &lt;strong&gt;SCRUM&lt;/strong&gt;. Scrum is nothing but a process/framework for developing, delivering, and managing products in a complex environment.&lt;/p&gt;

&lt;p&gt;Now that we have the stories with us (either in MVP or others for later releases), we need to start working on those. In Scrum, usually, 2 weeks development cycles are created. This is called a &lt;strong&gt;Sprint&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Why Sprint is even needed? With sprint in place, we can plan the tasks for the next 2 weeks and target to complete them by the end. So the planning, execution, and delivery will happen in a regular disciplined manner.&lt;/p&gt;

&lt;p&gt;The stories which we want to work on will be picked at the start of the sprint. This is called a &lt;strong&gt;Sprint planning&lt;/strong&gt; meeting in which the sprint tasks are discussed and groomed. &lt;/p&gt;

&lt;p&gt;In a sprint out of the above-mentioned functionalities, we might be able to pick 2 to 3 stories (just as an example). These are added to the sprint. All the other stories are called &lt;strong&gt;backlogs&lt;/strong&gt; (stories that are yet to be done in coming sprints). The backlogs are sorted by priority.&lt;/p&gt;

&lt;p&gt;The development and testing team will then try to estimate the efforts required to achieve those stories and add the complexity. The complexity of a story can vary from simple to complex. The story points (a measure of complexity) are usually given in terms of &lt;strong&gt;Fibonacci&lt;/strong&gt; values i.e 1, 2, 3, 5, 8, 13, 21. A simple story can be given the lowest complexity and the one which is very complex may carry story points of 21 (defined by the team). &lt;/p&gt;

&lt;p&gt;What should be the highest story points that any story in a sprint can have will be decided by the Scrum Master&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A &lt;strong&gt;Scrum Master&lt;/strong&gt; is that person who is managing the scrum processes for the team. And anyone in the project can take up this role. Most companies have a dedicated person for this purpose.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Generally, in many companies, the &lt;em&gt;Engineering Manager&lt;/em&gt; (EM) plays the role of an SM. A scrum master dedicated to just running the scrum process will not be of great use to the team/company. Hence, companies prefer an engineering manager to take the responsibility of managing the technical and scrum processes together.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Engineering Manager is not just a people manager. An engineering manager is responsible for ensuring that key projects and engineering duties are fulfilled along with solving the engineering challenges in the project.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As a part of the scrum, there has to be a daily meeting to update the status of the stories. This meeting is popularly known as "Daily standup". The words used literally mean it. All the people of the team will come to a meeting room and stand up while giving their updates. This meeting is also called a &lt;strong&gt;Scrum Call&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;What happens in this meeting? Everyone will have to share their updates generally in the below format&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What did I work on yesterday?&lt;/li&gt;
&lt;li&gt;What am I working on today?&lt;/li&gt;
&lt;li&gt;What issues are blocking me?&lt;/li&gt;
&lt;/ul&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%2F5n7oavd68pzyr9vviqbu.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%2F5n7oavd68pzyr9vviqbu.png" alt="Sprint view" width="800" height="207"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After completion of 1st week, the sprint review takes place. Here we will analyze the status of the stories and tasks again. This meeting is more of a discussion on aligning the sprint to take ahead and complete as planned as well as to have a walk-through of the work completed in the 1st half of the sprint.&lt;/p&gt;

&lt;p&gt;In the 2nd half of the sprint i.e 2nd week, the team will try to target the stories towards completion. For developers and testers, this mainly involves testing the implementation, raising the defects, fixing them, and getting it ready for deployment.&lt;/p&gt;

&lt;p&gt;Assuming everything went as expected, the new development/progress done towards the product will either be released to the customers or shared with the client. The sprint will conclude with a &lt;strong&gt;Sprint retrospective&lt;/strong&gt; meeting. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Sprint retro is a meeting that involves a discussion on how did the overall sprint execute, what went right during the sprint, what could be improved and how we could have done it differently to make things efficient for the future.&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;p&gt;Now that we have understood the flow of the development process in agile methodology, it should be clear to us about the different roles which have come into existence such as SM, EM, BA, and PO.&lt;/p&gt;

&lt;p&gt;The processes mentioned may not be exactly the same in all the companies. Development teams may prefer the modification in the scrum process which works best for them. Though these are some kind of the commonly followed guidelines, at the end of the day the process that yields the best results will only be preferred.&lt;/p&gt;

&lt;p&gt;This article may just serve the purpose of introducing the processes at a high level. There are well-written articles and guides on the Agile processes which you can find over the web. Next time you hear about &lt;em&gt;Agile&lt;/em&gt; or &lt;em&gt;Scrum&lt;/em&gt;, hope you will not be puzzled.&lt;/p&gt;

</description>
      <category>agile</category>
    </item>
    <item>
      <title>Sudoku Solver using SolidJS &amp; Tailwind</title>
      <dc:creator>Sadanand Pai</dc:creator>
      <pubDate>Sat, 12 Mar 2022 08:14:37 +0000</pubDate>
      <link>https://forem.com/sadanandpai/sudoku-solver-using-solidjs-tailwind-22if</link>
      <guid>https://forem.com/sadanandpai/sudoku-solver-using-solidjs-tailwind-22if</guid>
      <description>&lt;p&gt;Hello folks,&lt;/p&gt;

&lt;p&gt;I have developed "Sudoku Solver" using SolidJS and TailwindCSS. It tries to solve the given input board using backtracking to get a solution.&lt;/p&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%2Fbyoxpk02mxi2lmtya4l7.gif" 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%2Fbyoxpk02mxi2lmtya4l7.gif" alt="Sudoku Solver demo" width="500" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Link: &lt;a href="https://sadanandpai.github.io/sudoku-solver/dist/"&gt;https://sadanandpai.github.io/sudoku-solver/dist/&lt;/a&gt;&lt;br&gt;
Repo: &lt;a href="https://github.com/sadanandpai/sudoku-solver"&gt;https://github.com/sadanandpai/sudoku-solver&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is written in a simple way for anyone understand and build similar things.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>react</category>
      <category>algorithms</category>
    </item>
    <item>
      <title>2022 Frontend Development interview checklist &amp; Roadmap</title>
      <dc:creator>Sadanand Pai</dc:creator>
      <pubDate>Sat, 25 Dec 2021 09:25:57 +0000</pubDate>
      <link>https://forem.com/sadanandpai/2022-frontend-development-interview-checklist-roadmap-343j</link>
      <guid>https://forem.com/sadanandpai/2022-frontend-development-interview-checklist-roadmap-343j</guid>
      <description>&lt;p&gt;Hello folks,&lt;/p&gt;

&lt;p&gt;I have created the Frontend Development #interview checklist and Roadmap for 2022.&lt;/p&gt;

&lt;p&gt;Hope you find it helpful.&lt;/p&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%2Fi0edsfikehyi36ovybnh.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%2Fi0edsfikehyi36ovybnh.png" alt="Frontend fundamentals" width="595" height="842"&gt;&lt;/a&gt;&lt;/p&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%2Fzezt8yjfxkfoc09od8rf.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%2Fzezt8yjfxkfoc09od8rf.png" alt="Framework &amp;amp; ecosystem" width="595" height="842"&gt;&lt;/a&gt;&lt;/p&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%2Fzxoei9w4y33lcfy93sv9.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%2Fzxoei9w4y33lcfy93sv9.png" alt="Tools &amp;amp; advanced" width="595" height="842"&gt;&lt;/a&gt;&lt;/p&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%2Ft1w5rhwh11rgj8qwkq3a.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%2Ft1w5rhwh11rgj8qwkq3a.png" alt="Roadmap" width="595" height="842"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/sadanandpai/frontend-learning-kit/blob/main/2022_FE_roadmap.pdf"&gt;PDF link&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>react</category>
      <category>css</category>
    </item>
    <item>
      <title>My journey from QA to Frontend Development</title>
      <dc:creator>Sadanand Pai</dc:creator>
      <pubDate>Fri, 17 Dec 2021 05:25:56 +0000</pubDate>
      <link>https://forem.com/sadanandpai/my-journey-from-qa-to-frontend-development-4415</link>
      <guid>https://forem.com/sadanandpai/my-journey-from-qa-to-frontend-development-4415</guid>
      <description>&lt;p&gt;Hello folks,&lt;/p&gt;

&lt;p&gt;I am very much excited to share my career journey, on how I moved to development after &lt;strong&gt;six&lt;/strong&gt; years of testing experience. Also, I will cover my preparation strategy, in brief, to motivate &amp;amp; inspire those who are on this similar path.&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Campus placement&lt;/strong&gt; (A little bit about my background)&lt;/p&gt;

&lt;p&gt;I did my &lt;strong&gt;B&lt;/strong&gt;achelor of &lt;strong&gt;E&lt;/strong&gt;ngineering in Electronics &amp;amp; Communication from a college that most refer to as &lt;em&gt;TIER 3&lt;/em&gt; college. I did not even attempt for any of the core companies in my final year. Like the most, I appeared for the mass recruiting companies and fortunately got an opportunity at Infosys Ltd. After the completion of my education, I had to wait for eight months to be onboarded at Infosys as they postponed the joining dates by a few months. Mine was among the first few batches to whom online training was introduced by Infosys. &lt;/p&gt;

&lt;p&gt;I started my career journey with Infosys, Mysore as a trainee engineer in the second month of 2013. I was trained in Java, SQL &amp;amp; a few more computer science topics. These helped me to understand the basics of the software development life cycle.&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Career as a QA&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After completing training, I started working at Infosys, Mangalore as a &lt;em&gt;Test engineer&lt;/em&gt; (Quality assurance engineer). The project was in the apple account, and we were working in an offshore development center (ODC) at Infosys. My work expectations were to understand the requirements, write the test cases, execute them, raise the bugs, &amp;amp; so on. It continued for a few more years in different domains (retail, manufacturing, etc.), which offered me some knowledge of these domains too.&lt;/p&gt;

&lt;p&gt;By the time I understood what was going on, it was already mid of &lt;em&gt;2016&lt;/em&gt;. With such an experience, my typing and excel skills had improved a lot. As these skills were nowhere in demand, I decided to move to Silicon Valley of India, Bengaluru. I got the opportunity to work at the client location &lt;em&gt;Huawei&lt;/em&gt; from Infosys. Here I got some exposure to coding on automation testing (Java + Selenium). At the end of 2017, I decided to make at least some progress in my career.&lt;/p&gt;

&lt;p&gt;I joined &lt;em&gt;Sears Holdings&lt;/em&gt; as a senior test engineer. The company faced an unexpected challenge within a few weeks of my joining. They decided to lay off employees. Being the recent joiner, I was at the top of the list. My 2nd company did not even add two months to my resume.&lt;/p&gt;

&lt;p&gt;As I was jobless, many companies were strategically trying to hire me at discounts. Fortunately, I got an offer from TEKSystems to work for Schneider Electric. I started working as a test engineer on core authentication and authorization integration software product.&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;What made me change my mind !!!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I started exploring different tools and technologies in the testing domain; Performance testing, Automation testing, API testing, Robotic Process Automation. Also, I evaluated my long-term career possibilities in the domain which was either Test Manager or Test Architect. Scrum Master is another option that I was not interested in. As I was not convinced with the options I have, I decided to move out of the testing domain. (personal choice, no offense intended)&lt;/p&gt;

&lt;p&gt;I talked to many developers and took their suggestions regarding the same. But many were skeptical about the chances of getting a decent development opportunity after five-plus years of testing experience. After spending a month evaluating all the possibilities, I decided to start my studies to become a developer. (Better late than never)&lt;/p&gt;

&lt;p&gt;Now the question remaining was about the tech stack. I picked frontend development. The reasons for choosing frontend were&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Frontend development was booming with frameworks such as React, Angular during 2018&lt;/li&gt;
&lt;li&gt;We can quickly see the results of what we code&lt;/li&gt;
&lt;li&gt;Entry barrier is lower compared to backend dev, machine learning&lt;/li&gt;
&lt;li&gt;Good number of books and materials to study from&lt;/li&gt;
&lt;li&gt;JavaScript is everywhere (backend, frontend, mobile, ML, AI, ...)&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;However, there are fewer materials for intermediate and advanced levels (frontend system design, architecture, WASM, ...)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Frontend preparation 👨‍💻&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As I already had some exposure to HTML, CSS, and JavaScript, web development was not something alien to me. I created a &lt;strong&gt;roadmap&lt;/strong&gt; for myself for the next four months. It included 80% of JavaScript and 20% of HTML &amp;amp; CSS. I chose &lt;a href="https://github.com/getify/You-Dont-Know-JS"&gt;You don't know JS&lt;/a&gt; for JavaScript and &lt;a href="https://www.udemy.com/user/maximilian-schwarzmuller/"&gt;Maximilian&lt;/a&gt; courses from Udemy for the rest.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A roadmap is a step-by-step guide that helps us to plan our learning. It is very important to create a roadmap for our needs and goals. It also helps us to be focused on our goals and track our progress.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Regularly, I spent 3 hours studying JavaScript after my office hours. I was mainly reliant on the book and a few video courses (Udemy, Youtube) for additional information. On weekends I used to spend 12 to 16 hours. Was it easy? Of course not. It was damn hard for me. I was frequently getting demotivated; I wasn't able to complete even a single topic in a whole day sometimes; sometimes I did not even feel like opening the laptop and practicing; I had to push myself in the evening after the hectic day 😦. However, the studies continued for about three months. The next one month I spent on HTML and CSS. &lt;/p&gt;

&lt;p&gt;Now it was time for &lt;em&gt;frameworks&lt;/em&gt;. Yeaaaa 🕺!!! The most awaited one. Considering the market demands, I had to choose either React or Angular. I started with AngularJS 1.7, building a project. Neither video tutorials nor books; created a project with only its documentation. WoW moment for me. I was able to build and host the project on my own. Now it was the time for React 😎. I converted the same project into React. &lt;/p&gt;

&lt;p&gt;As AngularJS was outdated, I had to learn Angular.  I knew AngularJS was outdated, and it was international to practice it first before moving to Angular. I figured out a practical challenge that our testing team was facing in the daily work. Solving it using a web application would both make the life of testers simple and also give me a real-time frontend project experience. I built a small frontend project in a few weeks, using Angular. My teammates loved it as it reduced the manual effort by 90%. Now I had one good frontend project to showcase in my resume.&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Frontend interviews&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As it was already five months from the day I started learning frontend development, I was in a position to start giving the interviews. It was the 1st month of 2019. I updated my resume with the relevant frontend details &amp;amp; projects and activated my job search through &lt;em&gt;Naukri&lt;/em&gt; and &lt;em&gt;Linkedin&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;I was overwhelmed with the number of interview calls I got. It was not because of my knowledge but purely due to the demand. Few interviews were scheduled for the same weekends after the initial telephonic round. I cleared all the interview rounds at Trelleborg and got my first offer as a frontend developer 🎊 🎉 🎆. I was ecstatic. I was satisfied with the &lt;em&gt;UI developer&lt;/em&gt; role at Trelleborg and happily accepted the offer immediately. Also, I could clear the interviews at Tredence and Pearson. My job search ended successfully in a short span of 4-5 days which I had never imagined.&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Frontend journey till today&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Trelleborg&lt;/em&gt; helped me to get a lot of frontend experience as a beginner and gave me exposure to different frameworks. I worked on legacy codebase as well as modern codebases. I developed projects from scratch as well as handled maintenance projects. I added enhancements to the products as well as architected the projects. From building applications with complex logic to pixel-perfect user interfaces, I was involved.&lt;/p&gt;

&lt;p&gt;After 1 year at Trelleborg, due to covid most of us started working from home. I tried to utilize this time to enhance my core skills. I focused more on HTML &amp;amp; CSS part this time as I was not proficient enough. I also strengthened my problem-solving skills by practicing data structures and algorithms. I started building multiple &lt;a href="https://github.com/sadanandpai"&gt;personal projects&lt;/a&gt; and started sharing my knowledge over Github. I became an active member in various frontend communities. Also, I started actively attending and giving sessions on frontend-related topics. During this time, I connected well with an open frontend community called &lt;a href="https://t.me/teamdevkode"&gt;TeamDevkode&lt;/a&gt; which helped me to grow in the frontend world and gave me the required exposure.&lt;/p&gt;

&lt;p&gt;By then it was 2021. To try out newer challenges, to grow faster 🚀🚀🚀 in my career, I decided to explore the opportunities in the frontend domain. I moved to CoinDCX as a frontend developer in the 1st week of April 2021. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;To read more about my interview experience at CoinDCX, &lt;a href="https://frontendpro.hashnode.dev/frontend-interview-experience-at-coindcx"&gt;click here&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When I see my career transition journey, it makes me feel happy. Now I enjoy being a frontend developer that I aspired to be in my past. It makes me feel like an achiever (though not huge). It helps me to empathize with the feelings of those, who are striving hard for the same. At the same time, it also makes me realize that I am still a beginner and, there is a long way to go.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I did not do it alone&lt;/em&gt;. l am grateful to all those who guided, helped, and morally supported me. I hardly spent money on resources as most of the high-quality resources were available online for free. Thanks to open-source materials, projects, tools, and free youtube channels.&lt;/p&gt;

&lt;p&gt;However, one question was bugging me a lot during my preparation phase. "What if I fail?" The worst thing that can happen is, I gain a good amount of knowledge on something. It is better to try and fail than never to try at all.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;An investment in knowledge pays the best interest - Franklin&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I hope my journey motivates you and ignites that fire 🔥 to excel at the things you are wishing.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>react</category>
      <category>testing</category>
    </item>
    <item>
      <title>Frontend interview experience at CoinDCX</title>
      <dc:creator>Sadanand Pai</dc:creator>
      <pubDate>Sat, 27 Nov 2021 03:34:44 +0000</pubDate>
      <link>https://forem.com/sadanandpai/frontend-interview-experience-at-coindcx-1ac5</link>
      <guid>https://forem.com/sadanandpai/frontend-interview-experience-at-coindcx-1ac5</guid>
      <description>&lt;p&gt;Hello folks,&lt;/p&gt;

&lt;p&gt;I am glad that I am a part of &lt;a href="http://coindcx.com/" rel="noopener noreferrer"&gt;CoinDCX&lt;/a&gt; organization now and got the opportunity to make crypto accessible to millions. In this post, I would like to share my interview experience at CoinDCX.&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;How did I apply&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I was invited to a job search platform called  &lt;a href="https://enthire.co/" rel="noopener noreferrer"&gt;Enthire&lt;/a&gt;  via Linkedin by a Talent Acquisition Lead. It's a platform that helps candidates to get fast-tracked opportunities with verified employers by giving interviews with their Industry Experts. Depending on these interview results, Enthire recommends and helps us to apply for good opportunities on their platform.&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Interview at Enthire - JS and DSA&lt;/strong&gt; (45 mins)&lt;/p&gt;

&lt;p&gt;Enthire conducted a generic frontend interview round that was focused on core JavaScript and DSA (data structures &amp;amp; algorithms). The difficulty level of questions on JavaScript was intermediate to advanced. The difficulty level of questions on DSA was beginner to intermediate.&lt;br&gt;
I got a good rating ★★★★☆ in this interview round which allowed me to apply for CoinDCX.&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Round 1 at CoinDCX - Assessment&lt;/strong&gt; (1 hour)&lt;/p&gt;

&lt;p&gt;My resume got shortlisted by CoinDCX and 1st round of assessment was scheduled. This was a multiple-choice quiz. Questions covered both frontend (HTML, CSS, JS, Angular) and aptitude. Many of the questions were tricky and challenging due to the time limits.&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Round 2 at CoinDCX - System Design&lt;/strong&gt;  (45 mins)&lt;/p&gt;

&lt;p&gt;The system design interview round started with a discussion on my core skills and framework knowledge. I was given a large component of the CoinDCX web application and was asked to design the system. I started by clarifying all my doubts and explaining my approach. Once I got the approval for the approach, I proceeded by breaking down this complex system into components. I explained the design of each component and finally the interaction &amp;amp; integration of the components to build the whole system.&lt;/p&gt;

&lt;p&gt;I was then asked to code the logic for one of the components of this complex system in JavaScript. I explained the logic and coded the core functionality.&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Round 3 at CoinDCX - Live coding round&lt;/strong&gt; (1 hour)&lt;/p&gt;

&lt;p&gt;The live coding interview round started with a few of the advanced questions on JavaScript concepts. As I was more comfortable coding React than Angular, I was asked to code a small component using React by sharing my screen. Once I came with the functional code, many more complicated scenarios were introduced to the same component. As Angular is the technology being used at CoinDCX I was given a new problem to code using Angular. Similar to the previous challenge, variations were introduced progressively.&lt;/p&gt;

&lt;p&gt;Once the live coding session was over, many advanced questions were asked on JavaScript, CSS, and Angular framework.&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Round 4 at CoinDCX - Cultural fit&lt;/strong&gt; (1 hour)&lt;/p&gt;

&lt;p&gt;The cultural fit interview round started with a few behavioral questions. Then there was a dedicated question on studying and coming up with a practical solution for a real-world problem (non-technical). It was more like a brainstorming discussion with no specific right answer. The rest of the 30 mins were focused on the responsibilities I was taking care of previously and more on the processes. &lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Results&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After a few days, I got to know from HR that I got selected. The whole interview process was super smooth and the interviewers were also highly knowledgeable. Fortunately, I was offered Senior Software development engineer (SDE2) at CoinDCX and happily accepted the offer.&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1637488023156%2FIIi9edYRk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1637488023156%2FIIi9edYRk.png" alt="Screenshot 2021-11-21 at 3.16.46 PM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I joined CoinDCX in the 1st week of April 2021 and so far my experience at CoinDCX is awesome. I wish to see my knowledge and career grow at CoinDCX similar to the price of ₿ bitcoin 📈 in recent years.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;To know more about the frontend resources and frontend interview preparation, please visit &lt;a href="https://github.com/sadanandpai/frontend-learning-kit" rel="noopener noreferrer"&gt;Frontend Learning Kit&lt;/a&gt; which is a generic guide to crack interviews of any company for the role of frontend development.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Other opportunities&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I had cleared the interviews at &lt;em&gt;Byjus, MediaMonks, Glowroad, ORMAE, PhiGRC, SkillExchange, &amp;amp; Aroha&lt;/em&gt; and was rejected at &lt;em&gt;Flipkart &amp;amp; Typeset&lt;/em&gt;. I had also applied for frontend roles at &lt;em&gt;CureFit, FireEye, Amazon, Razorpay, Acko, Publicis Sapient, &amp;amp; MEX&lt;/em&gt; where my resume was either not shortlisted or never heard back. &lt;/p&gt;

&lt;p&gt;I did not try to go through referrals for any of the companies in my job search process and utilized only the freely available platforms.&lt;/p&gt;

&lt;p&gt;If you wish to be a part of CoinDCX and if you think you have the right skill set, then please visit &lt;a href="https://careers.coindcx.com/" rel="noopener noreferrer"&gt;Careers @ CoinDCX&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>react</category>
      <category>webdev</category>
      <category>angular</category>
    </item>
    <item>
      <title>Frontend Learning Kit</title>
      <dc:creator>Sadanand Pai</dc:creator>
      <pubDate>Wed, 08 Sep 2021 10:55:29 +0000</pubDate>
      <link>https://forem.com/sadanandpai/frontend-learning-kit-2ddh</link>
      <guid>https://forem.com/sadanandpai/frontend-learning-kit-2ddh</guid>
      <description>&lt;p&gt;Hi folks,&lt;/p&gt;

&lt;p&gt;In order to help everyone, I have listed down a few of the best materials (books + videos) for frontend developers all in one place (most of which I am referring to and planning to complete).&lt;/p&gt;

&lt;p&gt;Hope this helps you to learn &amp;amp; master the frontend without depending on others much.&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/sadanandpai/frontend-learning-kit"&gt;https://github.com/sadanandpai/frontend-learning-kit&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>react</category>
      <category>webdev</category>
      <category>typescript</category>
    </item>
    <item>
      <title>Path Finding Visualizer</title>
      <dc:creator>Sadanand Pai</dc:creator>
      <pubDate>Mon, 16 Aug 2021 12:50:32 +0000</pubDate>
      <link>https://forem.com/sadanandpai/path-finding-visualizer-50lf</link>
      <guid>https://forem.com/sadanandpai/path-finding-visualizer-50lf</guid>
      <description>&lt;p&gt;The project is developed to help visualize and learn the Breadth First Search algorithm in finding the shortest path between source and destination with obstacles.&lt;/p&gt;

&lt;p&gt;Also the code is written in a simple way to help interested folks, build the similar projects.&lt;/p&gt;

&lt;p&gt;Link: &lt;a href="https://sadanandpai.github.io/shortest-path-finder/dist/"&gt;https://sadanandpai.github.io/shortest-path-finder/dist/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/sadanandpai/shortest-path-finder"&gt;https://github.com/sadanandpai/shortest-path-finder&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>algorithms</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
