<?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: Abhinav Pathak</title>
    <description>The latest articles on Forem by Abhinav Pathak (@pathakabhi24).</description>
    <link>https://forem.com/pathakabhi24</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%2F657887%2Fddeb5556-1afc-4407-9679-f247195208ae.jpg</url>
      <title>Forem: Abhinav Pathak</title>
      <link>https://forem.com/pathakabhi24</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/pathakabhi24"/>
    <language>en</language>
    <item>
      <title>AWS Virtual Private Cloud: Subnets and Routing</title>
      <dc:creator>Abhinav Pathak</dc:creator>
      <pubDate>Sun, 12 Feb 2023 14:24:37 +0000</pubDate>
      <link>https://forem.com/pathakabhi24/aws-virtual-private-cloud-subnets-and-routing-16gg</link>
      <guid>https://forem.com/pathakabhi24/aws-virtual-private-cloud-subnets-and-routing-16gg</guid>
      <description>&lt;p&gt;Let me start by talking about what is meant by subnetting. Subnetting is the process of splitting a CIDR block into smaller CIDR blocks within the same range by using different subnet masks.&lt;/p&gt;

&lt;p&gt;Subnetting enables you to create smaller networks using a smaller CIDR range from your larger network IP address space. For example let's say you had a CIDR block range of 10.0.0.0/16. Which as itself gives you the following network details.&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%2Fpl4z9jvnmvfja8e2pnuo.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%2Fpl4z9jvnmvfja8e2pnuo.png" alt="Image description" width="587" height="250"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a large IP range to have as a single network as it allows for up to 65,534 hosts. To make better use of this range and to create smaller networks allowing segmentation within your network you could subnet the CIDR block into smaller CIDR ranges using a different subnet mask, such as /17 for each subnet.&lt;/p&gt;

&lt;p&gt;This would provide you with two different subnets with CIDR block ranges of 10.0.0.0/17 and black 10.0.128.0/17 providing the same range of host addresses minus the network and broadcast addresses for each subnet of course. You can see this by comparing the HostMin and HostMax entries between the three CIDR blocks.&lt;/p&gt;

&lt;p&gt;Should you require more than just the two subnets which is likely than you can obviously split the original CIDR block further giving you more than just the two subnets I listed. For example, if I wanted 16 different subnets than I could subnet the CIDR block 10.0.0.0/16 by using a subnet mask of /20 for each subnet which would provide me with the following subnets.&lt;/p&gt;

&lt;p&gt;Again this will provide the same range of host addresses minus the network and broadcast addresses for each subnet. Let's now look at how the subnetting relates to your AWS VPC. When you create a VPC you are required to enter your VPC CIDR block range. This CIDR block range will encompass the entire IP address space that you can use within that VPC.&lt;/p&gt;

&lt;p&gt;So you need to be sure that you set the correct mask allowing you to subnet the RP space into different networks should it be required. Whilst at the same time ensuring there are enough host IP addresses for your instances available within each subnet. As a result consideration must be put to your VPC CIDR block.&lt;/p&gt;

&lt;p&gt;At this point it's important to point out that the maximum and minimum masks for your VPC CIDR block are /16 to /28. A /16 can provide you with 65,531 usable host addresses as one single subnet. A /28 will provide you with just 11 host addresses as one single subnet. In addition to the network and broadcast address of the subnet which can't be used for host addresses AWS reserves the first three host IP addresses of each subnet for internal AWS usage.&lt;/p&gt;

&lt;p&gt;The first host address used is for the VPC router. The second address is reserved for AWS DNS and the third address is reserved for future use. Let's look at this as an example. Sticking with the AWS VPC CIDR block of 10.0.0.0/16 let's imagine we want to create 16 subnets. We would use a /20 mask for each subnet as previously mentioned.&lt;/p&gt;

&lt;p&gt;In this scenario one of the 16 subnets would be detailed as follows. For this subnet the AWS reservations would be reserved as 10.0.32.1. And this would be for the VPC router as this is the first host address available in the subnet. 10.0.32.2 would be for the AWS DNS being the second available address. And thirdly 10.0.32.3 which would be reserved for any future use service or feature that may be used by AWS.&lt;/p&gt;

&lt;p&gt;Which means your available host addresses for any instances would be from 10.0.32.4 through to 10.0.47.254 giving you a total of 4,091 usable host addresses. When allocating your VPC CIDR block range for your VPC it is mandatory to specify an IPv4 range, but you also choose to associate an IPv6 range to your VPC as well.&lt;/p&gt;

