<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Keshav Kumar</title>
    <description>The latest articles on DEV Community by Keshav Kumar (@keshavcodex).</description>
    <link>https://dev.to/keshavcodex</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%2F595361%2Fe6b750cd-d03e-406a-8251-3a001decde4c.jpg</url>
      <title>DEV Community: Keshav Kumar</title>
      <link>https://dev.to/keshavcodex</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/keshavcodex"/>
    <language>en</language>
    <item>
      <title>Mastering React.js: Tips and Tricks for Efficient Development</title>
      <dc:creator>Keshav Kumar</dc:creator>
      <pubDate>Thu, 20 Jul 2023 18:54:02 +0000</pubDate>
      <link>https://dev.to/keshavcodex/mastering-reactjs-tips-and-tricks-for-efficient-development-4g1</link>
      <guid>https://dev.to/keshavcodex/mastering-reactjs-tips-and-tricks-for-efficient-development-4g1</guid>
      <description>&lt;p&gt;React.js has become one of the most popular JavaScript libraries for building user interfaces, and for good reason. Its component-based architecture and efficient virtual DOM make it a powerful tool for creating dynamic and responsive web applications. However, mastering React.js can be a challenging task, especially for developers who are just starting out. In this article, we will explore some tips and tricks that can help you become more efficient in your React.js development.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Understand the Component Lifecycle&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;One of the key aspects of React.js is its component lifecycle. Understanding how components mount, update, and unmount can greatly enhance your development experience. Take the time to learn about the different lifecycle methods such as componentDidMount, componentDidUpdate, and componentWillUnmount. Knowing when and where to perform certain tasks can optimize your application's performance.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Use Functional Components&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Functional components are a lightweight and concise way to define React components. They are easier to read, test, and maintain compared to class components. With the advent of React Hooks, functional components can now also have state and lifecycle methods. Embrace functional components whenever possible to write cleaner and more reusable code.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Leverage React Hooks&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;React Hooks were introduced in React 16.8 and have revolutionized the way we write React code. Hooks allow you to add state and other React features to functional components without the need for classes. They enable you to reuse stateful logic across multiple components, leading to more modular and maintainable code. Make sure to explore the various built-in hooks like useState and useEffect.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Optimize Rendering&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;React's virtual DOM diffing algorithm is incredibly efficient, but there are still ways to optimize rendering. Use the shouldComponentUpdate lifecycle method or React.memo to prevent unnecessary re-renders. Implementing shouldComponentUpdate or using React.memo can significantly improve the performance of your React application, especially when dealing with complex component trees.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Organize Your Codebase&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;React.js allows you to break down your application into reusable components, but it's essential to organize them effectively to avoid confusion and maintainability issues. Consider using component folders to group related files together, and follow a consistent naming convention. Additionally, explore popular architectural patterns like container and presentational components to separate concerns and enhance code clarity.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Use React Developer Tools&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;React Developer Tools is a browser extension that provides a set of debugging and profiling tools specifically for React applications. It allows you to inspect and manipulate the component hierarchy, view component props and state, and analyze performance. Installing and using React Developer Tools can significantly enhance your debugging and optimization capabilities.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Write Unit Tests&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Unit tests are crucial for maintaining code quality and preventing regressions. Fortunately, React.js provides excellent support for testing. Use popular testing libraries like Jest and Enzyme to write unit tests for your components. Aim for high test coverage to ensure that your code behaves as expected and remains robust as you make changes or add new features.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Stay Up-to-Date&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;React.js is a fast-evolving library, with new features and improvements being introduced regularly. Stay up-to-date with the latest releases and best practices by following the official React documentation, joining developer communities, and reading React-focused blogs and publications like the React blog, Medium, and Reddit's r/reactjs.&lt;/p&gt;

&lt;p&gt;By following these tips and tricks, you can level up your React.js development skills and become a more efficient and productive developer. Remember to keep experimenting, learning, and pushing yourself to explore the vast capabilities of React.js. Happy coding!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>The Art of Building Resilient Systems: DevOps and Kubernetes</title>
      <dc:creator>Keshav Kumar</dc:creator>
      <pubDate>Mon, 17 Jul 2023 06:59:52 +0000</pubDate>
      <link>https://dev.to/keshavcodex/the-art-of-building-resilient-systems-devops-and-kubernetes-1ll0</link>
      <guid>https://dev.to/keshavcodex/the-art-of-building-resilient-systems-devops-and-kubernetes-1ll0</guid>
      <description>&lt;p&gt;Building resilient systems is an art that requires a perfect blend of technology, collaboration, and mindset. In today's fast-paced digital landscape, where downtime can cost businesses millions, the need for robust systems is more critical than ever. DevOps and Kubernetes have emerged as powerful allies in this pursuit, revolutionizing the way we design, deploy, and manage applications.As a developer, I have witnessed firsthand the transformative impact of embracing DevOps and Kubernetes. These technologies have not only improved the speed and efficiency of software delivery but have also elevated the overall resilience of our systems. Let's dive deep into the art of building resilient systems and explore how DevOps and Kubernetes play a pivotal role.At its core, DevOps is a cultural shift that emphasizes collaboration, communication, and integration between development and operations teams. By breaking down silos and fostering a shared responsibility for system reliability, DevOps lays the foundation for building resilient systems. Gone are the days of developers throwing code over the fence to operations and hoping for the best. With DevOps, developers and operations experts work hand in hand from the beginning, ensuring that resilience is baked into the system from the ground up.Enter Kubernetes, an open-source container orchestration platform that has revolutionized the way we deploy and manage applications. Kubernetes provides a robust framework for automating the deployment, scaling, and management of containerized applications. With its self-healing capabilities, Kubernetes ensures that if any part of the system fails, it is promptly identified and remediated. This resilience is achieved through features like automatic restarts, health checks, and rolling updates, reducing downtime and providing a seamless experience for users.One of the key strengths of Kubernetes is its ability to handle failures gracefully. By leveraging concepts like replication controllers, services, and pods, Kubernetes ensures that applications are highly available and can withstand the failure of individual components. This fault-tolerant architecture allows for seamless scaling and zero-downtime deployments, even in the face of hardware or software failures. Kubernetes takes care of the heavy lifting, allowing developers to focus on building resilient applications without worrying about the underlying infrastructure.But building resilient systems is not just about technology; it requires a change in mindset. It demands a proactive approach to monitoring, testing, and continuous improvement. With DevOps and Kubernetes, organizations can embrace a culture of resilience by leveraging tools like monitoring dashboards, automated testing frameworks, and continuous integration/continuous delivery pipelines. By continuously monitoring the health and performance of their systems, teams can proactively identify and address potential issues before they impact users.Another critical aspect of building resilient systems is the ability to recover quickly from failures. Kubernetes excels in this area with its ability to automatically scale resources based on demand and redistribute workload in the event of failures. By leveraging features like horizontal pod autoscaling and self-healing capabilities, Kubernetes ensures that systems can withstand spikes in traffic and recover from failures without impacting user experience. This level of resilience is a game-changer, especially in today's era of unpredictable traffic patterns and ever-increasing user expectations.In conclusion, the art of building resilient systems requires a holistic approach that combines technology, collaboration, and mindset. DevOps and Kubernetes are two powerful tools that enable organizations to achieve this goal. By embracing DevOps principles and leveraging the capabilities of Kubernetes, teams can build systems that are highly available, fault-tolerant, and scalable. However, it is essential to remember that building resilient systems is an ongoing process. It requires constant monitoring, testing, and improvement to adapt to changing user needs and evolving technology landscape. So, let's embrace the art of building resilient systems and create a digital world that is robust, reliable, and ready for anything life throws at it.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Journey of becoming a React developer</title>
      <dc:creator>Keshav Kumar</dc:creator>
      <pubDate>Fri, 14 Jul 2023 04:04:38 +0000</pubDate>
      <link>https://dev.to/keshavcodex/journey-of-becoming-a-react-developer-3l2a</link>
      <guid>https://dev.to/keshavcodex/journey-of-becoming-a-react-developer-3l2a</guid>
      <description>&lt;p&gt;In recent years, the field of frontend development has witnessed a remarkable evolution. As technologies continue to advance at an unprecedented pace, it becomes crucial for developers to stay up-to-date with the latest trends and tools. One such technology that has truly revolutionized the frontend landscape is React. In this article, I would like to share my thoughts on the future of frontend development and why React continues to lead the way.&lt;/p&gt;

