<?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: De🐞ugger</title>
    <description>The latest articles on DEV Community by De🐞ugger (@hi_davids).</description>
    <link>https://dev.to/hi_davids</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%2F342161%2Fa1e1bcf2-4d10-4d95-927c-4f4df0b6c92f.jpg</url>
      <title>DEV Community: De🐞ugger</title>
      <link>https://dev.to/hi_davids</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hi_davids"/>
    <language>en</language>
    <item>
      <title>Top 5 Blog Widgets Plugins For WordPress</title>
      <dc:creator>De🐞ugger</dc:creator>
      <pubDate>Sat, 15 May 2021 23:25:51 +0000</pubDate>
      <link>https://dev.to/hi_davids/top-5-blog-widgets-plugins-for-wordpress-3nnl</link>
      <guid>https://dev.to/hi_davids/top-5-blog-widgets-plugins-for-wordpress-3nnl</guid>
      <description>&lt;p&gt;Widgets were introduced in WordPress version 2.2, and it was known as a distinct advantage for the WordPress world. WordPress widgets plugins will make the sidebar more engaging. Using widgets, a user can add a ton of different sections that a user can add to the sidebar.&lt;/p&gt;

&lt;p&gt;In the beginning, WordPress didn’t come with a variety of widget options but after the new version of WordPress 4.8 released, there are now lots of widget options such as archives, related posts, calendar, video, and text, are introduced. There are plenty of WordPress widget plugins are available with advanced features. In this article, we have accumulated a handful list of free and premium blog widget WordPress plugins. These plugins will enhance the user experience &amp;amp; improve your site structure.&lt;/p&gt;

&lt;p&gt;Let’s check out the plugins now!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Black Studio TinyMCE Widget&lt;/strong&gt;&lt;br&gt;
Black Studio TinyMCE Widget WordPress plugin supports a new visual editor that allows adding rich text and media objects to the website sidebar easily. It is a free plugin and its active install is more than 6 lakhs. Moreover, a user can modify the sidebar widgets in a WYSIWYG manner. The plugin supports shortcodes, smilies, and embed widget text and preview the look before displaying it on the website.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IezC-aFP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kdwu2zgqilnveqt53xpd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IezC-aFP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kdwu2zgqilnveqt53xpd.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. WP Tab Widget&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CQgJkfSe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dsr855cr71n5s48yh2h8.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CQgJkfSe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dsr855cr71n5s48yh2h8.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;WP Tab Widget is a free WordPress plugin made with AJAXified that controls the loading time so content loads as and when demanded by the visitors. To stick your visitors to your website, the loading time is a very important factor. With this plugin, a user can control the order of the blog’s tabs and only shows when demanded. It has a built-in cache system and a super lightweight plugin. There are many customization options available to make it more user-friendly. Get it now for your blogging site.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Widget Context&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6RnvyB4a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c173bnow40jn7idfy34n.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6RnvyB4a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c173bnow40jn7idfy34n.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Widget Context WordPress plugin is beneficial for every website user. It helps to hide and show the widgets on certain sections such as the front page, blog page, post, archives, etc. This plugin has a Target By URL feature that targets the section based on the URLs. Moreover, it has a wildcard symbol that matches the dynamic parts of the URLs.&lt;/p&gt;

&lt;p&gt;It is a mostly used plugin and more than 80000+ users have used this plugin on their sites.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Category Posts Widget&lt;/strong&gt;&lt;br&gt;
Category Posts Widget is a plugin that is specifically designed to display the most recent posts on an online site. It showcases in a great wonderful layout that you can add a sidebar to showcase your website’s latest posts easily. This plugin contains many useful features such as the Load More button, Date range filter, posts filtration, multiple sites support, etc.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Nl2S6o-x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kldjbqpykc96ecrqfwke.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Nl2S6o-x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kldjbqpykc96ecrqfwke.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Meks Smart Author Widget&lt;/strong&gt;&lt;br&gt;
As its name suggests, the Meks Smart Author Widget plugin allows displaying author or user information on the widget. The smart feature of this plugin is that the information about the user or particular author is auto-detection. Moreover, a user can show it in on a single post page or a specific author archive.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mrPr4KDC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6ckxbv53ha5omfaop9up.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mrPr4KDC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6ckxbv53ha5omfaop9up.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With this plugin, a user can link avatar images to the author archive and user display name. The plugin is very useful for the blogging site.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>7 Software Development Principles That Should Be Embraced Daily</title>
      <dc:creator>De🐞ugger</dc:creator>
      <pubDate>Tue, 02 Mar 2021 22:11:12 +0000</pubDate>
      <link>https://dev.to/hi_davids/7-software-development-principles-that-should-be-embraced-daily-59o5</link>
      <guid>https://dev.to/hi_davids/7-software-development-principles-that-should-be-embraced-daily-59o5</guid>
      <description>&lt;p&gt;Being a good programmer is a mix of skills and some common sense. It is all about being pragmatic and knowing what is the solution that fits better your problem. When facing a challenge, there are some software principles that will guide you in choosing the most correct approach.&lt;/p&gt;