&lt;p&gt;However when selecting an IPv6 you are not able to specify the range yourself but AWS will provide a /56 IPv6 CIDR block for you from their pool of IPv6 addresses. Once you have allocated a CIDR block range for your VPC you are then ready to begin creating different subnets within your VPC. If you need help with your IP addressing and subnet calculations there are a number of free IP and subnet calculators available on the internet that will quickly help you define your requirements.&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%2F0t9xz12xc7h39s9tipgp.jpeg" 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%2F0t9xz12xc7h39s9tipgp.jpeg" alt="Image description" width="641" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Creating multiple Subnets allows you to create logical network divisions between your resources. By doing so, you could have a Subnet for database instances, another for application servers, and another for web infrastructure.&lt;/p&gt;

&lt;p&gt;By splitting up your Subnets this way, helps to enforce a greater level of security. Logical grouping of similar resources also helps you to maintain an ease of management across your infrastructure.&lt;/p&gt;

&lt;p&gt;Think of these as Subnets. The space in your house, your CIDR block, has been divided into smaller more manageable purpose specific rooms rather than one large room in which you can cook, clean and sleep in, which would soon become very disjointed."&lt;/p&gt;

&lt;p&gt;By having multiple Subnets with similar resources grouped together, as per the previous point, it allows for greater security management. By implementing network level virtual firewalls, called network access control lists, or NACLs, it's possible to filter traffic on specific ports from both an ingress and egress point at the Subnet level.&lt;/p&gt;

&lt;p&gt;For example, if you had a Subnet that only held my SQL RTS databases within it, you could allow communication between your application service Subnet to talk to your database Subnet on port 1443 for my SQL. And then block and drop all other packets that do not meet this criteria. If you had web servers and application servers within the same Subnet as your RTS instances, you would have to open up a lot of other ports, reducing the level of security within that Subnet.&lt;/p&gt;

&lt;p&gt;Having multiple Subnets allows you to create both private and public Subnets. Public Subnets allows the resources within it to access and connect to the internet, and the outside world to connect to those resources, depending on certain security controls. Private Subnets are not directly accessible from the internet. And so private Subnets are protected from the outside world, providing a greater level of security by its very nature.&lt;/p&gt;

&lt;p&gt;You may want some of your Subnets to route out to the internet, some to remain private, and some to communicate back to your corporate on premise network over a VPN link. Through the use of routing tables associated to each specific Subnet, you can route traffic as required to cater for these communication paths.&lt;/p&gt;

&lt;p&gt;A Subnet can only belong to one route table at any time. Therefore, by creating multiple Subnets, you can restrict some resources in those Subnets to specific routes. If your solution requires a level of high availability, and it most likely will, then it's best practice to deploy services across multiple availability zones within a region.&lt;/p&gt;

&lt;p&gt;Here becomes a restriction of VPC Subnets in that a single Subnet cannot span across two availability zones. As a result, this best practice forces you to create an additional Subnet in the second availability zone. So if you want high availability within your environment, you'll need Subnets in at least two availability zones in any region.&lt;/p&gt;

&lt;p&gt;As you can see, there are many advantages over creating multiple Subnets within your VPC. And as you design, architect and secure your infrastructure, you will quickly see how multiple Subnets enables ease of network management, rooting and security.&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%2Fiuolcgn0folect6tqp4i.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%2Fiuolcgn0folect6tqp4i.png" alt="Image description" width="800" height="445"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>azure</category>
      <category>sqlserver</category>
      <category>cloudcomputing</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Amazon Route 53 to Route End Users</title>
      <dc:creator>Abhinav Pathak</dc:creator>
      <pubDate>Sat, 11 Feb 2023 18:14:44 +0000</pubDate>
      <link>https://forem.com/pathakabhi24/amazon-route-53-to-route-end-users-38ja</link>
      <guid>https://forem.com/pathakabhi24/amazon-route-53-to-route-end-users-38ja</guid>
      <description>&lt;p&gt;Amazon Route 53 is the domain name management service provided by AWS.The domain name management system or DNS is responsible for translating domain names to IP addresses every time we use the internet, similar to a phone book that translates from a person to an actual number to dial.  As such, DNS is part of the essential fabric that holds together the internet. &lt;/p&gt;

