<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Piyush Malhotra</title>
    <description>The latest articles on Forem by Piyush Malhotra (@thepiyushmalhotra).</description>
    <link>https://forem.com/thepiyushmalhotra</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%2F754927%2Fd4ce5e5e-bf95-4ee7-bd98-971ff7bca687.jpg</url>
      <title>Forem: Piyush Malhotra</title>
      <link>https://forem.com/thepiyushmalhotra</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/thepiyushmalhotra"/>
    <language>en</language>
    <item>
      <title>How to Design an Attractive GitHub Profile Readme…</title>
      <dc:creator>Piyush Malhotra</dc:creator>
      <pubDate>Thu, 12 May 2022 16:36:10 +0000</pubDate>
      <link>https://forem.com/thepiyushmalhotra/how-to-design-an-attractive-github-profile-readme-1ppg</link>
      <guid>https://forem.com/thepiyushmalhotra/how-to-design-an-attractive-github-profile-readme-1ppg</guid>
      <description>&lt;p&gt;After shuffling through a lot of ideas about what should be my next blog post, I decided to go with a fairly simple one this time: &lt;strong&gt;How to create a visually appealing GitHub Profile Readme&lt;/strong&gt;. You all knew this was coming right? Some of you might be thinking “Ugh, great, yet another blog on how to make an impressive GitHub profile 😑”. Well…yes. But just because something already exists doesn’t mean that you cannot create your unique version of it. Most people do make their profile readme’s interesting but what’s the difference between profiles that look good and the ones that are aesthetically pleasing?&lt;/p&gt;

&lt;p&gt;So here we are, I am going to show you guys how to design a stellar GitHub Profile Readme and I’m going to use &lt;a href="https://github.com/thepiyushmalhotra" rel="noopener noreferrer"&gt;my profile&lt;/a&gt; as an example. I’ll mention all the resources that I used for my profile and how you can customize it according to your style.&lt;/p&gt;

&lt;p&gt;But before we get into the design and styling of the profile, many of you may ask “&lt;strong&gt;What’s the reason for doing this&lt;/strong&gt;?” and “&lt;strong&gt;Is it necessary&lt;/strong&gt;?”. To that, I would say it’s not necessary to style your profile and make it unique. There is no major downside to not creating a readme profile but there are definitely a lot of upsides to it.&lt;/p&gt;

&lt;p&gt;Everyone used GitHub as a dumping ground for their projects, just using it simply for what it was designed which is source control, and collaborating with others on a project or contributing towards open source. But in 2020, when GitHub released this new feature of creating our very own unique readme profile, it provided a way for developers and artists alike to showcase their work professionally in the form of a “&lt;strong&gt;personal resume&lt;/strong&gt;” on GitHub. That’s all it is, &lt;strong&gt;a special repo that acts as a visually impressive portfolio for other developers and employers to check out&lt;/strong&gt;. So read on for some incredible tips on styling your GitHub Profile!&lt;/p&gt;




&lt;h2&gt;
  
  
  1. The Very First Steps 🐤
&lt;/h2&gt;

&lt;p&gt;To start designing your GitHub profile, we first have to create a new public repository. Click the “&lt;strong&gt;+&lt;/strong&gt;” icon at the top right and choose “&lt;strong&gt;New Repository&lt;/strong&gt;”. After that comes the critical step, &lt;strong&gt;&lt;em&gt;make sure that the name of the repo is the same as your username&lt;/em&gt;&lt;/strong&gt;. Refer to the example below:&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%2F1clq0lk2d4i52emrs2ux.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%2F1clq0lk2d4i52emrs2ux.png" alt="thepiyushmalhotra"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub will let you know that you have found a special repo whose README.md file can be customized. We want to keep this repo “&lt;strong&gt;public&lt;/strong&gt;” so that it can be displayed on your GitHub profile. You can provide a brief description of the repository (e.g. “&lt;strong&gt;&lt;em&gt;My GitHub Profile&lt;/em&gt;&lt;/strong&gt;”) though this step is optional. After that, tick the checkbox “&lt;strong&gt;Add a README file&lt;/strong&gt;” and click on “&lt;strong&gt;Create repository&lt;/strong&gt;”. Going ahead, we will alter this README file and personalize it.&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%2Fjdq8zl6p6uxatux3cwda.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%2Fjdq8zl6p6uxatux3cwda.png" alt="GitHub Repo Settings"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  2. A Unique Header ❄️
&lt;/h2&gt;

&lt;p&gt;Your profile’s header is the first thing that people will observe so it must stand out from the other profiles. We want that initial “hook” that attracts the viewer. And for that to happen, my suggestion would be to avoid following the common design norms. For example, many developers use this layout for their “About” section:&lt;/p&gt;

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

### Hi there 👋
* 👂 My name is ...
* 👩 Pronouns: ...
* 🔭 I’m currently working on ...
* 🌱 I’m currently learning ...
* 🤝 I’m looking to collaborate on ...
* 🤔 I’m looking for help with ...
* 💬 Ask me about ...
* 📫 How to reach me: ...
* ❤️ I love ...
* ⚡ Fun fact: ... 


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

&lt;/div&gt;

&lt;p&gt;It’s completely fine to use this template though as long as you change other aspects of your profile. I went in another direction for creating the header and then added the “&lt;strong&gt;&lt;em&gt;About Me&lt;/em&gt;&lt;/strong&gt;” section after that. I’ll guide you along the way with the resources I used for that.&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%2F8cq7lwlp1pizz0k9vwpm.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%2F8cq7lwlp1pizz0k9vwpm.gif" alt="GitHub Header"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The very first thing that you can see is that animated header with the text “Hey Everyone!” I used the &lt;a href="https://github.com/kyechan99/capsule-render" rel="noopener noreferrer"&gt;capsule-render GitHub repo&lt;/a&gt; for this one. I came across this great resource while I was searching for ways to decorate your GitHub repo. You can add background images and text on top of them and also, who doesn’t love animations! It’s super simple to use and has been well documented on the Repo. Here is my configuration of the render.&lt;/li&gt;
&lt;/ul&gt;

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

&amp;lt;p align="center"&amp;gt;
  &amp;lt;img src="https://capsule-render.vercel.app/api?text=Hey Everyone!🕹️&amp;amp;animation=fadeIn&amp;amp;type=waving&amp;amp;color=gradient&amp;amp;height=100"/&amp;gt;
&amp;lt;/p&amp;gt;


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

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;After inserting a simple heading, to provide links to my various accounts like LinkedIn, Medium, Dev.to, and also my portfolio website, I wanted a minimalistic and textless way to do it. So, I decided to use icons. There are many online tools available that provide thousands of free icons to use. I used &lt;a href="https://www.iconfinder.com/" rel="noopener noreferrer"&gt;IconFinder&lt;/a&gt; and personally loved it. There are many other popular options available that you can use like &lt;a href="https://shields.io/" rel="noopener noreferrer"&gt;Shields.io&lt;/a&gt;, &lt;a href="https://github.com/Ileriayo/markdown-badges" rel="noopener noreferrer"&gt;markdown-badges&lt;/a&gt;, &lt;a href="https://www.vectorlogo.zone/index.html" rel="noopener noreferrer"&gt;vector-logo-zone&lt;/a&gt;, &lt;a href="https://simpleicons.org/" rel="noopener noreferrer"&gt;simple-icons&lt;/a&gt;, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The png source of the icon just needs to be imported into the &amp;lt;&lt;em&gt;&lt;strong&gt;img&lt;/strong&gt;&lt;/em&gt;&amp;gt; tag as shown below:&lt;/p&gt;

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

&amp;lt;a href="https://www.instagram.com/thepiyushmalhotra/"&amp;gt;
  &amp;lt;img height="50" src="https://user-images.githubusercontent.com/46517096/166974368-9798f39f-1f46-499c-b14e-81f0a3f83a06.png"/&amp;gt;
