<?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: Joel Vinay Kumar</title>
    <description>The latest articles on DEV Community by Joel Vinay Kumar (@joelvinaykumar).</description>
    <link>https://dev.to/joelvinaykumar</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%2F322705%2F1412670d-03f2-4342-bf66-483956dde97a.jpeg</url>
      <title>DEV Community: Joel Vinay Kumar</title>
      <link>https://dev.to/joelvinaykumar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/joelvinaykumar"/>
    <language>en</language>
    <item>
      <title>6 most things to love being a software developer</title>
      <dc:creator>Joel Vinay Kumar</dc:creator>
      <pubDate>Mon, 26 Oct 2020 06:18:17 +0000</pubDate>
      <link>https://dev.to/joelvinaykumar/6-most-things-to-love-as-a-software-developer-3pj</link>
      <guid>https://dev.to/joelvinaykumar/6-most-things-to-love-as-a-software-developer-3pj</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fbaq2blka4l662gzu4ms1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fbaq2blka4l662gzu4ms1.png" width="500" height="522"&gt;&lt;/a&gt;&lt;br&gt;
There are a lot of things to love about programming and also hate about it. It's always a love-hate relationship 😉. Ain't it?&lt;br&gt;
One day, I decided to become a software developer no matter what. I will put my sheer will, hard work and commitment towards this. Rage built in me. I quit my job as a customer support associate in Amazon. Applied for a post graduation and got into college. I really had 2 options. One, To learn programming all by myself through internet. Two, To join college and force myself into discipline so I can become a developer one day&lt;/p&gt;

&lt;p&gt;I chose 2nd option and today I'm a full stack engineer. So, here are things I love the most in my 17 months of career.&lt;/p&gt;
&lt;h3&gt;
  
  
  1. The paramount of resources available
&lt;/h3&gt;

&lt;p&gt;There are a huge ton of resources in internet. Even the newest technologies like &lt;code&gt;Deno&lt;/code&gt; has many tutorials.&lt;br&gt;
Core engineering, web development, system design, building your own programming language, IoT, cloud and what not.&lt;br&gt;
You can become from a zero to hero with less to no cost.&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Minimum infrastructure
&lt;/h3&gt;

&lt;p&gt;To learn programming, you need&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Power Supply&lt;/li&gt;
&lt;li&gt;Computer&lt;/li&gt;
&lt;li&gt;Internet&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And viola, you're good to go. Contrary to other streams, programmers read a lot of documentation instead of books. Yes, there are very good books related and some do read it. What I mean is, there is no investment needed in buying or borrowing books.&lt;/p&gt;
&lt;h3&gt;
  
  
  3. Community
&lt;/h3&gt;

&lt;p&gt;It would be mean if I had not mentioned this point. The support is tremendous. These people are real life heroes.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stackoverflow&lt;/li&gt;
&lt;li&gt;Sub-reddits&lt;/li&gt;
&lt;li&gt;Github issues&lt;/li&gt;
&lt;li&gt;Blogs&lt;/li&gt;
&lt;li&gt;Twitter&lt;/li&gt;
&lt;li&gt;Dev.to
and many more.
Yes you are stuck, but there is also enough help. Whether it be asking for a technical question, job opportunity or freelance project there is always somebody who is ready to help.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  4. It's magical
&lt;/h3&gt;

&lt;p&gt;Really. It's magical right! By writing code, all we're trying to do is flipping bits. But, this has a potential to transform lives. Look at digital classrooms, payments, shopping, music, movies, gaming, photography, 3D printing and ton other things. You can do simple addition to quantum equations, all by writing code.&lt;/p&gt;
&lt;h3&gt;
  
  
  5. It's challenging
&lt;/h3&gt;

&lt;p&gt;Most part of writing code is to first figure out the needs and solve the problem. Let's take a scenario.&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;To automate a coffee machine to brew coffee 8:00am everyday&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;To do this, you don't directly jump into writing code and expect everything to work.&lt;br&gt;
We list down what we have, what we need, how we solve the problem and what have to be done to ensure it. We have a coffee machine, a Raspberry Pi. To automate, we have check a list of things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A power supply&lt;/li&gt;
&lt;li&gt;Milk&lt;/li&gt;
&lt;li&gt;Coffee beans&lt;/li&gt;
&lt;li&gt;Condition of the machine&lt;/li&gt;
&lt;li&gt;Whether jug is placed under the tap&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now, we break down the tasks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Check the conditions above either manually or through sensors&lt;/li&gt;
&lt;li&gt;Take input of time, schedule, amount of coffee(like 100ml) and type of coffee&lt;/li&gt;
&lt;li&gt;Ground beans&lt;/li&gt;
&lt;li&gt;Heat milk and brew&lt;/li&gt;
&lt;li&gt;Dispense coffee&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is just a simple example. You can apply the same to basic calculation and launching missiles.&lt;/p&gt;
&lt;h3&gt;
  
  
  6. Programming is an art
