<?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: Anthony</title>
    <description>The latest articles on DEV Community by Anthony (@brandgrim).</description>
    <link>https://dev.to/brandgrim</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%2F947406%2F4df7096a-1ff7-4d5e-adeb-c7a17d6846bf.jpg</url>
      <title>DEV Community: Anthony</title>
      <link>https://dev.to/brandgrim</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/brandgrim"/>
    <language>en</language>
    <item>
      <title>5 Useful Linux Commands to make you look like a Pro</title>
      <dc:creator>Anthony</dc:creator>
      <pubDate>Tue, 22 Nov 2022 19:17:58 +0000</pubDate>
      <link>https://dev.to/brandgrim/5-useful-linux-commands-to-make-you-look-like-a-pro-nbn</link>
      <guid>https://dev.to/brandgrim/5-useful-linux-commands-to-make-you-look-like-a-pro-nbn</guid>
      <description>&lt;p&gt;The command line can be an intimidating and scary black screen when first introduced to beginners. Where are the fancy buttons? The colors? How can I move files? Where is my mouse!?&lt;/p&gt;

&lt;p&gt;These 5 Linux Commands will give you a better handle of the command line and will make you look like a pro.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. "&lt;code&gt;cp&lt;/code&gt;"
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;cp&lt;/code&gt; command stands for "copy" and the syntax of the &lt;code&gt;cp&lt;/code&gt; command works 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;$ cp [OPTIONS] SOURCE DESTINATION
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Where the &lt;code&gt;SOURCE&lt;/code&gt; is copied over to &lt;code&gt;DESTINATION&lt;/code&gt;, you can also have multiple &lt;code&gt;SOURCE&lt;/code&gt; files, so that you can copy over multiple files to &lt;code&gt;DESTINATION&lt;/code&gt;. A useful flag that you may end up using a lot is the &lt;code&gt;-R&lt;/code&gt;, &lt;code&gt;-r&lt;/code&gt;, or &lt;code&gt;--recursive&lt;/code&gt; command, which allows you to cp entire directories recursively. For example:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RPX7r-q5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/giym48e5pdsj2galchdt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RPX7r-q5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/giym48e5pdsj2galchdt.png" alt="cp command" width="880" height="500"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  2. "&lt;code&gt;mv&lt;/code&gt;"
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;mv&lt;/code&gt; command otherwise known as "move" will move files wherever you want them to go, similar to the &lt;code&gt;cp&lt;/code&gt; command, but instead of leaving a copy the entire file or directory will get moved to the &lt;code&gt;DESTINATION&lt;/code&gt;. Also, in the &lt;code&gt;man&lt;/code&gt; docs &lt;code&gt;mv&lt;/code&gt; it shows, &lt;code&gt;mv - move (rename) files&lt;/code&gt;. So, not only can you move files, but by using the &lt;code&gt;mv&lt;/code&gt; command 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;$ mv [FILE] [RENAMED]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A useful flag to understand what is going on while using the &lt;code&gt;mv&lt;/code&gt; command is the &lt;code&gt;-v&lt;/code&gt; command, which stands for verbose. When you use the &lt;code&gt;mv&lt;/code&gt; command, use a &lt;code&gt;-v&lt;/code&gt; before your &lt;code&gt;SOURCE&lt;/code&gt; input to show a more detailed view of what the &lt;code&gt;mv&lt;/code&gt; command is doing. For example:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--14mjmKdo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j6c7fqxdcxsu1xc2yhf4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--14mjmKdo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j6c7fqxdcxsu1xc2yhf4.png" alt="mv command" width="880" height="548"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  3. "&lt;code&gt;|&lt;/code&gt;"
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;|&lt;/code&gt; command, aka the "pipe" command is used to combine two or more commands where the first command will be an input for the second command. (And so on so forth) Seeing the "pipe" in action makes it easier to understand.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Srml7fV6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cmbfw9q2n99itsdpnawb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Srml7fV6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cmbfw9q2n99itsdpnawb.png" alt="Pipe Command" width="880" height="524"&gt;&lt;/a&gt;&lt;br&gt;
In this block of code, the contents of cat are shown, then you would use the &lt;code&gt;|&lt;/code&gt; command to use the contents of &lt;code&gt;file.txt&lt;/code&gt; and run the command &lt;code&gt;sort&lt;/code&gt; on them, which alphabetically sorts the contents of &lt;code&gt;file.txt&lt;/code&gt; and displays those results on the console. &lt;/p&gt;
&lt;h2&gt;
  
  
  4. &lt;code&gt;&amp;gt;&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;The right-angle bracket is a way to transform and push data in your terminal from one place to another. Just like the example from the pipe command you can store the data of the sorted &lt;code&gt;file.txt&lt;/code&gt; to another file called &lt;code&gt;sorted_file.txt&lt;/code&gt;, so:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WMWuLc__--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5u6v8k5kwym2l5silsfc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WMWuLc__--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5u6v8k5kwym2l5silsfc.png" alt="Angle braket command" width="880" height="643"&gt;&lt;/a&gt;&lt;br&gt;
