<?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: Braincuber Technologies</title>
    <description>The latest articles on DEV Community by Braincuber Technologies (@braincuber_technologies).</description>
    <link>https://dev.to/braincuber_technologies</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%2F808562%2F578dc55b-3146-4b44-9e7e-06d88e663b87.png</url>
      <title>DEV Community: Braincuber Technologies</title>
      <link>https://dev.to/braincuber_technologies</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/braincuber_technologies"/>
    <language>en</language>
    <item>
      <title>Earn Money By Testing Websites | 💲💲$100 a Day</title>
      <dc:creator>Braincuber Technologies</dc:creator>
      <pubDate>Tue, 26 Apr 2022 12:01:15 +0000</pubDate>
      <link>https://dev.to/braincuber_technologies/earn-money-by-testing-websites-100-a-day-54fa</link>
      <guid>https://dev.to/braincuber_technologies/earn-money-by-testing-websites-100-a-day-54fa</guid>
      <description>&lt;p&gt;Best Side Hustles to earn some cash. Use your free time to make some money.&lt;/p&gt;

&lt;p&gt;There are many ways to earn money by using your free time in fun and exciting ways. These sites give you cash for taking online surveys and testing websites and apps.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why do they give you money?
&lt;/h2&gt;

&lt;p&gt;Before launching a project, many large companies test it with some professional audience and take their reviews in exchange for little cash. If the reviews are positive, they launch that project; if not, they discard it or change it. You can be that person who can give that review and earn money in return. You must be wondering whether they will be at a disadvantage by giving money to every reviewer. No, they are not because they save a lot of money when they launch their product by using little money on these platforms.&lt;/p&gt;

&lt;p&gt;You must keep in mind a few things when using these sites; do not give your sensitive information and share the survey with others because these tests are concepts that are not made public. If you share these concepts, you might get in trouble.&lt;/p&gt;

&lt;p&gt;Top sites:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.usertesting.com/"&gt;&lt;strong&gt;1: UserTesting:&lt;/strong&gt;&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;UserTesting is the first site that will come to your mind when we talk about these sites. It is a very easy-to-use site and uses it anywhere in the world where you can receive payments through Paypal.&lt;/p&gt;

&lt;p&gt;You will first have to give a sample test; if you pass it, you will take other tests. You can earn up to $10-$15 for a 20-min test.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://enrollapp.com/"&gt;&lt;strong&gt;2: Enroll:&lt;/strong&gt;&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Enroll is a similar platform to UserTesting, but what makes it better is its availability; you can take tests anywhere on any device. Keep in mind that you must have a PayPal account to get money.&lt;/p&gt;

&lt;p&gt;Many tests on Enroll are rapid and take a few minutes to complete. So, it means they will not help you get a satisfying amount of cash, but they can be a source of a few dollars.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.respondent.io/"&gt;&lt;strong&gt;3: Respondent:&lt;/strong&gt;&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Respondent is easily the highest paying site on this list, and it can be considered the best. So, you will see a higher quality of test on it with higher rewards. To give you a simple understanding, you can earn up to $100 in just an hour.&lt;/p&gt;

&lt;p&gt;There are many other opportunities onRespondent like ‘paid focus group.’ To learn more about them, give it a click.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.userfeel.com/"&gt;&lt;strong&gt;4: UserFeel:&lt;/strong&gt;&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;UserFeel is very similar to the other sites on this list. You have to pass a test to join and start earning; $10 for each test. Also, you can withdraw money quicker than other sites, making it the fastest in terms of money transfer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.userlytics.com/"&gt;&lt;strong&gt;5: UserLytics:&lt;/strong&gt;&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Unlike other sites mentioned, UserLytics allows you to test the website and other digital products.&lt;/p&gt;

&lt;p&gt;Keep in mind to have a webcam for tests here because you will need it a lot. After making a profile and passing the initial test, you will receive emails about test opportunities.&lt;/p&gt;

&lt;p&gt;To sum it all up, I will say that the sites mentioned here are only the tip of the iceberg; many other websites will pay you by testing different products. So, if any of the websites mentioned above are not available to you, you can give other websites like UTest or Test.IO a tray.&lt;/p&gt;

&lt;p&gt;Read More&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/braincuber_technologies/top-50-useful-github-repos-that-every-developer-should-follow-10kc"&gt;&lt;strong&gt;Top 50 Useful GitHub Repos That Every Developer Should Follow&lt;/strong&gt;&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>tutorial</category>
      <category>freelancer</category>
    </item>
    <item>
      <title>Top 50 Useful GitHub Repos That Every Developer Should Follow</title>
      <dc:creator>Braincuber Technologies</dc:creator>
      <pubDate>Tue, 26 Apr 2022 05:40:13 +0000</pubDate>
      <link>https://dev.to/braincuber_technologies/top-50-useful-github-repos-that-every-developer-should-follow-10kc</link>
      <guid>https://dev.to/braincuber_technologies/top-50-useful-github-repos-that-every-developer-should-follow-10kc</guid>
      <description>&lt;p&gt;&lt;strong&gt;Github is like facebook for developers.&lt;/strong&gt; Giving this name to this amazing site is not injustice. After all this site not only helps you to host your code with version control, but it is also helpful in making networks with other great developers across the world. A lot of developers love to spend time on GitHub exploring the project, learning a lot of stuff all the time, making connections with other developers and contributing to the open-source projects. Over 37 million users and more than 100M repository is the proof of GitHub’s popularity, and it shows the love of developers towards this incredible site.&lt;/p&gt;

&lt;p&gt;So it’s a popular platform for tons of resources, and there are many repositories which provide free resources on various aspects of software engineering. I would like to share 50 GitHub repositories that would help you in the journey of programming.&lt;/p&gt;