&lt;p&gt;Before diving into the future, let's take a moment to understand why React has gained such immense popularity in the first place. React, developed by Facebook, is an open-source JavaScript library that allows developers to build user interfaces. Its component-based architecture, virtual DOM, and efficient rendering make it an ideal choice for building complex and interactive web applications.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--w9C6rxcQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.patterns.dev/img/reactjs/react-logo%403x.svg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--w9C6rxcQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.patterns.dev/img/reactjs/react-logo%403x.svg" alt="react icon" width="800" height="446"&gt;&lt;/a&gt;&lt;br&gt;
One of the key advantages of React is its reusability. With React components, developers can create modular pieces of UI that can be easily reused across different parts of an application. This not only saves development time but also improves code maintainability and scalability. Additionally, the use of virtual DOM enables React to efficiently update only the necessary components, resulting in faster rendering and improved performance.&lt;/p&gt;

&lt;p&gt;Looking ahead, the future of frontend development seems promising, with React continuing to dominate the landscape. Here are a few reasons why React is likely to maintain its leading position:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Strong Community Support: React has a vibrant and active community of developers who constantly contribute to its growth. This community-driven approach ensures that React remains relevant and up-to-date with emerging technologies and best practices. The availability of numerous libraries, tools, and resources further enhances the development experience and encourages developers to choose React as their go-to frontend framework.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;React Native: React's influence extends beyond just web development. With React Native, developers can build native mobile applications using the same principles and concepts as React. This allows for code sharing between web and mobile platforms, reducing development efforts and enabling faster iterations. As the demand for cross-platform app development continues to rise, React Native provides a compelling solution that leverages the power and familiarity of React.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Performance Optimization: In today's fast-paced digital world, performance is paramount. React's virtual DOM and efficient diffing algorithm enable it to update only the necessary components, resulting in faster rendering and improved app performance. Additionally, React's one-way data flow and unidirectional data flow architecture make it easier to identify and resolve performance bottlenecks. As web applications become increasingly complex, React's performance optimization capabilities will continue to be a significant advantage for developers.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--p7rRKPTe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://themeselection.com/wp-content/uploads/2021/04/react-ecosystem.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--p7rRKPTe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://themeselection.com/wp-content/uploads/2021/04/react-ecosystem.png" alt="react ecosystem image" width="800" height="376"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;React's Ecosystem: React's success can be attributed, in part, to its rich ecosystem. Developers can choose from a wide range of libraries, tools, and frameworks that integrate seamlessly with React. Redux, React Router, and Next.js are just a few examples of the extensive ecosystem that complements React's core functionalities. This ecosystem not only enhances productivity but also encourages code reuse and modularity, resulting in more maintainable and scalable applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Industry Adoption: React has gained widespread adoption across various industries, including tech giants like Facebook, Instagram, Airbnb, and Netflix. This widespread adoption serves as a testament to React's reliability, scalability, and performance. As more and more companies recognize the benefits of React, its dominance in the frontend development space is set to continue.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;While React continues to lead the way in frontend development, it's essential for developers to keep an eye on emerging trends and technologies. The frontend landscape is ever-evolving, and staying ahead of the curve is crucial to remain competitive. However, with its strong community support, cross-platform capabilities, performance optimization, rich ecosystem, and widespread adoption, React undoubtedly holds a prominent position in the future of frontend development.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>A deep dive into the REACT ecosystem: libraries, tools, and best practices.</title>
      <dc:creator>Keshav Kumar</dc:creator>
      <pubDate>Thu, 13 Jul 2023 10:49:44 +0000</pubDate>
      <link>https://dev.to/keshavcodex/a-deep-dive-into-the-react-ecosystem-libraries-tools-and-best-practices-aj8</link>
      <guid>https://dev.to/keshavcodex/a-deep-dive-into-the-react-ecosystem-libraries-tools-and-best-practices-aj8</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lqMmcQHP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://d2ms8rpfqc4h24.cloudfront.net/React_18_New_features_a9ebb05f34.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lqMmcQHP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://d2ms8rpfqc4h24.cloudfront.net/React_18_New_features_a9ebb05f34.jpg" alt="React image" width="800" height="420"&gt;&lt;/a&gt;&lt;br&gt;