&amp;lt;/a&amp;gt;


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

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;Now comes the fun part, adding that glorious GIF! GIFS make our profile more &lt;strong&gt;dynamic and eye-catching&lt;/strong&gt;. Honestly, you can put up any GIF you want. It can be a popular meme, a programming gif, an iconic scene from a movie or a tv show, or something that tells people a little bit about your hobbies. In my case, it’s anime so that’s what I went with. Popular gif sharing websites like &lt;strong&gt;Giphy&lt;/strong&gt; and &lt;strong&gt;Tenor&lt;/strong&gt; can be used to pull any gif you like and it works the same way as adding the icons, just copy the image address and paste it inside the “&lt;strong&gt;&lt;em&gt;src&lt;/em&gt;&lt;/strong&gt;” attribute of the &amp;lt;&lt;strong&gt;&lt;em&gt;img&lt;/em&gt;&lt;/strong&gt;&amp;gt; tag.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  3. The “About Me” Section 👨‍💻
&lt;/h2&gt;

&lt;p&gt;This is the section that I was talking about earlier where most developers use the template shown above. If you want to make your profile stand out, then I would suggest changing the design aspects of this section as well. I went ahead and used &lt;strong&gt;YAML&lt;/strong&gt; format while editing the readme so that the information reads like &lt;code&gt;code&lt;/code&gt; when you preview the profile.&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%2Fjkdyobbkzeoznkdt7tp0.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%2Fjkdyobbkzeoznkdt7tp0.png" alt="GitHub About"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It adds a touch of professionalism and also as a bonus, looks neat! To display this format, just wrap your text as shown below and you’ll be good to go:&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%2Fl8yc5vvcxn7pzyt92fsi.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%2Fl8yc5vvcxn7pzyt92fsi.png" alt="YAML About section"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Tools and Tech Stuff 🧰
&lt;/h2&gt;

&lt;p&gt;In this section, you can showcase your skills and list the tools and technologies that you’re familiar with. I always prefer &lt;strong&gt;minimal and crisp&lt;/strong&gt; design choices over cluttered data so I went ahead with icons this time as well. Us humans prefer information through visual mediums much more than anything else, right?&lt;/p&gt;

&lt;p&gt;You can use all of the stuff that I mentioned above in step 2 like &lt;a href="https://www.iconfinder.com/" rel="noopener noreferrer"&gt;IconFinder&lt;/a&gt;, &lt;a href="https://shields.io/" rel="noopener noreferrer"&gt;Shields.io&lt;/a&gt;, &lt;a href="https://github.com/Ileriayo/markdown-badges" rel="noopener noreferrer"&gt;markdown-badges&lt;/a&gt;, &lt;a href="https://www.vectorlogo.zone/index.html" rel="noopener noreferrer"&gt;vector-logo-zone&lt;/a&gt;, &lt;a href="https://simpleicons.org/" rel="noopener noreferrer"&gt;simple-icons&lt;/a&gt;, etc. But for this section, I would personally recommend &lt;a href="https://devicon.dev/" rel="noopener noreferrer"&gt;DevIcon&lt;/a&gt;. Unlike other resources, DevIcon is built for providing the icons solely related to programming languages and development tools which makes it a perfect fit.&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%2Fiktl6yukjqf2q8n4rqod.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%2Fiktl6yukjqf2q8n4rqod.png" alt="GitHub Skills"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Just copy the SVG image source from DevIcon’s website and paste it inside a &amp;lt;&lt;strong&gt;&lt;em&gt;p&lt;/em&gt;&lt;/strong&gt;&amp;gt; tag to show multiple icons!&lt;/p&gt;

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

&amp;lt;h2&amp;gt; 🚀 &amp;amp;nbsp;Some Tools I Have Used and Learned&amp;lt;/h2&amp;gt;
&amp;lt;p align="left"&amp;gt;
&amp;lt;img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/vscode/vscode-original.svg" alt="vscode" width="45" height="45"/&amp;gt;
&amp;lt;img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/bash/bash-original.svg" alt="bash" width="45" height="45"/&amp;gt;
&amp;lt;img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/php/php-original.svg" alt="php" width="45" height="45"/&amp;gt;
&amp;lt;/p&amp;gt;


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

&lt;/div&gt;




&lt;h2&gt;
  
  
  5. Your GitHub History 📈
&lt;/h2&gt;

&lt;p&gt;Finally, at the end of your Profile README, you can practically include anything. Some developers put up what’s currently playing on their &lt;a href="https://github.com/kittinan/spotify-github-profile" rel="noopener noreferrer"&gt;Spotify profile&lt;/a&gt;, some add their &lt;a href="https://github.com/anuraghazra/github-readme-stats" rel="noopener noreferrer"&gt;GitHub stats&lt;/a&gt; or some add a fun little snake game on your GitHub contribution graph like me which I’ll show you guys how to put up!&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%2F630qgbg1wso8kdgas4jk.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%2F630qgbg1wso8kdgas4jk.gif" alt="GitHub Snake GIF"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I begin with two GitHub ReadMe Stat Cards. One shows my total number of stars, commits and pull requests, etc. And the other one displays my most used Programming languages in percentages. You guys can get these cards from the popular &lt;a href="https://github.com/anuraghazra/github-readme-stats" rel="noopener noreferrer"&gt;GitHub ReadMe Stats Repo&lt;/a&gt; and the best part about these is that they are fully customizable with different settings and themes!&lt;/p&gt;

&lt;p&gt;Next up is probably my favorite thing out of all of my profile elements. Making a &lt;strong&gt;Snake Game out of your GitHub Contribution Graph&lt;/strong&gt;. It’s fairly easy to set up and looks extremely satisfying when the snake gobbles up your commit graph.&lt;/p&gt;

&lt;p&gt;To set it up for your profile, we are going to use something called GitHub Actions. GitHub Actions are CI/CD tools in GitHub where you can initiate workflows that automatically run, deploy and build your stuff.&lt;/p&gt;

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

![Snake animation](https://github.com/thepiyushmalhotra/thepiyushmalhotra/blob/output/github-contribution-grid-snake.svg)


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

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The first step is to copy this line above and add it to your profile’s README. Make sure to change the username to yours instead of mine.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now we need to create a GitHub workflow so that the contribution graph in the snake animation will get updated according to the cronjob that we will set up.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go to your “&lt;strong&gt;&lt;em&gt;Actions&lt;/em&gt;&lt;/strong&gt;” tab in your README repository and create a &lt;strong&gt;New Workflow&lt;/strong&gt;. This will generate a new folder in your repository called “&lt;strong&gt;&lt;em&gt;.github/workflows&lt;/em&gt;&lt;/strong&gt;” and after that, it will make a new file inside of it called “&lt;strong&gt;&lt;em&gt;main.yml&lt;/em&gt;&lt;/strong&gt;”.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&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%2Fmaw3vkz1tuu0qdaq7y6j.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%2Fmaw3vkz1tuu0qdaq7y6j.png" alt="gh_workflow"&gt;&lt;/a&gt;&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%2Feqiyb9dgt7jz8t21tqkm.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%2Feqiyb9dgt7jz8t21tqkm.png" alt="main.yml file"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Delete everything inside of the newly created main.yml file and add this code to it below:&lt;/li&gt;
&lt;/ul&gt;

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

name: Generate Datas
on:
  schedule: # execute every 12 hours
    - cron: "* */12 * * *"
  workflow_dispatch:
jobs:
  build:
    name: Jobs to update datas
    runs-on: ubuntu-latest
    steps:
      # Snake Animation
      - uses: Platane/snk@master
        id: snake-gif
with:
          github_user_name: thepiyushmalhotra
          svg_out_path: dist/github-contribution-grid-snake.svg
      - uses: crazy-max/ghaction-github-pages@v2.1.3
        with:
          target_branch: output
          build_dir: dist
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}


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

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Make sure to replace my username with yours. We use a cronjob here that updates every 12 hours so whenever you have a new commit, it's going to get added to your snake animation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The final step is to go back to your “&lt;strong&gt;&lt;em&gt;Actions&lt;/em&gt;&lt;/strong&gt;” page of your README file, click the newly created workflow “&lt;strong&gt;&lt;em&gt;Generate Datas&lt;/em&gt;&lt;/strong&gt;” or any name that you give it, and click the “&lt;strong&gt;&lt;em&gt;Run Workflow&lt;/em&gt;&lt;/strong&gt;” button.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&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%2Ftqmy248oniic498p1js4.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%2Ftqmy248oniic498p1js4.png" alt="gh_run_workflow"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Et voila! Your Snake GitHub Contribution Graph is active now. Enjoy watching that snake eat up your hard work! To wrap it all up, I just added another capsule render animation at the footer which looked nice to me as you can see in the GIF above.&lt;/p&gt;