&lt;p&gt;When you use Amazon Route 53 to register a domain, the service becomes the authoritative DNS server for the domain and creates a public hosted zone.  A Public zone defines how traffic is routed on the public internet. A Private zone defines how traffic is routed inside a virtual private cloud or VPC.  VPCs intended to be used with Private Zones need to have DNS Hostname and DNS Support enabled in their configuration. &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%2Fw4i4aivwynept3e7hvqu.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%2Fw4i4aivwynept3e7hvqu.png" alt="Image description" width="800" height="373"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Private and Public Hosted Zones are made of records.  There is a variety of record types. Two of the more important record types are the Name Server or NS record type and the Start of Authority or SOA record type. Amazon Route 53 creates a set of 4 unique NS records and 1 SOA record in each hosted zone created. &lt;/p&gt;

&lt;p&gt;The Name Server (NS) records are used to identify the DNS servers for a given hosted zone. &lt;/p&gt;

&lt;p&gt;The Start of Authority (SOA) record is used to define the authoritative DNS servers for an individual DNS zone. &lt;/p&gt;

&lt;p&gt;These two records are essential to integrating your domain to the existing DNS system.&lt;/p&gt;

&lt;p&gt;Route 53 supports the common record types of DNS including:&lt;/p&gt;

&lt;p&gt;The A record is used to map a hostname to an IP address. An A record is used for IPv4 address.&lt;/p&gt;

&lt;p&gt;The AAAA record is also used to map a hostname to an IP address. The AAAA record is used for IPv6 addresses. &lt;/p&gt;

&lt;p&gt;A Mail exchange (MX) record is used to identify email servers for a given domain.  You can have more than one and set the priority using a number. For example, you may have a primary email server with a priority of 10 and a secondary email server with a priority of 20. The lowest number record is used first. &lt;/p&gt;

&lt;p&gt;The text (TXT) record is used to provide information in a text format to systems outside of your domain. It has multiple use cases.  &lt;/p&gt;

&lt;p&gt;A canonical name or CNAME is used to map a hostname to another hostname. This can be used to map multiple names to the same host.  For example, when a server needs to respond as webserver using the hostname WWW and mail server using the hostname MAIL at the same time. &lt;/p&gt;

&lt;p&gt;Please note that DNS supports record types above and beyond those mentioned here.  &lt;/p&gt;

&lt;p&gt;One record type that is outside the scope of DNS is the Alias record type.&lt;/p&gt;

&lt;p&gt;The Alias record type is unique to Amazon Route 53 and maps a custom hostname in your domain to an AWS Resource which is usually represented by an internal AWS name.  For example, CloudFront distributions, Amazon S3 buckets, and Elastic Load Balancers provide you a domain name that is internal to AWS.  You can use an alias record to define a custom name to that resource. You can also use Alias records to map to apex records which are the top nodes of a DNS namespace like on example.com or cloudacademy.com&lt;/p&gt;

&lt;p&gt;When you create a record using Route 53 you specify the record name, the record type, the actual value, the Time-To-Live in seconds, and the Routing policy for this record. &lt;/p&gt;

&lt;p&gt;The Time to Live specifies the amount of time the record is considered valid. The same record result obtained before is used in the future and DNS won’t be queried again until the TTL has expired. &lt;/p&gt;

&lt;p&gt;The Routing policy for a record defines how to answer a DNS query. Each type of policy does something different including the possible use of health checks.  Let’s talk about those health checks first.&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%2F8bnuxwcoedylwvw45yrs.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%2F8bnuxwcoedylwvw45yrs.png" alt="Image description" width="800" height="417"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Amazon Route 53 health checks are independent resources that can be used by most routing policies when defining a record.  When you create a health check, Route 53 sends requests to the endpoint every 30 seconds, and based on the responses, Route 53 decides if the endpoint is Healthy or UnHealthy and uses that information to determine what value to provide as an answer to the query. &lt;/p&gt;

&lt;p&gt;You can also configure a health check for other “health checks” allowing you to independently verify different tiers of your application before the actual total application is considered healthy. Amazon Route 53 adds up the number of health checks considered healthy and compares that number to the health threshold value you specify. &lt;/p&gt;