First, you sorted checked the file contents of &lt;code&gt;file.txt&lt;/code&gt; and then you used the &lt;code&gt;pipe&lt;/code&gt; command along with the &lt;code&gt;sort&lt;/code&gt; command. From above, you saw that this displayed the contents of &lt;code&gt;file.txt&lt;/code&gt; but alphabetically sorted, now with the &lt;code&gt;&amp;gt;&lt;/code&gt; command, you take those contents of the alphabetically sorted file and put that data into a new file called &lt;code&gt;sorted_file.txt&lt;/code&gt;. Neat right?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The &lt;code&gt;&amp;gt;&lt;/code&gt; and &lt;code&gt;|&lt;/code&gt; may not be super useful by themselves, but when used with other commands they are very powerful tools that you can use to your advantage. &lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  5. &lt;code&gt;grep&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;From the &lt;code&gt;man&lt;/code&gt; docs &lt;code&gt;grep&lt;/code&gt; prints lines that match a pattern that you specify. The usage is as follows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;OPTION...] PATTERNS &lt;span class="o"&gt;[&lt;/span&gt;FILE...]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A simple usage for the &lt;code&gt;grep&lt;/code&gt; command could be to find all lines that have an "a" in a file. For example:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--b-L0vjGj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/58zgc1l3g5c994rivr0j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--b-L0vjGj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/58zgc1l3g5c994rivr0j.png" alt="Show all As" width="880" height="548"&gt;&lt;/a&gt;&lt;br&gt;
You can extend the &lt;code&gt;grep&lt;/code&gt; command to look for certain files, combining the &lt;code&gt;grep&lt;/code&gt; command with the &lt;code&gt;|&lt;/code&gt; command:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0hSjGDeY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2akbpyda1dkhhw3cw2e8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0hSjGDeY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2akbpyda1dkhhw3cw2e8.png" alt="More piping and grepping" width="880" height="596"&gt;&lt;/a&gt;&lt;br&gt;
Using these commands in unison with each other will give you a better grasp at the Linux terminal, and make you look like a pro to your friends and co-workers.&lt;/p&gt;
&lt;h2&gt;
  
  
  BONUS: &lt;code&gt;tree&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;tree&lt;/code&gt; command is not a preinstalled command available in Linux, although, it is a nifty tool that can help you find files in your system. To install &lt;code&gt;tree&lt;/code&gt; run&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;tree
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For Ubuntu systems, although other systems may use different package managers. &lt;code&gt;tree&lt;/code&gt; lists contents of a directory in a tree-like format. For basic usage you could run&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;tree folder
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For example:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lx4fKf9H--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e0e96kdkwbyjxv96835r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lx4fKf9H--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e0e96kdkwbyjxv96835r.png" alt="Tree Usage" width="880" height="780"&gt;&lt;/a&gt;&lt;br&gt;
Then, using your new founded knowledge of the "pipe" command and "grep" you can filter and find specific files that you want, for example, searching for all &lt;code&gt;.cpp&lt;/code&gt; files.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;tree labs | &lt;span class="nb"&gt;grep&lt;/span&gt; .cpp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Hope you found this useful!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>linux</category>
      <category>productivity</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Customize Your Terminal with Oh My Zsh</title>
      <dc:creator>Anthony</dc:creator>
      <pubDate>Sun, 13 Nov 2022 02:59:46 +0000</pubDate>
      <link>https://dev.to/brandgrim/customize-your-terminal-with-oh-my-zsh-1hfb</link>
      <guid>https://dev.to/brandgrim/customize-your-terminal-with-oh-my-zsh-1hfb</guid>
      <description>&lt;p&gt;If you feel like your terminal has a boring, unattractive, and bland style. Sort of like this one:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1xv427uq8qudiegur02g.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%2F1xv427uq8qudiegur02g.png" alt="Boring Terminal"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You may want to consider upgrading the &lt;strong&gt;look&lt;/strong&gt; of your terminal to something vibrant and colorful.&lt;/p&gt;