&lt;h3&gt;
  
  
  I’ve also mentioned some extra collated list of resources for your individual design needs:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://github.com/abhisheknaiidu/awesome-github-profile-readme" rel="noopener noreferrer"&gt;Awesome-GitHub-Profile-Readme&lt;/a&gt; — A list of amazing Readmes from many talented developers!&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://rahuldkjain.github.io/gh-profile-readme-generator/" rel="noopener noreferrer"&gt;GitHub Readme Generator&lt;/a&gt; — An easy way to quickly generate a basic design template for your profile.&lt;/li&gt;
&lt;li&gt;Read up more on &lt;a href="https://docs.github.com/en/actions/learn-github-actions/understanding-github-actions" rel="noopener noreferrer"&gt;GitHub Actions&lt;/a&gt; if you’re interested in automation.&lt;/li&gt;
&lt;li&gt;Generate various &lt;a href="https://github.com/lowlighter/metrics" rel="noopener noreferrer"&gt;GitHub metrics&lt;/a&gt; that can be embedded anywhere.&lt;/li&gt;
&lt;li&gt;If you want a quick and simple way to create cronjobs and learn more about them, then &lt;a href="https://crontab.guru/" rel="noopener noreferrer"&gt;Crontab Guru&lt;/a&gt; is a pretty good resource and you get to know the exact time that your workflow will run.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;And that was it for my GitHub Profile Design. Hope you guys liked this blog post on &lt;strong&gt;how to design an attractive GitHub Profile Readme that’s aesthetically pleasing as well as functional&lt;/strong&gt;. Let me know if I can make some additions or changes to this article or if I missed some other fun stuff on GitHub. I do plan to add a blog post workflow as well which can show your latest blog posts from Dev.to but I’ll leave that for another short article.&lt;/p&gt;

&lt;h3&gt;
  
  
  Thank you for reading! If you liked my writing, here are some of my other informative articles:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://dev.to/thepiyushmalhotra/most-important-things-to-learn-other-than-coding-1hm6"&gt;Most Important Things to Learn Other than Coding…&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/thepiyushmalhotra/hard-to-swallow-pills-every-new-developer-should-take-5bfl"&gt;Hard to swallow pills every new Developer should take.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/thepiyushmalhotra/the-analysis-paralysis-of-learning-to-code-9kh"&gt;The Analysis Paralysis of Learning to Code…&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/thepiyushmalhotra/the-beginner-friendly-way-to-learn-from-freecodecamp-on-youtube-37g7"&gt;The Beginner-friendly way to learn from FreeCodeCamp on YouTube.&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Let’s have a Chat! Connect with me on &lt;a href="https://github.com/thepiyushmalhotra" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, &lt;a href="https://twitter.com/Ipiyushmalhotra" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;, and &lt;a href="https://www.linkedin.com/in/thepiyushmalhotra/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;. Ciao!&lt;/p&gt;

</description>
      <category>readme</category>
      <category>design</category>
      <category>github</category>
      <category>profile</category>
    </item>
    <item>
      <title>Most Important Things to Learn other than Coding...</title>
      <dc:creator>Piyush Malhotra</dc:creator>
      <pubDate>Sat, 23 Apr 2022 20:22:36 +0000</pubDate>
      <link>https://forem.com/thepiyushmalhotra/most-important-things-to-learn-other-than-coding-1hm6</link>
      <guid>https://forem.com/thepiyushmalhotra/most-important-things-to-learn-other-than-coding-1hm6</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;The quintessential skills...&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--duKfmqkb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kbxydwifz2eche5xz1cz.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--duKfmqkb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kbxydwifz2eche5xz1cz.jpg" alt="FreePik Vector" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Out of all the people I’ve seen who start their journey of becoming a programmer, they usually begin by attending a 6 month Bootcamp, getting a CS degree, or simply just going through sites like Udemy, FreeCodeCamp, and Youtube. The options are countless and all are great resources to learn. People usually start by learning programming languages and that’s how it should be. But in doing so, they get into a cycle of learning new languages, frameworks, etc and it keeps going on and on. They miss learning the essential stuff that is as important as learning that first language.&lt;/p&gt;

&lt;p&gt;One thing that I noticed that was common in all of these learning methods was that none of them were teaching the students the tools and methods that almost every developer should know. I was also one of these students. I started with Python, HTML, CSS, and Javascript and went ahead applying to jobs way before I had any idea about &lt;strong&gt;Version Control, Linux, Shell, Scripting, etc.&lt;/strong&gt; All of these are crucial tools that immensely help programmers in solving complex problems fast. This stuff is practically a requirement for getting a job as a developer. Not learning these tools and getting comfortable with them is like running with your shoelaces open; you can do it for sure but sooner or later you’re going to fall.&lt;/p&gt;

&lt;p&gt;I have seen a lot of developers in the industry who aren’t even comfortable using the &lt;strong&gt;Terminal!&lt;/strong&gt; There is a change now in some of the courses that teach students to have a basic understanding of these tools but there are still a lot of courses and boot camps out there that skip over this stuff. A university CS degree will teach you everything from &lt;strong&gt;Data Structures and Algorithms to Machine Learning&lt;/strong&gt; but usually spends very little time on these topics.&lt;/p&gt;

&lt;p&gt;My motivation to write this article came when I was thinking of new ideas to write about and I recalled my situation when I started working professionally and how I had no idea about Linux commands or &lt;strong&gt;“What is a Shell?”&lt;/strong&gt; and my personal favorite, &lt;strong&gt;“Yeah, of course, I know Version Control…hehe”.&lt;/strong&gt; I thought I can’t be the only one who was in this situation. So read on ahead about the tools and other tech stuff that you must know while you’re starting to learn to code and after a few weeks, you can “feel” like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Py1MexKl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7gyn97g4o67ntwuozdp6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Py1MexKl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7gyn97g4o67ntwuozdp6.jpg" alt="Hackerman Meme" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note —&lt;/strong&gt; There are certain tools I have listed at the end of this article that you can go ahead and skip for now as a junior developer or if you’re just starting to learn to program but the four that I have mentioned below are non-negotiable in the sense that you absolutely must learn them to be more efficient and expand your bag of skills. I’ve also mentioned a &lt;strong&gt;&lt;em&gt;list of resources&lt;/em&gt;&lt;/strong&gt; for every tool to learn it easily and many of those are the ones that have helped me greatly and they would be my recommendations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Linux OS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rq0_Af6---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jajvi0sazbiw0kplhbyh.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rq0_Af6---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jajvi0sazbiw0kplhbyh.jpg" alt="Linux - WallpaperFlare.com" width="728" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This one is non-negotiable, the king of all the Operating Systems, especially for developers. There are dozens of reasons why you should use Linux but even if you don’t want to use it, learning it is a great asset for developers because most of the servers run on Linux, it’s the most secure and stable OS out of all the popular ones out there, it’s highly customizable for personal use, it has a great community for Linux users out there. Apart from all this, my two favorite things about it are that encourages people to solve problems on their own and it’s open-source and free!&lt;/p&gt;

