<?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: Mridul Tiwari</title>
    <description>The latest articles on DEV Community by Mridul Tiwari (@mridul_it_is).</description>
    <link>https://dev.to/mridul_it_is</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F818449%2F187be899-c6f1-4ca9-92f8-8e8753b10d54.png</url>
      <title>DEV Community: Mridul Tiwari</title>
      <link>https://dev.to/mridul_it_is</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mridul_it_is"/>
    <language>en</language>
    <item>
      <title>One Helm template change broke every Argo app — fixing nil `ingressInt` safely</title>
      <dc:creator>Mridul Tiwari</dc:creator>
      <pubDate>Sun, 16 Aug 2026 13:30:07 +0000</pubDate>
      <link>https://dev.to/mridul_it_is/one-helm-template-change-broke-every-argo-app-fixing-nil-ingressint-safely-dk8</link>
      <guid>https://dev.to/mridul_it_is/one-helm-template-change-broke-every-argo-app-fixing-nil-ingressint-safely-dk8</guid>
      <description>&lt;p&gt;The Slack thread started the way these things usually do: three people pasting the same Argo CD error within a few minutes of each other. Sync failed. Not one app — several. All on the same shared EKS platform, all pulling from the same application Helm chart we'd been using for ages.&lt;/p&gt;

&lt;p&gt;I opened Argo first on the app I knew had deployed recently, then on two others that hadn't changed in weeks. Same failure. That ruled out my first instinct — a bad image tag or a typo in one team's values file. Whatever broke was upstream of individual app config.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0uelcmcm76pgi3xebatp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0uelcmcm76pgi3xebatp.png" alt=" " width="503" height="242"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  A shared chart, a feature merge, and a new template
&lt;/h2&gt;

&lt;p&gt;Our platform pattern is familiar if you've run Kubernetes at any scale: dozens of services, one common chart, per-app and per-env values overlays. Argo CD watches the repo and syncs each Application to its cluster. Most apps define &lt;code&gt;ingress&lt;/code&gt; for their primary routing. A subset also define &lt;code&gt;ingressExt&lt;/code&gt; for a public-facing ALB. Nobody had needed an internal-only ingress type until recently.&lt;/p&gt;

&lt;p&gt;A feature PR had landed that added support for internal ALBs — &lt;code&gt;ingressInt&lt;/code&gt; — plus matching templates &lt;code&gt;ingress-int.yaml&lt;/code&gt; and &lt;code&gt;ingress-ext.yaml&lt;/code&gt; in the shared chart. The author needed internal ingress for one service, so they added an &lt;code&gt;ingressInt&lt;/code&gt; block to that app's values file and merged. CI was green. The chart rendered fine in whatever path the PR exercised.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5v5c3hz1f0bh8tj1jro2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5v5c3hz1f0bh8tj1jro2.png" alt=" " width="503" height="239"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then Argo tried to sync everyone else.&lt;/p&gt;

&lt;h2&gt;
  
  
  Narrowing it down
&lt;/h2&gt;

&lt;p&gt;Argo's UI isn't always generous with Helm errors, but the sync logs usually cough up the render failure. The message we kept seeing was the Helm classic:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Error: template: .../ingress-int.yaml:...: executing "..." at &amp;lt;.Values.ingressInt.enabled&amp;gt;: nil pointer evaluating interface {}.enabled
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That line tells you almost everything. The template touched &lt;code&gt;.Values.ingressInt.enabled&lt;/code&gt;. For the app that got the new values block, &lt;code&gt;ingressInt&lt;/code&gt; exists and has an &lt;code&gt;enabled&lt;/code&gt; field. For every other consumer of the chart, &lt;code&gt;ingressInt&lt;/code&gt; was never defined. In Go-template land, &lt;code&gt;.Values.ingressInt&lt;/code&gt; is &lt;code&gt;nil&lt;/code&gt;, and dereferencing &lt;code&gt;.enabled&lt;/code&gt; on nil is a hard stop — Helm never gets as far as creating or updating resources.&lt;/p&gt;