&lt;p&gt;With Route 53 health checks you can also monitor the state of a cloud watch alarm. The health check status is healthy when the alarm is in the OK state.  The health check status is unhealthy when the alarm status is in the ALARM state. You can also choose what the health check status is when the alarm is in the INSUFFICIENT state.  The options are healthy, unhealthy or “last known status”. &lt;/p&gt;

&lt;p&gt;When Route 53 receives a query it chooses a record based on the routing policy, it then determines the current health of the selected record by checking the status of the health check for that record and responds to the query with the value of a healthy record.  Unhealthy records are not considered.  If you do not associate a health check with a record, Route 53 treats those records as always healthy. &lt;/p&gt;

&lt;p&gt;The health check is performed by a fleet of health checkers located worldwide. You can use the list of recommended health checkers by region or customize the list to the regions specific to your business.  Health checks are performed every 30 seconds unless you specify every 10 seconds. &lt;/p&gt;

&lt;p&gt;Endpoint health checks can be specified by IP address or by domain name. The health check protocol can be TCP, HTTP, or HTTPS. For the HTTP-related protocols, you can use an optional string matching where you indicate that Route 53 is to search the response body for the string specified. Route 53 considers the endpoint healthy only if the string specified appears entirely within the first 5120 bytes of the response body.   &lt;/p&gt;

&lt;p&gt;Finally, for all health checks, you can choose to get notified when it fails. &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%2F0hhb6xjyitxb03ka68h2.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%2F0hhb6xjyitxb03ka68h2.png" alt="Image description" width="600" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>10 Simple &amp; Effective tips to master JavaScript</title>
      <dc:creator>Abhinav Pathak</dc:creator>
      <pubDate>Wed, 21 Jul 2021 16:54:52 +0000</pubDate>
      <link>https://forem.com/pathakabhi24/10-simple-effective-tips-to-master-javascript-228b</link>
      <guid>https://forem.com/pathakabhi24/10-simple-effective-tips-to-master-javascript-228b</guid>
      <description>&lt;p&gt;Do you want to get into web development? Or perhaps you’re fascinated with code and software? If so then JavaScript is a good choice for you.&lt;/p&gt;

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

&lt;p&gt;Javascript is the scripting language of the internet and one of the most essential web technologies along with HTML and CSS. It’s a high-level, interpreted programming language that conforms to the ECMAScript specification. In more simplistic terms, it’s what allows you to implement and display complex things on your webpage, to create content, to animate images and tons of other amazing possibilities with just a few lines of code.&lt;/p&gt;

&lt;p&gt;There’re plenty of reasons to learn this wonderful programming language. The most important one is the fact that JavaScript runs everything and everywhere. Most of the prominent websites are built on the backbone of JavaScript while currently there are more than 3 billion devices be it Smartphones or desktops. JavaScript went through a massive surge of popularity and quickly become the most dominant language in the world of software. In light of this, it’s obvious that Javascript skills are in high demand by companies everywhere. Currently, the average salary for JavaScript developer is $95,981 in the US. For all these reasons and more, it’s lucrative to have JavaScript skills on your resume.&lt;/p&gt;