&lt;p&gt;⚙️&lt;strong&gt;Resources to learn Linux:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Youtube — &lt;strong&gt;&lt;a href="https://www.youtube.com/watch?v=ROjZy1WbCIA"&gt;“Linux Operating System — Crash Course for Beginners”&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a href="https://www.youtube.com/watch?v=ZtqBQ68cfJc&amp;amp;t=7853s"&gt;“50 most popular Linux Terminal Commands”&lt;/a&gt;&lt;/strong&gt; by Colt Steele from freeCodeCamp. These are more than enough if you are learning from Youtube. If free resources are what you’re looking for then youtube is the way to go.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.edx.org/course/introduction-to-linux"&gt;edX&lt;/a&gt;, &lt;a href="https://www.coursera.org/courses?query=linux"&gt;Coursera&lt;/a&gt;, &lt;a href="https://www.pluralsight.com/browse/it-ops/linux"&gt;Pluralsight&lt;/a&gt;&lt;/strong&gt; — Many online popular platforms have a ton of courses and full-fledged Bootcamps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.udemy.com/course/the-linux-command-line-bootcamp/"&gt;Colt Steele's Linux Course&lt;/a&gt;&lt;/strong&gt; - I learned Linux from this course because I like Colt’s method of teaching. It’s clear to understand and it’s at a healthy learning pace along with great exercises that challenge your skills. His Web Development course was the first course I ever enrolled in and it taught me a lot of things when I started so I am a little bit biased towards his teaching.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Version Control&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6Z_3h7N3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/et1fnm2ocohy30okk777.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6Z_3h7N3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/et1fnm2ocohy30okk777.png" alt="Vasil Enchev - Dribbble" width="880" height="658"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once again, a non-negotiable thing to learn. Version Control is an extremely important tool to manage, work and collaborate in a professional environment. There are a lot of tools out there, the most popular being &lt;strong&gt;Git&lt;/strong&gt; and its online counterpart, &lt;strong&gt;GitHub&lt;/strong&gt;. Sometimes also known as source control, it helps the developers to keep track of their codebase, create multiple repositories and just revert to the original changes if and when mistakes have been made. And mistakes are made a lot.&lt;/p&gt;

&lt;p&gt;Version Control provides a way for developers to fix their mistakes and minimize confusion among different teams. People use it for their projects and big organizations which continuously update their products use version control among their teams to avoid any future disasters. And GitHub is being used by not just developers but artists, lawyers, business people, and even writers to manage their works. So, it just goes to show how invaluable this tool is. Many other tools can be used for source control but we are going to stick with Git and GitHub here. Other popular examples are &lt;strong&gt;Bitbucket, Mercurial, Beanstalk, Gitlab, etc.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;⚙️&lt;strong&gt;Resources to learn Version Control:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Again, Youtube is the way to go for learning Git. A myriad of videos teaching the basics as well as advanced git commands to make you more productive is readily available. &lt;strong&gt;&lt;a href="https://www.youtube.com/watch?v=8JJ101D3knE"&gt;“Programming with Mosh”&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a href="https://www.youtube.com/watch?v=RGOj5yH7evk&amp;amp;t=35s"&gt;“freeCodeCamp’s Git Tutorials”&lt;/a&gt;&lt;/strong&gt; are some of the top searches for learning Git. Shoutout to Fireship’s &lt;strong&gt;&lt;a href="https://www.youtube.com/watch?v=ecK3EnyGD8o"&gt;“Advanced Git Tricks”&lt;/a&gt;&lt;/strong&gt; video if you’re already familiar with Git and want to become more productive using it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I learned Git from &lt;strong&gt;&lt;a href="https://www.udemy.com/course/git-and-github-bootcamp/"&gt;Colt Steele’s GitHub Course&lt;/a&gt;&lt;/strong&gt; as well. I bought the Linux and GitHub course at a discount as a package deal. But I would recommend the Youtube videos for this.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Command Line and Terminal&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kG-vmXdI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4kr9m6794ejxpiduij42.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kG-vmXdI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4kr9m6794ejxpiduij42.jpg" alt="Terminal - Macpaw.com" width="880" height="491"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This one is kind of connected to my first and second points. If you already know Linux and Git then you have no problem navigating around the Terminal. Apart from Linux, if you’re using Windows or Mac which most developers do, you should know at least 10–20 commands for their respective command lines to make your lives easier. Windows has the &lt;strong&gt;PowerShell&lt;/strong&gt; and the Mac has its own &lt;strong&gt;Terminal&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The reason to learn the command line is that developers can have greater control of their machines and their operations and it improves the general workflow. Some of the other obvious reasons are that all the popular tools I mentioned above use the terminal, so it's like a win-win. Many tools like &lt;strong&gt;Docker, Vagrant, Kubernetes&lt;/strong&gt;, etc run on command-line environments.&lt;/p&gt;

&lt;p&gt;⚙️&lt;strong&gt;Resources to learn Command Line:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;These are mostly the same as the stuff for learning Linux but if you want to learn Powershell or the mac terminal, there are a lot of free documentation and videos available highlighting their most-used commands daily for a developer.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://docs.microsoft.com/en-us/windows/wsl/about"&gt;Windows Subsystem for Linux&lt;/a&gt;&lt;/strong&gt; and the &lt;strong&gt;&lt;a href="https://github.com/microsoft/terminal"&gt;Windows Terminal&lt;/a&gt;&lt;/strong&gt; are also great tools for windows users who want to use Linux environments on their laptops. These are the ones that I use mainly while working on projects.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Data Structures and Algorithms&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2QOmpHz8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1ia12w6v207zzfjv8x0o.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2QOmpHz8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1ia12w6v207zzfjv8x0o.jpg" alt="Freecodecamp DS Algo" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is not even a question about this one. All the top tech companies in the world require their developers to get &lt;strong&gt;comfortable with Data Structures and Algorithms&lt;/strong&gt;. You need them to solve complex problems, you need them to handle billions of units of data, and you need them if you want to work at the Big 5 which are &lt;strong&gt;MANGA (Meta, Amazon, Netflix, Google, Apple)&lt;/strong&gt; though there are many more other giants in the industry. No wonder their engineers stand out from others because they are phenomenal at solving algorithmic problems.&lt;/p&gt;

&lt;p&gt;Learning DS and Algorithms makes you a &lt;strong&gt;better programmer&lt;/strong&gt;, a persistent one, and gives you the ability to &lt;strong&gt;think logically&lt;/strong&gt;. There are always multiple ways to solve a problem and every engineer has a different thought process.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Even if you don’t get the correct answer the interviewer is looking for in the interview but the way you approached the problem was logical and efficient, chances are that you will be considered for the job. So to conclude, learn data structures and algorithms, end of the story.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;⚙️&lt;strong&gt;Resources to learn DS and Algorithms:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the one thing that I still haven’t learned but am planning to do this year. So I have compiled a bunch of resources which I will refer to while learning it and you guys can also take a look at it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I am in no way a book learner. I like to watch videos and follow along with the courses. But I found &lt;strong&gt;&lt;a href="https://www.manning.com/books/grokking-algorithms"&gt;Grokking Algorithms by Aditya Bhargava&lt;/a&gt;&lt;/strong&gt; interesting because it teaches you all the core concepts of programming through visualizing them. Visual medium for learning is my preferred choice and this book manages to do that by interesting diagrams and doodles explaining the fundamentals. So, if there is any book that I’ll ever read for learning purposes, this would be the first one.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lADiAyeZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hx04uksaecwl0gdzhy1y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lADiAyeZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hx04uksaecwl0gdzhy1y.png" alt="Grokking Algos" width="600" height="487"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Apart from the book, there are dozens of video resources, the popular ones including &lt;strong&gt;&lt;a href="https://www.edx.org/micromasters/ucsandiegox-algorithms-and-data-structures"&gt;Edx&lt;/a&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;a href="https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-fall-2011/"&gt;MIT OpenCourseWare&lt;/a&gt;&lt;/strong&gt;, and the &lt;strong&gt;&lt;a href="https://www.coursera.org/learn/algorithms-part1"&gt;Coursera Algorithms Series&lt;/a&gt;&lt;/strong&gt;. My go-to youtube resource will be &lt;strong&gt;&lt;a href="https://www.youtube.com/c/NeetCode"&gt;NeetCode&lt;/a&gt;&lt;/strong&gt;, and &lt;strong&gt;&lt;a href="https://www.udemy.com/course/js-algorithms-and-data-structures-masterclass/"&gt;Colt Steele’s Data Structures Course&lt;/a&gt;&lt;/strong&gt; on Udemy. (Yes, I know and this is the last time that I’ll mention him, I promise.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The above are the four main things that every developer MUST learn or know when they are starting or are junior developers, at least according to me.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Important Note&lt;/em&gt;&lt;/strong&gt; — If you want to learn Linux, Shell, Git plus some extra things along with them all from one single place, then MIT has a great set of videos titled “&lt;strong&gt;&lt;a href="https://missing.csail.mit.edu/"&gt;The Missing Semester of your CS education&lt;/a&gt;&lt;/strong&gt;” which focuses on all the topics that I have discussed in this article except Data Structures.&lt;/p&gt;