&lt;/h3&gt;

&lt;p&gt;You probably heard this already. Numerous times. And, it's true. There is a ₹5000 wooden table and ₹50,000 wooden table. The difference is not just the type of wood used or the size, but the carpentry. Similarly, there are programs which can execute the given task in &lt;code&gt;n seconds&lt;/code&gt; and in &lt;code&gt;n/2 seconds&lt;/code&gt;. It will take time, patience, continuous effort, a lot of learning and dedication to be a good artist.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;The more you practice, the better you get.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There are so many things we can discuss, but I decided to cut off here so I wouldn't bore you or take a lot of your time. &lt;/p&gt;

&lt;p&gt;You've reached until here and I'm so thankful to you. Let me know in comments if you like/dislike this article and add points to this.&lt;/p&gt;

&lt;p&gt;To know me better, you can follow me on twitter. Link is in my profile.&lt;/p&gt;

&lt;p&gt;Adios!&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>career</category>
      <category>motivation</category>
      <category>yearinreview</category>
    </item>
    <item>
      <title>NestJs +MongoDB + GraphQL - All the basics you want to know</title>
      <dc:creator>Joel Vinay Kumar</dc:creator>
      <pubDate>Sat, 22 Feb 2020 22:38:04 +0000</pubDate>
      <link>https://dev.to/joelvinaykumar/how-i-understood-nestjs-graphql-mongoose-trilogy-55id</link>
      <guid>https://dev.to/joelvinaykumar/how-i-understood-nestjs-graphql-mongoose-trilogy-55id</guid>
      <description>&lt;p&gt;This is first part of series "How to build graphql API with mongoose and NestJS"&lt;/p&gt;

&lt;p&gt;Not a long topic, but I wish to keep it simple and brief. &lt;/p&gt;

&lt;p&gt;Before we jump in, I assume you already have an idea of Typescript &amp;amp; OOPS has it installed on your machine.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Part I:&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;What is NestJS?&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;It is a framework to build server side applications. Thereby provides robust and scalable applications. It has a ton of features built in &amp;amp; is also capable of custom plugins.&lt;br&gt;
TL;DR - Angular for backend&lt;/p&gt;

&lt;p&gt;NestJS can use express or fastify. You need to define it explicitly which to use while setting up your project&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;em&gt;How to install?&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;To install nest:&lt;br&gt;&lt;br&gt;
&lt;code&gt;sudo npm i -g @nestjs/cli&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;To create a new nest project:&lt;br&gt;&lt;br&gt;
&lt;code&gt;nest new &amp;lt;project-name&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;A basic nest project structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dist/
node__modules/
src/
   - app.controller.ts
   - app.module.ts
   - app.service.ts
   - main.ts
test/
.eslintrc
nest-cli.json
package.json
Readme.md
tsconfig.build.json
tsconfig.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I won't go deep with "NestJs project structure", but this is something you should understand to  further advance in this series.&lt;/p&gt;

&lt;p&gt;NestJS comes with facility to write unit tests and do end-to-end testing as well.The main core lies in the &lt;code&gt;src&lt;/code&gt; folder where all the magic happens.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;How nest carries a request?&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;This is an example of how a request is processed&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Foolfuonivmj78ziohc5f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Foolfuonivmj78ziohc5f.png" alt="Alt Text" width="786" height="271"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Controller class will route the request according to the method.&lt;br&gt;
Service class will manage the business logic and does the math.&lt;br&gt;
Module class is responsible for importing all dependent modules, classes &amp;amp; bind them together.&lt;/p&gt;

&lt;p&gt;This will ensure we can quickly develop modules in organized fashion and readable code.&lt;/p&gt;

&lt;p&gt;If you encounter some line of code like &lt;code&gt;@Injectable()&lt;/code&gt; are decorators, it will basically just inject dependency modules into your class so you don't need to bother importing all those same modules every time. If you can, just do a web search about &lt;code&gt;dependency injection&lt;/code&gt;. It is a great read.&lt;/p&gt;

&lt;p&gt;If you're new, just do &lt;code&gt;npm start&lt;/code&gt; and run the server. Open your browser and navigate to &lt;code&gt;http://localhost:3000&lt;/code&gt; and try to make sense of the controller, service structure.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { AppService } from './app.service';

@Controller()
export class AppController {
  constructor(private readonly appService: AppService) { }