React, the JavaScript library developed by Facebook, has become the go-to choice for building user interfaces in the modern web development landscape. Its popularity can be attributed to its component-based architecture, virtual DOM, and its vibrant ecosystem of libraries, tools, and best practices. In this article, we will take a deep dive into the React ecosystem, exploring some of the essential libraries, tools, and best practices that every React developer should be familiar with.&lt;/p&gt;

&lt;p&gt;One of the key strengths of React is its extensive library ecosystem. There are numerous libraries available that complement React and enhance its capabilities. One such library is Redux, a predictable state container that helps manage the application state in a more organized and scalable manner. Redux simplifies data flow and provides a centralized store for managing state, making it easier to debug and reason about the application.&lt;/p&gt;

&lt;p&gt;Another essential library in the React ecosystem is React Router. React Router enables developers to build single-page applications with dynamic routing. It provides a declarative API for defining routes and handling navigation, making it easier to create complex routing structures in React applications.&lt;/p&gt;

&lt;p&gt;In addition to libraries, React developers can leverage a wide range of tools to streamline their development process. One such tool is Create React App, a command-line tool that sets up a new React project with all the necessary configurations and dependencies. Create React App takes care of the tedious setup process and allows developers to focus on building their applications.&lt;/p&gt;

&lt;p&gt;Another useful tool is Storybook, a development environment for building UI components in isolation. With Storybook, developers can showcase and test components independently, making it easier to iterate and maintain a component library. Storybook provides a visual interface for browsing components and allows developers to document their components with examples and usage guidelines.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UmuKCdaM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://assets.toptal.io/images%3Furl%3Dhttps://bs-uploads.toptal.io/blackfish-uploads/components/blog_post_page/content/cover_image_file/cover_image/1127769/0919_Declaratively-Protecting-Routes-in-React_Cover-dd72479964a7ef68186b100a35b5e459.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UmuKCdaM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://assets.toptal.io/images%3Furl%3Dhttps://bs-uploads.toptal.io/blackfish-uploads/components/blog_post_page/content/cover_image_file/cover_image/1127769/0919_Declaratively-Protecting-Routes-in-React_Cover-dd72479964a7ef68186b100a35b5e459.png" alt="data flow diagram" width="800" height="418"&gt;&lt;/a&gt;&lt;br&gt;
To ensure code quality and maintainability, following best practices is crucial when working with React. One widely adopted best practice is to use functional components and hooks instead of class components. Functional components are easier to read, test, and maintain, and hooks provide a more elegant way to handle state and side effects in React applications.&lt;/p&gt;

&lt;p&gt;Another best practice is to utilize PropTypes or TypeScript for type checking and validating component props. By defining prop types, developers can catch potential errors early on and improve the overall robustness of their code.&lt;/p&gt;

&lt;p&gt;Furthermore, it is important to structure React projects in a modular and scalable way. Following the principles of component-driven development and organizing components into reusable and independent modules can greatly improve code maintainability and reusability.&lt;/p&gt;

&lt;p&gt;In conclusion, React's ecosystem offers a wealth of libraries, tools, and best practices that can enhance the development experience and productivity of React developers. By leveraging libraries like Redux and React Router, using tools like Create React App and Storybook, and following best practices such as functional components and prop type checking, developers can build robust, scalable, and maintainable React applications. By staying up to date with the latest advancements in the React ecosystem, developers can continue to push the boundaries of what is possible in modern web development.&lt;/p&gt;

</description>
      <category>website</category>
    </item>
    <item>
      <title>Scaling servers for success</title>
      <dc:creator>Keshav Kumar</dc:creator>
      <pubDate>Sun, 09 Jul 2023 09:43:39 +0000</pubDate>
      <link>https://dev.to/keshavcodex/scaling-servers-for-success-37g</link>
      <guid>https://dev.to/keshavcodex/scaling-servers-for-success-37g</guid>
      <description>&lt;p&gt;Hey there, fellow tech enthusiasts! Today, I want to dive into the wild world of scaling servers. Now, I know what you're thinking - 'Wow, what an exciting topic!' But trust me, this journey will be filled with laughter, tears, and maybe a few server crashes along the way.&lt;/p&gt;

&lt;p&gt;Picture this: you've created the next big thing in the digital world. Your app or website is gaining popularity faster than you can say 'bandwidth.' But as your user base grows, so do the demands on your servers. It's like trying to fit an elephant through a mouse hole - it's just not gonna work, my friend.&lt;/p&gt;

&lt;p&gt;So, how do we handle this dilemma? How do we ensure optimal performance and keep our users happy? Fear not, for I have some hilarious strategies up my sleeve that will make scaling servers a piece of cake (or should I say, a slice of digital cake?).&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The 'T-Rex' Approach&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Remember that scene from Jurassic Park where they try to outrun a T-Rex? Well, scaling servers is a lot like that. You need to be fast, agile, and always one step ahead. Don't wait for disaster to strike before you start scaling up. Plan for the worst and hope for the best. Keep an eye on your metrics and be ready to spin up new instances at a moment's notice. Just like the T-Rex, your servers should be a force to be reckoned with (minus the teeth and the roaring, of course).&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The 'Ant-Man' Technique&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You know how Ant-Man can shrink down to the size of an ant and then grow back to his normal size? Well, scaling servers is a bit like that too. Sometimes, you need to shrink down your infrastructure to fit the current demand, and other times, you need to grow it back up to handle the surge in users. Embrace the flexibility of cloud computing and use auto-scaling groups to automate this process. It's like having your own personal Ant-Man managing your servers.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The 'MacGyver' Mindset&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Remember MacGyver, the guy who could turn a paperclip and a piece of string into a high-tech gadget? Well, when it comes to scaling servers, you need to channel your inner MacGyver. Sometimes, the solution lies in using unconventional tools and techniques. Maybe you can optimize your code to reduce server load, or perhaps you can leverage caching to speed up response times. Think outside the box and get creative. Who knows, you might just become the MacGyver of the server world.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The 'Superhero' Squad&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Just like the Avengers, scaling servers requires a team effort. You can't do it alone, no matter how awesome you are. Build a team of superheroes who specialize in different areas - networking, infrastructure, security, and more. Together, you'll be unstoppable. Plus, it's always more fun to save the day with a group of friends by your side. So, assemble your squad and get ready to conquer the world of scaling servers.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The 'Zen' Approach&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Okay, I know what you're thinking - 'Wait, isn't scaling servers supposed to be stressful?' Well, it doesn't have to be. Take a deep breath and embrace the Zen approach. Accept that server crashes will happen, and it's all part of the learning process. Stay calm, analyze the situation, and come up with a plan to prevent it from happening again. Remember, even the most experienced tech gurus have had their fair share of server mishaps. So, let go of the stress and find your inner server-scaling Zen.&lt;/p&gt;