&lt;p&gt;Currently, the average salary for JavaScript developer is $95,981.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why is it challenging?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Learning JavaScript is easier said than done. Newcomers often run into similar kinds of problems such as difficulties in understanding confusing concepts. Not only that, but JavaScript also has an ever-changing tooling landscape one that makes it even far more grueling to understand. It’s hard to find the motivation to complete a demanding task such as this. JavaScript is also a vigorously un-typed language which means that the same thing in one code can easily mean something different depending on the context and medium. It also is extremely hard to debug due to a non-existent support system for different classes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tips for JavaScript Beginner&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So the question is how to learn JavaScript? Similar to every complicated thing in life, you can learn JavaScript coding through constant practice and by never giving up. To help you in this task, we have written down the best way of learning this skill just for you! Try to follow these tips to enhance your learning experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Right attitude&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The first thing you need to do is to go with the right attitude to learn JavaScript. Learning JavaScript is going to become needlessly more bothersome if you approach it with the wrong mindset. Trying to learn it with an “I need to get this over” mindset is not going to take you anywhere. It’s a huge struggle to face and you truly have to be passionate about code to learn it. Not only that, you need to remind yourself to have fun with what you’re learning as JavaScript code is capable of astonishing things once you get the hang of it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Start Slowly&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A mistake many beginners make is that they directly start working on frameworks such as jQuery, AngularJS, Backbone, etc. You should never do it. Instead, you should start working on DataTypes and in-built methods. You can also learn a lot from the Mozilla Developer Network, which is a great place for you to start. After getting enough of the fundamentals, you can try NodeJS. Trust me, NodeJS is very simple, just a JavaScript code backed up with inbuilt libraries. Then, you can try frameworks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Find the perfect editor for JavaScript&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can’t code without a text editor. Fortunately, you have tons of options to choose from. To write JavaScript code, you can either use your Windows notepad or even download programs such as Notepad++ or Visual Studio Code. Either way, after going through all possible editors, choose the one that you’re most comfortable to work on as this is where you’ll be spending most of your time. Also when you’re starting out, it’s essential to choose an editor that has a simplistic interface and will support you as a beginner.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. JavaScript Tutorials!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you search the web for JavaScript tutorials, there are a vast number of tutorials available online on sites such as CodeAcademy, FreeCodeCamp, etc. If you’re a beginner then you should start from beginner level JavaScript tutorials and then move on to intermediate and advanced level. Tutorials are like doing grammar exercises and the sites with JavaScript tutorials are ideal for learning the basics and getting used to the syntax. Learning JavaScript is no different than learning French or Spanish. It takes time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Look out for JavaScript Resources&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The internet has millions of sources available for you to use. Take “JavaScript: The Definitive Guide” by David Flanagan. It’s a book that has been forever considered a bible for JavaScript programmers across the world. In it is a comprehensive guide that is well-organized and detailed for new programmers to learn and old programmers to revise. Another book that you can read is “You Don’t Know JS: Up and Going” by Kyle Simpson which provides the necessary background for those with limited knowledge about programming. The entire series introduces more complex and harder parts of the JavaScript language as you read on one book at a time. Furthermore, there are tons of articles, blog posts and even YouTube videos available for reference. Don’t waste these valuable resources!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Do not rush! Go step by step&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I know it’s tempting to move on immediately once you understand a concept, but don’t! Instead, play with what you have learned, get comfortable and even combine it with the previous lessons. Start from beginner’s level and cover all the topics from tutorials, check resources, implement what you have learned and when you are finally confident of your beginner level skills, then move on to the intermediate level and after that, to advance level. By limiting the learning content and keeping in touch with the previous lessons, you’ll be able to retain the material in your head and find it easier to remember key concepts. The process seems long for sure but it actually takes far less time since you don’t have to keep revising and is actually quite fun. There’s really nothing that you cannot do with JavaScript in regards to web development.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Start Ajax and Async after getting a hang of the basics&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After you have spent quite a lot of time on JavaScript, start working on Ajax and Async concepts. Learn how to use different functions on JavaScript and use classes as well. All of these things take quite a lot of time to master but trust me; all your hard work will surely be rewarded.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8. Challenge yourself! Explore JavaScript and learn&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When it comes to learning JavaScript, there is always something you can learn as it is a never-ending process. A lot of people end up never improving their JavaScript coding by spending too much time only doing what they are confident about. Make sure that you’re not one of them. Every time you finish a lesson, ask yourself if you have learned something you didn’t know before. That is the key to success. Be mindful of what you want to learn or improve your knowledge of. Make sure that you’re challenging yourself and growing as a developer instead of conforming to a single comfort zone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9. Keep experimenting &amp;amp; Interact with veterans&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Find and make your own way to solve problems related to JavaScript. Keep experimenting with the problems and what you have learned so far. Also, do interact with the veterans as the large community lead to more support and help you’ll be able to receive. Fortunately, JavaScript has one of the largest internet communities that is all about giving and receiving help and exploring the world of JavaScript. Take advantage of that! Meet up with the experts to not only motivate yourself to study but to learn as well. You might even be offered a mentorship! By being a part of a community, you’ll also be able to keep up to date with new, innovative tools!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10. Keep yourself up to date and be prepared&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;JavaScript isn’t an easy skill to learn. If it was, it wouldn’t be held with the same reverence as it is in the labor market now. You need to understand the fact that learning JavaScript would require a huge amount of time and dedication. It’s not going to be an easy road. Not only is JavaScript already a complex and intricate skill to master, but it is also a growing field which would require you to stay updated with the new web development practices. Prepare yourself that it’s going to consume a majority of your time. Be patient too. You’re not going to learn JavaScript in a month and maybe not even in a year. All the time spent is going to be grilling, demanding but remember that it will also be completely worth the trouble.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Learning JavaScript is constant work and quite difficult but with the right attitude and determination, learning it can be an extremely satisfying experience. All you need is passion and a hunger to learn. Hopefully, with the above-mentioned tips, as well as the other brilliant and detailed materials available online, you’ll be able to grasp JavaScript as quickly as possible while also having a great enjoyable ride. Good Luck!&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>15 Useful Visual Studio Code Keyboard Shortcuts to Increase Productivity</title>
      <dc:creator>Abhinav Pathak</dc:creator>
      <pubDate>Sat, 03 Jul 2021 17:12:54 +0000</pubDate>
      <link>https://forem.com/pathakabhi24/15-useful-visual-studio-code-keyboard-shortcuts-to-increase-productivity-2aec</link>
      <guid>https://forem.com/pathakabhi24/15-useful-visual-studio-code-keyboard-shortcuts-to-increase-productivity-2aec</guid>
      <description>&lt;p&gt;There is no doubt that Microsoft’s VS Code is one of the best open source code editor out there. Unlike the legendary Vim, VS Code doesn’t need you to be a keyboard ninja and has tons of features that developers swear by.&lt;br&gt;