&lt;p&gt;Just remember that &lt;strong&gt;there is always something new to learn&lt;/strong&gt;, it can be a new framework or a library, maybe a new language. The use of them may vary from role to role and also whether someone wants to learn that technology personally just for fun. Here are some of them that I think can aid developers depending on their roles in the organization but are not “necessary” requirements to get entry-level jobs in the industry:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CI/CD Workflows&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BOnkzmqY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h0qe7hmgwozqrofr74r4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BOnkzmqY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h0qe7hmgwozqrofr74r4.png" alt="CI/CD 3D Vector" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;DevOps&lt;/strong&gt; industry has picked up a lot of pace in the past decade and with the introduction of popular software like &lt;strong&gt;Docker, Kubernetes, Jenkins&lt;/strong&gt;, and many more new CI/CD tools, the roles and responsibilities of software developers have also changed a little bit. These days, every developer is expected to know a little bit about DevOps methodologies and how CI/CD works with some knowledge about the tools utilized in the process.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Data Science and Machine Learning&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The concepts and fundamental ideas of data science and machine learning are very thought-provoking. But they also depend on the type of job that you’re applying for and it doesn’t hurt to know the basics. Most popular courses usually use Python for Data Science and the R programming language.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In addition to all of the above, there are a huge number of relevant computer science topics ranging from cryptography and security to system architecture, system design, and computer networking. No one can study all of them obviously and every field of computer science has its experts researching new technologies every day. At the end of the day, it all comes down to an individual's personal choice.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I am also listing a bunch of &lt;strong&gt;&lt;em&gt;bonus resources&lt;/em&gt;&lt;/strong&gt; down below that in my opinion can help a newbie in the field of Computer Science become a complete software engineer. These include enough resources and materials that range from periods of &lt;strong&gt;3 months to 4 years worth of study!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;But not all of us have the time to follow along with an undergrad degree’s level worth of study and that’s why you can pick and choose whatever you want to learn after you clear up the core concepts. Check them out here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/jwasham/coding-interview-university"&gt;John Washam’s Coding Interview University&lt;/a&gt;&lt;/strong&gt; — Over 215k stars on GitHub.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://teachyourselfcs.com/"&gt;TeachYourselfCS&lt;/a&gt;&lt;/strong&gt; — A high variety of subjects ranging from Math for CS, Distributed Systems, and Architecture.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/ossu/computer-science"&gt;OSSU&lt;/a&gt;&lt;/strong&gt; — Another popular GitHub repo mimicking an undergrad CS degree with over 2 years of helpful content.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://cs50.harvard.edu/college/2022/spring/"&gt;Harvard’s CS50&lt;/a&gt;&lt;/strong&gt; — Harvard University’s most popular course and it's free! Need I say more?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.theodinproject.com/"&gt;The Odin Project&lt;/a&gt;&lt;/strong&gt; — A highly successful resource for learning Web Development.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.freecodecamp.org/"&gt;freeCodeCamp&lt;/a&gt;&lt;/strong&gt; — Everyone in the software industry is familiar with this organization as well. With over 3000 hours of content on their website and more than 1000 videos on their &lt;strong&gt;&lt;a href="https://www.youtube.com/c/Freecodecamp"&gt;Youtube channel&lt;/a&gt;&lt;/strong&gt;, it’s my go-to resource for learning something new.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And that was it for this one! Hope you guys found it helpful. Let me know if I can make some additions or changes to this article or if I missed some other important tools that every developer should know. My objective for writing these articles is always to give back to the community which has aided me tremendously to become a good programmer.&lt;/p&gt;

&lt;p&gt;Connect with me on &lt;strong&gt;&lt;a href="https://github.com/thepiyushmalhotra"&gt;GitHub&lt;/a&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;a href="https://twitter.com/Ipiyushmalhotra"&gt;Twitter&lt;/a&gt;&lt;/strong&gt;, and &lt;strong&gt;&lt;a href="https://www.linkedin.com/in/thepiyushmalhotra/"&gt;LinkedIn&lt;/a&gt;&lt;/strong&gt;. Ciao!&lt;/p&gt;

</description>
      <category>linux</category>
      <category>git</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>Hard to swallow pills every new Developer should take.</title>
      <dc:creator>Piyush Malhotra</dc:creator>
      <pubDate>Mon, 28 Mar 2022 15:45:27 +0000</pubDate>
      <link>https://forem.com/thepiyushmalhotra/hard-to-swallow-pills-every-new-developer-should-take-5bfl</link>
      <guid>https://forem.com/thepiyushmalhotra/hard-to-swallow-pills-every-new-developer-should-take-5bfl</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"PHP Bad…Python Good"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The most important things that every new programmer must know before learning anything are usually the ones that are overlooked or ignored completely. Mainly because we don't want to admit that they are correct, either it's not the norm and we should always be "following trends" or because of other reasons related to &lt;strong&gt;cough &lt;em&gt;ego&lt;/em&gt; cough&lt;/strong&gt;. People like to dive straight into the learning part and create new and amazing things, which is not wrong by the way, I've done that too. But, I wish I knew some of these tips and facts about the tech industry, learning when you're working, and the shifting technology trends before starting that might have been a big help in my personal learning journey. These tips might prove useful for new and budding programmers who have never worked in a professional environment as I've mentioned below. I'm sure it's going to be a huge help in their learning path and change the traditional thought process while working in development that many people blindly follow. So let's get into it…&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oEpLzslO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/otpavues1algvjpi0yqh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oEpLzslO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/otpavues1algvjpi0yqh.png" alt="Reality of programming" width="715" height="605"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  1. There are NO bad programming languages.
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"There are only two kinds of programming languages, the ones people complain about and the ones nobody uses" - Bjarne Stroustrup&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Yup. I get a little annoyed every time someone makes fun of C, PHP, or Java and says that they are not good programming languages. Well, they are, you just either don't need them in your current situation right now or you need to spend more time on them if you're struggling. All these different languages are there for a reason and if over 3 billion devices are using Java or 80% of the internet runs on PHP, then the problem is not the language. The only thing required is practice and yes, sometimes it is tempting to see your friends playing around with Python or JavaScript, creating that cool game and that awesome-looking website with smooth animations but that's okay, you can use them too. Just make sure your goals align with the tools you are using.&lt;br&gt;
Until and unless you are using some esoteric languages like &lt;a href="https://en.wikipedia.org/wiki/Brainfuck"&gt;BrainF***&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/Befunge"&gt;Befunge&lt;/a&gt;, or &lt;a href="https://en.wikipedia.org/wiki/Malbolge"&gt;Malbolge&lt;/a&gt;, (which is highly unlikely) you don't need to switch the language you are learning just out of peer pressure. I saw this great informative post while scrolling through Reddit and thought it might be of some use here as a guide.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xYD63r_i--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iz6ojwi1cxszdv0tzexo.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xYD63r_i--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iz6ojwi1cxszdv0tzexo.jpg" alt="Language Deck" width="880" height="2174"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Your goal should be efficiency at work.
&lt;/h2&gt;