&lt;p&gt;And there you have it, my friends - five hilarious strategies to scale servers for success. I hope you found these tips both informative and entertaining. Scaling servers may be challenging, but with the right mindset and a sprinkle of humor, you'll be able to handle anything that comes your way. Now, go forth and conquer the world of scaling servers - you've got this!&lt;/p&gt;

&lt;h1&gt;
  
  
  ScalingServers #TechHumor #OptimalPerformance
&lt;/h1&gt;

</description>
      <category>devops</category>
      <category>scaling</category>
      <category>aws</category>
    </item>
    <item>
      <title>Kubernetes for Beginner</title>
      <dc:creator>Keshav Kumar</dc:creator>
      <pubDate>Wed, 15 Mar 2023 08:57:11 +0000</pubDate>
      <link>https://dev.to/keshavcodex/kubernetes-for-beginner-1860</link>
      <guid>https://dev.to/keshavcodex/kubernetes-for-beginner-1860</guid>
      <description>&lt;p&gt;Before understanding kubernetes let's first understand why something like this ever came to existence. So running applications in containers is not a new concept but after Docker it became easy and popular to deploy applications through containers. If you don’t know what Docker is, I suggest you read &lt;a href="https://dev.to/keshavcodex/what-is-docker-2o49"&gt;this article&lt;/a&gt; first.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PXx4FFz8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/v2/resize:fit:1200/1%2AFfjAeWA69BaoaaDfQRnPjQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PXx4FFz8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/v2/resize:fit:1200/1%2AFfjAeWA69BaoaaDfQRnPjQ.png" alt="Pets Vs Cattle" width="880" height="391"&gt;&lt;/a&gt;&lt;br&gt;
But when more and more containers started getting deployed it became difficult for the operations team to manage all those. So it’s like pets and cattle thing when you have a pet you give them a name show and them love and when it falls ill you start getting panic but when you have thousands of containers running you start treating them like cattles you don’t care much if one or two are not behaving properly you just replace them with new one. Here the kubernetes is one who will be managing those cattles i mean those containers and that is why it is called a container orchestration tool. &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;u&gt;History of Kubernetes&lt;/u&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XupTxKQJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3-eu-west-1.amazonaws.com/risingstack-resources/History%2Bof%2BKubernetes/borg-omega-and-kubernetes.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XupTxKQJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3-eu-west-1.amazonaws.com/risingstack-resources/History%2Bof%2BKubernetes/borg-omega-and-kubernetes.jpg" alt="borg image" width="880" height="494"&gt;&lt;/a&gt;&lt;br&gt;
Kubernetes is not so old it was built by google so what happened is that google was actually running such container technology internally in the company for a really long time with the help of an engine called BORG. So with the knowledge of BORG they created another container orchestration tool kubernetes and donated it to CNCF in 2015.&lt;br&gt;
&lt;a href="https://landscape.cncf.io/"&gt;CNCF&lt;/a&gt; is the Cloud Native Computing Foundation and kubernetes was the first project to graduate from there. Kubernetes is also known as k8s (pronounced as kates) because eight letters are present in between ‘k’ and ‘s’ in kubernetes.&lt;/p&gt;

&lt;p&gt;Now when k8s started getting popular most of the cloud providers started providing native support for it like GCP provides GKE(Google Kubernetes Engine), Azure provides AKS(Azure kubernetes service), AWS provides EKS(Elastic kubernetes service) and since this project was open source so a large community from around the world started improving it.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;u&gt;Setting up the environment&lt;/u&gt;
&lt;/h2&gt;

&lt;p&gt;Now we will set up the kubernetes in our local system. But if you face any issue always feel free to check the official documentation.&lt;br&gt;
If you are running the k8s in your local system you need to set up kubectl which is a kubernetes command line tool that allows you to run commands against kubernetes clusters and minikube which provides a virtual environment for running clusters inside your computer.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/"&gt;Install kubectl in Linux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://kubernetes.io/docs/tasks/tools/install-kubectl-macos/"&gt;Install kubectl in Mac&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://kubernetes.io/docs/tasks/tools/install-kubectl-windows/"&gt;Install kubectl in Window&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now you need to install minikube but remember before using minikube you need to have docker or some similar container runtime environment inside your computer.&lt;br&gt;
&lt;a href="https://minikube.sigs.k8s.io/docs/start/"&gt;Minikube setup guide&lt;/a&gt;&lt;br&gt;
And everytime you power on your computer you need to start your minikube with the &lt;code&gt;minikube start&lt;/code&gt; command, you can stop this with the &lt;code&gt;minikube stop&lt;/code&gt; command and you can check its status with the &lt;code&gt;minikube status&lt;/code&gt; command.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mUeDfQ5B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hnnztycny5qks1h6pxph.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mUeDfQ5B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hnnztycny5qks1h6pxph.png" alt="minikube start img" width="880" height="207"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;u&gt;Getting started&lt;/u&gt;
&lt;/h2&gt;