But this doesn’t mean you cannot, or you should not use keyboard shortcuts in Visual Studio Code.&lt;br&gt;
Do you hate breaking your coding flow and move your hand to a mouse for performing an action like toggling terminal in your Visual Studio Code (VS Code) editor? If yes, then you should immediately get yourself familiar and memorize these useful keyboard shortcuts for VS Code.&lt;br&gt;
It will not just help you to get rid of a mouse, but also make you highly productive and efficient.&lt;br&gt;
So, let’s get to know how you can code fast by quickly navigating through the code editor using keyboard shortcuts.&lt;br&gt;
Useful VS Code Keyboard Shortcuts&lt;br&gt;
Just a disclaimer. These keyboard shortcuts are what I find most useful when working in VS Code. You may explore more of them based on your needs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Show All Commands&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows/Linux&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
CTRL + SHIFT + P or F1   &lt;/p&gt;

&lt;p&gt;Starting with the most helpful shortcut, it opens Command Palette that provides access to all of the functionality of VS Code.&lt;/p&gt;

&lt;p&gt;It is a very important VS Code Shortcut because even if you forget or don’t want to remember any shortcut except this one, you can still perform various operations using Command Palette like create a new file, open settings, change theme, and view all keyboard shortcuts as well.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Split VS Code Editor Vertically Or Horizontally&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows/Linux&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
CTRL + \                                         &lt;/p&gt;

&lt;p&gt;If you don’t have a multi-monitor setup for high productivity, you can still view codes of multiple files at once by splitting the editor either horizontally or vertically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Split VS Code&lt;/strong&gt;&lt;br&gt;
To change focus into editor group, you can either use number or arrow keys.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows/Linux&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
CTRL + 1/2/3&lt;br&gt;&lt;br&gt;
CTRL + K CTRL + ←/→                            &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Toggle Integrated Terminal&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows/Linux&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
CTRL + `                                           &lt;/p&gt;

&lt;p&gt;Integrated terminal in VS Code is a very convenient feature that lets you execute the task quickly without switching windows. To hide/unhide the terminal in the editor, this keyboard shortcut comes in very handy.&lt;/p&gt;

&lt;p&gt;However, like me, if you find pressing “CTRL+`” difficult to use due to its weird corner location, you can still open Command Palette and execute View.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Go To File&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows/Linux&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
CTRL + P                                         &lt;/p&gt;

&lt;p&gt;As the project grows, looking for a file might become a very difficult task. Hence, I would suggest even you use a mouse, this command can save you a lot of time in searching and navigating to a file in a repository.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Go To Line&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows/Linux&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
CTRL + G                                       &lt;/p&gt;

&lt;p&gt;Once you search a file, you may now want to jump to a specific line for adding or editing code. If a file contains thousands of lines of code, scrolling can definitely eat up your time. Hence, CTRL+G or ^+G VS Code Keyboard Shortcut can quickly take you to a line you want.&lt;/p&gt;

&lt;p&gt;Alternatively, you can also use the fourth shortcut for ‘Go To File,’ where appending : colon with line number in the input box works as ‘Go To Line.’&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Search Complete Project&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows/Linux&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
CTRL + SHIFT + F                            &lt;/p&gt;