&lt;h2&gt;
  
  
  Oh My Zsh
&lt;/h2&gt;

&lt;p&gt;Oh My Zsh "is an open source, community driven framework for managing your Zsh configuration." &lt;a href="https://ohmyz.sh/" rel="noopener noreferrer"&gt;Source&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Oh My Zsh comes with a ton of custom themes that you can include in your terminal, along with 275+ plugins such as the "git" plugin (which comes in preinstalled) that you can use to individualize your terminal experience. Not to mention Oh My Zsh comes with a vibrant open-source community where you can post issues. They even have their own T-Shirts! Cool!&lt;br&gt;
&lt;a href="https://github.com/ohmyzsh/ohmyzsh/wiki/Volunteers" rel="noopener noreferrer"&gt;Link to their Github&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  How to Get Started
&lt;/h2&gt;

&lt;p&gt;To start, you need to make sure that you zsh installed, to insure you have &lt;code&gt;zsh&lt;/code&gt; installed you can simply run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ zsh --version
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;in your terminal. If you get a version number back, great! If not you can run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ apt install zsh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Assuming your running Ubuntu, the process may be different depending on what Distro you have installed on your system.&lt;/p&gt;

&lt;p&gt;Now that you have &lt;code&gt;zsh&lt;/code&gt; installed, to install &lt;code&gt;Oh My Zsh&lt;/code&gt; you can run:&lt;br&gt;
(with curl)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;(with wget)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;(with fetch)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sh -c "$(fetch -o - https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once you have installed Oh My Zsh, you may need to restart/reopen your terminal for the changes to take effect. &lt;/p&gt;

&lt;h2&gt;
  
  
  Customizing Your Terminal
&lt;/h2&gt;

&lt;p&gt;There is a link on Oh My Zsh Github which has a list of themes you can customize your terminal with. &lt;a href="https://github.com/ohmyzsh/ohmyzsh/wiki/Themes" rel="noopener noreferrer"&gt;Here&lt;/a&gt;&lt;br&gt;
As soon as you have found a theme you like you need to edit your &lt;code&gt;.zshrc&lt;/code&gt; file in order to make any changes.&lt;br&gt;
For example, if you wanted the &lt;code&gt;agnoster&lt;/code&gt; theme:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwhym4peatzdlvu7ll19j.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%2Fwhym4peatzdlvu7ll19j.png" alt="Agnoster Theme"&gt;&lt;/a&gt;&lt;br&gt;
You would need to edit the &lt;code&gt;.zshrc&lt;/code&gt; file, use any text editor you like. (Although, only REAL programmers use &lt;code&gt;vim&lt;/code&gt;)&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxi5a630y69j25c909bc8.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%2Fxi5a630y69j25c909bc8.png" alt="ZSHRC FILE"&gt;&lt;/a&gt;&lt;br&gt;
Change the quotations in ZSH_THEME into &lt;code&gt;agnoster&lt;/code&gt;, or to whatever theme you like!&lt;br&gt;
After you changed the theme, save the file, and you may need to restart/reopen your terminal to see the changes in effect. &lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Focm9312bz3ar4kwbz2i7.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%2Focm9312bz3ar4kwbz2i7.png" alt="Theme"&gt;&lt;/a&gt;&lt;br&gt;
What a cool looking terminal!&lt;/p&gt;

&lt;p&gt;Hope this helped you, and made your terminal more snazzy! 😎😎😎&lt;/p&gt;

&lt;p&gt;(Cover Photo and &lt;code&gt;agnoster&lt;/code&gt; Photo from Oh My Zsh &lt;a href="https://github.com/ohmyzsh/ohmyzsh" rel="noopener noreferrer"&gt;Github&lt;/a&gt;)&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>productivity</category>
      <category>linux</category>
    </item>
    <item>
      <title>The Reality of Imposter Syndrome</title>
      <dc:creator>Anthony</dc:creator>
      <pubDate>Thu, 03 Nov 2022 01:45:04 +0000</pubDate>
      <link>https://dev.to/brandgrim/how-you-can-overcome-imposter-syndrome-cg6</link>
      <guid>https://dev.to/brandgrim/how-you-can-overcome-imposter-syndrome-cg6</guid>
      <description>&lt;p&gt;Imposter syndrome is defined as “the psychological occurrence in which an individual doubts their skills, talents, or accomplishments and has a persistent internalized fear of being exposed as a fraud”&lt;br&gt;