&lt;p&gt;I pulled the diff from the feature merge. Two new template files, and at the top of &lt;code&gt;ingress-int.yaml&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="pi"&gt;{{&lt;/span&gt;&lt;span class="nv"&gt;- if .Values.ingressInt.enabled -&lt;/span&gt;&lt;span class="pi"&gt;}}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No default in the chart's root &lt;code&gt;values.yaml&lt;/code&gt;. No guard checking whether &lt;code&gt;ingressInt&lt;/code&gt; exists before reading &lt;code&gt;.enabled&lt;/code&gt;. The template runs for every app on every &lt;code&gt;helm template&lt;/code&gt; / &lt;code&gt;helm upgrade&lt;/code&gt; — the &lt;code&gt;if&lt;/code&gt; only skips the &lt;em&gt;body&lt;/em&gt; of the template; the condition itself still evaluates &lt;code&gt;.Values.ingressInt.enabled&lt;/code&gt; first.&lt;/p&gt;

&lt;p&gt;That matched the blast radius. Apps with the new key: fine. Apps with only &lt;code&gt;ingress&lt;/code&gt; and maybe &lt;code&gt;ingressExt&lt;/code&gt;: broken. Apps that hadn't been touched in months: broken. Argo doesn't isolate chart render failures per consumer when they share a chart version — one bad optional key poisons the whole sync surface.&lt;/p&gt;

&lt;p&gt;We briefly wondered whether we should patch values files app by app. There are a lot of them — dev, staging, prod overlays, team forks. Adding &lt;code&gt;ingressInt: { enabled: false }&lt;/code&gt; everywhere would work, but it's the kind of churn that hides in a giant PR and still leaves you one missing file away from the next outage. The regression had already been introduced by adding &lt;code&gt;ingressInt&lt;/code&gt; to a single app's values while the template assumed every app would have the key. Repeating that pattern at scale felt wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  The fix: chart defaults and nil-safe guards
&lt;/h2&gt;

&lt;p&gt;We wanted a chart-only fix — no hunting through dozens of per-env values files, no coordination with every team to add a stub block. Two changes, applied together.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First&lt;/strong&gt;, add defaults in the chart's &lt;code&gt;values.yaml&lt;/code&gt; so &lt;code&gt;ingressInt&lt;/code&gt; and &lt;code&gt;ingressExt&lt;/code&gt; always exist, even when an app never mentions them:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;ingressInt&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;enabled&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
  &lt;span class="na"&gt;hosts&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[]&lt;/span&gt;
  &lt;span class="na"&gt;annotations&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;{}&lt;/span&gt;
  &lt;span class="na"&gt;tls&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[]&lt;/span&gt;

&lt;span class="na"&gt;ingressExt&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;enabled&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
  &lt;span class="na"&gt;hosts&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[]&lt;/span&gt;
  &lt;span class="na"&gt;annotations&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;{}&lt;/span&gt;
  &lt;span class="na"&gt;tls&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Apps that need internal or external ALBs keep overriding these in their own values. Everyone else inherits disabled defaults and never thinks about the keys again.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Second&lt;/strong&gt;, harden the templates so a missing or partial values merge can't take down render again. The condition in &lt;code&gt;ingress-int.yaml&lt;/code&gt; became:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="pi"&gt;{{&lt;/span&gt;&lt;span class="nv"&gt;- if and .Values.ingressInt .Values.ingressInt.enabled -&lt;/span&gt;&lt;span class="pi"&gt;}}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Same pattern in &lt;code&gt;ingress-ext.yaml&lt;/code&gt; for consistency — same class of bug, same class of fix. The &lt;code&gt;and&lt;/code&gt; short-circuits: if &lt;code&gt;ingressInt&lt;/code&gt; is nil or absent after a bad merge, the template skips cleanly instead of panicking.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9cugdkso0detdp0b8rox.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9cugdkso0detdp0b8rox.png" alt=" " width="509" height="236"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We reverted the one-off &lt;code&gt;ingressInt&lt;/code&gt; block from the single app's values file. With chart defaults in place, that app could set &lt;code&gt;ingressInt.enabled: true&lt;/code&gt; and its hosts/annotations when they actually needed internal ingress, without carrying a special snowflake block that implied the key was app-local rather than chart-wide.&lt;/p&gt;