  @Get()
  getHello(): string {
    return this.appService.getHello();
  }
}

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

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;@Controller&lt;/code&gt; routes the incoming request with base url ending with &lt;code&gt;/&lt;/code&gt; to it's particular method.&lt;br&gt;
In our case, it is &lt;code&gt;GET&lt;/code&gt; and function to be called is &lt;code&gt;getHello&lt;/code&gt;.&lt;br&gt;
This function invokes the method called &lt;code&gt;getHello&lt;/code&gt; in app service class.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DxtaVEJi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/practicaldev/image/fetch/s--xbTHqYbX--/c_limit%252Cf_auto%252Cfl_progressive%252Cq_auto%252Cw_880/https://thepracticaldev.s3.amazonaws.com/i/kj3bumug1s984iekkapn.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DxtaVEJi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/practicaldev/image/fetch/s--xbTHqYbX--/c_limit%252Cf_auto%252Cfl_progressive%252Cq_auto%252Cw_880/https://thepracticaldev.s3.amazonaws.com/i/kj3bumug1s984iekkapn.JPG" alt="Alt Text" width="691" height="521"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;h6&gt;
  
  
  Image credits: &lt;a href="https://dev.to/santoshyadav198613"&gt;Santosh Yadav&lt;/a&gt;
&lt;/h6&gt;

&lt;p&gt;Now, I'm bluntly assuming you have a basic idea of how nest can produce a web app. You can peep into &lt;code&gt;package.json&lt;/code&gt; file for all scripts to run the application.&lt;/p&gt;

&lt;p&gt;If you don't want to reload your server for every change, you can run server in watch mode like this :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm run start:dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Stay tuned for next part of the series where I discuss how to use MongoDB to build GraphQL APIs.&lt;/p&gt;

&lt;p&gt;It's an immense pleasure to know what you think in the comments below. Peace ✌️&lt;/p&gt;

</description>
      <category>nestjs</category>
      <category>mongodb</category>
      <category>graphql</category>
      <category>microservices</category>
    </item>
    <item>
      <title>What is free software and why you should care ?</title>
      <dc:creator>Joel Vinay Kumar</dc:creator>
      <pubDate>Wed, 29 Jan 2020 11:09:13 +0000</pubDate>
      <link>https://dev.to/joelvinaykumar/what-is-free-software-and-why-you-should-care-3oej</link>
      <guid>https://dev.to/joelvinaykumar/what-is-free-software-and-why-you-should-care-3oej</guid>
      <description>&lt;p&gt;Hi buddy!&lt;br&gt;
A big thanks for starting to reading this.&lt;/p&gt;

&lt;p&gt;I'm here to tell you, not the benefits of free software but the necessity of free software. My reference to &lt;code&gt;free&lt;/code&gt; is not as in &lt;code&gt;free beer&lt;/code&gt; but as in 'freedom'.&lt;/p&gt;

&lt;p&gt;Almost all top tech companies live on surveillance capitalism. Before jumping into judgement, that this is too political or just a rant, let me tell you why how this affects you &amp;amp; why free software is necessary.&lt;/p&gt;

&lt;p&gt;How do you differentiate free software? Here are the 4 signs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The freedom to run the program as you wish, for any purpose.&lt;/li&gt;
&lt;li&gt;The freedom to study how the program works, and change it so it does your computing as you wish. Access to the source code is a precondition for this.&lt;/li&gt;
&lt;li&gt;The freedom to redistribute copies so you can help your neighbor.&lt;/li&gt;
&lt;li&gt;The freedom to distribute copies of your modified versions to others. By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Please read about it more @ &lt;a href="https://www.gnu.org/philosophy/free-sw.html"&gt;GNU&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These 4 freedoms ensure the usage of software benefits everyone &amp;amp; prevents monopoly. I ask you 2 simple things. Is the software you're using have all this 4 freedoms &amp;amp; is it a monopoly or not ?&lt;/p&gt;

&lt;p&gt;Pull your phone out or your laptop, desktop and just ask yourselves.&lt;/p&gt;

&lt;p&gt;A large part of computer science is the result of research funded by the people &amp;amp; for the people.Yet, the same people are locked away on the terms of security.&lt;/p&gt;

&lt;p&gt;Today, we live in a world where we think that giving away our private data will somehow improve our lives. As you know, nothing is free. We trade our privacy with short-term happiness.We're tricked it is the benefit we get.&lt;/p&gt;

&lt;p&gt;Free Software is something which respects it's user. Imagine you bought a bike &amp;amp; you were instructed not to modify it or share it with anyone. That' s the freedom we lose.&lt;/p&gt;

&lt;p&gt;The cherry on the cake is that free software doesn't mean the cost of the software is zero. You can buy, sell, ,study, modify, rent, share all the pieces of code. Voilà! you have a software that respects you, your freedom and can be monetized ethically.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>gpl</category>
      <category>freedom</category>
      <category>meta</category>
    </item>
  </channel>
</rss>