(&lt;a href="https://en.wikipedia.org/wiki/Impostor_syndrome#:~:text=Impostor%20syndrome%2C%20"&gt;Source&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;As programmers, Computer Scientists, coders, students, and professionals there are times when you feel like your accomplishments may have been a stroke of luck or just by coincidence. There have been times when learning new concepts or technologies when I have just felt lost and confused. Just leading to a slew of negative emotions such as,&lt;br&gt;
__&lt;br&gt;
“If I can’t figure this out I’m not a real programmer”&lt;br&gt;
&lt;strong&gt;Or&lt;/strong&gt;&lt;br&gt;
“How did I get this far, there's no way I’ll be able to continue.”&lt;br&gt;
__&lt;/p&gt;

&lt;p&gt;Similarly, you may feel like this when applying to jobs,&lt;br&gt;
__&lt;br&gt;
“I’m not smart enough, this job won’t accept me.”&lt;br&gt;
&lt;strong&gt;Or&lt;/strong&gt;&lt;br&gt;
“There is no way I am going to get [x] internship”&lt;br&gt;
__&lt;/p&gt;

&lt;p&gt;The first factor to recognize is that&lt;/p&gt;

&lt;h2&gt;
  
  
  You are NOT alone
&lt;/h2&gt;

&lt;p&gt;Everyone at some point in their life, even if they aren't programmers, has felt some sort of Imposter Syndrome in their life. Recognizing that you are not the first person to feel like a fraud, (and for sure will not be the last) is the first step in overcoming feelings of insecurity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Document Your Progress
&lt;/h2&gt;

&lt;p&gt;When I started learning about programming I was in high-school going through the &lt;code&gt;freecodecamp.org&lt;/code&gt; Javascript Algorithms and Data Structures Certification along with some Web Design. Learning how to make HTML, CSS, and JS files was something that seemed like such a big goal when I was working on it. After years of putting in effort along with making my own personal projects along the way I have realized that I have come a &lt;strong&gt;long&lt;/strong&gt; way. Being able to see your progress in a tangible way will make recognizing your growth more easier. You can use version control software such as Git/Github in order to track your progress along your coding journey. There have been projects that I have worked on in the past that I think are &lt;strong&gt;awful&lt;/strong&gt; now, looking back on it there are myriads of lines of code I would change. But knowing that you would have made your code better now is realizing that you have grown as a programmer since then.&lt;/p&gt;

&lt;h2&gt;
  
  
  Join a Community
&lt;/h2&gt;

&lt;p&gt;Whether that be through your work, a discord server, a group of friends in school, or even through open source contributions join a supportive community that will help you along your coding journey. Having a community of like minded people will help you grow as a programmer and as a learner. To be able to bounce ideas off of your community will improve your communication skills and will help you overcome feelings of being alone with your problems. If you have a problem, chances are someone has also had that same exact problem too.&lt;/p&gt;

&lt;h2&gt;
  
  
  Don't Compare Yourself with Others
&lt;/h2&gt;

&lt;p&gt;There is always a bigger fish in the sea, so they say. Track and field coaches always emphasize one thing to their athletes. To &lt;strong&gt;never&lt;/strong&gt; look behind them or at other contestants. Always look at the track in front of you, and don't worry about the other athletes. This philosophy is similar in many aspects of life, and is crucial in overcoming Imposter Syndrome. Compare yourself to the person you were yesterday, if you learned something new or became a better programmer by 0.000001%, that is something to proud of.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Please leave your thoughts in the comments below ;)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hope this helped you!🔥🔥🔥&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>community</category>
    </item>
    <item>
      <title>cd Back Multiple Directories in One Line</title>
      <dc:creator>Anthony</dc:creator>
      <pubDate>Thu, 27 Oct 2022 21:16:25 +0000</pubDate>
      <link>https://dev.to/brandgrim/cd-back-multiple-directories-in-one-line-2e9a</link>
      <guid>https://dev.to/brandgrim/cd-back-multiple-directories-in-one-line-2e9a</guid>
      <description>&lt;p&gt;Having to &lt;code&gt;cd..&lt;/code&gt; over and over again in sub directories can be a tedious and annoying thing to do. Although it may be cool when you can quickly navigate through multiple directories it can be really annoying if you are trying to be efficient in your terminal. &lt;/p&gt;

&lt;p&gt;Every time you open up a new session if your terminal there are custom-loaded preferences that are loaded into that session, whether that be for programs you have or for your bash environment. For example, every time I open up &lt;code&gt;Vim&lt;/code&gt; in my terminal I have the &lt;code&gt;:set number&lt;/code&gt; property to always be on, so I can see what line I am on or want to go to, for example:&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%2F3c6mnig0i2znp945xsim.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%2F3c6mnig0i2znp945xsim.png" alt="Vim Pic"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating Your Own Custom Bash Command File
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;So in order to make your own custom commands you should make your own &lt;code&gt;Custom Bash Commands File&lt;/code&gt; and you can call this whatever you want. As long as it is memorable, so &lt;code&gt;tomato_soup.sh&lt;/code&gt; would not be a good file name. 😉&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Also, since you don’t want to see this file every time you &lt;code&gt;ls&lt;/code&gt; in your system. You should preface the name of your file with a &lt;code&gt;.&lt;/code&gt; so that it is a hidden file in your system. If you wanted to view the hidden files in the current directory you are in you can use the &lt;code&gt;ls&lt;/code&gt; command along with the &lt;code&gt;-a&lt;/code&gt; or the &lt;code&gt;--all&lt;/code&gt; flag, which just means list all the files in the current working directory. &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once you created your own file with the &lt;code&gt;touch&lt;/code&gt; command such as &lt;code&gt;touch .custom_bash.sh&lt;/code&gt; you can use &lt;code&gt;Vim&lt;/code&gt; or &lt;code&gt;Nano&lt;/code&gt; to edit the file and make changes to it. (Use &lt;code&gt;Vim&lt;/code&gt; its cooler 😉)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now that you are inside the file you created, use this code in order to &lt;code&gt;cd..&lt;/code&gt; back multiple directories.&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;

&lt;span class="k"&gt;function &lt;/span&gt;cd_up&lt;span class="o"&gt;(){&lt;/span&gt;
    &lt;span class="nb"&gt;cd&lt;/span&gt; &lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s2"&gt;"%0.s../"&lt;/span&gt; &lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;seq &lt;/span&gt;1 &lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="si"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="s1"&gt;'cd..'&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'cd_up'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Place that code anywhere inside your custom file and remember to save before you exit.&lt;/p&gt;

&lt;p&gt;After you have saved we need to test out the command to make sure it works.&lt;br&gt;
Use the &lt;code&gt;source&lt;/code&gt; command along with the custom bash file you made so, &lt;code&gt;souce ~/.custom_bashcommands.sh&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Then &lt;code&gt;cd&lt;/code&gt; into some subdirectories and try &lt;code&gt;cd.. 2&lt;/code&gt; to see if it works or not.&lt;/p&gt;

&lt;p&gt;Although, using this method you would need to run the &lt;code&gt;source&lt;/code&gt; command every time you open up a new terminal instance, to avoid this we can link our custom bash file into our bash profile so that every time we open up a new terminal our custom commands are preloaded. &lt;/p&gt;

&lt;p&gt;To do this open your &lt;code&gt;.bash_profile&lt;/code&gt; file and place the preceding command anywhere in the file, &lt;br&gt;
so in our case you would put &lt;code&gt;souce ~./custom_bashcommands.sh&lt;/code&gt; into &lt;code&gt;.bash_profile&lt;/code&gt;. Exit &lt;code&gt;.bash_profile&lt;/code&gt; and close and reopen your terminal to see changes. &lt;/p&gt;

&lt;p&gt;DEMO:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6eco6a9kcr94iji54oj6.gif" 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%2F6eco6a9kcr94iji54oj6.gif" alt="CD Demo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Hope this was useful to you!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>bash</category>
      <category>linux</category>
      <category>productivity</category>
    </item>
    <item>
      <title>7 Quick Tips from Google's Resume Workshop</title>
      <dc:creator>Anthony</dc:creator>
      <pubDate>Tue, 25 Oct 2022 18:12:41 +0000</pubDate>
      <link>https://dev.to/brandgrim/what-i-learned-from-googles-resume-workshop-d8a</link>
      <guid>https://dev.to/brandgrim/what-i-learned-from-googles-resume-workshop-d8a</guid>
      <description>&lt;p&gt;During the summer I was able to partake in a program called CSSI, (Computer Science Summer Institution) hosted by Google. It was a four-week boot camp/internship where aspiring Computer Science students worked with Google engineers/employees to learn and make HTML, CSS, and Javascript programs. CSSI is usually hosted in Google headquarters, but due to the pandemic, it was hosted online for most people. Although there were some programs with Universities where it was done in person. The program was every day, for about 3-5 hours, depending on how much work you wanted to put into the program. There were advantageous opportunities such as resume workshops, and my favorite opportunity, a Google Techincal Mock Interview.&lt;/p&gt;

&lt;p&gt;Although the feedback given to me may be catered to me since I am still a student studying Computer Science, some of the feedback I was given may be helpful to you. Some of this feedback you may already know, whereas some of it may be new to you, regardless I hope you take something useful from the feedback I was given. &lt;/p&gt;

&lt;h2&gt;
  
  
  What I learned from Google’s Resume Workshop
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;The most important things should be on the top of the page

&lt;ul&gt;
&lt;li&gt;Don’t just list out skills or jobs as they come to your head, carefully craft your resume so that the most important things are the things that pop on your resume.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;If you are a student applying to Google put relevant coursework in your resume.

&lt;ul&gt;
&lt;li&gt;I doubt Google will really care that you took let's say a History class if you are applying for a technical position. Although, if you were applying for more of an HR position, maybe relevant coursework may be Psychology. &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;I was told that some include their LinkedIn profiles, this is just a personal choice and not a deciding factor in the resume review process

&lt;ul&gt;
&lt;li&gt;Although, I do prefer to use LinkedIn since they have their own resume builder, rather than using some shoddy “free” resume builder online. &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Try avoiding putting too much information on your resume

&lt;ul&gt;
&lt;li&gt;A cluttered resume is no good either, put what is needed, too much information on your resume makes its convoluted and much harder to read. &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Follow the STAR Method, Situation, Task, Action, and Result

&lt;ul&gt;
&lt;li&gt;Provide a Situation, which most likely entails a problem, a Task that is something you assigned to yourself or were assigned, an Action so something you DID, and a Result which is the outcome of how you solved the problem. &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Follow the DRY Principle

&lt;ul&gt;
&lt;li&gt;Don’t Repeat Yourself, if you said you worked on a certain project, don’t bring up that project again. &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Make careful use of the tenses you use in your resume

&lt;ul&gt;
&lt;li&gt;For things you have already done keep it in the past tense.&lt;/li&gt;
&lt;li&gt;For things you are doing keep it in the present tense 
### Bonus!
KISS Method&lt;/li&gt;
&lt;li&gt;Keep it Simple Stupid! You don’t need crazy graphics or fancy-looking font. (If you use Comic Sans so help me God.)&lt;/li&gt;
&lt;li&gt;Logos of the companies or the places you worked at are cool, but they are not really needed, keep it consistent.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Hope this helped you! ✌️ ✌️ ✌️ ✌️&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>productivity</category>
      <category>resume</category>
      <category>google</category>
    </item>
    <item>
      <title>5 VSCode extensions every programmer needs</title>
      <dc:creator>Anthony</dc:creator>
      <pubDate>Fri, 21 Oct 2022 22:53:00 +0000</pubDate>
      <link>https://dev.to/brandgrim/5-vscode-extensions-every-programmer-needs-4pfe</link>
      <guid>https://dev.to/brandgrim/5-vscode-extensions-every-programmer-needs-4pfe</guid>
      <description>&lt;p&gt;VSCode extensions enhance the productivity of your environment, anywhere to language support, formatters, and debuggers, they all assist your workspace ecosystem.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Prettier - Code Formatter
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4gen0x0slu5avqxlxjye.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%2F4gen0x0slu5avqxlxjye.png" alt="Logo"&gt;&lt;/a&gt;&lt;br&gt;
Prettier takes your code and parses it into a nice-looking block of code.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6iagn6yfurlfobuoy1x2.gif" 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%2F6iagn6yfurlfobuoy1x2.gif" alt="Prettier Demo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Python
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fudd0fnbk5htzp71grhqz.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%2Fudd0fnbk5htzp71grhqz.png" alt="Python Logo"&gt;&lt;/a&gt;&lt;br&gt;
The Python extension comes with Intellisense, Linting, Debugging, Pylance, Jupyter Notebook, and so much more. A &lt;strong&gt;must&lt;/strong&gt; have for Python developers using VSCode. &lt;/p&gt;

&lt;h2&gt;
  
  
  3. SSH FS / SSH
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3vktt5by84bkoi2i3ev8.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%2F3vktt5by84bkoi2i3ev8.png" alt="SSH FS Logo"&gt;&lt;/a&gt;&lt;br&gt;
If you need to connect to some other host computer SSH along with SSH FS are great VSCode extensions to make your life easier. &lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk6e2ehj85eah6mu42zdk.gif" 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%2Fk6e2ehj85eah6mu42zdk.gif" alt="SSH FS DEMO"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Edit CSV
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx30g0n63h41fhjdgpg2a.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%2Fx30g0n63h41fhjdgpg2a.png" alt="Edit CSV Logo"&gt;&lt;/a&gt;&lt;br&gt;
If you need to make adjustments to a CSV table quickly and effectively, Edit CSV is for you.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fjanisdd%2Fvscode-edit-csv%2Fraw%2FHEAD%2Fimages%2FtitleImg.gif" 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%2Fgithub.com%2Fjanisdd%2Fvscode-edit-csv%2Fraw%2FHEAD%2Fimages%2FtitleImg.gif" alt="CSV DEMO"&gt;&lt;/a&gt;&lt;br&gt;
(Gif from &lt;a href="https://github.com/janisdd/vscode-edit-csv/raw/HEAD/images/titleImg.gif" rel="noopener noreferrer"&gt;Extension Page&lt;/a&gt;)&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Auto Rename Tag
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F29p2moi84pneo46pbc77.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%2F29p2moi84pneo46pbc77.png" alt="Auto Rename Tag Logo"&gt;&lt;/a&gt;&lt;br&gt;
If you work with React JS or anything similar you may know how annoying it is to keep renaming JSX or HTML tags for both the opening and closing tags. Be annoyed no more!&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0xa8zbudsbalpo34dbdz.gif" 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%2F0xa8zbudsbalpo34dbdz.gif" alt="Auto Rename Demo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  BONUS: Vim
&lt;/h3&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%2F107gc4kvktf3d2cy6wk1.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%2F107gc4kvktf3d2cy6wk1.png" alt="Vim Logo"&gt;&lt;/a&gt;&lt;br&gt;
This VSCode extension emulates Vim for Visual Studio Code, Vim increases the productivity by emphasizing the use of the keyboard while programming. (Only &lt;em&gt;real&lt;/em&gt; programmers use Vim)&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Happy Hacking!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>webdev</category>
      <category>productivity</category>
      <category>news</category>
    </item>
    <item>
      <title>Interning for an AP Computer Science Class</title>
      <dc:creator>Anthony</dc:creator>
      <pubDate>Fri, 21 Oct 2022 03:51:54 +0000</pubDate>
      <link>https://dev.to/brandgrim/interning-for-an-ap-computer-science-class-40im</link>
      <guid>https://dev.to/brandgrim/interning-for-an-ap-computer-science-class-40im</guid>
      <description>&lt;p&gt;I had the amazing opportunity to intern for an AP (Advanced Placement) Computer Science class in high school, more specifically AP Computer Science Principles. I was a senior during that time, taking that same class last year and thought it would be a &lt;em&gt;great&lt;/em&gt; opportunity to help other students start their journeys in Computer Science. &lt;/p&gt;

&lt;p&gt;For those interested, the class covered basic HTML, CSS, and JS topics for the first semester, then during the second semester the class shifted gears into teaching Python, later using some APIs during the final weeks. Such as the Twitter API. &lt;/p&gt;

&lt;p&gt;The most important takeaway from my internship experience was that:&lt;/p&gt;

&lt;h2&gt;
  
  
  It is ok to say &lt;strong&gt;"I don't know"&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;During the first semester I would get flustered and try to make up some shoddy solution if I didn't know the answer to one of the students' questions. I would feel embarrassed because I thought I should have known the answer to all their questions, and somehow be some kind of &lt;strong&gt;Computer Science God&lt;/strong&gt;, whereas this was just &lt;strong&gt;not&lt;/strong&gt; the case. &lt;/p&gt;

&lt;p&gt;I learned how to be comfortable with not knowing something, and instead of saying, &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Uhh, yea the mainframe is just broken I guess, have you tried restarting your computer?"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I'm more comfortable saying,&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Hey, &lt;strong&gt;I don't know.&lt;/strong&gt; Let's debug it together and find out why."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That way, I was way more relatable to the students, they wouldn't be afraid to ask me questions, and at the end of the day &lt;strong&gt;I&lt;/strong&gt; ended up learning alongside them.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Happy Hacking!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>motivation</category>
      <category>writing</category>
    </item>
    <item>
      <title>What is Command Injection, and how to protect yourself against it?</title>
      <dc:creator>Anthony</dc:creator>
      <pubDate>Tue, 18 Oct 2022 19:15:37 +0000</pubDate>
      <link>https://dev.to/brandgrim/what-is-command-injection-and-how-to-protect-yourself-against-it-40p2</link>
      <guid>https://dev.to/brandgrim/what-is-command-injection-and-how-to-protect-yourself-against-it-40p2</guid>
      <description>&lt;p&gt;Command injection is a cyber-attack that involves executing commands on another person's host operating system. This could include removing files and changing data on the host computer. This type of attack happens when the programmer does not use enough &lt;strong&gt;input validation&lt;/strong&gt; to check if the input is &lt;em&gt;malicious&lt;/em&gt; or not.&lt;/p&gt;

&lt;p&gt;For example, in Python you can code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;os&lt;/span&gt;

&lt;span class="n"&gt;domain_name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;system&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'ping '&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;domain_name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, when I run this in my computer, I can input &lt;code&gt;google.com&lt;/code&gt; as the &lt;code&gt;domain_name&lt;/code&gt;, such as:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TeUYnl90--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n73nia4g802g8woq6hy5.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TeUYnl90--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n73nia4g802g8woq6hy5.gif" alt="Pinging Google" width="600" height="338"&gt;&lt;/a&gt;&lt;br&gt;
As you can see, you get a response back from Google!&lt;/p&gt;

&lt;p&gt;Although, someone not as nice as me or you may type out something different when prompted for input. Let's say you want to just &lt;code&gt;echo&lt;/code&gt; what the user said back to us from the command line.&lt;/p&gt;

&lt;p&gt;You would just replace the &lt;code&gt;ping&lt;/code&gt; in the &lt;code&gt;os.system&lt;/code&gt; with&lt;br&gt;
&lt;code&gt;os.system('echo ' + input)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;But this time, lets add &lt;code&gt;; ls&lt;/code&gt; after whatever you want to &lt;code&gt;echo&lt;/code&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Qrp1Giyh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yalwvtjikt5p284tn62x.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Qrp1Giyh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yalwvtjikt5p284tn62x.gif" alt="Command Injection" width="880" height="495"&gt;&lt;/a&gt;&lt;br&gt;
As you can see, we get the files in the current working directory, which happens to be &lt;code&gt;example.py&lt;/code&gt;. This is &lt;strong&gt;bad&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;You can even take it a step further and use the &lt;code&gt;rm&lt;/code&gt; command to remove a file on your system such as:&lt;br&gt;
&lt;code&gt;hello; rm example.py&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zLngvZcd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6rk3tqp9iw35kw5kueb9.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zLngvZcd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6rk3tqp9iw35kw5kueb9.gif" alt="Removing File" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see the file is now &lt;strong&gt;gone&lt;/strong&gt; from your computer. This can lead to a slew of security issues if left unchecked. To combat this (in Python specifically) we can use the &lt;code&gt;call&lt;/code&gt; method from the &lt;code&gt;subprocess&lt;/code&gt; module. Such as&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;subprocess&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;call&lt;/span&gt;

&lt;span class="n"&gt;user_input&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;call&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="s"&gt;"echo"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;user_input&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;call&lt;/code&gt; function will make sure that only a &lt;strong&gt;single&lt;/strong&gt; command will be run.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZRKBbe00--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2t9ocviqdm02mf5z2rdg.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZRKBbe00--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2t9ocviqdm02mf5z2rdg.gif" alt="Fixing Security Issue" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are language equivalents for the example in Python above. &lt;br&gt;
Be safe!&lt;br&gt;
(&lt;a href="https://github.com/cat-milk/Anime-Girls-Holding-Programming-Books"&gt;Anime CS Girls&lt;/a&gt;)&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>python</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