&lt;p&gt;Most probably you may also want to search for a text, variable, or function in your whole project. In such a case, this command is very convenient that shows search input in the sidebar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Search project&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can also add filters to your search using ALT+C to match case, ALT+W to match the whole word, and ALT+R to use regular expression.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Zen Mode&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows/Linux&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
CTRL + K Z                                        &lt;/p&gt;

&lt;p&gt;Want to work in a distraction-free environment to stay more focused? Zen mode is a feature in a VS Code that hides all UI (Status Bar, Activity Bar, Panel, and Sidebar) and displays only the editor on a full screen.&lt;br&gt;
 &lt;strong&gt;Zen Mode&lt;/strong&gt;&lt;br&gt;
To enable Zen Mode, you can either use the above shortcut or open Command Palette and execute “View: Toggle Zen Mode.” To exit Zen mode, you need to press Esc button twice.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8. Add Selection To Next Find Match&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows/Linux&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
CTRL + D&lt;br&gt;&lt;br&gt;
This command enables you to select the next occurrences of a selected text for editing. It comes very handy if the next match is located far away from the first match.&lt;br&gt;
 Next find match&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9. Toggle Line Comment&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows/Linux&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
CTRL + /    &lt;/p&gt;

&lt;p&gt;The struggle to reach the start of a line and then add a double forward slash to the comment line can be replaced with this quick keyboard shortcut.&lt;br&gt;
 &lt;strong&gt;Comment out code&lt;/strong&gt;&lt;br&gt;
Even if you want to comment out multiple lines, you can select all lines using SHIFT+UP/Down and then press CTRL+/.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10. Jump To The Beginning Or End Of File&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows/Linux&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
CTRL + HOME/END &lt;/p&gt;

&lt;p&gt;If you get lost in the middle of your codes, the command can help to quickly reach either start or end of the file.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;11. Code Folding Or Unfolding&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows/Linux&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
CTRL + SHIFT + [ or ]   &lt;/p&gt;

&lt;p&gt;It is one of the most useful shortcuts that can help you collapse/uncollapse a region of code. In this way, you can hide unnecessary code and view only the required section of code at a time to focus more and code fast.&lt;br&gt;
 Collapse a region of code&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;12. Peek Implementation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows/Linux&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
CTRL + SHIFT + F12  &lt;/p&gt;

&lt;p&gt;The shortcut is most likely to help you in your code analysis or bug fixing where you want to understand the working of functions and variables.&lt;br&gt;
 Peek Implementation&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;13. Delete Current Line&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows/Linux&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
CTRL + SHIFT + K    &lt;/p&gt;

&lt;p&gt;A single quick command can sum up two tasks of selecting a current line and pressing the delete/backspace button.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;14. Find And Replace&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows/Linux&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
CTRL + F&lt;br&gt;
CTRL + H    &lt;/p&gt;

&lt;p&gt;What could be the best way to replace all occurrences of a text in a file with a new one? If you go for one by one manually by scrolling down the code, no wonder how much time it will take if text occurrence is large.&lt;br&gt;
 &lt;strong&gt;Find and replace&lt;/strong&gt;&lt;br&gt;
While using Find and Replace do the same task within seconds. You can open it using two shortcuts where one actually opens the input box for finding text and the other for replacing text.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;15. VS Code Keyboard Shortcuts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows/Linux&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
CTRL + K CTRL + S   &lt;/p&gt;

&lt;p&gt;At last, if you still struggle with remembering all the above keyboard shortcuts, you still don’t have to worry. This is because you can view all available commands for your editor using the above shortcut.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keyboard Shortcuts&lt;/strong&gt;&lt;br&gt;
Here you can also edit key binding for the command as per your comfort.&lt;br&gt;
Want More Keyboard Shortcuts For VS Code?&lt;br&gt;
If you want to have complete knowledge of VS Code keyboard shortcuts, you can check out the documentation of Visual Studio Code.&lt;br&gt;
Or, if you want all available shortcuts in a single piece of paper, get the cheat sheet for Linux, macOS, and Windows. You can have a quick look whenever you forget.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>The eight tips for every newbie programmer!</title>
      <dc:creator>Abhinav Pathak</dc:creator>
      <pubDate>Fri, 02 Jul 2021 16:47:32 +0000</pubDate>
      <link>https://forem.com/pathakabhi24/the-eight-tips-for-every-newbie-programmer-2k3n</link>
      <guid>https://forem.com/pathakabhi24/the-eight-tips-for-every-newbie-programmer-2k3n</guid>
      <description>&lt;p&gt;When I started learning to code, I always wanted to get tips from experienced developers. The knowledge that would cover all of my questions and unclarity when it comes to programming.&lt;br&gt;