&lt;p&gt;Before you go further read this if you can't feel confidence&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/braincuber_technologies/10-ways-to-improve-logical-thinking-skills-in-programming-5012"&gt;&lt;strong&gt;10 ways to improve logical thinking skills in programming&lt;/strong&gt;&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/freeCodeCamp/freeCodeCamp"&gt;1. FreeCodeCamp&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A non profit organization and best opensource community. Over here you can help others code and also learn to code by the various tutorials they have provided.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/vinta/awesome-python"&gt;2. Awesome Python&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A github repository that lists various python frameworks, libraries, softwares, podcasts, resources for python developers&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/DhanushNehru/Ultimate-NodeJs-Resources"&gt;3. Ultimate Node Js Resources&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Resources related to Node Js at one place which includes IDE’s security, testing frameworks blogs and much more.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/getify/You-Dont-Know-JS"&gt;4. You don’t know JS&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You don’t know JS is a popular javascript book which is available in github as well.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/jwasham/coding-interview-university"&gt;5. Coding Interview University&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you want to get into top software companies it provides a study plan. It also helps yourself to stay prepared for technical interviews for Google, Microsoft etc.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/public-apis/public-apis"&gt;6. Public Apis&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As a developer when dealing with Apis for application you can choose a list of free Apis from this site which ranges from animation, games, google analytical apis etc.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/florinpop17/app-ideas"&gt;7. App Ideas&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It lists a collection of application ideas to improve your coding skills&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/DhanushNehru/Ultimate-Web-Development-Resources"&gt;8. Ultimate Web Development Resources&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lists collection of web development resources which ranges from the list of softwares, hosting platforms, code challenges, fonts etc. If you want to get started with web development these resources listed here would help you to get started&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/sindresorhus/awesome"&gt;9. Awesome&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Awesome lists about all kinds of interesting topics and resources.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/kamranahmedse/developer-roadmap"&gt;10. Developer Roadmap&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It provides a roadmap inorder to become a software engineer&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/TheAlgorithms"&gt;11. The Algorithms&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you want to learn algorithms based on different programming languages this one is for you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/you-dont-need"&gt;12. You dont need&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;People choose popular projects, often not because it applies to their problems. It contains a list which you don’t need for developing&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/lydiahallie/javascript-questions"&gt;13. Javascript Questions&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It contains advanced javascript questions which helps to upgrade yourself as a javascript developer&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/denysdovhan/wtfjs"&gt;14. Wtfjs&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A list of funny and tricky JavaScript examples&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Pierian-Data/Complete-Python-3-Bootcamp"&gt;15. Complete Python 3 Bootcamp&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is a course in udemy based on the repository name and all the course files are present here&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/yangshun/tech-interview-handbook"&gt;16. Tech Interview Handbook&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A curated interview preparation materials for busy engineers&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/jlevy/the-art-of-command-line"&gt;17. The Art of Command Line&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One github page to master all your command line operations&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/github/gitignore"&gt;18. Gitignore&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It list useful gitignore templates for your project&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/30-seconds/30-seconds-of-code"&gt;19. 30 seconds of code&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It lists short javascript snippets for your next project&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ossu/computer-science"&gt;20. Computer Science&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A repository which provides the path to become a self taught computer science engineer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ossu/data-science"&gt;21. Data Science&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A repository which provides the path to become a self taught data science engineer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/veeral-patel/how-to-secure-anything"&gt;22. How to secure anything&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A repository about security engineering.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/EbookFoundation/free-programming-books"&gt;23. Free Programming Books&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;List all the free programming books available for a programmer&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/mvt-project/mvt"&gt;24. Mobile Verification Toolkit&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is a collection of utilities to simplify and automate the process of gathering forensic traces helpful to identify a potential compromise of Android and iOS devices.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/leonardomso/33-js-concepts"&gt;25. 33 Js concepts&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It lists about 33 Javascript concepts which every developer must know.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/yangshun/front-end-interview-handbook"&gt;26. Front end interview handbook&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It lists various front end interview preparation materials for busy engineers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/practical-tutorials/project-based-learning"&gt;27. Project based learning&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A list of programming tutorials in which aspiring software developers learn how to build an application from scratch. These tutorials are divided into different primary programming languages. Tutorials may involve multiple technologies and languages.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/danistefanovic/build-your-own-x"&gt;28. Build your own X&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What you cannot create you cannot understand. It lists resources which help you to build your own database, bots, cryptocurrency etc.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/donnemartin/system-design-primer"&gt;29. System Design Primer&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Learn how to design large-scale systems and also preparation for the system design interview.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/trekhleb/javascript-algorithms"&gt;30. Javascript Algorithms&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Algorithms and data structures implemented in JavaScript with explanations and links to further readings.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/minimaxir/big-list-of-naughty-strings"&gt;31. Big List of naughty strings&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Big List of Naughty Strings is a list of strings which have a high probability of causing issues when used as user-input data.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/trimstray/the-book-of-secret-knowledge"&gt;32. The book of secret knowledge&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A collection of inspiring lists, manuals, cheatsheets, blogs, hacks, one-liners, cli/web tools and more.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/goldbergyoni/nodebestpractices"&gt;33. Node best practices&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Node.js best practices list&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/gothinkster/realworld"&gt;34. Real World&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;“The mother of all demo apps” — Exemplary fullstack Medium.com clone powered by React, Angular, Node, Django etc.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/TheAlgorithms/Python"&gt;35. TheAlgorithms/Python&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lists all Algorithms implemented in Python.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/elsewhencode/project-guidelines"&gt;36. Project Guidelines&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A set of best practices for JavaScript projects&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ryanmcdermott/clean-code-javascript"&gt;37. Clean Code Javascript&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lists all the clean Code concepts adapted for JavaScript&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/thedaviddias/Front-End-Checklist"&gt;38. Front End Checklist&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The perfect Front-End Checklist for modern websites and meticulous developers&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/AllThingsSmitty/css-protips"&gt;39. Css Pro Tips&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A collection of tips to help take your CSS skills pro&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/goldbergyoni/javascript-testing-best-practices"&gt;40. Javascript Testing Best Practices&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Comprehensive and exhaustive JavaScript &amp;amp; Node.js testing best practices&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/iluwatar/java-design-patterns"&gt;41. Java Design Patterns&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lists various design patterns implemented in Java&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/firstcontributions/first-contributions"&gt;42. First Contributions&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lists Materials to contribute to open source projects&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/slidevjs/slidev"&gt;43. Slidev&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lists the presentation slides for developers&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/chubin/cheat.sh"&gt;44. Cheat.sh&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Unified access to the best community driven cheat sheets repositories of the world.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/pluja/awesome-privacy"&gt;45. Awesome Privacy&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A curated list of services and alternatives that respect your privacy because PRIVACY MATTERS.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/dvf/blockchain"&gt;46. Blockchain&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To create a simple block chain using python&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ionic-team/ionic-framework"&gt;47. Ionic framework&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A powerful cross-platform UI toolkit for building native-quality iOS, Android, and Progressive Web Apps with HTML, CSS, and JavaScript.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/pixijs/pixijs"&gt;48. Pixijs&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The HTML5 Creation Engine: Create beautiful digital content with the fastest, most flexible 2D WebGL renderer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/jonasstrehle/supercookie"&gt;49. Supercookie&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Supercookie uses favicons to assign a unique identifier to website visitors. Unlike traditional tracking methods, this ID can be stored almost persistently and cannot be easily cleared by the user.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/vasanthk/how-web-works"&gt;50. How web works&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Details information about how DNS, HTTP protocol, servers work or about Render Tree, DOM Tree, page painting etc. It is a useful repository to learn the basics of how the web works.&lt;/p&gt;

&lt;p&gt;Cool, You’ve finished reading, Now if you have any other valuable github repositories to share feel free to drop below…&lt;/p&gt;

</description>
      <category>programming</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Don’t Use Switch or If-Else in JavaScript, Instead, Try This</title>
      <dc:creator>Braincuber Technologies</dc:creator>
      <pubDate>Tue, 26 Apr 2022 05:03:38 +0000</pubDate>
      <link>https://dev.to/braincuber_technologies/dont-use-switch-or-if-else-in-javascript-instead-try-this-3dhm</link>
      <guid>https://dev.to/braincuber_technologies/dont-use-switch-or-if-else-in-javascript-instead-try-this-3dhm</guid>
      <description>&lt;p&gt;Instead of Write better switch and if…else statement in JavaScript with object&lt;/p&gt;

&lt;h2&gt;
  
  
  What is the switch statement?
&lt;/h2&gt;

&lt;p&gt;The switch statement evaluates an expression, matching the expression’s value to a case clause, and executes statements associated with that case, as well as statements in cases that follow the matching case.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5fy0rjd0911t24yduwuz.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%2F5fy0rjd0911t24yduwuz.png" alt="What is the switch statement in javascript"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Problems with switch
&lt;/h2&gt;

&lt;p&gt;The switch case is a little difficult to read and a bit ancient, and it’s prone to debugging problems.&lt;/p&gt;

&lt;p&gt;The odd thing about the switch case is that you have to include the keyword break at the end of each case to prevent the control from moving to the next.&lt;/p&gt;

&lt;p&gt;in addition to that, it’s a disaster when it comes to mapping complex scenarios, which can lead to difficult debugging and nested errors.&lt;/p&gt;

&lt;p&gt;Every time we write a switch statement, we must exercise extreme caution.&lt;/p&gt;

&lt;p&gt;The joy of writing code is curtailed when you have to be extra cautious and that causes a huge problem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Using objects&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let’s set up a match function to simulate switch cases&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flayi13w7h6vpfs8t50fc.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%2Flayi13w7h6vpfs8t50fc.png" alt="how to use objects in javascript"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And you can do something like this :&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu1a4l5dzrkkdjiii50yg.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%2Fu1a4l5dzrkkdjiii50yg.png" alt="how to use javascript objects instead of if else and switch statment"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;An object can be used as an alternative to the switch statement.&lt;/p&gt;

&lt;p&gt;Using Object one can implement a keyed method lookup.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Summing up&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This isn’t to say that the switch statement isn’t useful or that using object literals is always the best option. Object literals as switches, on the other hand, should become another tool in your javascript toolbox.&lt;/p&gt;

&lt;p&gt;You can find the full code we implemented in this post here.&lt;br&gt;
That’s it&lt;/p&gt;

&lt;p&gt;I hope you enjoyed it!&lt;/p&gt;

&lt;p&gt;Leave any questions, concerns, recommendations, or criticisms in the comments section. This motivates me to keep improving and writing on dev&lt;/p&gt;

&lt;p&gt;See you later! ❤️&lt;/p&gt;

&lt;p&gt;Read More:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/braincuber_technologies/7-javascript-clean-coding-tips-every-developer-should-know-3pno"&gt;7 JavaScript clean coding tips every developer should know 😎&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/braincuber_technologies/top-javascript-vscode-extensions-for-faster-development-597k"&gt;Top JavaScript VSCode Extensions for Faster Development 🔥&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>programming</category>
    </item>
    <item>
      <title>10 ways to improve logical thinking skills in programming</title>
      <dc:creator>Braincuber Technologies</dc:creator>
      <pubDate>Sat, 23 Apr 2022 12:07:17 +0000</pubDate>
      <link>https://dev.to/braincuber_technologies/10-ways-to-improve-logical-thinking-skills-in-programming-5012</link>
      <guid>https://dev.to/braincuber_technologies/10-ways-to-improve-logical-thinking-skills-in-programming-5012</guid>
      <description>&lt;p&gt;Before we look at ways to improve our logic, first let us understand and have a common ground for what exactly logic is!&lt;/p&gt;

&lt;p&gt;Logic is the way of analysing, thinking, and our sensible approach to solving a given problem&lt;/p&gt;

&lt;p&gt;That being said, now let us look at the &lt;strong&gt;10 ways to improve our logic in programming&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Practice writing lots of code&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Time, Effort, and Pure Hard Work is the only key.&lt;/p&gt;