&lt;p&gt;Kubernetes does not provide any options to build images so you need to build it on your own and deploy it to either &lt;a href="https://hub.docker.com"&gt;docker-hub&lt;/a&gt; or &lt;a href="https://cloud.google.com/container-registry"&gt;google container registry&lt;/a&gt; then k8s will pull it (download it) and start a container out of it.&lt;br&gt;
When you deploy Kubernetes, you get a cluster and k8s never talks to containers directly, it is actually the node that hosts pods and containers runs inside the pod (we will learn about pods in later sections) and every application or service runs inside the container.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9XdkgRUR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://d33wubrfki0l68.cloudfront.net/2475489eaf20163ec0f54ddc1d92aa8d4c87c96b/e7c81/images/docs/components-of-kubernetes.svg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9XdkgRUR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://d33wubrfki0l68.cloudfront.net/2475489eaf20163ec0f54ddc1d92aa8d4c87c96b/e7c81/images/docs/components-of-kubernetes.svg" alt="Kubernetes Cluster Image" width="880" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;u&gt;Pods &amp;amp; Service&lt;/u&gt;
&lt;/h2&gt;

&lt;p&gt;There are two types of nodes. The first one is the worker node and the other is the service node.&lt;br&gt;
Worker node's job to run the application lets say you created a react app so the worker node will be looking at the pods inside which the react app container is present. A node may be a virtual or physical machine, depending on the cluster. Each node is managed by the control plane and contains the services necessary to run Pods and a Service is a method for exposing a network application that is running as one or more Pods in your cluster. It means that the service node will provide a port to connect your react app from the worker pod. It handles all those networking stuff internally. You don’t need to make any changes in your application to work inside the kubernetes cluster.&lt;br&gt;
So you will be creating two yaml files one for service and other for worker pod and the kind of those files will be service and pod respectively as shown below.&lt;/p&gt;

&lt;h4&gt;
  
  
  Get the configuration files &lt;a href="https://github.com/keshavcodex/k8s-blog/tree/main/k8s-for-beginner"&gt;here&lt;/a&gt;
&lt;/h4&gt;

&lt;h2&gt;
  
  
  &lt;u&gt;Commands&lt;/u&gt;
&lt;/h2&gt;

&lt;p&gt;to start those pods you need to run but remember to run minikube start first&lt;br&gt;
&lt;code&gt;kubectl apply -f service.yaml&lt;/code&gt;&lt;br&gt;
&lt;code&gt;kubectl apply -f client-pod.yaml&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now you can check if those pods are running via &lt;br&gt;
kubectl get pods &lt;br&gt;
And to check that website you can visit your &lt;code&gt;minikube ip colon 31010&lt;/code&gt;, here 31010 port because we have declared that in the yaml file.&lt;br&gt;
Since my minikube ip is 192.168.49.2 so i will visit 192.168.49.2:31010 and to check your minikube ip just type minikube ip in your terminal and if your ip is 172.156.1.1 then you need visit here &lt;code&gt;172.156.1.1:31010&lt;/code&gt;&lt;br&gt;
The nodeport range lies between (30000-32767) so you are free to use any by change these yaml files.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;u&gt;Dashboard&lt;/u&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2F2Pv_Kb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://d33wubrfki0l68.cloudfront.net/349824f68836152722dab89465835e604719caea/6e0b7/images/docs/ui-dashboard.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2F2Pv_Kb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://d33wubrfki0l68.cloudfront.net/349824f68836152722dab89465835e604719caea/6e0b7/images/docs/ui-dashboard.png" alt="Dashboard" width="880" height="526"&gt;&lt;/a&gt;&lt;br&gt;
Kubernetes also provides a dashboard to manage your cluster through UI, to visit the dashboard you need to first setup the dashboard, don’t worry it's very easy&lt;br&gt;
First you need to deploy the dashboard with this command&lt;br&gt;
&lt;code&gt;kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml&lt;/code&gt;&lt;br&gt;
Then you need to run these two yaml files of admin-user and role-binding and then start the dashboard service with proxy.&lt;br&gt;
&lt;code&gt;kubectl apply -f admin-user.yaml&lt;/code&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--k82xOS8O--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nj2xhvcfeu1iwy6rtjeg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k82xOS8O--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nj2xhvcfeu1iwy6rtjeg.png" alt="admin-user yaml file" width="734" height="225"&gt;&lt;/a&gt;&lt;br&gt;
&lt;code&gt;kubectl apply -f role-binding.yaml&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yTyXtgyC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/us9vx7zv8s7mwheuyxit.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yTyXtgyC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/us9vx7zv8s7mwheuyxit.png" alt="role-binding file" width="880" height="515"&gt;&lt;/a&gt;&lt;br&gt;
&lt;code&gt;kubectl proxy&lt;/code&gt;&lt;br&gt;
If you see “Starting to serve on 127.0.0.1:8001” then you can visit here &lt;a href="http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/"&gt;http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/&lt;/a&gt;&lt;br&gt;
and see the cluster but if it’s not showing starting to serve… then may be you have made a typo or may be you have not started minikube, you can start minikube with &lt;code&gt;minikube start&lt;/code&gt;&lt;br&gt;
You can check status with &lt;code&gt;minikube status&lt;/code&gt;&lt;br&gt;
And you can stop it with&lt;br&gt;
&lt;code&gt;minikube stop&lt;/code&gt;.&lt;br&gt;
There are some more commands like &lt;code&gt;kubectl describe pod&lt;/code&gt; which provides the details of pod.&lt;br&gt;
And to delete a pod just write &lt;code&gt;kubectl delete pod&lt;/code&gt;&lt;br&gt;
You can replace this pod with the actual pod name means the metadata from yaml file, for e.g &lt;code&gt;kubectl delete task-client&lt;/code&gt;&lt;br&gt;
I you like this please put a comment below and I will bring more such blogs then you can follow me on &lt;a href="https://www.linkedin.com/in/keshavcodex"&gt;Linkedin&lt;/a&gt;, &lt;a href="https://twitter.com/keshavcodex/"&gt;twitter&lt;/a&gt; and &lt;a href="https://github.com/keshavcodex"&gt;github&lt;/a&gt;. &lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>devops</category>
      <category>cloud</category>
    </item>
    <item>
      <title>What is AWS?</title>
      <dc:creator>Keshav Kumar</dc:creator>
      <pubDate>Sun, 19 Feb 2023 03:55:31 +0000</pubDate>
      <link>https://dev.to/keshavcodex/what-is-aws-55j2</link>
      <guid>https://dev.to/keshavcodex/what-is-aws-55j2</guid>
      <description>&lt;p&gt;AWS is a leading cloud service provider. But before understanding AWS lets first understand what is cloud. So cloud is just computers situated at some other location which we can access remotely according to our needs and we pay rent to those cloud service providers, few top cloud service providers are AWS(Amazon web services), GCP(Google cloud platforms) and Mircosoft Azure and many more.&lt;/p&gt;