&lt;p&gt;While working a job, more often than not you will come across multiple ways of solving a problem. And more often than not, there will be an established "traditional" way of solving that according to your colleagues. But you should have the ability to know which solution will be more efficient in terms of your ability and learning speed. For example, it helps to know terminal commands of course in version control and that feeling of power is great when you push your code using Git via the terminal but if you feel more efficient using a GUI like GitKraken or GitHub Desktop then why not use that? You are here to do the job faster and make things more convenient for yourself.&lt;br&gt;
&lt;strong&gt;Don't let ego get in the way of being more efficient&lt;/strong&gt;. The same is the case for languages, practice what you feel makes your job easier because the core principles are the same for every one of them.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Those "green squares" on GitHub.
&lt;/h2&gt;

&lt;p&gt;Let's face it, you as a beginner in programming should be focused on learning and building things first as a priority. &lt;strong&gt;Creating your portfolio or jazzing up your GitHub profile part comes later&lt;/strong&gt;. But one thing I usually have noticed is that many developers get stressed out if they don't push their code daily and don't see that "green" square of contribution on GitHub. Guys, chillax. You're not going to lose a job opportunity because a recruiter noticed you did not push anything for 10 days. If you did, you dodged a bullet there because that company has some bad hiring practices. &lt;strong&gt;What good recruiters want to see is whether you have the necessary problem-solving skills or not. And if not, then provided the time whether you can learn them or not&lt;/strong&gt;. That's it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YprbkAv8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/61oyr3w7tx6gundfqf2t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YprbkAv8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/61oyr3w7tx6gundfqf2t.png" alt="GitHub Squares" width="870" height="248"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My point here is, if you do somehow manage to push something every day to GitHub for a whole year, it's an impressive feat but that should not be your ultimate goal. &lt;strong&gt;At the end of the day, it's just a vanity metric equivalent to reading 50 books in a year i.e it's nice if you can achieve it but don't worry even if you miss it a few times&lt;/strong&gt;.&lt;br&gt;
Once you reach that level of experience, you're going to notice that it's going to start happening by itself when you're working on various projects at once. I'm going to write another article in the coming weeks about how to keep your GitHub "busy" as a newbie developer. &lt;strong&gt;Meanwhile, &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fwebreflection.medium.com%2Fthe-day-my-raspberry-pi-failed-at-faking-my-github-activity-5ed65d73dd06"&gt;here is a very interesting read I came across by Andrea Giammarchi&lt;/a&gt; who clearly explains why the amount of your GitHub commits mean nothing&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. There is no fixed time for daily learning.
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Too much of anything is a bad thing, but too much good whiskey is barely enough. - Mark Twain&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As the title says, we all have lives apart from just sitting in front of a screen and it's important to hang out with friends, go out and do something fun, and just take a break for a while. I don't mean to say that you should break your #100DaysOfCode streak or daily 3-hour Leetcoding sessions but &lt;strong&gt;daily 30–60 minutes of practice also counts as actual work done&lt;/strong&gt;. So, if you give a whole day to yourself after studying for 1 hour in the morning then don't feel guilty about it. Some days we can work 4–6 hours straight and still have enough energy left to accomplish other things but then there are days when the mind just goes BrainF***.&lt;br&gt;
It is our developer's passion to learn new stuff and create amazing things out of them, be it just another hobby project or something that contributes towards helping the communities out there but when it starts to interfere with our peace of mind and we are feeling overwhelmed rather than relaxed after finishing a project or solving a problem, then that's a signal from your brain that you need to slow things down.&lt;/p&gt;




&lt;p&gt;That was it for the "hard to swallow" pills that every new developer should take. There are always more useful tips for newbies that help a lot while learning to code but the ones mentioned above were what I observed from my experience working as a developer and also across multiple social media platforms. I noticed many people were asking these questions on a daily basis so that's why I decided to write this nifty little article. Hope you guys found it helpful. Let me know if I can make some additions or changes to this article or if I missed some other important "pills". My objective for writing these articles is always to give back to the community which has aided me tremendously to become a good programmer.&lt;/p&gt;

&lt;p&gt;Connect with me on &lt;a href="https://github.com/thepiyushmalhotra"&gt;&lt;strong&gt;GitHub&lt;/strong&gt;&lt;/a&gt;, &lt;a href="https://twitter.com/Ipiyushmalhotra"&gt;&lt;strong&gt;Twitter&lt;/strong&gt;&lt;/a&gt; or &lt;a href="https://www.linkedin.com/in/thepiyushmalhotra/"&gt;&lt;strong&gt;LinkedIn&lt;/strong&gt;&lt;/a&gt;. And stay tuned for more stuff ahead! Ciao Guys!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>productivity</category>
      <category>developers</category>
    </item>
    <item>
      <title>The Analysis Paralysis of Learning to Code...</title>
      <dc:creator>Piyush Malhotra</dc:creator>
      <pubDate>Thu, 09 Dec 2021 12:12:45 +0000</pubDate>
      <link>https://forem.com/thepiyushmalhotra/the-analysis-paralysis-of-learning-to-code-9kh</link>
      <guid>https://forem.com/thepiyushmalhotra/the-analysis-paralysis-of-learning-to-code-9kh</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Tutorial Hell, am I right?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;Gone are the days where “geek” or “nerd” was used as a derogatory term. Coding is a fun hobby and also a very worthy skill to have in this rapidly growing software industry. The insatiable want to build things in developers has created so many amazing things that we don’t even notice while using them daily. You are reading this blog post on your device because of some vision that some person had! Big tech giants like Google, Facebook, Twitter, Netflix, etc have completely revolutionized this world digitally. The Information Age is over, we are stepping into the Augmented Age now and the demand for developers is more than ever.&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%2F66yp4d6o9wkbdi4ua5ue.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66yp4d6o9wkbdi4ua5ue.jpg" alt="Code Stock Photo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let’s say you have decided to learn to code, maybe for a job or just for the sake of it. Maybe you have a fun idea that has the potential to be the next big thing, or you just want to build things for fun and help the community that is helping you to learn to code, maybe you want a lucrative well-paying career working at one of the FAANG companies. Whatever it may be, the growth opportunities are endless, and peeking into your distant future self, imagining yourself as a Software Developer sends a high jolt through your mind. And guess what? You just finished your first programming course ever in JavaScript, Python, C++, or C and have the fundamentals down. You realize that the list of technologies to learn is endless. That’s okay, it seems scary but you buckle down and are ready to move on to the next thing! But uh-oh 😕, after deciding what you want to learn next, you’re gonna have to decide “where” to learn it from. That part almost always leads to decision fatigue and now you’re tired and demoralized before even showing up at the starting line.&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%2Fjitgfnm8cg6k9769c7vp.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjitgfnm8cg6k9769c7vp.jpg" alt="Chill"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Have a cup of Java ☕ (Pun intended!) and meditate. This is a normal thing to happen to developers, especially those who are just starting to learn. It feels more difficult to get the ball rolling but once you have relevant experience, you start to understand how the learning process works and that you’re not alone in running into these hiccups.&lt;br&gt;