&lt;p&gt;Practising is vital when trying to improve logic-building skills.&lt;/p&gt;

&lt;p&gt;Practice is a crucial part of our life. If we want to have a better command over anything, we need to practice the same thing repeatedly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Look at other people’s code&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The next best thing after writing code is to read code.&lt;/p&gt;

&lt;p&gt;The best way to build logic is by understanding how others build it, ensuring you can re-enact the process when required.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Learn programming data structures&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Programming is all about data structure and algorithms.&lt;br&gt;
Data structures are the fundamentals of all programming languages. It means that if you want to have a good command over any programming language, then you should start with the data structures of that programming language&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Divide the problem into smaller chunks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Break down the problem statement into smaller use cases. Divide the problem into smaller chunks and this is one of the best way to improve logical thinking.&lt;/p&gt;

&lt;p&gt;Remember: How do you eat an elephant?&lt;br&gt;
Piece by Piece&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Think negative scenarios as well&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not just happy path.&lt;br&gt;
Think through all the use cases where the solution can or may or will fail. Never assume user will not do negative use cases.&lt;br&gt;
Most likely they will.&lt;br&gt;
Hence try to break the application with all possible edge cases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Be Confident &amp;amp; Fearless&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Be fearless. If your mind thinks it's easy, it will find an easy way out.&lt;br&gt;
Start with a thought of solving a problem and be confident that for most use cases we will find simple and efficient solutions&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Make mistakes.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We all make mistakes, it’s common, it’s human.&lt;br&gt;
That’s the only way to learn.&lt;br&gt;
The world is not going to stop if you make mistakes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8. Learn from your peers/seniors/team.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of the most efficient ways is to learn from your seniors and experienced programmers.&lt;br&gt;
Pair programming, getting help from mentor or just code review together can provide so much valuable knowledge.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9. Be motivated even on dark days.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is purely mental ability.&lt;br&gt;
We need to keep ourselves motivated especially on days when things are not going well.&lt;br&gt;
What is your motivation?&lt;br&gt;
It can be career, family, financial goals, material goals, can be anything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10. Commit to take complex task&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once you commit, you will force solving it.&lt;br&gt;
That’s one of the most challenging ways to jump in and claim your stake.&lt;/p&gt;

&lt;p&gt;It’s not easy, but you will be rewarded accordingly!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Recap of the main points&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Look at other people’s code&lt;br&gt;
Learn programming data structures&lt;br&gt;
Learn programming data structures&lt;br&gt;
Divide the problem into smaller chunks&lt;br&gt;
Think negative scenarios as well&lt;br&gt;
Be Confident &amp;amp; Fearless&lt;br&gt;
Make mistakes&lt;br&gt;
Learn from your peers/seniors/team&lt;br&gt;
Be motivated even on dark days&lt;br&gt;
Commit to take complex task&lt;/p&gt;

&lt;p&gt;Thank you.&lt;/p&gt;

&lt;p&gt;If you enjoyed this article, please follow my blog to keep getting updates.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/braincuber_technologies/how-to-study-data-structures-and-algorithms-while-working-a-full-time-job-5hjf"&gt;&lt;strong&gt;How to study Data Structures and Algorithms while working a full-time job?&lt;/strong&gt;&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
    <item>
      <title>13 REST API interview questions you need to know</title>
      <dc:creator>Braincuber Technologies</dc:creator>
      <pubDate>Wed, 13 Apr 2022 11:57:13 +0000</pubDate>
      <link>https://dev.to/braincuber_technologies/13-rest-api-interview-questions-you-need-to-know-11eo</link>
      <guid>https://dev.to/braincuber_technologies/13-rest-api-interview-questions-you-need-to-know-11eo</guid>
      <description>&lt;p&gt;No matter which programming language or technology you’re working with, you’ve probably encountered a REST application programming interface (API). REST stands for Representational State Transfer, which is the one of the most widely-used architectural styles for web services, microservices, and APIs today. APIs that follow the REST architectural style are considered REST APIs.&lt;/p&gt;

&lt;p&gt;Whether you’re a junior or senior developer, you may be asked questions about REST API in an interview. To help you ace your next interview, we’ll discuss some common REST API interview questions and answers.&lt;/p&gt;

&lt;p&gt;We’ll cover:&lt;br&gt;
13 REST API interview questions you need to know&lt;br&gt;
Wrapping up and next steps&lt;/p&gt;

&lt;h2&gt;
  
  
  13 REST API interview questions you need to know
&lt;/h2&gt;

&lt;h2&gt;
  
  
  1. What is REST?
&lt;/h2&gt;

&lt;p&gt;REST stands for Representational State Transfer. REST is an architectural style for web development. REST architecture lays out guidelines for the transfer of resource representations between clients and servers on the web.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. What is a REST API?
&lt;/h2&gt;

&lt;p&gt;A REST API or RESTful API is a web API that conforms to the REST architecture style.&lt;/p&gt;

&lt;p&gt;visit &lt;a href="https://blog.braincuber.com"&gt;blog.braincuber.com&lt;/a&gt; for more useful content&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;3. Describe the 5 constraints of the REST architectural style, and their benefits.&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;In case they ask for 6 constraints, see the following question about the optional constraint.&lt;br&gt;
A truly RESTful API must conform to the five REST architectural constraints:&lt;/p&gt;

&lt;p&gt;Uniform interface:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Interface between client and server that allows for standardized client-server communication in a single language&lt;/li&gt;
&lt;li&gt;Necessary for the decoupling of client and server&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Client-server:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Client-server model, for separation of concerns between client and server&lt;/li&gt;
&lt;li&gt;Permits client and server to operate and evolve independently&lt;/li&gt;
&lt;li&gt;Supports portability and scalability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Stateless:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Refers to stateless communication protocol, wherein the server stores no information about session states&lt;/li&gt;
&lt;li&gt;Improves performance by reducing server load&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cacheable:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Servers mark their responses as cacheable or non-cacheable&lt;/li&gt;
&lt;li&gt;Clients and intermediaries are able to cache server responses&lt;/li&gt;
&lt;li&gt;Reduces client-server interaction, supports scalability and performance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Layered system:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Layers between client and server, can consist of intermediaries such as proxy servers or load balancers&lt;/li&gt;
&lt;li&gt;Layers have separate responsibilities but are able to interact with each other&lt;/li&gt;
&lt;li&gt;Supports system scalability and security&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. What is the optional architectural constraint of REST?
&lt;/h2&gt;

&lt;p&gt;Code on demand is the optional constraint of RESTful architecture. Code on demand allows the server to send executable code (scripts or applets) to a client upon client request.&lt;/p&gt;

&lt;p&gt;Advantage: Extends client functionality, since client can download features after deployment&lt;br&gt;
Disadvantage: Reduces visibility, which is why it’s considered optional&lt;br&gt;
Examples: Java applets and JavaScript&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Explain the constraints of a uniform interface.
&lt;/h2&gt;

&lt;p&gt;A uniform interface is needed to decouple the client from the server.&lt;/p&gt;

&lt;p&gt;There are four necessary constraints to achieving uniform interface:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Identification of resources: Client requests must identify resources using uniform resource identifiers (URIs)&lt;/li&gt;
&lt;li&gt;Manipulation of resources through these representations: When clients receive a resource representation from the server, they have all information necessary to be able to modify resource state&lt;/li&gt;
&lt;li&gt;Self-descriptive messages: Messages contain all information necessary for recipient to interpret it, including metadata&lt;/li&gt;
&lt;li&gt;Hypermedia as the engine of application state: Hypermedia (such as HTML) is the medium for client-server interaction, and the client requires no API-specific documentation to understand server responses&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  6. What is CRUD?
&lt;/h2&gt;

&lt;p&gt;CRUD is an acronym for the four basic operations used in relational database management system (RDBMS).&lt;/p&gt;

&lt;p&gt;Each operation in CRUD relates to an HTTP method that REST supports.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create: POST&lt;/li&gt;
&lt;li&gt;Read: GET&lt;/li&gt;
&lt;li&gt;Update: PUT&lt;/li&gt;
&lt;li&gt;Delete: DELETE&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  7. Explain the HTTP request methods supported by REST, and when they are used.
&lt;/h2&gt;

&lt;p&gt;REST APIs are based on HTTP requests or verbs, which each perform a different task.&lt;/p&gt;

&lt;p&gt;REST supports the following HTTP requests:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GET method: Request data from server&lt;/li&gt;
&lt;li&gt;POST method: Submit data to create new resource on server-defined URL&lt;/li&gt;
&lt;li&gt;PUT method: Submit data to update a resource at client-defined URL&lt;/li&gt;
&lt;li&gt;DELETE method: Remove resource from server&lt;/li&gt;
&lt;li&gt;OPTIONS method: Return request methods supported by a service&lt;/li&gt;
&lt;li&gt;HEAD method: Return meta information such as response headers&lt;/li&gt;
&lt;li&gt;PATCH method: Modify part of the resource on the server&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  8. What’s the difference between PUT and POST methods?
&lt;/h2&gt;