&lt;p&gt;Now first thought strikes into our mind is why to rent these computers, why big tech companies rent those computers? why don't they just buy computer on their own so that they don't have to spend any money in renting it, well its not that straight forward. These companies don't always know how much machines do they require or may be don't want to manage those machines on thier own or may be they want to keep their machines secure may be at hardware level and at software level. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fpkjsyeey2pb16upqnpmq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fpkjsyeey2pb16upqnpmq.png" alt="Aws Logo" width="800" height="449"&gt;&lt;/a&gt;&lt;br&gt;
So here comes into picture AWS with a tons of services, security, reliability. AWS provides on-demand machines means you pay only for what you use no requirement of preplanning just ask AWS for more machines when you need it and with in seconds you will be having those. These are so much reliable that even big companies like netflix, airbnb, dropbox, ESPN, twitch etc. &lt;br&gt;
AWS have services like EC2 for cloud computing, S3 for object storage, Auto Scalling, AWS Lambda provides serverless means you don't have worry anything about servers, IAM for managing permissions with built in policies. Since AWS is building services for a huge number of companies so obviously it will far better than building infrastrucure on own by a small or mid size company.&lt;br&gt;
Thank You,&lt;br&gt;
Keshavcodex&lt;/p&gt;

</description>
      <category>remote</category>
      <category>linux</category>
      <category>ssh</category>
    </item>
    <item>
      <title>What is Docker?</title>
      <dc:creator>Keshav Kumar</dc:creator>
      <pubDate>Mon, 23 May 2022 01:34:54 +0000</pubDate>
      <link>https://dev.to/keshavcodex/what-is-docker-2o49</link>
      <guid>https://dev.to/keshavcodex/what-is-docker-2o49</guid>
      <description>&lt;p&gt;What is docker? Before answering this question let me ask you if you have ever faced issues while installing new software on your computer and have spent several hours troubleshooting and setting environment variables for that. If you have, then here is the solution, DOCKER.&lt;br&gt;
Now instead of going into the technicalities of docker, let me give you a real world analogy to help you understand it in a better way. &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3BA9OIJw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/03akrjzbaqyyqjdv13mt.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3BA9OIJw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/03akrjzbaqyyqjdv13mt.jpg" alt="Container on Cargo ship" width="880" height="495"&gt;&lt;/a&gt;&lt;br&gt;
In the initial year of transportation everything was transported through the ships and there were some major problems like damaging of goods, slow process of loading and unloading from ships to trucks and vice-versa, missing of some goods and to overcome this problem first time containers were loaded on ship on April 26, 1956. This was a revolutionary technique because now the people just had to load all their respective containers and it was very easy and fast to load on ships and on trucks without missing any goods in the middle of transportation.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8q9z5ZnC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jc90fdu1n477op760hu7.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8q9z5ZnC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jc90fdu1n477op760hu7.jpg" alt="Container on Truck" width="540" height="360"&gt;&lt;/a&gt;&lt;br&gt;
This same technique was implemented in Docker, although docker provides many services but here we are mainly focusing on docker containers. &lt;/p&gt;

&lt;p&gt;A docker container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another. A Docker container image is a lightweight, standalone, executable package of software that includes everything needed to run an application: code, runtime, system tools, system libraries and settings.&lt;br&gt;
These containers run in an isolated environment meaning one container process doesn’t interfere another.&lt;br&gt;
&lt;br&gt;&lt;br&gt;
Here is an example of dockerfile:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6iBEOx3x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ind9i3qhez916u1fjon5.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6iBEOx3x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ind9i3qhez916u1fjon5.jpg" alt="Dockerfile Screenshot" width="652" height="506"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>docker</category>
      <category>devops</category>
      <category>cloud</category>
      <category>kubernetes</category>
    </item>
    <item>
      <title>Zero To Job</title>
      <dc:creator>Keshav Kumar</dc:creator>
      <pubDate>Fri, 01 Oct 2021 20:29:18 +0000</pubDate>
      <link>https://dev.to/keshavcodex/zero-to-job-26ld</link>
      <guid>https://dev.to/keshavcodex/zero-to-job-26ld</guid>
      <description>&lt;p&gt;Welcome to the blog of &lt;strong&gt;ZERO to JOB&lt;/strong&gt;. I am Keshav Kumar, a student from tier 3 college of Kolkata, as you have guessed from the topic that this blog is going to be the guidance for you from nothing to getting a job.&lt;br&gt;