I used to spend most of my time trying to find a variety of things to learn rather than simply sticking to one of them and taking that first step. Even now sometimes I am usually riffling through &lt;a href="https://www.reddit.com/r/learnprogramming/" rel="noopener noreferrer"&gt;r/learnprogramming&lt;/a&gt; to find something new to learn, reading articles at &lt;a href="https://news.ycombinator.com/" rel="noopener noreferrer"&gt;Hacker News&lt;/a&gt;, or working on personal projects. It did not take me that long to find out what I wanted to learn, especially now with so many communities out there for programming and computer science, developers are always helping out each other. But the task of finding “where” to learn it from was hellish. A simple internet search — “How to learn to program” will hit you in the face with books, courses, boot camps, projects, and so much more stuff when you barely only need about 20–30% of that stuff to get going. So how should one navigate the ton of material that is available on the web to make the most out of it?&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Less is More
&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%2Fcb4qi1eqvqxnzrcdx4z6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcb4qi1eqvqxnzrcdx4z6.jpg" alt="Minimalism Developer"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“When given too many choices, people tend to worry that there’s something better out there than what they decided on.”&lt;br&gt;
― Fumio Sasaki&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Way before I started learning, I started accumulating stuff thinking that when I’ll begin, I’ll have a lot of stuff to study. But in doing so, I was only delaying the process, partly because I was intimidated by programming and also because I never really felt ready because of my scanty collection of programming assets. Yeah right, “scanty”, says me while downloading yet another e-book and buying yet another course on Udemy which I might never finish.&lt;/p&gt;

&lt;p&gt;So make sure to focus on only a couple of the best available assets out there and steer through them while learning. My go-to path for learning any particular thing usually consists of what I call a &lt;strong&gt;“Programmer’s Knapsack”&lt;/strong&gt; containing 1–2 books, 1–2 BootCamp courses ranging anywhere from 3 hours to 30 hours depending upon the subject, and a couple of youtube videos related to that for refreshers. Even this is more than enough than what you usually need (I always tend to learn a little “extra”). Books help the most in laying the foundational knowledge, BootCamps or courses help in making the person feel more confident through projects and exercises and giving a “classroom” feel and finally, youtube videos save a lot of time while still covering the roots or every time you want to revise your learnings.&lt;/p&gt;

&lt;p&gt;I have provided some online resources to learn coding at the end of this blog post which helped me a lot and still does.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Don't Juggle as a Beginner
&lt;/h2&gt;

&lt;p&gt;Now, this might sound contradictory to my statement above that we should study from various mediums like books, courses, and some YouTube videos. But by “Don’t Juggle” here, I mean that if you have just started to learn as an absolute beginner, then make sure to finish whatever material you started learning from first before moving on to another. This happened to me where got bored from a book after a while and I shifted on to a course on Udemy. But after completing 50% of that course I realized that I already knew these things from the book, the only thing I needed was the practice from the exercises and making projects so instead of watching the course videos, I could have used that time to solve problems and improve my proficiency.&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%2Fkl1q1m0avrxy1tghrnbt.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkl1q1m0avrxy1tghrnbt.jpg" alt="Undecisive Meme"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;em&gt;kernels&lt;/em&gt; (again, forgive me for being punny) of programming principles remain the same no matter where they are learned from. So that’s why it's important to finish one resource and make sure you understand everything in that before moving on to something else. You will learn in a much better way and have a great feeling of closure and confidence after you complete it.&lt;/p&gt;

&lt;p&gt;Note: If you’re already an intermediate learner then you already know enough to pave your path ahead for learning! 👍&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Finish the Projects
&lt;/h2&gt;

&lt;p&gt;Almost every method of learning, be it YouTube, Udemy, Edx, etc or Books usually ends with an interesting project. It’s a good way to cement your foundations and give you confidence. Projects help you a ton in bringing everything together that you have learned. Plus, an impressive enough project can do wonders for your resume and make it stand out. BUT, these projects are usually guided by the authors so that you can code along with them and cross-check your mistakes which you will make for sure. I am not against this method of learning but a better way to follow this step would be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Try to create their given project from scratch using your knowledge and all that you have learned. See if you can do it without the author’s help. If you can, voila! You are a super talented genius.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you get stuck, do some googling and try to find and debug your mistakes. A big chunky part of a software developer’s time at his/her job is spent on stack overflow.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If it is still proving to be difficult only then check their solutions and code along with them. Because you don’t want to spend too much time sitting on a problem. No one knows the answers to all the problems, the fact that you are willing to learn makes you better than most people.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All these steps will give you a much better idea of how developers in the real world work and solve problems. That’s what we do, solve problems, ask for help, slack off, watch anime, and play games 🎮.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Don't be a Completionist
&lt;/h2&gt;

&lt;p&gt;This is kind of an extension to step 2. Once you have finished your first resource and have the basics understood, you’re going to realize all the “beginner” resources on the internet will always put their focus on those same basics, those loops, those if-else conditions, those functions, this is all that programming comes down to. So, you only need to study just one thing completely from start to finish to grab these concepts. Mastering them, however, depends on your self-practice. After this, If you have the time it’s your choice if you want to start from scratch again but make sure you do have the time.&lt;/p&gt;

&lt;p&gt;It’s bonkers the number of resources out there, so many that you can study all your life and still feel that you don’t know enough. Your goal is not to consume everything but to know enough so that you can excel at your job and keep building wonderful things. &lt;strong&gt;Bjarne Stroustrup, the legendary creator of C++ ranks himself a 7/10 at best in it!&lt;/strong&gt; If you don’t have the time to start again, a solution to this would be to kind of just do a quick go-through of the basics whenever you pick another resource and then pay attention to the more interesting exercises and projects.&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%2F9ka83yxm480wys3ueyqc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ka83yxm480wys3ueyqc.jpg" alt="Code Repeat"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Even if you have changed the language or subject, you will save a lot of time using this method because at the core of computer science, the concepts are the same. Except for some basic syntactical techniques, most of the time you won’t have to learn anything bulkier if you’re switching to another programming language.&lt;/p&gt;

&lt;p&gt;Learning to code is a demanding skill but keep in mind that you will also learn googling which helps all the developers in getting unstuck whenever there is a hurdle. So don’t beat yourself up for not remembering everything. We’re all humans here and we learn by making mistakes.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Know Your Purpose
&lt;/h2&gt;