&lt;p&gt;This question can stump some developers. Being able to explain this will help you stand out as someone who actually knows what they’re talking about.&lt;/p&gt;

&lt;p&gt;Here are the differences between PUT and POST:&lt;/p&gt;

&lt;p&gt;PUT:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Idempotent (i.e. multiple requests will yield same result)&lt;/li&gt;
&lt;li&gt;PUT responses aren’t cacheable&lt;/li&gt;
&lt;li&gt;Updates or replaces target resource with request’s payload&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;POST:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Not idempotent (i.e. multiple requests will yield multiples of the same resource)&lt;/li&gt;
&lt;li&gt;POST responses can be cacheable, provided proper cache-control header&lt;/li&gt;
&lt;li&gt;Request’s payload is processed by the web server based on target resource&lt;/li&gt;
&lt;li&gt;Understanding idempotency: An example of an idempotent operation would be the operation of multiplying a number by one. No matter how many times you multiply five by one, you’ll get the same result.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Explain what statelessness means in REST.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Statelessness means that the client and server don’t store information about each other’s state. Since the server stores no information, it treats each client request as a new request.&lt;/p&gt;

&lt;p&gt;As a consequence, the following conditions would apply:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The client request contains all information required for the server to process the request&lt;/li&gt;
&lt;li&gt;Client application is responsible for storing session state&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  10. What are the advantages and disadvantages of a REST API?
&lt;/h2&gt;

&lt;p&gt;It’s important to know the pros and cons of a RESTful API.&lt;/p&gt;

&lt;p&gt;Advantages include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Designed for high performance, portability, reliability, and scalability&lt;/li&gt;
&lt;li&gt;Client-server separation allows each to individually operate and scale&lt;/li&gt;
&lt;li&gt;Easy to test and adapt to various environments&lt;/li&gt;
&lt;li&gt;Easy to learn as it uses HTTP protocol&lt;/li&gt;
&lt;li&gt;Supports various data transfer technologies including JSON, XML, YAML, images, and more&lt;/li&gt;
&lt;li&gt;Uses less bandwidth than other methods, such as Simple Object Access Protocol (SOAP) technology&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Disadvantages include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Doesn’t enforce security practices&lt;/li&gt;
&lt;li&gt;HTTP method limits you to synchronous requests&lt;/li&gt;
&lt;li&gt;Due to statelessness, you might be unable to maintain state (e.g. in sessions)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  11. What’s the difference between AJAX and REST?
&lt;/h2&gt;

&lt;p&gt;The distinction can confuse beginner developers, so it’s helpful to know the difference.&lt;/p&gt;

&lt;p&gt;An AJAX client can make a RESTful request to a REST API (e.g. a get request), but AJAX isn’t an architectural style. It’s a web development technique for client-side applications. REST APIs can be accessed by AJAX clients, but they aren’t inherently implemented with AJAX.&lt;/p&gt;

&lt;h2&gt;
  
  
  12. What’s the difference between SOAP and REST?
&lt;/h2&gt;

&lt;p&gt;Although some REST APIs use SOAP protocols, REST and SOAP are entirely different approaches to building APIs. Interviewers may ask this to assess your depth of understanding.&lt;/p&gt;

&lt;p&gt;Here are some of the differences between SOAP and REST.&lt;br&gt;
SOAP:&lt;br&gt;
Protocol&lt;br&gt;
Data format is limited to XML&lt;br&gt;
Heavyweight and requires more bandwidth&lt;br&gt;
Calls can’t be cached&lt;br&gt;
REST:&lt;br&gt;
Architectural style&lt;br&gt;
Allows various data formats including plain text, HTML, XML, JSON, and YAML&lt;br&gt;
Lightweight and requires less bandwidth&lt;br&gt;
Calls can be cached&lt;/p&gt;

&lt;h2&gt;
  
  
  13. Explain HTTP response status codes.
&lt;/h2&gt;

&lt;p&gt;HTTP response codes indicate the result of client requests.&lt;br&gt;
Common HTTP status codes include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;200: Successful request&lt;/li&gt;
&lt;li&gt;201: Entity or entities created from successful request&lt;/li&gt;
&lt;li&gt;400: Bad request. Invalid client request.&lt;/li&gt;
&lt;li&gt;401: Unauthorized. User isn’t authorized to access a resource and may be unauthenticated&lt;/li&gt;
&lt;li&gt;403: Forbidden. User isn’t authorized to access a resource, user is authenticated&lt;/li&gt;
&lt;li&gt;404: Not found. Resource not found&lt;/li&gt;
&lt;li&gt;500: Internal server error. Generic server error&lt;/li&gt;
&lt;li&gt;502: Bad gateway. Response from upstream server is not valid&lt;/li&gt;
&lt;li&gt;503: Service unavailable. Result of server-side issue, including overload or system failure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Wrapping up and next steps&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Congratulations! You’re now prepared with some common REST API interview questions and answers. Where you go from here depends on your goals.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>programming</category>
    </item>
    <item>
      <title>7 JavaScript clean coding tips every developer should know 😎</title>
      <dc:creator>Braincuber Technologies</dc:creator>
      <pubDate>Fri, 08 Apr 2022 04:39:31 +0000</pubDate>
      <link>https://dev.to/braincuber_technologies/7-javascript-clean-coding-tips-every-developer-should-know-3pno</link>
      <guid>https://dev.to/braincuber_technologies/7-javascript-clean-coding-tips-every-developer-should-know-3pno</guid>
      <description>&lt;p&gt;Writing clean code improves the maintainability of the application and make developers productive. However, some developers are unaware of the language features available to further enhance the code.&lt;/p&gt;

&lt;p&gt;In this article, I will discuss how we can utilize the features of JavaScript to write clean code.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;1. Use Object Destructuring&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Object destructuring allows you to take specific fields from an object and assign them to a variable instantly. It reduces the number of code lines we need to extract the object properties and makes your code easier to understand.&lt;/p&gt;