And don’t worry about resources, every link is provided in the end. Here I will be discussing my learning from my own experiences and from the experience of senior people who work in different big Tech companies. If you want to know about my skills you can check my &lt;a href="https://github.com/keshavcodex" rel="noopener noreferrer"&gt;GITHUB&lt;/a&gt;.&lt;br&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%2Fpq7207zykirhog5ox36m.jpg" 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%2Fpq7207zykirhog5ox36m.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
Now before guiding you about what to do in your college life, something is more important than that is, what not to do. So lets start,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;First mistake that people do is they ran behind certificates of different things which doesn’t have much values like you attended some event and got a certificate that is not going to help you in anyway. Skills are much more valuable than certificates.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Second thing is skipping basics for learning new cool technologies like blockchain, AR-VR. It's great that you have interest in this and you want to learn about these things but before learning these things you must complete your programming language + Data Structures &amp;amp; Algorithms(DSA).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Third thing is not coding everyday, it does not matter how many hours you code. If you can't code a particular day it is going to affect you very much. If you don’t have much time on a particular day at least try to do even 15 minutes of going through previous code and just re-ran that code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fourth thing is spending too much time doing assignments, these assignments are not going to help you in placement. Try to copy it from friends and do it in shortcut somehow just finish these things as quickly as possible.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fifth thing is spending too much time at college fest or in parties with friends. I also enjoy taking part in some events and going out but don’t just submerge yourself into it. Like if you are going out almost every next day then think yourself isn’t that too much. Just make a balance in enjoying life and developing your skills.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sixth thing is doing unpaid internships, some people do unpaid internships with a thought of it will boost up their resume, but the companies that are not even paying their interns can not add any values in your skills so wait more, learn more and get better internships but something is even worse than that is, paying for an internship means you pay them to get an internship so this is totally scam they will take some money and will give some random project and here you will be losing on money, time, effort everything and mostly such things happens in tier 3 college because here students are naive.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Seventh thing, now this is not a mistake but you may be misguided so let me clear this for you, thinking that Competitive Programming(cp) is a must for a job. The straight answer is no it's not and these are not my words these the words of people who work in these companies, but doing DSA is a must You can try cp and if you like it then surely go for it.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If You think this is going to be valuable and to ask me anything you can connect with me on &lt;a href="https://www.instagram.com/keshavcodex/" rel="noopener noreferrer"&gt;instagram&lt;/a&gt;, &lt;a href="https://twitter.com/Keshavcodex" rel="noopener noreferrer"&gt;twitter&lt;/a&gt;, &lt;a href="https://www.linkedin.com/in/keshavcodex/" rel="noopener noreferrer"&gt;Linkedin&lt;/a&gt;, &lt;a href="https://github.com/keshavcodex" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  First year road map
&lt;/h2&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%2F2xdvmakltf8cioh66das.jpg" 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%2F2xdvmakltf8cioh66das.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
Now let's start with the first year road map, this is going to be the same if you are in any other year and want to start programming. For getting a placement in any top company, 2 year of programming is sufficient but you have to code for 4 hours everyday and if you do less or more then you can adjust this 2 years accordingly. Don’t worry about resources, I will be sharing everything in the end.&lt;br&gt;
Here you can start with a language like JAVA, C++(C is not mandatory to learn C++) or Python but what i suggest is don’t go for python when you are starting out not because it’s easy but because most of the things are hidden in python one of the very important topic that is Object Oriented programming is also hidden in abstract layers and because of this many companies not even allow to write codes of coding rounds in python, so now we are left with two JAVA and Cpp, here if you want to become a competitive programmer you can choose Cpp and if you want to just clear coding rounds and want to do development then java is great. Although if you check the top 10 winners of any competition you will find 2-3 java programmers in that. I had started with java and fell in love with it.&lt;/p&gt;

&lt;p&gt;Now after doing DSA in 1st semester here comes the massive Great thing that is going to help you in getting referrals and making connections with people around the world and you will learn so much that you can’t even imagine, that is OPEN SOURCE CONTRIBUTION. Now you might be thinking, what is this thing so have you heard about VLC media player or LINUX, Firefox browser? All these things are built by talented people around the world for free. You can use it, you can add or change features according to your need and you can contribute to these projects. You don’t need to be an expert in order to contribute, even beginners can contribute. You can learn more about this from &lt;a href="https://www.youtube.com/watch?v=Tq4RZ-JH6aM" rel="noopener noreferrer"&gt;HERE&lt;/a&gt;. You can start this with Web development, Android/ISO development, Machine learning, Cloud Computing, etc. If you want you can explore all these things and can choose one or two. I personally tried web-dev, android and cloud, and finally continued with web-dev and cloud. Before picking any of these learn &lt;strong&gt;GIT &amp;amp; GITHUB&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Second Year Plan
&lt;/h2&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%2F76tmsg2gq6mi07t3uymq.jpg" 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%2F76tmsg2gq6mi07t3uymq.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
So now we are in our second year plan and if you have completed even 70% from the first year road map then it’s a great achievement. You are going to rock it.&lt;/p&gt;

&lt;p&gt;Now what we need to do here is get active on social platforms like twitter and linkedin by posting your achievements and projects. It doesn't matter whether you are getting likes on that post or not. Recruiters will reach you and if not then when you will reach people for referrals then they will at least won’t ignore you. Linkedin is great but not as much as twitter. If you watch any tech talk on youtube people are going to say &lt;em&gt;“if you want to connect you can connect with me on twitter”&lt;/em&gt;. And it’s my personal experience also that when I reach someone on twitter I get more quick responses in comparison to linkedin but this does not mean you should not post things on linkedin.&lt;/p&gt;

&lt;p&gt;Apart from being active on these great platforms you can take part in hackathons, Students programs of Microsoft, GitHub and many others you can find more awesome programs from youtube.&lt;br&gt;
While doing all these things Keep building whatever you have chosen in 1st year and also keep practising DSA from &lt;a href="https://leetcode.com/problemset/all/" rel="noopener noreferrer"&gt;leetcode&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you completed DSA and Development as mentioned above then you have achieved 70% milestone, Now remaining things are theory. Don’t listen to senior if they say these topics are tough or boring, Once will start by your own you'll find these are like stories you don’t have to remember these things everything in first go, it will be like some fairly tell if you will learn it with interest. These topics are Operating System, DBMS(database management system), and System design. Don’t wait for your college to start and study on your own. You can study about these concepts from blogs/ youtube/ books.&lt;/p&gt;




&lt;h2&gt;
  
  
  Resources Links
&lt;/h2&gt;

&lt;p&gt;You can learn from these resources as I personally loved but feel free to choose others on your own.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/playlist?list=PL9gnSGHSqcnr_DxHsP7AW9ftq0AtAyYqJ" rel="noopener noreferrer"&gt;Learn Language + DSA&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://leetcode.com/" rel="noopener noreferrer"&gt;Practise DSA&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://youtu.be/apGV9Kg7ics?list=PL9gnSGHSqcnrtJr849xyLhj2WiTV15Ret" rel="noopener noreferrer"&gt;GIT &amp;amp; GITHUB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.udemy.com/course/the-complete-web-development-bootcamp/" rel="noopener noreferrer"&gt;Learn Web-dev(RS500)&lt;/a&gt;, &lt;a href="https://www.youtube.com/playlist?list=PLu0W_9lII9agiCUZYRsvtGTXdxkzPyItg" rel="noopener noreferrer"&gt;Web-dev(free)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/playlist?list=PLxCzCOWd7aiGz9donHRrE9I3Mwn6XdP8p" rel="noopener noreferrer"&gt;Operating System&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://youtube.com/playlist?list=PLxCzCOWd7aiFAN6I8CuViBuCdJgiOkT2Y" rel="noopener noreferrer"&gt;DBMS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/playlist?list=PLMCXHnjXnTnvo6alSjVkgxV-VH6EPyvoX" rel="noopener noreferrer"&gt;System Design&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wakatime.com/" rel="noopener noreferrer"&gt;Use this to measure your coding timing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Share it with your friends so that they don't get misguided.&lt;/p&gt;