&lt;p&gt;After merging the chart fix, Argo syncs recovered across the board without touching individual Application manifests or env-specific values. The app that originally needed internal ingress still opts in through overrides; the rest of the fleet never knew anything happened except that sync went red and then green again.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this works (and what we'd do differently)
&lt;/h2&gt;

&lt;p&gt;Helm merges values layers: chart defaults, then parent charts, then user-supplied &lt;code&gt;-f&lt;/code&gt; files and &lt;code&gt;--set&lt;/code&gt;. If the chart doesn't define a key, and no values file defines it either, &lt;code&gt;.Values.ingressInt&lt;/code&gt; is nil in the template context. Optional features can't assume every consumer opted in — especially on a shared chart where most apps will never use the feature.&lt;/p&gt;

&lt;p&gt;Defaults alone would probably have fixed this specific incident, because &lt;code&gt;ingressInt.enabled&lt;/code&gt; would resolve to &lt;code&gt;false&lt;/code&gt; everywhere. We kept the nil guard anyway. Defaults can be overridden away, subcharts can omit keys, and someone will eventually add a third ingress variant the same way. The guard costs one line and buys immunity to the exact error we saw.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmfk9hnqkzfx91rp7czge.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmfk9hnqkzfx91rp7czge.png" alt=" " width="503" height="246"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The process miss was visible in the PR itself: the feature was validated on one app that had &lt;code&gt;ingressInt&lt;/code&gt; in values, while the template executed for all apps on the chart. A render check that only runs &lt;code&gt;helm template&lt;/code&gt; with the happy-path values file wouldn't catch it. Next time, for optional blocks on a shared chart, I'd want CI to render against a minimal values fixture — just enough to deploy a generic app, with no &lt;code&gt;ingressInt&lt;/code&gt; — alongside the feature app's overlay. If minimal render passes, you've got both defaults and guards covered, or at least you'll see the nil pointer before merge.&lt;/p&gt;

&lt;p&gt;One template change broke every Argo app on the platform. Fixing it took chart-level defaults and a nil-safe condition, not a values-file scavenger hunt across the org. That's the pattern I'd reuse: when you add optional &lt;code&gt;.Values&lt;/code&gt; blocks to a shared Helm chart, ship chart defaults &lt;em&gt;and&lt;/em&gt; nil-safe template guards — not every consumer will define the key, and Argo will sync all of them on the same chart version whether you planned for that or not.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>kubernetes</category>
      <category>argocd</category>
      <category>eks</category>
    </item>
    <item>
      <title>When TLS 1.3-only broke everything behind Akamai</title>
      <dc:creator>Mridul Tiwari</dc:creator>
      <pubDate>Sun, 05 Jul 2026 06:59:46 +0000</pubDate>
      <link>https://dev.to/mridul_it_is/when-tls-13-only-broke-everything-behind-akamai-j3e</link>
      <guid>https://dev.to/mridul_it_is/when-tls-13-only-broke-everything-behind-akamai-j3e</guid>
      <description>&lt;p&gt;The alert wasn't subtle. Requests just stopped hitting our backend nginx box. Internal traffic from our own domains kept flowing, but anything coming in through Akamai-hosted domains — routed via the External LB — went dead. Several frontends all depended on that backend, so they went down together.&lt;/p&gt;

&lt;p&gt;We run nginx in front of a shared backend that multiple application frontends talk to. Under normal conditions, Akamai terminates at the edge, traffic crosses the External LB, and nginx forwards to the app tier. Internal paths bypass that edge path entirely, which is why the split behavior was our first real clue: the nginx box wasn't universally broken. Something in the Akamai → External LB path was failing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Chasing the wrong certificate
&lt;/h2&gt;

&lt;p&gt;We started from the frontend boxes and ran curls against the backend path. The failures looked like they were getting cut off at Akamai — not nginx, not the app. That pointed outward, not inward.&lt;/p&gt;

&lt;p&gt;We opened a ticket with Akamai. Their read was an SSL certificate problem. That didn't sit right. We hadn't rotated certs, renewed anything, or touched the cert chain on our side. If nothing on the certificate had changed, why would Akamai suddenly start rejecting handshakes?&lt;/p&gt;

&lt;p&gt;We kept digging anyway. The Akamai angle was real — requests really were dying at their edge — but "certificate issue" felt like a symptom label, not the mechanism.&lt;/p&gt;

&lt;h2&gt;
  
  
  The policy mismatch
&lt;/h2&gt;

&lt;p&gt;While we were going back and forth, someone pulled up the External LB TLS security policy. That was the turn.&lt;/p&gt;

&lt;p&gt;The LB had been set to TLS 1.3 only. At Akamai, the property was on their default supported policy — the one that negotiates down through 1.2 → 1.1 → 1.0, not a strict 1.3-only handshake.&lt;/p&gt;

&lt;p&gt;TLS 1.3-only on the load balancer means the server side of the handshake insists on 1.3. Akamai's side, configured for broader compatibility, wasn't going to meet it there. The handshake never completed. From the outside it looked like Akamai was cutting requests off — and in a sense it was, because the TLS negotiation failed before anything useful got through. Easy to misread as "SSL cert broken" when the real failure mode is protocol policy mismatch.&lt;/p&gt;

&lt;p&gt;We hadn't changed certificates. We had changed (or inherited) a TLS policy that didn't match what Akamai could speak on that property.&lt;br&gt;
What fixed it&lt;/p&gt;

&lt;p&gt;We rolled the External LB TLS security policy back to one that supports both TLS 1.2 and TLS 1.3. After that change, traffic from Akamai-hosted domains started reaching nginx again, and the dependent frontends came back.&lt;/p&gt;

&lt;p&gt;No nginx reload drama, no cert redeploy — just aligning the LB's minimum/maximum protocol behavior with what the Akamai property actually negotiates.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'm keeping in my head
&lt;/h2&gt;

&lt;p&gt;The split between internal (working) and Akamai (broken) saved us from burning time on nginx config. But "Akamai says certificate" plus "we didn't touch certs" should have pushed us to TLS policy sooner.&lt;/p&gt;

&lt;p&gt;The operational bit I care about: any time we change TLS policy on the External LB, we need to coordinate with whoever owns the Akamai property config. Edge and origin have to agree on what handshake they're willing to do. A 1.3-only LB in front of an Akamai property still on broad compatibility isn't a subtle drift — it's a hard cutoff.&lt;/p&gt;

&lt;p&gt;I'm marking this one complete, but the runbook note is the part that matters for the next person: check LB TLS policy against Akamai's supported cipher/protocol set before you assume the cert is bad.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>sitereliabilityengineering</category>
      <category>infrastructure</category>
      <category>tls</category>
    </item>
    <item>
      <title>What is the BEST Programming Language to Start with?</title>
      <dc:creator>Mridul Tiwari</dc:creator>
      <pubDate>Sun, 27 Feb 2022 15:41:27 +0000</pubDate>
      <link>https://dev.to/mridul_it_is/what-is-the-best-programming-language-to-start-with-27ai</link>
      <guid>https://dev.to/mridul_it_is/what-is-the-best-programming-language-to-start-with-27ai</guid>
      <description>&lt;p&gt;One of the most popular question that every student asks before they begin their journey of programming is which programming language to choose from OR should i say&lt;/p&gt;

&lt;h2&gt;
  
  
  WHAT IS THE BEST LANGUAGE TO START WITH ?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgwzoposqbuoo1vprolhp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgwzoposqbuoo1vprolhp.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A very cliche answer to this curiousity ridden question is "Every Language is Best, its just a matter of your personal choice"&lt;br&gt;
This would have been a good reply to someone who has learn few languages and is on the journey of making one or more, his best. But this isn't a good answer for someone who didn't even started their journey and are looking for something that is worth their time &lt;br&gt;
So, Here is a collection of all information you need to &lt;strong&gt;CHOOSE&lt;/strong&gt; which language to start from.&lt;/p&gt;

&lt;h2&gt;
  
  
  WHAT ARE THE AVAILABLE OPTIONS?
&lt;/h2&gt;

&lt;p&gt;If you are like me than you must have researched your days off to find out what are the different programming languages one can choose from ?&lt;br&gt;
And you might have come across a few like-&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;C++&lt;/li&gt;
&lt;li&gt;PYTHON&lt;/li&gt;
&lt;li&gt;C&lt;/li&gt;
&lt;li&gt;JAVA&lt;/li&gt;
&lt;li&gt;R&lt;/li&gt;
&lt;li&gt;REACT&lt;/li&gt;
&lt;li&gt;JAVASCRIPT,etc.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you have heard the names of any one of those than good you might have some knowledge of what we are going to discuss here&lt;br&gt;
But if you are hearing this for the first time than don't worry we are going to discuss some of them in this article only.&lt;/p&gt;

&lt;h2&gt;
  
  
  SOME SUBSTITUTES
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4d3ovbe6px8r9x3vf7sv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4d3ovbe6px8r9x3vf7sv.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now there are two more languages that are not considered programming languages but more of sturcture and styling languages i.e. &lt;br&gt;
&lt;strong&gt;HTML AND CSS&lt;/strong&gt;.&lt;br&gt;
They are the two languages that i recommend you should at least learn for a while if you have never programmed anything because these are very basic languages which can give you a jist of what the other languages might have in store for you and these languages will give you perfect mindset to deal and learn programming languages.&lt;/p&gt;

&lt;h2&gt;
  
  
  Shortening the List.
&lt;/h2&gt;

&lt;p&gt;Out of the above mentioned 7 programming languages there are 4 or lets say 3 languages most people are confused about that includes&lt;/p&gt;

&lt;h1&gt;
  
  
  1. C++
&lt;/h1&gt;

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

&lt;h1&gt;
  
  
  3. JAVA
&lt;/h1&gt;

&lt;h1&gt;
  
  
  4. C
&lt;/h1&gt;

&lt;p&gt;And Now we are going to judge these languages based on some criterias to clear the confusion.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are the Criterias of Judging?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;EASE to Understand&lt;/li&gt;
&lt;li&gt;Learning Curve&lt;/li&gt;
&lt;li&gt;Interface&lt;/li&gt;
&lt;li&gt;User Experience&lt;/li&gt;
&lt;li&gt;Any help website of youtube channels&lt;/li&gt;
&lt;li&gt;How much time it would take to learn?&lt;/li&gt;
&lt;li&gt;What are its real world use?&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  C
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fit9ppupqvpoiys849dvy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fit9ppupqvpoiys849dvy.png" alt=" " width="312" height="161"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;C is one of those language that i think is taught to first years in most of the colleges.And same was happened to me.Being a person who only knew Python by then it was not at all jarring for me to learn this language.&lt;br&gt;
So, the best advice i can give for this language is &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"You have to be open Minded and let things sink in first"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;-Ease to Understand :* * * * (4/5 stars)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As i mentioned earlier to learn C,One just have to let it sink in you mind for a little bit.By that i mean , Give it some time to let yourself understand its syntaxes and rules ,etc.&lt;br&gt;
In the mean time do some basic questions like Pattern Printing ,searching ,sorting and level up steadily.&lt;br&gt;
&lt;strong&gt;-Learning Curve: * * (2/5 stars)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Interface wise i would always recommend use an online compiler for C or a mobile app cause the other IDLE i tried for C for turbo C++ which was terrible but i give it benefit of doubt that it was meant to be used as programming IDLE for developers but for habitual Coding stuff&lt;br&gt;
&lt;strong&gt;-Interface: * * * (3/5 stars)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;C is a great User Experience being it so easy  to understand and learn&lt;br&gt;
&lt;strong&gt;-User Experience : * * * *(4/5 stars)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Helping guide for C are very fabulous and there are a lot of it:&lt;br&gt;
 &lt;a href="https://www.tutorialspoint.com/cprogramming/index.htm" rel="noopener noreferrer"&gt;Tutorial Point,&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.geeksforgeeks.org/why-learning-c-programming-is-a-must/" rel="noopener noreferrer"&gt;Geeks for Geeks,&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.freecodecamp.org/news/the-c-beginners-handbook/" rel="noopener noreferrer"&gt;Free Code Camp,&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.w3schools.com/c/index.php" rel="noopener noreferrer"&gt;W3school&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;-Help Guide: * * * * (4/5 stars)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It would take aprroximately a week or two for you to learn it if you go about only doing it for those weeks.Meaning its not much Time counsuming.&lt;br&gt;
&lt;strong&gt;-Time To Learn: * * (2/5 stars)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For the Real world use of C i would highlight what the internet has to say for it:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Real-World Applications of C. Use of the C programming language is not limited to the development of operating systems and applications. It is also used in GUI development, IDE development, etc."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;-Real World Experience: * * * (3/5 stars)&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  C++
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5ovzf5tzg7xdwwru4wru.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5ovzf5tzg7xdwwru4wru.png" alt=" " width="474" height="235"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My very first experience with C++ came about a couple of days earlier and i am not kidding once you do C its insanely easy to do C++. There are only syntax changes for the most parts.You will be done with all basic stuff in a day.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ease of Understanding: * * * (3/5 stars)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As of the Learning Curve its exactly like C so if you did C earlier than this will be a piece of cake but even if you take it as your first language than also it would take you anylonger to understand than if you had take C.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Learning Curve: * * (2/5 stars)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I will deduct a star for interface though cause although i gave C benefit of doubt that Turbo C++ was not meant to be for C.It was catered for C++ and it was not good Experience .I would recommend VS code for sure, here.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Interface: * * (2/5 stars)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you Use VS code as your text editor than the user experience with this language is very good.Some things are to be nit-picked but still all in all a satisfying user experience.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;User Experience: * * * (3/5 stars)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There have been a lot of Helping Media for C++ mainly because most students use it for CP(competitive Programming).So, you will not find lack of resources for C++&lt;br&gt;
some of which include:&lt;br&gt;
&lt;a href="https://www.w3schools.com/CPP/default.asp" rel="noopener noreferrer"&gt;W3school&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.tutorialspoint.com/cplusplus/index.htm" rel="noopener noreferrer"&gt;Tutorialpoint&lt;/a&gt;&lt;br&gt;
&lt;a href="https://stackoverflow.com/questions/tagged/c%2B%2B" rel="noopener noreferrer"&gt;StackOverflow&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.geeksforgeeks.org/cpp-tutorial/" rel="noopener noreferrer"&gt;GFG&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=8jLOx1hD3_o" rel="noopener noreferrer"&gt;freecodecamp&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Helping Guide: * * * * (4/5 stars)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As said earlier it won't take any more time than C did, if you are a beginner and this is your first language,But if this comes to not be your first language than it would take even lesser time for you to learn.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Time to Learn: * * (2/5 stars)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Its Real World Use is insanely big.&lt;br&gt;
And i will quote what the internet has to say about it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;" &lt;br&gt;
&lt;strong&gt;C++ Application in Real World&lt;/strong&gt;&lt;br&gt;
GUI Applications.&lt;br&gt;
Operating Systems.&lt;br&gt;
Web Browsers.&lt;br&gt;
Database Management System.&lt;br&gt;
Libraries.&lt;br&gt;
Cloud Computing and Distributed Applications."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Real Word Use: * * * * (4/5 stars)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  JAVA
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcvpr37o18fhwbuaata3k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcvpr37o18fhwbuaata3k.png" alt=" " width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Java is the language that i have been doing for quite some time now. So, I can give my very recent experience.&lt;/p&gt;

&lt;p&gt;As for the Ease of Understanding , i will say it looks and feels overwhelming at some times but if you give it time to sink it will become quite easy to grasp once you get over the fact that its imense and so does its code looks like.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ease of Understanding: * * * (3/5 stars)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Learning Curve is kinda Steep, You might not like but JAVA does have everything for you to figure out yourself but it also gives you very deep understanding of what make something work like it does.There is no hidden library or soemthing everything had to be mentioned by user only.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Learning Curve: * * * (3/5 stars)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I recommend using Intellij IDEA as the IDE for Java, as it has additional features with it and shortcuts for long code structures to make your work load small.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Interface: * * * (3/5 stars)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;From A User's Point of view it gives almost all control to the User.So it will do exactly what you tell it to do and will not do some parts on its own.So you have Full Control Over the language.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;User Experience: * * * (3/5 stars)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With Java too there is no lack of Helping sites, IT being such vast language you meight never find an error which is not faced by someone else as well.&lt;br&gt;
Some of Helping Guide include:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.javatpoint.com/java-tutorial" rel="noopener noreferrer"&gt;javapoint&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.geeksforgeeks.org/java/" rel="noopener noreferrer"&gt;GFG&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.w3schools.com/java/" rel="noopener noreferrer"&gt;W3school&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.youtube.com/playlist?list=PL9gnSGHSqcnr_DxHsP7AW9ftq0AtAyYqJ" rel="noopener noreferrer"&gt;Kunal Kushwaha's DSA playlist&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Helping Guide: * * * * (4/5 stars)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Java will take some time for you to learn and more of practice is needed in it.Its kinda Steep Learning Curve contribute to its Learning time.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Time to Learn: * * * (3/5 stars)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Java too has a lot of Real world Use and Here also i will quote what the internet has to say for it: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;" &lt;strong&gt;Applications&lt;/strong&gt;&lt;br&gt;
1) Desktop GUI Applications.&lt;br&gt;
2) Web Applications.&lt;br&gt;
3) Mobile Applications.&lt;br&gt;
4) Enterprise Applications.&lt;br&gt;
5) Scientific Applications.&lt;br&gt;
6) Web Servers &amp;amp; Applications Servers.&lt;br&gt;
7) Embedded Systems.&lt;br&gt;
8) Server Apps In Financial Industry."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Real Word Use: * * * * (4/5 stars)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  PYTHON
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqs4rq0x1uw9yb00rtypy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqs4rq0x1uw9yb00rtypy.png" alt=" " width="601" height="203"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Python is the very first language i learned so  i can tell from my experience that its fairly easy to Understand So,&lt;br&gt;
**&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;EASE to Understand: * * * * * (5/5 stars)
**&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;like all languages you have to learn it from very base level but for a beginner or a student as per say it does a lot of work for you as you don't have to tell what each variable's type is.(i.e. you don't have to write int a =10; again and again. you can just write a=10; and the python interpreter will take a as int).So,&lt;br&gt;
&lt;strong&gt;- LEARNING CURVE: * (1/5 starts)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Coming to the interface of python its interface depend on the type of IDLE that you use for eg-&lt;br&gt;
If you work on the default IDLE of python provided by its installer setup than its failry OK&lt;br&gt;
But if you use JUPITER NOTEBOOK than its interface is very good with features like line number and inout output bok right below the code space&lt;br&gt;
PYCHARM is also a pyhton IDLE that you can download its specifically made for Python and works fairly better than any other IDLE of Python.&lt;br&gt;
&lt;strong&gt;- INTERFACE: * * (2/5 stars)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Python's User Experience also depend on the type of Idle that you use like if you use Pycharm than its pretty good User interface with most of the required windows open on the screen with its own terminal and folder space&lt;br&gt;
But the default IDLE of python is Not user friendly as nothing is mentioned on the IDLE to help the absolute beginners while you can use "help()" function to get help about anything from IDLE.&lt;br&gt;
&lt;strong&gt;- USER Experience: * * * * (4/5 Stars)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For Python there very few websites to learn from some of which are&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=pkYVOmU3MgA" rel="noopener noreferrer"&gt;Free Code Camp&lt;/a&gt;,&lt;br&gt;
&lt;a href="https://www.geeksforgeeks.org/python-data-structures-and-algorithms/" rel="noopener noreferrer"&gt;Geeks For Geeks (GFG)&lt;/a&gt;,&lt;br&gt;
&lt;a href="https://www.udacity.com/course/data-structures-and-algorithms-in-python--ud513" rel="noopener noreferrer"&gt;Udacity (free Course)&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;- Learning Websites: * * (2/5 stars)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Python was fairly easy and fast to learn than any other language. Most of My understanding of python comes from Expreimenting with different projects and using differnet libraries to build one or the other thing so i think&lt;br&gt;
&lt;strong&gt;- Time to Learn: * * (2/5 stars)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As for what python is used for I would like to quote something coursera said about python &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Python is commonly used for developing websites and software, task automation, data analysis, and data visualization. Since it's relatively easy to learn, Python has been adopted by many non-programmers such as accountants and scientists, for a variety of everyday tasks, like organizing finances" &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But with that we must also know that if a beginner try to start from Python as their first language then you will be able to learn fast but there will be a lot of concepts that will never be understood by you cause in order to make python so easy it has hidden a lot of the basic key features from Storage class to Inheritance (OOPS), Method Overloading etc. which are very useful concepts. So you might learn fast but you will also miss alot of basics which may deter your foundation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- REAL World USE: * * (2/5 stars)&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F599cbn1f0qf4xf32ed7o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F599cbn1f0qf4xf32ed7o.png" alt=" " width="799" height="322"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So, The Conclusion is -&lt;br&gt;
If you wanna learn from Absolute Basic then Go for : &lt;strong&gt;HTML and CSS&lt;/strong&gt;&lt;br&gt;
If you don't have any programming language experience : &lt;strong&gt;Python&lt;/strong&gt;&lt;br&gt;
If you have some experience but wanna know it all : &lt;strong&gt;JAVA&lt;/strong&gt;&lt;br&gt;
If you wanna do some big Projects that have C/C++ : &lt;strong&gt;C &amp;amp; C++(both)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;All in all Give any language you choose some time and in the mean time do some questions and projects you wanna build etc. Soon you will become so Used to it that it will become like a second nature to you.&lt;/p&gt;

&lt;p&gt;And at last i wanna add that this is all my personal experiences and opinions.Don't go around changing your path just cause some Guy on internet said so. This Article and all other materials available on online platforms is meant to Help you on your journey.&lt;br&gt;
And please make sure to keep it that way.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>java</category>
      <category>cpp</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How should I start with programming? "Its all just a dabble"</title>
      <dc:creator>Mridul Tiwari</dc:creator>
      <pubDate>Sun, 20 Feb 2022 05:57:10 +0000</pubDate>
      <link>https://dev.to/mridul_it_is/how-should-i-start-with-programming-its-all-just-a-dabble-5hng</link>
      <guid>https://dev.to/mridul_it_is/how-should-i-start-with-programming-its-all-just-a-dabble-5hng</guid>
      <description>&lt;p&gt;If anything I want you to conclude from this Blog, It is this quote right here.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"If he was lost for a moment, he would dive straight back into its honey. ~ Laurence Olivier ".&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  My very blunt Experience
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Of how it feels to begin on the journey of learning programming as not just a curriculum but my career.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  BEGINNING
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0z6lrmoaie6mstovr485.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0z6lrmoaie6mstovr485.jpg" width="600" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I think it was around April or May of the last Year i.e. 2021. When I was studying for my exams of JEE taking a year drop and all my school friends were in some Colleges pursuing their degrees. I was bored enough and I got a hunch to do something to improve my soft skills. And pretty soon I realized I can't do it alone. I need some sort of a partner to do this. All in All, I and my friends started a small podcast to talk about teenage stuff namely WTeenF.&lt;/p&gt;

&lt;h2&gt;
  
  
  FIRST ENCOUNTER
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F76bm33ntkcr1wg0534s9.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F76bm33ntkcr1wg0534s9.jpg" width="600" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And we started building websites or I should say they began building website designs for the podcast and this made me interested in learning what in the world are they doing cause as long as I remember I never learnt anything in HTML that let me make such beautiful websites I was flabbergasted by it. So I researched my day off and found it was CSS behind all that and this led me ways to find out where can I learn CSS from. Then I came across &lt;a href="https://www.geeksforgeeks.org/" rel="noopener noreferrer"&gt;GFG(Geeks for Geeks)&lt;/a&gt; it gave me all the written stuff to understand what was programmers using in CSS. &lt;br&gt;
&lt;strong&gt;&lt;em&gt;And Yes I said programmers as I didn't consider myself anything back then than just a normal kid, not a programmer for sure.&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
 But I am not that much of learning from text kinda guy so I searched two more days off and for various influencers that are doing God's job of making all that text summarized or let's just say explain it to us such as &lt;a href="//www.freecodecamp.org"&gt;freecodecamp&lt;/a&gt; and &lt;a href="//www.w3schools.com"&gt;w3schools&lt;/a&gt; are some of my favourite sites and youtube channel as in the case of former one to learn the codebase of CSS. Their teaching method of learning via programming side by side made me fall in love with the subject at hand and I still love any course they put up there. Obviously, I was excited enough then and kept doing these things and started building different projects some of which are already available for everyone to try and just some beginner-friendly stuff.&lt;/p&gt;

&lt;h2&gt;
  
  
  Experience with Git
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fepeza73rpqggoqiqu2nl.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fepeza73rpqggoqiqu2nl.jpg" width="800" height="587"&gt;&lt;/a&gt;&lt;br&gt;
That journey kicked off then and I soon learnt &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;Git&lt;/a&gt;. And for those of you who don't know what Git is don't worry I will quote what the internet has to say about it:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Git is software for tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In layman language, it is software to run open-source projects on your device and push your enhancements or fixes to that open source project, which will be available to everybody.&lt;br&gt;
It is by the way was a totally reversed experience from the previous ones for me. As I couldn't learn Git via any youtube video and Just by chance after searching a lot about it and finding things on my recommended page I found a Course on Git on Udacity and here is its link:&lt;br&gt;
&lt;a href="https://www.udacity.com/course/version-control-with-git--ud123" rel="noopener noreferrer"&gt;https://www.udacity.com/course/version-control-with-git--ud123&lt;/a&gt;&lt;br&gt;
And finally learnt what GitHub is.&lt;/p&gt;

&lt;h2&gt;
  
  
  What life might throw at you
&lt;/h2&gt;

&lt;p&gt;By this time I had already entered my college first semester and then I found a creator namely &lt;a href="https://www.youtube.com/c/KunalKushwaha" rel="noopener noreferrer"&gt;"KUNAL KUSHWAHA"&lt;/a&gt;. This man is really doing some amazing work and I started learning java from him. And for the record, it was not an easy hill for me because my laptop couldn't support any languages Compiler or IDLE nor a  text editor other than Sublime Text. So all of my java course was practised on an online compiler namely replit.&lt;/p&gt;

&lt;h2&gt;
  
  
  CONCLUSION
&lt;/h2&gt;

&lt;p&gt;So this was my journey to the point where I am now and what I can say from all this is, Actually the only thing that has been stopping me from doing anything is the fear of not knowing what it is for me in this in my future. But whenever I dive straight into it I have found myself learning and progressing fairly well... &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"With that BEST OF LUCK to all of you people in your journey as well".&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>codenewbie</category>
    </item>
  </channel>
</rss>