&lt;p&gt;Those are a set of guidelines every developer should know and revisit from time to time. Think about them as your secret sauce when programming.&lt;br&gt;
Consistently applying those principles will make your transition from mid to senior software engineer easier. You may find out that (probably) you are applying some of them intuitively.&lt;br&gt;
There are a lot of principles. We will just focus on the seven most important ones. Embracing these will help you improve and become a better programmer.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. You Aren’t Gonna Need It — YAGNI
&lt;/h2&gt;

&lt;p&gt;It’s simple and self-explanatory — but not everybody follows it. When adding code, make sure it’s needed right away. Don’t leave code hanging because you think it might be useful later on.&lt;/p&gt;

&lt;p&gt;This applies when doing refactoring. If you refactor a method/class/file, you shouldn’t be reluctant to remove any methods that are left hanging. Even if they were useful in the past — they are not anymore.&lt;/p&gt;

&lt;p&gt;A day may come when they are needed again, and you can use the git repository to bring them back from the dead.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Don’t Repeat Yourself — DRY
&lt;/h2&gt;

&lt;p&gt;This concept was first formulated by Andy Hunt and Dave Thomas’s book The Pragmatic Programmer: From Journeyman to Master.&lt;br&gt;
The idea revolves around having a single source of truth. What is that anyway?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“In information systems design and theory, single source of truth (SSOT) is the practice of structuring information models and associated data schema such that every data element is mastered (or edited) in only one place. … SSOT systems provide data that are authentic, relevant, and referable.”&lt;/em&gt;&lt;br&gt;
— Wikipedia&lt;/p&gt;

&lt;p&gt;Keeping a single source of truth will help have a more solid and more self-explanatory codebase.&lt;br&gt;
Having duplicated code is a waste. You will have to maintain the same logic in two places, do the tests in two places, and when one place changes, you will have to remember to change the other one.&lt;br&gt;
Most of the time, code duplication comes from a lack of knowledge of the system. Before coding anything, be pragmatic: have a look around. Maybe the feature was implemented somewhere else. Maybe that business logic already exists somewhere else. Reusing code is always a smart choice.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Keep It Simple, Stupid — KISS
&lt;/h2&gt;

&lt;p&gt;This design principle is a design principle noted by the U.S. Navy back in 1960. This principle states that simpler systems will work best and more reliably.&lt;br&gt;
You can find many similarities when this principle and reinventing the wheel, which takes back in the 1970s. It was used as a business and advertising metaphor.&lt;/p&gt;

&lt;p&gt;Applied to software development, it means exactly that — don’t overengineer. Sometimes the smartest solution is the easiest one. Building performant and efficient code with simplicity is beautiful.&lt;br&gt;
Nowadays, one of the most common errors is to try to use the new tools just because they are shiny. Developers shouldn’t be motivated to use the latest tech just because they are new — but because they are right for the job.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Big Design Up Front
&lt;/h2&gt;

&lt;p&gt;This software development approach is crucial — and many times ignored. Before jumping into the implementation part, make sure it’s all well thought out.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Many times, thinking things out in advance saved us serious development headaches later on. … Making this change in the spec took an hour or two. If we had made this change in code, it would have added weeks to the schedule. I can’t tell you how strongly I believe in Big Design Up Front, which the proponents of Extreme Programming consider anathema. I have consistently saved time and made better products by using BDUF and I’m proud to use it, no matter what the XP fanatics claim. They’re just wrong on this point and I can’t be any clearer than that.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;— Joel Spolsky&lt;/p&gt;

&lt;p&gt;Many developers feel that they are not making progress if they haven’t started to code. That is wrong. By drawing a specific plan you are saving yourself from possibly having to start from zero again.&lt;br&gt;
Sometimes, other people need to be involved in the flaws of a design. The sooner those conversations happen, the better for everybody.&lt;/p&gt;