&lt;p&gt;The last tip I can give to you guys is that never forget why you are learning to code. Knowing how to code itself is not an achievement, in the end, it is just a tool to help you either solve a problem, build a project or automate some task to make your life easier. With enough practice anyone can easily learn to code but what after that?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;For Students:&lt;/strong&gt; Coding is basically like training in the gym, the more you do it, the more you will get stronger in it. So, follow the tips above if you feel like you are getting lost and you'll avoid decision-making stress like a pro.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;For Career Makers:&lt;/strong&gt; Start approaching and researching job roles on LinkedIn, Glassdoor, and career websites for the companies. The right position will find you!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;For Hobbyists:&lt;/strong&gt; Keep expanding your skills and building mind-blowing stuff. I have seen people coming from construction, law, and finance backgrounds turn towards coding and make amazing things!&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So this was my article that included some tips on how to avoid analysis paralysis when it comes to learning code. I hope it helps everyone, especially the beginners who find it hard to swim in the tsunami of materials available online.&lt;br&gt;
Every day, new websites and resources are popping up for beginners to learn to code. I have listed below some of the most popular places to learn to code that have helped me a lot in my journey and millions of others.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/" rel="noopener noreferrer"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.edx.org/search" rel="noopener noreferrer"&gt;Edx&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/" rel="noopener noreferrer"&gt;Udemy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.freecodecamp.org/learn/" rel="noopener noreferrer"&gt;FreeCodeCamp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ossu/computer-science" rel="noopener noreferrer"&gt;Open Source Society University&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://teachyourselfcs.com/" rel="noopener noreferrer"&gt;Teach Yourself CS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.theodinproject.com/" rel="noopener noreferrer"&gt;The Odin Project&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.codecademy.com/" rel="noopener noreferrer"&gt;CodeAcademy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ocw.mit.edu/index.htm" rel="noopener noreferrer"&gt;MIT Open Courseware&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.reddit.com/r/learnprogramming/" rel="noopener noreferrer"&gt;Reddit — r/learnprogramming&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That’s it for this article folks! Make sure to check out my other article too — &lt;a href="https://dev.to/thepiyushmalhotra/the-beginner-friendly-way-to-learn-from-freecodecamp-on-youtube-37g7"&gt;“The Beginner-friendly way to learn from FreeCodeCamp on YouTube”&lt;/a&gt;. Let me know if I can make some additions or changes to this article or if I missed something important. My objective for writing these articles is always to give back to the community that has aided me tremendously to become a good programmer.&lt;br&gt;
Connect with me on &lt;a href="https://twitter.com/Ipiyushmalhotra" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt; or &lt;a href="https://www.linkedin.com/in/thepiyushmalhotra/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;. And stay tuned for more stuff ahead! Ciao!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>learning</category>
      <category>productivity</category>
    </item>
    <item>
      <title>The Beginner-friendly way to learn from FreeCodeCamp on YouTube.</title>
      <dc:creator>Piyush Malhotra</dc:creator>
      <pubDate>Wed, 17 Nov 2021 12:44:22 +0000</pubDate>
      <link>https://forem.com/thepiyushmalhotra/the-beginner-friendly-way-to-learn-from-freecodecamp-on-youtube-37g7</link>
      <guid>https://forem.com/thepiyushmalhotra/the-beginner-friendly-way-to-learn-from-freecodecamp-on-youtube-37g7</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.freecodecamp.org/"&gt;FreeCodeCamp&lt;/a&gt;&lt;/strong&gt; is one of the best places online for anyone who wants to learn programming and computer science concepts from scratch. You don’t need to spend  a dime and they give you over &lt;strong&gt;3000&lt;/strong&gt; hours of tutorials,  exercises, and projects which are surely going to teach you enough to land an entry-level developer job. But how exactly one should learn from FCC on Youtube?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The thing about freecodecamp is - On YouTube, the videos won’t be structured step by step as compared to some other platform, let's say &lt;strong&gt;Udemy&lt;/strong&gt; which follows more of a “Bootcamp-y” method. This might prove overwhelming to some people who want to start learning as it did to me. Now, don’t get me wrong, one can learn a lot by following FCC’s youtube videos, they have a ton of content that is not on their website as well. But for beginners, an unguided approach might be a little daunting.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This article acts as a guide for beginners as to where should people start learning from FCC’s youtube channel and gives you some tips to reduce clutter and focus only on the things that you require. But keep in mind that in the future you will require lots of googling and researching so do not limit your learning to just one resource. As of now, let’s dive into it…&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Sort by “Most Popular”
&lt;/h2&gt;

&lt;p&gt;No, really. Just sort the videos by popularity. The reason for this is that so many people have watched and liked that video so there must be something good in it, right? Precisely. It’s going to declutter the barrage of information in front of you so that you can focus only on what’s important.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Sd6031m7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b4fsgfz97tqjhpbw8v3g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Sd6031m7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b4fsgfz97tqjhpbw8v3g.png" alt="Sorted by Popularity" width="880" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Choose a Programming Language (Beginner Videos)
&lt;/h2&gt;

&lt;p&gt;No doubt in this one, you have to get your feet wet and for that, you need at least one language in your “backpack”. Clearly, with 28 million views, Python is the most popular language (also worldwide) which is easy to learn and beginner-friendly but don’t feel forced if you don’t want to. Do some research, read up some stuff, and choose whatever you think you feel comfortable in. Out of the videos above, you should go first for the beginner videos in Python, Javascript, Java, C, or C++ which are usually considered the “Big 5” of programming languages.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--x0N-zJJZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nkelx1g37zze73td1pf0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--x0N-zJJZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nkelx1g37zze73td1pf0.png" alt="Popular languages" width="860" height="472"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Establishing the fundamentals
&lt;/h2&gt;

&lt;p&gt;This is the critical point where everyone usually makes mistakes just like I did. You just watched a 4-hour video on a language and now you feel like you can move on to something else, you’re a geek now, right? Wrong! You cannot learn swimming just by watching someone execute a butterfly stroke ever so graciously. After finishing whatever language you just learned, it is time to apply that knowledge by building something. The best way to do this is to watch a “Build Projects” video from the channel and either code along or recreate it after, either way, you must polish the concepts that you have learned in step 2 (We become better by staying consistent).&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--futQBNnv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7yygnoa2xbz4l743c0xb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--futQBNnv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7yygnoa2xbz4l743c0xb.png" alt="Watch, Learn, Practice &amp;amp; Build !!" width="880" height="516"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Build anything, copy the project's lines while understanding the concept, go back to the video if you’re stuck, do some creative “googling” and keep on making a bunch of stuff until you are confident you can move on.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Second Language
&lt;/h2&gt;

&lt;p&gt;Now it's time to move on to another language and try on those projects that made using this new language. It will teach you how to work with multiple languages and also the basic differences between various syntax and functionalities. More importantly, it will make you more adaptable because, in a professional environment, you are gonna have to work with multiple technologies at one point or another. The main objective of this step is to teach how to understand the syntax of various languages and read different kinds of code properly.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Other Essential Skills
&lt;/h2&gt;

&lt;p&gt;You probably have enough practice and mini-projects under your belt now that you can start looking at some intermediate as well as advanced skills. It’s time to do more research now and expand your backpack, you could learn about &lt;strong&gt;computer networking, operating systems, database management (SQL), scripting, Linux, version control, data structures, and algorithms,&lt;/strong&gt; and many other tools that help in the development. A simple google search will show you the essential skills required from a software developer apart from programming. Keep in mind that you should be always practicing whatever you are learning currently and, it WILL help you in one way or another as a developer. All these 5 steps should take you about 3–6 months depending on your time, availability, and choice of topics. Study hard and succeed!!&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--P6SkxF58--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xcqocsfw80v1xhswaoqa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P6SkxF58--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xcqocsfw80v1xhswaoqa.png" alt="Keep Learning!" width="880" height="586"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  6. The World is your Oyster — Keep Learning
&lt;/h2&gt;

&lt;p&gt;It is time to choose a specialization in which you want to work professionally. Want to create games for a living? Want to design jaw-droppingly beautiful websites? Want to train computers to predict data? The options are in dozens and some of the growing industries include &lt;strong&gt;Web Development, Cybersecurity, DevOps, Full Stack Dev, Game Development, Data Science, Machine Learning, UI/UX, and many more&lt;/strong&gt;. If you are thinking that you need to learn “everything” before having a job, I’m afraid you are wrong. There are so many technologies and tools that are popping up every day it's practically impossible to keep up! You could study for 100 years and still not feel that you know enough (Avoid the Imposter Syndrome).&lt;/p&gt;

&lt;p&gt;Time to do some creative googling again. Do some research, join communities and subreddits about programming, ask questions about industries, start focusing on other resources for learning. Here is a simple roadmap sketch of the whole learning plan.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--u0Mq0E9t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kjarlaorzkjondc873pg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--u0Mq0E9t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kjarlaorzkjondc873pg.png" alt="Learning Path" width="880" height="515"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Well, there you have it, a simple guided plan for those who want to start learning from FreeCodeCamp’s Youtube Channel. What’s the next step? You could probably start tackling some junior developer roles while keeping on improving. Note that people can follow it along with other resources as well, this article is just for those who do not know where to start and prefer using FreeCodeCamp videos.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The resources are endless and my aim to write this article was to help declutter the learning path for the absolute beginners. I’ll put up a bunch of more stuff and resources to follow in the coming future. Thanks for reading folks!! If I missed some important steps then feel free to let me know and I will surely make the changes in the article.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>beginners</category>
      <category>freecodecamp</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