</description>
      <category>career</category>
      <category>college</category>
      <category>job</category>
    </item>
    <item>
      <title>How to Contribute in open Source ?</title>
      <dc:creator>Keshav Kumar</dc:creator>
      <pubDate>Mon, 07 Jun 2021 02:41:53 +0000</pubDate>
      <link>https://dev.to/keshavcodex/how-to-contribute-in-open-source-13l7</link>
      <guid>https://dev.to/keshavcodex/how-to-contribute-in-open-source-13l7</guid>
      <description>&lt;p&gt;Before knowing how to contribute let me tell you what is open source. Although Open source word is it predefined, but i will tell you a bit about this. It is some code base which is open for anyone to use or to contribute in that.&lt;/p&gt;

&lt;p&gt;One of the most popular place for open source is GitHub, its a code hosting platform for collaboration and version control.&lt;br&gt;
But before learning about git and github i belive you should first know how to find the open source projects and for that &lt;a href="https://summerofcode.withgoogle.com/" rel="noopener noreferrer"&gt;&lt;strong&gt;Google Summer of Code&lt;/strong&gt;&lt;/a&gt; can be a really good website you can go there and can find lots of projects (Here is a video about how to find it: &lt;a href="https://www.youtube.com/watch?v=BI_tudfBxJI&amp;amp;list=PLyzHIYrZBplqcJXQ0XWA4gRs0sdh6zWfD&amp;amp;index=2" rel="noopener noreferrer"&gt;Beginner's Guide to open source&lt;/a&gt;) ©&lt;em&gt;CodeForCause&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;And for contributing to open source you need to learn git and github (&lt;a href="https://youtu.be/8pjxegUW7lQ" rel="noopener noreferrer"&gt;Git and GitHub Tutorial&lt;/a&gt;) ©&lt;em&gt;CodeForCause&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If have watched the above two videos then you must have got a better understanding about Open Source and contributions. Now fast forward to when you have found a project then go in issue tab, &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%2Fxzslvmgg7rragc3r25ev.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%2Fxzslvmgg7rragc3r25ev.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
there you need to click on lables and you can search for good first issue.&lt;br&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%2F79ixqws4uot7gvjziu12.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%2F79ixqws4uot7gvjziu12.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
After finding an issue now you can comment below that issue. The community is really helpful and they will be more than happy to help a new contributor in starting out and then you can directly see which folder has the issue, after that try to understand thing in that folder, don't worry much about other folders and run that project in your local environment(&lt;em&gt;in your computer&lt;/em&gt;).And that is pretty much about it. For more guidence you can watch &lt;a href="https://www.youtube.com/c/CodeforCause" rel="noopener noreferrer"&gt;&lt;strong&gt;Code for Cause&lt;/strong&gt;&lt;/a&gt; Youtube Channel.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Is Bitwise operations are faster than Arithmetic operations?</title>
      <dc:creator>Keshav Kumar</dc:creator>
      <pubDate>Fri, 04 Jun 2021 02:08:34 +0000</pubDate>
      <link>https://dev.to/keshavcodex/is-bitwise-operations-are-faster-than-arithmetic-operations-476</link>
      <guid>https://dev.to/keshavcodex/is-bitwise-operations-are-faster-than-arithmetic-operations-476</guid>
      <description>&lt;p&gt;Yes, Bitwise operations are alot faster than any arithmetic operations because these operations are performed directly on the bits that is 0 and 1.&lt;/p&gt;

&lt;p&gt;There are few examples of bitwise operators: &amp;amp;, |, ~, ^, &amp;lt;&amp;lt;, &amp;gt;&amp;gt;&lt;/p&gt;

&lt;p&gt;Here is an example of Bitwise operation for finding even and odd,&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--maivj7bF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aoss1gvzcaaqxpm5w8pm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--maivj7bF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aoss1gvzcaaqxpm5w8pm.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
In this operation we will get the output Odd.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>What is Encapsulation?</title>
      <dc:creator>Keshav Kumar</dc:creator>
      <pubDate>Thu, 03 Jun 2021 09:02:51 +0000</pubDate>
      <link>https://dev.to/keshavcodex/what-is-encapsulation-in-java-4583</link>
      <guid>https://dev.to/keshavcodex/what-is-encapsulation-in-java-4583</guid>
      <description>&lt;p&gt;Encapsulation is one of the fundamental units of object-oriented programming. It simply means that putting all the data at one place, Binding And Wrapping of data and methods together is called Encapsulation.&lt;/p&gt;

&lt;p&gt;Through encapsulation we can achieve data hiding, if you are familiar with any object oriented programming language then you must be familiar with getters and setters method. When we try hide the data then we use "private" access modifier to stop the any kind of modification of attributes. Now the question arises if we have stopped any modification then how will we change or get the value of elements, so for that only getters and setters methods are used.&lt;br&gt;
Getter method is used to return the value of that element and setter method is used to put the value in that element.&lt;/p&gt;

&lt;p&gt;Now lets understand it with an example:&lt;br&gt;
private int price;&lt;br&gt;
Here the price will not be accessible outside of the class, but we can set the data through set method,&lt;br&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%2Fn7pib06n0djyopo6vv5f.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%2Fn7pib06n0djyopo6vv5f.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
and now we can get the data through get method,&lt;br&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%2Fsh0u49814r5w64uw1574.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%2Fsh0u49814r5w64uw1574.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
}&lt;/p&gt;

</description>
      <category>encapsulation</category>
      <category>java</category>
      <category>getter</category>
      <category>setters</category>
    </item>
  </channel>
</rss>