&lt;p&gt;A very common counter-argument is that the cost of fixing issues is lower than the time it takes to plan them. That is certainly not true. The fewer bugs/inconsistencies your user is facing, the better their experience will be. You might not have another chance to get hold of them.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. SOLID
&lt;/h2&gt;

&lt;p&gt;It’s the most well-known software principle. Solid is an acronym for:&lt;/p&gt;

&lt;h3&gt;
  
  
  S) Single-responsibility principle
&lt;/h3&gt;

&lt;p&gt;Its importance cannot be overstated. Every object, class, and method needs to have a single responsibility. If your objects/class/methods are doing too much, you will end up with the well-known spaghetti code. Here is an example:&lt;/p&gt;

&lt;p&gt;This method looks harmless but it is doing too much:&lt;br&gt;
saving the object in the BE&lt;br&gt;
taking care of the UI notification&lt;br&gt;
some navigation&lt;br&gt;
Another side-effect is testing. It is harder to test entangled functionality.&lt;/p&gt;

&lt;h3&gt;
  
  
  O) Open–closed principle
&lt;/h3&gt;

&lt;p&gt;Software entities should be open for extension but closed for modification. I mean, we shouldn’t override methods/classes just by adding more functionality as we need it.&lt;br&gt;
Inheritance is a good way to go about it. In JavaScript, this is mostly done by composition.&lt;/p&gt;

&lt;p&gt;💁 A rule of thumb: If you modify an entity to make it extensible — you failed that principle the first time.&lt;/p&gt;

&lt;h3&gt;
  
  
  L) Liskov substitution principle
&lt;/h3&gt;

&lt;p&gt;This principle says that objects of a superclass must be replaceable with objects of their subclasses, and the application should still work as expected.&lt;/p&gt;

&lt;h3&gt;
  
  
  I) Interface segregation principle
&lt;/h3&gt;

&lt;p&gt;This principle was defined by Robert C. Martin while consulting for Xerox, and it’s an obvious one.&lt;/p&gt;

&lt;p&gt;The software should be split into multiple independents parts. Side-effects should be reduced as much as possible to ensure independence.&lt;br&gt;
Make sure that you are not forcing objects to implement methods they will never need.&lt;/p&gt;

&lt;h3&gt;
  
  
  D) Dependency inversion principle
&lt;/h3&gt;

&lt;p&gt;This principle cannot be overstated enough. We should rely on abstractions, not on concrete implementations. The software should have low coupling and high cohesion.&lt;/p&gt;

&lt;p&gt;You shouldn’t care about how things are built — but about how they work. One easy example is when using dates in JavaScript. You can build your own abstraction layer. That way, if you ever change the Date provider, you will only have one place to change and not a thousand.&lt;/p&gt;

&lt;p&gt;Sometimes, building that abstraction layer takes some effort, but it does pay off in the long run.&lt;br&gt;
As an example check date-io, it creates that abstraction layer that enables you to use it with multiple Date vendors.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Avoid Premature Optimization
&lt;/h2&gt;

&lt;p&gt;Premature optimization is the practice that encourages developers to perform unnecessary optimization before it’s proven that it is needed. I think if you apply KISS and YAGNI you shouldn’t fall for this.&lt;/p&gt;

&lt;p&gt;Don’t get me wrong, it’s good to try to anticipate that something bad is going to happen, but before going into the implementation details you need to check that those optimizations are really useful.&lt;/p&gt;

&lt;p&gt;A very easy example is scaling. You are not going to buy 40 servers because you think your new app is going to be viral. What you will do, instead, is add servers as you need them.&lt;br&gt;
Premature optimization can lead to delays in your code and, therefore, increases the cost of time to market features.&lt;br&gt;
Many know premature optimization as the root of all evil.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Occam’s Razor
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;“Occam’s razor, Ockham’s razor, Ocham’s razor (Latin: novacula Occami), or law of parsimony (Latin: lex parsimoniae) is the problem-solving principle that “entities should not be multiplied without necessity”, or more simply, the simplest explanation is usually the right one.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;-Wikipedia&lt;/p&gt;

&lt;p&gt;What does it mean in the programming world? Don’t create unnecessary entities without them being needed. Be pragmatic — think if those are needed as they might end up increasing the complexity of your codebase.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;These principles are not very complicated. In fact, their simplicity is what makes them so beautiful. If you are overwhelmed, don’t be. For now, just try to increase your awareness, and try to include them one at a time in your daily routine.&lt;/p&gt;

&lt;p&gt;Having some basic — but powerful — principles to stick to will help you become a better programmer and have a clearer idea of why you are doing things.&lt;/p&gt;