That time was pretty hard for me, and all I could do is find someone who would help me to get better, tell me what I should do, how should I do, and so on.&lt;br&gt;
That’s why I created this post. I want every newbie programmer to know these eight tips that I had to discover by myself after two years of continuous programming.&lt;br&gt;
The eight tips for every newbie programmer:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Don’t learn everything&lt;/strong&gt;&lt;br&gt;
It doesn’t matter how skilled you are or for how many years you are coding. The most important thing is that you don’t need to learn everything. This mindset can be very counterproductive, especially when you try to grasp a lot of information in a little amount of time.&lt;br&gt;
Learn slowly, learn as little as you can, but precisely. Focus on understanding one thing rather than reading a lot.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Focus on progress&lt;/strong&gt;&lt;br&gt;
When it comes to web development, it’s an always-changing programming niche. If you aren’t up-to-date with some trendy technologies, languages, or just with fundamentals, you won’t be ahead of others, and that can lead to you not landing that job.&lt;br&gt;
Plan it. Take help from the roadmaps, like a “Front-End Developer Roadmap” created and available on roadmap.sh.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Try learning techniques&lt;/strong&gt;&lt;br&gt;
As I can see, people use different learning techniques, but all of them are similar to one, which you probably know already — the Pomodoro technique. That’s the most effective learning technique for most of us.&lt;br&gt;
Why? It’s because of the breaks. More breaks you get, the more you’ll learn, you’ll feel better and so on.&lt;br&gt;
Give it a try!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Teaching mindset&lt;/strong&gt;&lt;br&gt;
I’m an example of this point. I’ve created this profile just because I wanted to help beginner programmers, web developers, especially. When you become a teacher, you’ll not only help others, but you’ll also help yourself!&lt;br&gt;
Believe it or not, I learn a lot by creating these posts, by sharing knowledge, and helping others!&lt;br&gt;
You can do that too!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Note your progress&lt;/strong&gt;&lt;br&gt;
I mentioned that in one of my previous posts. When I note what I’m learning, I learn it much more effectively. Exactly how it’s in schools. If you write something down on a paper, you’re thinking of what you’re currently writing, you are reading it, and the most important — you understand it better.&lt;br&gt;
I’ve tried different methods, like writing on a computer. I wouldn’t recommend that as much as writing on a paper.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Avoid perfection&lt;/strong&gt;&lt;br&gt;
You will never be able to do something flawlessly. No one will. When it comes to programming, there will always be a better approach, a better understanding, or whatsoever. Rather than trying to do things superbly, make things work, and do it briefly.&lt;br&gt;
This type of approach can slow down your learning process and keep you away from progressing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Don’t compare&lt;/strong&gt;&lt;br&gt;
For most of us, when we compare ourselves to all of the talented programmers that we see on YouTube or anywhere else, it won’t motivate us to get into their level. It can only leave us thinking that we aren’t that great, that this is not for us or similar, wrong thoughts.&lt;br&gt;
If you want to compare, do it with your yesterday yourself. You just watched a video on YouTube about creating an HTML website, and now you know how to do it?&lt;br&gt;
BOOM! You just got it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Remember to rest&lt;/strong&gt;&lt;br&gt;
Keep in mind that resting is as important as learning. Especially when it comes to programming, where all you do is learn — you have to take breaks. It won’t only make you feel better, but it’ll make you ready for the new challenges that you’ll face every day as a programmer.&lt;br&gt;
Eat healthy, exercise, get enough sleep. These are my recommendations. When I don’t sleep enough, I can’t focus, and it’s a lost day for me.&lt;br&gt;
That’s it!&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Thank you so much for reading that post! If you did enjoy it, please share it to help others, and let me know in the comment section if you would add something to this list!&lt;/p&gt;

</description>
      <category>codenewbie</category>
      <category>programming</category>
      <category>computerscience</category>
      <category>codereview</category>
    </item>
  </channel>
</rss>