&lt;p&gt;Object destructuring saves a great deal of explicit variable declarations, and it is really useful in situations when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Using multiple properties from an object.&lt;/li&gt;
&lt;li&gt;Using the same property multiple times.&lt;/li&gt;
&lt;li&gt;Using a property that is deeply nested in an object.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const employee = {name: ‘jsbro’, email: ‘jsbro@example.com’, phone:’0112–345–6789'};

//with destucturing
const {name, email, phone} = employee;

//without destucturing
const name = employee.name;
const email = employee.email;
const phone = employee.phone;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The output of the two examples above (with and without destructuring) are identical. But, using object destructuring makes the code much simpler and easier to understand.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Use Multiple Parameters Over Single Object Parameter
&lt;/h2&gt;

&lt;p&gt;When declaring a function, we should always use multiple input parameters instead of single object inputs. This approach helps developers easily understand the minimum number of parameters that need to be passed by looking at the method signature.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Also, it improves the application performance since there is no need to create object parameters or collect garbage.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;//recommended
function CustomerDetail (CustomerName, CustomerType, Order){    
  console.log('This is ${CustomerName} of ${CustomerType} and need ${Order}');
} 

//not-recommended
function CustomerDetail (User){    
  console.log('This is ${User.CustomerName} of ${User.CustomerType} and need ${User.Order}');
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;However, if the number of input parameters increase, you should switch back to using object parameters to avoid unnecessary code complexities.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: If you use TypeScript and have number of parameters, its easier to define the interface of the parameters to benefit from type checking and auto-suggestions.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  3. Make Use of Arrow Functions
&lt;/h2&gt;

&lt;p&gt;Arrow functions provide a concise way of writing JavaScript functions while resolving the problem of accessing this property inside callbacks.&lt;/p&gt;

&lt;p&gt;If you are using arrow functions, curly braces, parenthesis, function, and return keywords become optional. Most importantly, your code becomes more understandable and clearer.&lt;/p&gt;

&lt;p&gt;The below example shows a comparison between a single-line arrow function without parentheses and a regular function.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Arrow function
const myOrder = order =&amp;gt; console.log(`Customer need ${order}`);

// Regular Function
function(order){
   console.log(`Customer need ${order}`);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Although arrow functions are much simpler, we must understand when and how to use them.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;For example, using arrow functions is not the best approach when working with object prototypes, classes, or object literals.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Also, arrow functions cannot be used as function constructors. You will receive an error if you use the new keyword to create a new object from an arrow function.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Use Template Literals for String Concatenations
&lt;/h2&gt;

&lt;p&gt;Template literals are literals delimited with backticks (`). It provides an easy way to create multiline strings and perform string interpolation.&lt;/p&gt;

&lt;p&gt;For example, we can define a placeholder in a string to get rid of all unnecessary concatenations.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;`&lt;br&gt;
//before&lt;br&gt;
var name = 'Peter';&lt;br&gt;
var message = 'Hi'+ name + ',';&lt;/p&gt;

&lt;p&gt;//after&lt;br&gt;
var name = 'Peter';&lt;br&gt;
var message = &lt;code&gt;Hi ${name},&lt;/code&gt;;&lt;br&gt;
`&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Spread Extension Operator
&lt;/h2&gt;

&lt;p&gt;The spread extension operator (…) is another feature introduced with ES6. It is capable of expanding the literals like arrays into individual elements with a single line of code.&lt;/p&gt;

&lt;p&gt;This operator is really useful when we need to put an array or object into a new array or object or to combine multiple parameters in the array.&lt;/p&gt;

&lt;p&gt;The below code shows how to combine 2 arrays using the spread operator. As you can see, it makes the code clean and easy to understand since we don’t need to use loops or conditions.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;br&gt;
let x = [car, bus,van];&lt;br&gt;
let y = [bike, truck, ..x, lorry]&lt;br&gt;
console.log (y);&lt;br&gt;
// bike, truck, car, bus, van, lorry&lt;br&gt;
&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Avoid Callbacks
&lt;/h2&gt;

&lt;p&gt;Callbacks used to be the most popular way to express and handle asynchronous functions in JavaScript programs. However, if you are still using it, I hope you already know the pain of handling multiple nested callbacks.&lt;/p&gt;

&lt;p&gt;For example, the following code contains 4 callback functions, and it will become even harder as the code start to grow.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;`&lt;br&gt;
function1(function (err, data) { &lt;br&gt;
  ...&lt;br&gt;&lt;br&gt;
  function2(user, function (err, data) {&lt;br&gt;
    ...&lt;br&gt;
     function3(profile, function (err, data) {&lt;br&gt;
      ...&lt;br&gt;
      function4(account, function (err, data) {&lt;br&gt;
        ....&lt;br&gt;
      }); &lt;br&gt;
    }); &lt;br&gt;
  });&lt;br&gt;
});&lt;/p&gt;

&lt;p&gt;`&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;As a solution, ES6 and ES7 introduced, Promises and Async/Await to handle asynchronous functions, and they are much easier to use and makes your code easily understandable to others.&lt;/p&gt;

&lt;p&gt;But, if you use Promises or Async/Await, your code will be clean and much easy to understand.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;br&gt;
// Promises&lt;br&gt;
function1() &lt;br&gt;
.then(function2) &lt;br&gt;
.then(function3) &lt;br&gt;
.then(function2) &lt;br&gt;
.catch((err) =&amp;gt; console.error(err));&lt;br&gt;
// Async/Await&lt;br&gt;
async function myAsyncFunction() {  &lt;br&gt;
try {    &lt;br&gt;
  const data1= await function1();    &lt;br&gt;
  const data2= await function2(data1);    &lt;br&gt;
  const data3= await function3(data2);    &lt;br&gt;
  return function4(data4);  &lt;br&gt;
} &lt;br&gt;
catch (e) {    &lt;br&gt;
  console.error(err);  &lt;br&gt;
}}&lt;br&gt;
&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Use Shorthand Whenever Possible
&lt;/h2&gt;

&lt;p&gt;When working with conditions, the shorthand method can save you a lot of time and space.&lt;/p&gt;

&lt;p&gt;For example, if you write a condition to check empty, null and undefined conditions for a variable, you must write 2 conditions within the if statement.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;br&gt;
if (x !== “” &amp;amp;&amp;amp; x !== null &amp;amp;&amp;amp; x !== undefined) { ... }&lt;br&gt;
&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;However, if you are using the shorthand operator, you just need to write a single condition like below:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;br&gt;
if ( !!x ) { ... }&lt;br&gt;
&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Thoughts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In this article, I discuss how we can utilize the features of JavaScript to write clean code.&lt;/p&gt;

&lt;p&gt;As developers, we should always write clean code since it increases readability and makes it easier for you and your team to understand the code.&lt;/p&gt;

&lt;p&gt;I hope those suggestions will help you improve the readability of your code, and if you have any suggestions, please share them with others in the comments section.&lt;/p&gt;

&lt;p&gt;Thank you for reading!&lt;/p&gt;

&lt;p&gt;Visit &lt;a href="https://braincuber.com"&gt;braincube.com&lt;/a&gt; for more info&lt;/p&gt;

&lt;p&gt;Read more &lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/braincuber_technologies/dont-use-switch-or-if-else-in-javascript-instead-try-this-3dhm"&gt;&lt;strong&gt;Don’t Use Switch or If-Else in JavaScript, Instead, Try This&lt;/strong&gt;&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/braincuber_technologies/top-javascript-vscode-extensions-for-faster-development-597k"&gt;&lt;strong&gt;Top JavaScript VSCode Extensions for Faster Development 🔥&lt;/strong&gt;&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>It’s 2022, Don’t Use the console.log() Anymore 😎</title>
      <dc:creator>Braincuber Technologies</dc:creator>
      <pubDate>Thu, 07 Apr 2022 09:00:51 +0000</pubDate>
      <link>https://dev.to/braincuber_technologies/its-2022-dont-use-the-consolelog-anymore-51dn</link>
      <guid>https://dev.to/braincuber_technologies/its-2022-dont-use-the-consolelog-anymore-51dn</guid>
      <description>&lt;p&gt;We as JavaScript developers usually use console.log() to test the output or just for fun. Even I can bet that our (including mine) first code was “Hello world” logged in the console.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;console.log("Hello World!")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This piece of code has been nostalgic for all fellow JS developers. But now it’s 2022, let’s make it a little handy and comfortable for our fingers.&lt;/p&gt;

&lt;p&gt;In this article, I have discussed a simple and common method that has rarely been used by developers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let’s get started&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As we know, we all use to log the data to the console like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;console.log("I love js") // I love js
console.log(4 + 4) // 8
console.log(!true)  // false
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Let’s work smartly and efficiently as shown below:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const log = (arg) =&amp;gt; console.log(arg)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, we have created a function with a shorter name — log relative to console.log(), you can even use a shorter name, something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const l = (arg) =&amp;gt; console.log(arg)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So, you might be wondering what’s the benefit of writing code like this? Let’s discuss the benefits.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Benefits&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Keeps your code clean and slick&lt;br&gt;
Improve readability&lt;br&gt;
Relief to your fingers, don’t have to write a long thing&lt;br&gt;
Comment more benefits if you can.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let’s test 🚗&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;log("Hello world") // Hello world
log(4 + 4) // 8
log(!false) // true
log(Math.PI) // 3.141592653589793
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;So, this was a quick tip to save your time and make your code look cleaner. Let me know in the comments if you will use this tip.&lt;/p&gt;

&lt;p&gt;You can try the same thing for the console.info(), console.warn(), console.error().&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🌏 Let’s connect&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/company/braincuber/"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/braincuber_tech"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Read More&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.braincuber.com/a-complete-guide-to-web-3-0"&gt;&lt;strong&gt;A Complete Guide to WEB 3.0&lt;/strong&gt;&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.braincuber.com/how-to-upload-files-to-aws-s3-using-nodejs-lambda-and-api-gateway"&gt;&lt;strong&gt;How to upload files to aws s3 using nodejs lambda and api gateway&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>80 % of freshers fail to answers these javascript snippets 🔥</title>
      <dc:creator>Braincuber Technologies</dc:creator>
      <pubDate>Thu, 07 Apr 2022 04:16:05 +0000</pubDate>
      <link>https://dev.to/braincuber_technologies/80-of-freshers-fail-to-answers-these-javascript-snippets-4cam</link>
      <guid>https://dev.to/braincuber_technologies/80-of-freshers-fail-to-answers-these-javascript-snippets-4cam</guid>
      <description>&lt;p&gt;&lt;strong&gt;Q1. Guess the output:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;var truth = true;&lt;br&gt;
let havingFunction = function()&lt;br&gt;
{&lt;br&gt;
if (truth)&lt;br&gt;
{&lt;br&gt;
var name = “vineet”&lt;br&gt;
let lastName= “mishra”&lt;br&gt;
}&lt;br&gt;
console.log(name)&lt;br&gt;
console.log(lastName)&lt;br&gt;
}&lt;br&gt;
havingFunction()&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Take a break don’t jump into output, think hard&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;vineet&lt;br&gt;
ReferenceError: lastName is not defined&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reason&lt;/strong&gt;: This happens due to the variable scope where name variable has function and lastName is having local scope&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q2. Guess the output:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;console.log(3 &amp;gt; 2 &amp;gt; 1);&lt;br&gt;
console.log(1 &amp;lt; 2 &amp;lt; 3);&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;take a break don’t jump into output, think hard&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;false&lt;br&gt;
true&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reason&lt;/strong&gt;: In the first section of the snippet where 3&amp;gt;2&amp;gt;1 is false because when programs run it go for 3&amp;gt;2 which is true and then it goes for the other part which becomes “true &amp;gt;1" where the value of true is 1 then equation becomes 1&amp;gt;1 which going to false, vice versa happens for another snippet which is 1&amp;lt;2&amp;lt; 3&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Read more&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/braincuber_technologies/remix-vs-nextjs-a-detailed-comparison-2ogg"&gt;Remix vs. Next.js: A Detailed Comparison&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/braincuber_technologies/top-javascript-vscode-extensions-for-faster-development-597k"&gt;Top JavaScript VSCode Extensions for Faster Development 🔥&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Top JavaScript VSCode Extensions for Faster Development 🔥</title>
      <dc:creator>Braincuber Technologies</dc:creator>
      <pubDate>Fri, 01 Apr 2022 10:41:40 +0000</pubDate>
      <link>https://dev.to/braincuber_technologies/top-javascript-vscode-extensions-for-faster-development-597k</link>
      <guid>https://dev.to/braincuber_technologies/top-javascript-vscode-extensions-for-faster-development-597k</guid>
      <description>&lt;p&gt;VSCode is an open-source, cross-platform editor that has become a favourite of programmers, particularly in the Web Development community. It’s fast, extensible, customisable, and has tons of features. You should check it out if you haven’t already done it.&lt;/p&gt;

&lt;p&gt;Thousands of extensions have been made for VSCode. I am going to list a few extensions that I use on a day-to-day basis. &lt;br&gt;
Let’s begin!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quokka.js&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Quokka.js is a rapid prototyping playground for JavaScript and TypeScript. What that means is that it runs your code immediately as you type and displays various execution results in your code editor. Try it yourself.&lt;/p&gt;

&lt;p&gt;After installing this extension, you can press Ctrl/Cmd(⌘) + Shift + P to display the editor’s command palette, and then type Quokka to see the list of the available commands. Select and run the New JavaScript File command. You can also press (⌘ + K + J) to open the file directly. Anything you type in this file is executed immediately.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bracket Pair Colorizer and Indent Rainbow 🔥🔥&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Brackets and parentheses are an inseparable part many programming languages. In a language such as JavaScript, a single page can have a barrage these characters with no easy mechanism to identify opening and closing pairs. Welcome Bracket Pair Colorizer and Indent Rainbow. These are two different extensions. However, they really make a good and beautiful couple. These extensions will fill your editor with a flurry of colours, and make the code blocks easily discernible and pleasing to the eyes. Once you get used to them, VSCode feels insipid, and bland without them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Snippets&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Snippets are shorthands in an editor. So instead of writing import React from 'react';, you can type imr and press Tab to expand this snippet. Similarly, clg becomes console.log.&lt;br&gt;
There exists a lot of snippets for all sorts of things: Javascript(or any other language), React, Redux, Angular, Vue, Jest. I personally find Javascript snippets really useful since I work mostly with JS.&lt;/p&gt;

&lt;p&gt;Some good snippet extensions are —&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=xabikos.JavaScriptSnippets"&gt;JavaScript (ES6) code snippets&lt;br&gt;
&lt;/a&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=EQuimper.react-native-react-redux"&gt;React-Native/React/Redux snippets for es6/es7&lt;/a&gt;&lt;br&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=TimonVS.ReactSnippetsStandard"&gt;React Standard Style code snippets&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Todo Highlighter&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It often happens that you code a function, and think that there is a probably better way to do the same thing. You leave a comment // TODO: Needs Refactoring or something to that effect. But then you forget about the note and push your code to master/production. With Todo Highlighter, that won’t happen. Hopefully.&lt;/p&gt;

&lt;p&gt;It highlights your TODOs/FIXMEs or any other annotation in your code in bright colours so it is always clearly visible. One nifty feature is List Highlighted annotations. It lists all the TODOs in the output console.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Import Cost&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This &lt;a href="https://marketplace.visualstudio.com/items?itemName=wix.vscode-import-cost"&gt;extension&lt;/a&gt; allows you to see the size of the imported module. It’s a huge help with bundlers such as Webpack. You can see whether you are importing the entire library or just a particular utility.&lt;/p&gt;

&lt;p&gt;One problem that exists is that it doesn’t show the cost of custom files or modules.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;REST Client&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As a web developer, we often need to work with REST APIs. For examining the URLs and checking the responses, tools like Postman are used. But why have a different app when your editor can easily do the same task. Welcome &lt;a href="https://marketplace.visualstudio.com/items?itemName=humao.rest-client"&gt;REST Client&lt;/a&gt;. It allows you to send HTTP request and view the response in Visual Studio Code directly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Auto Close Tag and Auto Rename Tag&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Since the advent of React and the traction it has gained in the last few years, HTML-like syntax in the form of JSX is all the rage now. We again have to code with tags JavaScript. Any web developer you would tell you that it is a pain to type the tags. In most cases, we need a tool that can quickly and easily generate tags and their children. Emmet is a perfect example of this already built into VSCode. However, sometimes, you do just want something simple and concise. Such as an auto tag closer, which generates the closing pair of a tag as you type the opening pair. And when you change that same tag, the closing tag automatically gets changed. These two extensions do just that.&lt;/p&gt;

&lt;p&gt;It also works with JSX and many other languages such as XML, PHP, Vue, JavaScript, TypeScript, TSX.&lt;/p&gt;

&lt;p&gt;Get them here — &lt;a href="https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-close-tag"&gt;Auto Close Tag&lt;/a&gt; and &lt;a href="https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-rename-tag"&gt;Auto Rename Tag&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitLens&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As told by its author, GitLens supercharges the Git capabilities built into Visual Studio Code. It packs a surprising number of features such as code authorship shown via Code lens, commit search, history and GitLens explorer. You can read full explanations of these features here. Suffice it to say that you should install this plugin if you do any work with git.&lt;/p&gt;

&lt;p&gt;There are other extensions that focus on a specific functionality. You can install those if GitLens feel bloated or you don’t use many of its features.&lt;/p&gt;

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

&lt;p&gt;Git Project Manager (GPM) allows you to open a new window targeting a git repository directly from VSCode window. Basically, you can now open another repository without having to leave VSCode.&lt;/p&gt;

&lt;p&gt;After installing this extension, you will have to set gitProjectManager.baseProjectsFolders to the list of URLs which contain the repos.&lt;/p&gt;

&lt;p&gt;Example —&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
    "gitProjectManager.baseProjectsFolders": [
        "/home/user/nodeProjects",
        "/home/user/personal/pocs"
    ]
} 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Indenticator&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It visually highlights the current indent depth. So now you can easily distinguish between various blocks indented at different levels. Get it &lt;a href="https://marketplace.visualstudio.com/items?itemName=SirTori.indenticator"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VSCode Icons&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Icons to make your editor more appealing!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dracula (Theme)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One &lt;a href="https://marketplace.visualstudio.com/items?itemName=dracula-theme.theme-dracula"&gt;theme&lt;/a&gt; that I like.&lt;/p&gt;

&lt;p&gt;That's it for today, I hope you like it!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;read more&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/braincuber_technologies/dont-use-switch-or-if-else-in-javascript-instead-try-this-3dhm"&gt;&lt;strong&gt;Don’t Use Switch or If-Else in JavaScript, Instead, Try This&lt;/strong&gt;&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/braincuber_technologies/7-javascript-clean-coding-tips-every-developer-should-know-3pno"&gt;&lt;strong&gt;7 JavaScript clean coding tips every developer should know 😎&lt;/strong&gt;&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.braincuber.com/material-ui-vs-tailwind-css"&gt;Material-UI vs Tailwind CSS&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.braincuber.com/graphql-what-why-and-when"&gt;GraphQL, what, why, and when?&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>3-month plan for Cracking the Coding Interview</title>
      <dc:creator>Braincuber Technologies</dc:creator>
      <pubDate>Fri, 01 Apr 2022 04:24:09 +0000</pubDate>
      <link>https://dev.to/braincuber_technologies/3-month-plan-for-cracking-the-coding-interview-40im</link>
      <guid>https://dev.to/braincuber_technologies/3-month-plan-for-cracking-the-coding-interview-40im</guid>
      <description>&lt;p&gt;How to crack the coding interview? I think every software engineer must have thought of this question at some point in their life. And many are still trying to find answers to this question. I was also wondering about the same a few months back. And then I made a 3-month plan to study for &amp;amp; crack the coding interview. I got 2 good offers after following this plan. I will be sharing the study plan with you so you can also take a few notes from my experience.&lt;/p&gt;

&lt;p&gt;The first thing we need to think about is what we need to include in our study plan. I remember when I started to note down what I needed to study. It was overwhelming, to say the least. But I made the list. And a lot of topics were later added to that initial list as time went by. I will share the list with you so that you don’t have to make the painstaking effort yourself. Let’s first look at what we need to include in our preparation.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Data Structures:&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;One of the fundamentals of programming is data structures. They are used to storing and organize data in a meaningful way. Some important data structures which are a must for coding interviews are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Array&lt;/li&gt;
&lt;li&gt;Stack&lt;/li&gt;
&lt;li&gt;Queue&lt;/li&gt;
&lt;li&gt;Linked List&lt;/li&gt;
&lt;li&gt;Binary Tree&lt;/li&gt;
&lt;li&gt;Binary Search Tree&lt;/li&gt;
&lt;li&gt;Heap&lt;/li&gt;
&lt;li&gt;Graph&lt;/li&gt;
&lt;li&gt;Tree&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Other Important Topics:&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;There are some important topics that don’t fall under the traditional data structures umbrella, but are very important from a coding interview point of view. Some of these are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;String&lt;/li&gt;
&lt;li&gt;Hashing&lt;/li&gt;
&lt;li&gt;Searching&lt;/li&gt;
&lt;li&gt;Sorting&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Important Algorithms:&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Algorithms are very important for coding interviews. They help you in getting to the solution and are as important if not more important than data structures. Some algorithms that you must prepare for the coding interview are:&lt;br&gt;
Backtracking&lt;br&gt;
Divide &amp;amp; Conquer&lt;br&gt;
Branch &amp;amp; Bound&lt;br&gt;
Binary Search&lt;br&gt;
Dynamic Programming&lt;br&gt;
Greedy&lt;br&gt;
Recursion&lt;br&gt;
Sliding Window&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Resources for Studying&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://amzn.to/3wS7bBx"&gt;Programming Interviews Exposed: Coding Your Way Through the Interview&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Study Plan&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now that we know what we need to study in order to prepare for the coding interview, we now need to have a plan for studying. But you should study and prepare according to the plan. Otherwise, a plan is of no use. Because a plan is only as good as the implementation. Let’s look at the plan.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Month 1&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The first month should be dedicated to learning the data structures, concepts, and algorithms mentioned above. If you don't know the data structures, the concepts, and the algorithms required to solve problems, you won’t be able to solve anything.&lt;/p&gt;

&lt;p&gt;If you have been studying from time to time, this process will be a lot easier for you. But if you are starting from scratch, you need to be dedicated. Make sure you go through the concepts thoroughly and understand the nitty-gritty of each topic. Knowing where a List should be used and where a Set should be used might seem trivial now, but during implementation in an interview, it might be the deciding factor in your selection. So be thorough.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Month 2&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After you have studied and prepared for one good month, you should be able to try your hand at problem-solving. But don’t be too ambitious and start off with Medium level or Hard level questions. Start off small. Take baby steps. Don’t try to run before you can even walk.&lt;/p&gt;

&lt;p&gt;You should start off with simple problems, the Easy level first. It’s possible that you might find solving Easy level problems difficult initially, but try to solve them on your own.&lt;/p&gt;

&lt;p&gt;You should get fairly comfortable solving Easy questions in 10–15 days. If you are, it’s time to move to Medium level questions. Just take whatever experience and knowledge you have gained solving Easy level questions and apply it while solving Medium level questions. Remember, you will be spending most of your preparation time solving Medium level questions. And you should. Why? Because most companies ask Easy or Medium level questions only.&lt;/p&gt;

&lt;p&gt;For the second month, if you are able to solve 3 questions daily during the Easy period and 2 questions daily during the Medium period, you will have solved 75+questions by the end of the second month.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Month 3&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you are busy solving Medium level questions by the start of the third month, you are on the right track. You should spend the last 15 days of the second month &amp;amp; the initial 20 days of the third month solving Medium level questions only. In the end, you will have spent a total of 35 days solving Medium level questions.&lt;/p&gt;

&lt;p&gt;By the start of the third month, you should be fairly comfortable solving Medium level questions. You can step up your effort and should aim to solve a minimum of 3 Medium questions per day.&lt;/p&gt;

&lt;p&gt;If you have the time and the willpower to start solving Hard level questions, you can try solving these during the last 10 days of the third month. If you don’t want to solve Hard questions, you can continue with the Medium questions or try to do a revision of whatever you did during the past 3 months.&lt;/p&gt;

&lt;p&gt;For the third month, if you solved 3 questions per day during the Medium period and 1 question per day during the Hard period, you will have solved 70+ questions in the third month.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Important Note&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;While solving the problems, make sure you cover each topic mentioned above. It shouldn’t happen that you solve 15 problems based on dynamic programming, but none based on backtracking. Make sure you touch upon all the topics so that you are ready for each and every type of question that can be asked in the interviews.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Summing It Up&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you follow the plan, you will be able to complete studying all the data structures and algorithms needed for interviews. Plus you would complete solving ~150 questions. And I have considered the daily numbers on the lower side. If you really step up your efforts, you should be able to complete ~200 questions in three months' time. And that should make you ready for the interviews.&lt;/p&gt;

&lt;p&gt;That’s it, folks!!! Hope I have helped you in preparing for the coding interview. Please click the ❤ button below if you found the article helpful :)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Further Reading:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://blog.braincuber.com/javascript-concepts-you-need-to-know-in-order-to-get-started-with-react"&gt;JavaScript concepts you need to know in order to get started with React&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.braincuber.com/quick-sql-tips-for-beginner"&gt;&lt;strong&gt;10 Quick SQL Tips After Writing Daily in SQL for 3 Years&lt;/strong&gt;&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;image credit&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.freepik.com/vectors/computer-cartoon"&gt;Computer cartoon vector created by catalyststuff www.freepik.com&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>tutorial</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Remix vs Next.js: A Detailed Comparison</title>
      <dc:creator>Braincuber Technologies</dc:creator>
      <pubDate>Mon, 28 Mar 2022 09:53:37 +0000</pubDate>
      <link>https://dev.to/braincuber_technologies/remix-vs-nextjs-a-detailed-comparison-2ogg</link>
      <guid>https://dev.to/braincuber_technologies/remix-vs-nextjs-a-detailed-comparison-2ogg</guid>
      <description>&lt;p&gt;A detailed comparison between Remix JS and Next.js frameworks&lt;/p&gt;

&lt;p&gt;Next.js is one of the most popular React frameworks used for server-side rendering. It’s been there for a significant time, and it provides an exceptional developer experience with all the features developers need.&lt;/p&gt;

&lt;p&gt;However, with the open-source introduction of Remix, developers have started to wonder which the better framework for their application is. So, in this article, I will compare and contrast some significant features of Next.js with those of Remix to help you choose the best framework.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.braincuber.com/how-to-upload-files-to-aws-s3-using-nodejs-lambda-and-api-gateway"&gt;&lt;strong&gt;How to upload files to aws s3 using nodejs lambda and api gateway 2022&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.braincuber.com/deploy-react-app-using-aws-amplify"&gt;&lt;strong&gt;Deploy React App using AWS Amplify in 2022&lt;/strong&gt;&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Routing&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There are many similarities between Remix and Next.js when it comes to routings. For example, they follow a file-based routing system and support nested routing and dynamic route segments.&lt;/p&gt;

&lt;p&gt;As far as similarities are concerned, when you create a file inside the /pages directory, it will be automatically set as a route in Next.js.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pages/index.js ==&amp;gt; /
pages/users/index.js ==&amp;gt; /users
pages/users/create.js ==&amp;gt; /users/create
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Remix also can create automatic routes. But, you need to place the files in the app/routes directory.&lt;/p&gt;

&lt;p&gt;As regards differences, Remix routing is built on top of the React Router, and it allows you to utilize React Hooks, like useParams and useNavigate. On the other hand, Remix has built-in support for nested routing with the nested layouts, while Nest.js requires manual configurations.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Data Loading&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There are several data loading techniques in web applications. Those are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Server-side rending in the runtime.&lt;/li&gt;
&lt;li&gt;Server-side rending in the build time.&lt;/li&gt;
&lt;li&gt;Client-side rending at runtime.&lt;/li&gt;
&lt;li&gt;A mix of server-side runtime, client-side and server-side build time, and client-side runtime.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In Next.js, developers can use all the above techniques with different functionality to export data from a page.&lt;/p&gt;

&lt;p&gt;You can use getServerSideProps it to load the data on the server-side at runtime while getStaticProps and getStaticPath can be used to load the data from the server-side at build time. The following example shows how to use getServerSideProps to load data.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export const getServerSideProps = async ({ params, query }) =&amp;gt; { 
  // get a param from the url const id = params.id // getting data from the url query string const DataLimit = query.DataLimit
  ﻿return {props: {id, DataLimit}}
};
export default function FirstPage() { 

  let {id, DataLimit} = useLoaderData(); 
  return ( 
      &amp;lt;div&amp;gt; 
        &amp;lt;h1&amp;gt;The parameters are: {id}&amp;lt;/h1&amp;gt;
      ﻿  &amp;lt;h1&amp;gt;The DataLimit url query is: {DataLimit}&amp;lt;/h1&amp;gt; 
      &amp;lt;/div&amp;gt; 
  );
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In Remix, there are only two methods to load the data. You can use the server-side at runtime and the client-side at runtime to render the data.&lt;/p&gt;

&lt;p&gt;You have to export a loader function from a route to load data from the server-side and useFetcher Hook in Remix to load data on the client-side.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { useLoaderData } from "remix"; 
export let loader = async ({ params, request }) =&amp;gt; { 
  // get a param from the page url const id = params.id // getting data from the url query string const url = new URL(request.url) const dataLimit = url.searchParams.get("dataLimit")
  ﻿return {id, dataLimit}
}; 
﻿export default function FirstPage() { 
  let {id, dataLimit} = useLoaderData();
  return ( 
        &amp;lt;div&amp;gt; 
          &amp;lt;h1&amp;gt;The parameter is: {id}&amp;lt;/h1&amp;gt; 
          &amp;lt;h1&amp;gt;The limit for url query is: {dataLimit}&amp;lt;/h1&amp;gt; 
        &amp;lt;/div&amp;gt; 
  );
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next.js supports server-side rendering (SSR), static site generation (SSG ), Incremental site regeneration (ISR), and CSR (client-side rendering) . On the other hand, Remix only supports SSR and CSR.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Use of Sessions and cookies&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There are no built-in functions to interact with cookies or sessions in Next.js. But popular libraries like Cookie.js can work with Next.js or NextAuth.js to perform user authentication and save session data in a cookie.&lt;/p&gt;

&lt;p&gt;Remix has support for cookies and sessions out of the box. You can generate a cookie by calling a function, then serialize or parse data to store or read it.&lt;/p&gt;

&lt;p&gt;The following code snippet from the Remix shows how to create a logical function for managing a browser cookie in Remix.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { createCookie } from "remix";

const cookie = createCookie("cookie-name", {
  expires: new Date(Date.now() + 60),
  httpOnly: true,
  maxAge: 60,
  path: "/",
  sameSite: "lax",
  secrets: ["s3cret1"],
  secure: true
});

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Deployment&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Next.js can be installed on any server that can run Node.js by running next build &amp;amp;&amp;amp; next start.It has built-in support for running in serverless mode when deploying to Vercel, and the Netlify team has written an adaptor for serverless deployment to their service.&lt;/p&gt;

&lt;p&gt;The Remix was built to run on any platform and interface with any system. As a result, Remix is a request handler inside an HTTP server, allowing you to utilize any server. When you build a Remix app, you’re asked where you want to deploy it, and you have the following options as of this writing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Remix App Server&lt;/li&gt;
&lt;li&gt;Express Server&lt;/li&gt;
&lt;li&gt;Netlify&lt;/li&gt;
&lt;li&gt;Cloudflare Pages&lt;/li&gt;
&lt;li&gt;Vercel&lt;/li&gt;
&lt;li&gt;Fly.io&lt;/li&gt;
&lt;li&gt;Architect (AWS Lambda)&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Styling&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The Remix is slightly different from Next.js when it comes to styling. Remix offers a built-in technique of linking classic CSS style sheets using link tags, while Next.js comes with Styled-JSX as the default CSS in JS solution.&lt;/p&gt;

&lt;p&gt;Styled-JSX allows you to style your components with encapsulated and scoped CSS in your Next.js application. You can use &lt;code&gt;&amp;lt;style jsx&amp;gt;&lt;/code&gt; tag into the existing React component and define the CSS inside that as follows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function Home() {
return (
&amp;lt;div className="container"&amp;gt;
  ﻿&amp;lt;h1&amp;gt;My Cart in Next.js&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;Some paragraph&amp;lt;/p&amp;gt;&amp;lt;style jsx&amp;gt;
    {'
      .container {
        margin: 20px;
      }
      p {
        color: blue;
      }
    `}          
   &amp;lt;/style&amp;gt;&amp;lt;/div&amp;gt;
 )
}               
export default Home
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Remix uses a simple method to add styles to the page using&lt;code&gt;&amp;lt;link rel ="stylesheet"&amp;gt;&lt;/code&gt; tag. When you add the stylesheet link, you can use the links module in Remix routing to export the layout. The code snippet below shows how to use the links function to load the stylesheet in Remix.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export function links() {
return [{
      rel: "stylesheet",
      href: "https://test.min.css"
﻿   }
  ];
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The following example shows how  tag merges the links component in each nested route when rendering the myCart component.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { Links } from "remix";
export default function myCart() {
  return (
    &amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;Links /&amp;gt;
        {/* ... */}
      &amp;lt;/head&amp;gt;
      {/* ... */}
    &amp;lt;/html&amp;gt;
  );
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Conclusion&lt;/p&gt;

&lt;p&gt;Remix improves the developer experience with new abstractions and the user experience by distributing less JavaScript. But Next.js has a more extensive user base with more significant resources allocated to its development from the Vercel team.&lt;/p&gt;

&lt;p&gt;The Remix is mainly used for personal projects and toy applications when it comes to real-life applications. On the other hand, Next.js is used in many production applications.&lt;/p&gt;

&lt;p&gt;Overall, Remix is a robust framework, and it will become more prevalent in 2022. But when dealing with production-level applications, using Next.js would be the obvious choice since it is well established and has community support.&lt;/p&gt;

&lt;p&gt;We hope you have found this helpful. Thank you for reading!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;read more&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.braincuber.com/lessons-i-wish-known-earlier-in-my-software-engineering-career"&gt;&lt;strong&gt;21 lessons I wish I’d known earlier in my software engineering career&lt;/strong&gt;&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/braincuber_technologies/10-ways-to-improve-logical-thinking-skills-in-programming-5012"&gt;&lt;strong&gt;10 ways to improve logical thinking skills in programming&lt;/strong&gt;&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>beginners</category>
      <category>programming</category>
      <category>javascript</category>
    </item>
    <item>
      <title>90 % of Javascript Developer fail to answer these code snippets (Asked in Interview) Part-1</title>
      <dc:creator>Braincuber Technologies</dc:creator>
      <pubDate>Mon, 28 Mar 2022 04:06:46 +0000</pubDate>
      <link>https://dev.to/braincuber_technologies/90-of-javascript-developer-fail-to-answer-these-code-snippets-asked-in-interview-part-1-3561</link>
      <guid>https://dev.to/braincuber_technologies/90-of-javascript-developer-fail-to-answer-these-code-snippets-asked-in-interview-part-1-3561</guid>
      <description>&lt;p&gt;&lt;strong&gt;Q1. Guess the output?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;let x = true&lt;br&gt;
setTimeout (()=&amp;gt;{&lt;br&gt;
x= false&lt;br&gt;
})&lt;br&gt;
while (x)&lt;br&gt;
{&lt;br&gt;
console.log(“hello”)&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;Output:&lt;br&gt;
Hello&lt;/p&gt;

&lt;p&gt;Hello ….will go on printing&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reason&lt;/strong&gt;: In this case, the value of x is true in the global scope and as we know that javascript is a single thread language, the setTimeout is an asynchronous operation so it will go in the task queue and wait for its chance for execution so now we go to “while loop “ the value of x is true so it satisfies the given condition in the while loop now it will print continuously “hello” and after 2 seconds the setTimeout is ready for execution but the call stack is not empty, it is already running the while loop so setTimeout will not get any chance of execution&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q2 Guess the output?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;let x = true&lt;br&gt;
let count =0;&lt;/p&gt;

&lt;p&gt;setTimeout(()=&amp;gt;{&lt;br&gt;
x= false;&lt;br&gt;
},2000)&lt;/p&gt;

&lt;p&gt;setInterval(()=&amp;gt;{&lt;br&gt;
if(x)&lt;br&gt;
{&lt;br&gt;
console.log(count++)&lt;br&gt;
}&lt;br&gt;
},200)&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;0&lt;br&gt;
1&lt;br&gt;
2&lt;br&gt;
3&lt;br&gt;
4&lt;br&gt;
5&lt;br&gt;
6&lt;br&gt;
7&lt;br&gt;
8&lt;/p&gt;

&lt;p&gt;the cursor will be not free on the output screen&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reason&lt;/strong&gt;:In this case, the setTimeout and setInterval is an asynchronous operation so first, it calls the setInterval&lt;br&gt;
,setInterval will print the value of count every 200 milliseconds and then after 2-second setTimeout&lt;br&gt;
will invoke and setInterval condition get dissatisfied, it will print up to 8 and execution will continue&lt;/p&gt;

&lt;p&gt;Please Do Like, Follow and Share, Thank you&lt;/p&gt;

&lt;p&gt;visit &lt;a href="https://blog.braincuber.com"&gt;blog.braincuber.com&lt;/a&gt; for more quality content&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>computerscience</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