&lt;p&gt;If you are applying most of them intuitively it’s good to have that aha moment where you see why you were doing things in a certain way.&lt;/p&gt;

&lt;p&gt;More programming content will be coming your way soon.&lt;br&gt;
Cheers.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Overcome Programmer’s Block</title>
      <dc:creator>De🐞ugger</dc:creator>
      <pubDate>Tue, 02 Mar 2021 16:15:51 +0000</pubDate>
      <link>https://dev.to/hi_davids/how-to-overcome-programmer-s-block-48hl</link>
      <guid>https://dev.to/hi_davids/how-to-overcome-programmer-s-block-48hl</guid>
      <description>&lt;p&gt;So it’s not just writers who get stuck when they stare at a blank page — I mean, a blank code editor. Whether it’s for a programming assignment or a work project, you just don’t know where to start sometimes. It can make you feel really frustrated. Finishing the task feels so far away.&lt;/p&gt;

&lt;p&gt;What can you do in this case besides panicking and banging your head against the keyboard? Let’s explore five steps to overcoming coder’s block:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;You need a break. If you have been staring at the blank screen for a while and you cannot come up with any good ideas to approach the problem, you need to get up and do something else. You can take a walk around the neighborhood, bake some cookies, or watch funny cat videos on YouTube and just take your mind off the problem for now.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After your fun little break, you need to get back to work. Yes, no procrastinating is allowed. Take a look at the problem again and give yourself five minutes to take another stab at it. In those five minutes, you can read the question again, write the signature of the functions, write pseudocode, draw a diagram — do whatever first tiny step you need to do to get started.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Write down any specific questions you have about the problem that you do not know the answer to on a notepad. This makes the task less overwhelming. Perhaps you do not know how to make a button clickable. You would write “How do I make a button clickable in JavaScript?” on your notepad. If you have to create an API and you don’t even know what that means, you should write “What is an API?” See what I mean? Every little thing that you do not know, you need to write down. As you continue to do more research, you may come across more things you do not know, so you need to keep track of them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once you have specific questions listed, Google and Stack Overflow are your best friends. Chances are most of us programmers think alike, have asked the same questions before, and have had the same bugs before. Most of the time, you will be able to answer all of the questions you wrote down yourself if you are resourceful at finding answers. This is a great way to get unstuck by helping yourself.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Finally, if you have tried finding the answers to your questions, but you are still stuck, try to get help from others. If you are in school, you can ask your professors and TAs. At work, you can ask coworkers or your manager. Even if they do not know the answer, hearing different perspectives can help you get unstuck and come up with a better way to approach the problem.&lt;br&gt;
Know that all programmers get coder’s block sometimes, and it is perfectly OK! In fact, the experience helps you grow and learn new skills. Just don’t get coder’s block during a coding interview.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>Hackathons : Why You Should Do Them</title>
      <dc:creator>De🐞ugger</dc:creator>
      <pubDate>Tue, 02 Mar 2021 15:50:55 +0000</pubDate>
      <link>https://dev.to/hi_davids/hackathons-why-you-should-do-them-ibp</link>
      <guid>https://dev.to/hi_davids/hackathons-why-you-should-do-them-ibp</guid>
      <description>&lt;p&gt;Do you have to be a hacker to do a hackathon? Nope! Typically, a hackathon is an event where coders, designers, and other people get together in teams and get to build an innovative project to present! However, most hackathons actually don’t require participants to know how to code and are perfectly friendly for beginners. Let me give you 5 reasons why you should at least give one hackathon a try! &lt;/p&gt;

&lt;h3&gt;
  
  
  1. They are low-time commitment!
&lt;/h3&gt;

&lt;p&gt;Usually hackathons are about 1–3 days so you can find one weekend to participate in one. You don’t have to spend weeks working on a project and you will be surprised at how much you can accomplish in 24 hours!&lt;/p&gt;

&lt;h3&gt;
  
  
  2. You get to meet interesting people
&lt;/h3&gt;

&lt;p&gt;Not only do you get to meet people from different schools and companies, and backgrounds, but you also get to meet people with different skill sets and backgrounds. Besides programmers and designers, I’ve been able to meet owners of non-profits, managers at start-ups, business specialists, and other talented people at these events. You have tons of opportunities to meet new friends at these events and stay in the touch with your teammates afterwards.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. You get to develop and explore a bunch of skills in a short amount of time
&lt;/h3&gt;

&lt;p&gt;Your teammates will likely have knowledge in different areas and you will be able collaborate and learn from them. There are also usually workshops hosted by experienced workers in the industry throughout the event that you can attend if you want. Each team also usually gets an industry mentor so you can learn from them. In addition, big companies and sponsors usually provide free resources from 3D printers to virtual reality glasses to Amazon Alexa and other various software and hardware. Hackathons are a great opportunity to be able to explore new technologies that you otherwise may not have the chance to use.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Build a real project that you can put on your portfolio
&lt;/h3&gt;

&lt;p&gt;Employers love to see that you have been proactive by getting involved with hackathon events. Even if you do not want to work in tech, they demonstrate skills such as teamwork, innovation, and business acumen. The jam-packed event really pushes you to try your best during the short time to come up with a usable and creative project that you otherwise probably would not have come up with and implemented.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. They are fun!
&lt;/h3&gt;

&lt;p&gt;Hackathons usually have tons of fun activities planned throughout the day and they giveaway a lot of free swag. They also provide free meals and snacks during the entire event. And in the chance that you do win, you may win a large cash prize and other cool prizes like XBoxes, MacBooks, iPads, etc.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Why You Should Love Programming Like I Do!</title>
      <dc:creator>De🐞ugger</dc:creator>
      <pubDate>Mon, 01 Mar 2021 04:36:56 +0000</pubDate>
      <link>https://dev.to/hi_davids/why-you-should-love-programming-like-i-do-2dno</link>
      <guid>https://dev.to/hi_davids/why-you-should-love-programming-like-i-do-2dno</guid>
      <description>&lt;p&gt;People ask me all the time — why do you like coding? Isn’t it really hard? Isn’t the work boring? Do you still have a social life?&lt;/p&gt;

&lt;p&gt;Today, I am going to share 5 reasons why I have stuck with coding and why I love it!&lt;/p&gt;

&lt;h2&gt;
  
  
  1. You are always learning and challenging yourself!
&lt;/h2&gt;

&lt;p&gt;Whether you are learning a new programming language, trying out a new framework, or trying to solve a problem with a new algorithm, you are always stretching your mind. Now don’t get me wrong, the learning curve for coding is pretty steep. However by letting yourself make those mistake and experience those failures, that is when you grow the most. I’ve learned so much by overcoming the challenges that come with coding. Not only does coding make you a better problem solver but it also teaches you patience, perseverance, and discipline. Coding pushes you outside of your comfort zone in a good way!&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Problem solving can be relaxing.
&lt;/h2&gt;

&lt;p&gt;I know what you are thinking. Like David, how can you say solving problems is relaxing?? When I get stuck on a problem, I want to tear my hair out! Don’t worry, I feel you. In fact, I’ve been there many times myself.&lt;br&gt;
However, my mindset completely shifted when I started approaching the problems and bugs I found while coding from a curious perspective. Instead of talking down on myself and saying things like why aren’t you smart enough, why can’t you figure this out, maybe this isn’t for you, I decided to ask myself better questions. I found myself going to StackOverFlow, Google,&lt;br&gt;
forums, TAs, and professors — and every single time, I would be able to solve that nasty bug or memory leak or whatever I thought was impossible! It’s kind of like being a detective — going to multiple sources, collecting information, and putting the pieces together. The feeling when you finally figure it out is so rewarding!&lt;/p&gt;

&lt;h3&gt;
  
  
  3. You get to work on exciting projects!
&lt;/h3&gt;

&lt;p&gt;What is cool about being a coder is that you have control over how an application or website or whatever you create works! One of the first software engineering projects I did was a bus app I made in one of my classes. I got to parse data from my city’s transit system to build an app that tracks when buses arrive at each station. Another cool project I created at a hackathon was an app to help match children looking for a adoption family to families looking to adopt. I also created a Spotify for smoothies app at another hackathon. I also created applications for large companies such as Nordstrom and Best Buy during my internships which leads me to my next point:&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Code opens up opportunities for you.
&lt;/h3&gt;

&lt;p&gt;When I discovered coding, I didn’t even know it was coding. I was using HTML tags inside a game forum to embed images, links, and videos I thought was cool. That lead me into learning web design and using HTML and CSS to create websites. When I entered my first year of college.Then, I caught the coding bug and went on to teach myself JavaScript, Ruby, Java, Python, etc. Combined with my computer science classes, I was able to pass multiple coding interviews to land a software engineering internship role.  I also got to travel to different cities to attend programs and conferences hosted by companies. None of this would have been possible if I did not know how to code and I am forever grateful for the endless opportunities coding has given me.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. You get to be a part of a passionate community.
&lt;/h3&gt;

&lt;p&gt;Sure, most of the time, programming is an individual activity. However, I’ve found my computer science classes to be some of the most collaborative as well. When everyone is struggling and learning something new, people tend to collaborate more with one another to figure out problems together. In the coding community, nobody knows everything. There’s always a programming language, a new framework, a new API, or a new problem to solve and everyone needs help sometimes. Most people I’ve met in the coding community loves helping each other out. Whether that is your fellow classmates or professors or strangers on StackOverflow, people want to help you figure things out. Plus, most people in technology are very passionate about the things they have learned and are open to sharing. I have been able to meet so many talented, hardworking, and intelligent people through coding. The community definitely makes you feel less alone when you get another segmentation fault … cause guess what, we’ve all been there before.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Understanding JavaScript Variable Scopes</title>
      <dc:creator>De🐞ugger</dc:creator>
      <pubDate>Mon, 01 Mar 2021 04:20:05 +0000</pubDate>
      <link>https://dev.to/hi_davids/understanding-javascript-variable-scopes-3me0</link>
      <guid>https://dev.to/hi_davids/understanding-javascript-variable-scopes-3me0</guid>
      <description>&lt;p&gt;As a newbie in JavaScript, the fundamental word I heard a lot was variables. It was mentioned in every book, article, and tutorial on JavaScript I came across. That's because, in every JavaScript file, a variable must be used.&lt;/p&gt;

&lt;p&gt;In this article, we will learn the JavaScript variable scope, and also the concept of the keywords used in variable declaration. Please always try out the examples in your dev tool it will help you understand better.&lt;/p&gt;

&lt;p&gt;What is a variable?&lt;/p&gt;

&lt;p&gt;A variable is a named 'container' for storing data. We use variables to store and manipulate different data types. Whenever we declare a variable we use these keywords: &lt;code&gt;var&lt;/code&gt; &lt;code&gt;let&lt;/code&gt; &lt;code&gt;const&lt;/code&gt;. Variable scope determines the accessibility of that variable in JavaScript code. Variables can be declared at different scopes viz&lt;/p&gt;

&lt;p&gt;*Global Scope&lt;br&gt;
*Local Scope&lt;/p&gt;
&lt;h3&gt;
  
  
  Global Scope
&lt;/h3&gt;

&lt;p&gt;Variables with global scope can be accessed anywhere within the same JavaScript file. Any variable declared outside a block of code in a JavaScript file has a global scope. A block in JavaScript is any line(s) of code enclosed between two curly brackets (&lt;code&gt;{}&lt;/code&gt;). The block of code could be a function block, a loop block, a conditional block, etc.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let myName = 'Orbie';
function letGlobalScope() {
  console.log(myName) // Orbie
  let color = 'Green';
  if (true) { 
    let height = 1.8
    console.log(color)
    // Green, color is accessible in the if block because it is globally scoped relative to the function block.
    // it can be accessed anywhere in the letGlobalScope function
  }
  console.log(height) // 30, height is not accessible.
}
letGlobalScope()
console.log(color) // myAge is not accessible outside the function block.

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

&lt;/div&gt;



&lt;h3&gt;
  
  
  Local Scope
&lt;/h3&gt;

&lt;p&gt;Variables declared within a block of code in a JavaScript file are said to have a local scope because those variables can only be accessed within that block of code. Since local variables are only recognized within the block they are declared, the same variable names can be used within different code blocks.&lt;/p&gt;

&lt;p&gt;Local variables are created when the block of code within which they are declared is executed and deleted when the execution of that block is completed.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function letLocalScope() {
  let myAge = 30; 
  if (true) {    
    // variables declared inside the if will not be accessed outside the if block
    let color = 'Blue';
    let sum = 20;

    console.log(color) // Blue
    console.log(sum) // 20
    console.log(myAge) // 30
  }  
  console.log(color) //Uncaught ReferenceError: color is not defined color is not accessible because color has a local scope. It's only accessible in the if block
  console.log(myAge) // myAge is accessible because it has a local scope. i.e it's only accessible in letLocalScope function block.
}
letLocalScope()
console.log(myAge) //Uncaught ReferenceError: myAge is not defined

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

&lt;/div&gt;



&lt;p&gt;In the code above, the variable &lt;code&gt;myAge&lt;/code&gt; can be accessed anywhere within the function letLocalScope because it has a local scope. However, it cannot be accessed outside that function block.&lt;/p&gt;

&lt;h3&gt;
  
  
  Variables Declaration Keywords Scope
&lt;/h3&gt;

&lt;p&gt;Before 2015, variables can only be declared with the &lt;code&gt;var&lt;/code&gt; keyword, in 2015 ECMAScript introduced &lt;code&gt;let&lt;/code&gt; and &lt;code&gt;const&lt;/code&gt; important JavaScript keywords.&lt;/p&gt;

&lt;h3&gt;
  
  
  The &lt;code&gt;var&lt;/code&gt; Keyword
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;var&lt;/code&gt; keyword declares a function-scoped or globally-scoped variable. Any variable that is declared with the &lt;code&gt;var&lt;/code&gt; keyword, cannot have block scope. Whenever variables are declared with the &lt;code&gt;var&lt;/code&gt; keyword you can redeclare that variable without an error. However, using the &lt;code&gt;var&lt;/code&gt; can impose problems in your code. So be mindful of how you declare with var.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var color = 'blue'; 

if(true) {
   var color = 'pink';
   console.log(color) // it prints out pink
}
console.log(color) //It prints out pink instead of blue

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

&lt;/div&gt;



&lt;h3&gt;
  
  
  The &lt;code&gt;let&lt;/code&gt; Keyword
&lt;/h3&gt;

&lt;p&gt;When a variable is declared with let, it's scoped to all block codes(function block, if block, loop, etc).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let name = 'Orbie'; 

if(true) {
   let name = 'Moween';
   console.log(name) //Moween 
}
console.log(name) //Orbie


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

&lt;/div&gt;



&lt;h3&gt;
  
  
  The &lt;code&gt;const&lt;/code&gt; Keyword
&lt;/h3&gt;

&lt;p&gt;A variable declared with const, it's scoped to all block codes(function block, if block, loop, etc). Once a variable is declared with the const keyword, it cannot be reassigned&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const gravity = 9.81;
gravity = 1.5;
console.log(gravity) //TypeError: Assignment to constant variable.

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

&lt;/div&gt;



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

&lt;p&gt;Javascript variables are a fundamental part of programming. So, understanding JavaScript variables Scope during declaration will help you a lot. It's kinda problematic to declare variables with the &lt;code&gt;var&lt;/code&gt; keyword, so avoid using it. As a Javascript developer, it is best practice to declare variables that will be reassigned with the let keyword, and the variables that will not be reassigned in your code with the const keyword.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Understanding JavaScript Basics</title>
      <dc:creator>De🐞ugger</dc:creator>
      <pubDate>Mon, 01 Mar 2021 03:55:59 +0000</pubDate>
      <link>https://dev.to/hi_davids/understanding-javascript-basics-13bd</link>
      <guid>https://dev.to/hi_davids/understanding-javascript-basics-13bd</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br&gt;
When learning Web Development we have 3 prerequisite languages that goes without saying, a web developer should learn. HTML–Hypertext Markup Language that gives a web page structure. CSS–Cascading style sheet language that styles a web page.&lt;/p&gt;

&lt;p&gt;JavaScript–programming language that helps with interactivity of the web. Did you notice only JavaScript is as a programming language? Ideally, a computer doesn’t figure out what to do or display. We need a programming language that tells the computer what to do, or the action expected when a user interacts with the web page.&lt;/p&gt;

&lt;p&gt;Code is for humans. Meaning, the code we write is more of instructions that we pass to the web browser or computer. Programming Languages are there to help on how you pass instructions for the computers to execute the instruction.&lt;/p&gt;

&lt;p&gt;Learning JavaScript can be intimidating. At least it was for me when I started. Especially when you’re learning on your own, reading countless blogs on web development while trying out the endless free online courses.&lt;/p&gt;

&lt;p&gt;All these blogs would talk about the need for learning JavaScript and that it would be the one skill if learned well would get you at that first tech role. Learn, understand thoroughly the fundamentals and practice. Make sure you don’t jump into learning frameworks before understanding the fundamentals as this is the blueprint. There’s a lot of truth in that, so I’ve learnt.&lt;/p&gt;

&lt;p&gt;Starting off, we learn the basics. These will get you on the programming journey; help you learn how to create proper websites that users can interact with while browsing. We’ll go through this in a series. For starters, we’ll cover JavaScript basics.&lt;/p&gt;

&lt;p&gt;Let’s dive in&lt;/p&gt;
&lt;h4&gt;
  
  
  Statement
&lt;/h4&gt;

&lt;p&gt;JavaScript as a programming language uses a set of instructions or steps that a computer follows. The instructions or the steps are referred to as statement&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let today = new Date()

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

&lt;/div&gt;



&lt;h4&gt;
  
  
  Comments
&lt;/h4&gt;

&lt;p&gt;Same as in Html &amp;amp; CSS comments are crucial in JavaScript. We use this to communicate – ideally the code enclosed need not to be displayed to the browser. There are two ways to comment in JavaScript as below&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// A comment

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

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/*
This is a comment that
has multiple lines!
*/

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

&lt;/div&gt;



&lt;h4&gt;
  
  
  Variable
&lt;/h4&gt;

&lt;p&gt;A variable can be defined as a container that holds data. In order to use a variable you need to name it. This is done where you declare a variable and we use Var, Let and Const to do so depending on the data you want stored. The difference between the three is based on scope, something we'll expound on later in the series.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var count = 10;

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

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let weather = 'Sunny';

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

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const fullName = 'Grace Brown';


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

&lt;/div&gt;



&lt;h4&gt;
  
  
  Data Types
&lt;/h4&gt;

&lt;p&gt;When programming we store data that we manipulate and use for one thing or another. A programming language such as JavaScript like other languages use Data Types to do so. When we talk about data what comes to mind is text and numbers right?&lt;/p&gt;

&lt;p&gt;In programming languages, these words might be slightly changed in the case where instead of saying “text” we say String. Think of it like string of characters.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// double quotes
console.log("This is a string!")
// single quotes
console.log('Good Morning!')

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

&lt;/div&gt;



&lt;h4&gt;
  
  
  Numbers
&lt;/h4&gt;

&lt;p&gt;In the case of numbers, for JavaScript a number is just a number.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// The number 8
console.log(8)

// Addition
console.log(3 + 4)

// Subtraction
console.log(20 - 3)

// Multiplication
console.log(3 * 7)

// Division
console.log(50 / 5)

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

&lt;/div&gt;



&lt;h4&gt;
  
  
  Booleans
&lt;/h4&gt;

&lt;p&gt;Are also a type of data type that represents true or false.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;isLogged = true
inStock = false

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

&lt;/div&gt;



&lt;h4&gt;
  
  
  Null and undefined
&lt;/h4&gt;

&lt;p&gt;They represents the lack of value and are presented in different scenarios making them have a subtle difference. Null means (has no value) while undefined means (has not been given value)&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(null)
console.log(undefined)

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

&lt;/div&gt;



&lt;h4&gt;
  
  
  Object
&lt;/h4&gt;

&lt;p&gt;Represents a collection of data making them composite data types. They represent entities in such that it contains properties that describe it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let cat = {
name: 'Kat',
legs: 4,
color: 'brown'
}

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

&lt;/div&gt;



&lt;h4&gt;
  
  
  Arrays
&lt;/h4&gt;

&lt;p&gt;Is a type of a variable (stores data) however the difference is an array stores a list of values. We access items in an array numbering them starting from zero and not one. This type of numbering is called index.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let fruits = ['Mango', 'Kiwi', 'Bananas', 'Watermelon']


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

&lt;/div&gt;



&lt;h4&gt;
  
  
  Expressions
&lt;/h4&gt;

&lt;p&gt;An expression is code that evaluates to a value. There are two types of expression; one that assigns a value to a variable and one that uses two or more values to return a single value.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;60  // a number literal expression

"Hello World" // a string literal expression

5 * 2 // "gives" us the value 10

"Hello " + "Mary" // "gives" the value "Hello Mary"

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

&lt;/div&gt;



&lt;h4&gt;
  
  
  Operators
&lt;/h4&gt;

&lt;p&gt;They help to create single value from single or more value.&lt;/p&gt;

&lt;h4&gt;
  
  
  Types of Operators:
&lt;/h4&gt;

&lt;p&gt;Assignment Operators&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;color = 'grey';

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

&lt;/div&gt;



&lt;h4&gt;
  
  
  Arithmetic Operators
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;area = 7 * 5;

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

&lt;/div&gt;



&lt;h4&gt;
  
  
  String Operator
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;greetings = 'Hello ' + 'John';
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Comparison Operator
&lt;/h4&gt;

&lt;p&gt;Compares two values and returns true or false.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;spend = 3 &amp;gt; 5;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Logical Operator
&lt;/h4&gt;

&lt;p&gt;They combine expressions and return true or false&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;spend = (5 &amp;gt; 3) &amp;amp;&amp;amp; (2 &amp;lt;4)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;This is just a tip of the iceberg, honestly. We have more to dive into for example; where to use these fundamentals. What works where or when, and so on. Until the next series, keep coding and keep safe.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
