Rules and tools to Rule on code- Chapter 1
Tags: beginners, programming, productivity, computerscience
Published: 2021-01-31 12:03:12

![Alt Google images](https://dev-to-uploads.s3.amazonaws.com/i/ccni3wv7i3x12cbo0p2t.jpg)

Struggling with a bunch of lines of code and not able to understand how the code is working or unable to understand how to start code to solve the problems is a very basic and well-known fact. But this is hard to understand for those who recently start code or learning how to code. This is not yet out there we also have devs who are struggling with the work style life because they cannot balance their personal and professional life. <mark>So in this article, I’ll share my experiences “How I overcome with these types of problems and tools which really helped me a lot”.</mark>

I will start everything from 0, i.e. how to code? And in the end, will end on 1 also share the tools and techniques which I follow to make a balance with my professional and personal life.

<b>Note</b>: If you already have some experience in programming then you can skip the Language selection part. 
<h3><strong>Language Selection</strong></h3>

![Selection](https://image.freepik.com/free-vector/illustration-selection_53876-5256.jpg)
<figcaption><a href='https://www.freepik.com/vectors/background'>Background vector created by rawpixel.com - www.freepik.com</a>
</figcaption>
About, 90% of students select a random programming language (mostly prefer languages recommended by experienced programmers or it looks cool to them) and start learning with no plan or strategy due to which when they are not able to implement they get frustrated easily due to which they give up or mostly again start with a new randomly selected programming language but after some times they also give up. 

<blockquote>Here I am not going to suggest any specific language name because once when I will suggest something to you I will suggest based on my experience or like-dislike which may not be suitable for you.</blockquote>

So the <mark>best solution</mark> for this phase is to understand why you want to code? Once you understand, you will have a logical goal of what you want to become to pursue your career as a developer. Now it’s time to do some research work in which field you are interested. To fast this process just Google using keywords like If you want to become Data Scientist then Google “Roadmap for Data Scientist” or “Data Science Roadmap”, “Data Science Prerequisite”. Follow only popular blogs like Freecodecamp, Dev.to, or any famous Medium publication to get quality material. For now, just note down all the names of the language according to the given flow of roadmap, i.e. very basic requirement to start. 

As you know the basic requirements now, you are ready to shine in the world of programmers. 



<h3><strong>Reading vs Watching</strong></h3>

![Blogging Vs Youtube](https://bloggingx.com/wp-content/uploads/2020/03/blogging-vs-youtube-new.png)

Everyone has his unique way to learn something most of you like to read, to learn something new, while most of you prefer some video lectures in order to learn. But which is the best way to create a firm base? 

Actually, both are good if looking from a unique perspective. Let’s look at them one by one. 

Reading is the method which forces you to think about something really hard due to which you learn lots of things and also improve the analysis and understanding skill more accurately and fast as compared to watching. But sometimes in critical concepts, it makes really hard to understand or limit creativity. Limiting creativity is in terms of implementation here. Not able to think how to implement that certain thing in the actual world or practically. But no one can deny that is reading is an unlimited source of knowledge that is open for all.

Watching is actually opening the gate to think more practically. Watching videos does not give you much time to think about concepts that you watched so due to which you get limited knowledge. Scope of the knowledge limit to only what the only the instructor knows.  

But If reading is an unrestricted source of knowledge, then Watching is an unlimited source of experiences and practices. 

<h5><b>How I work</b></h5>

Now the question is which one to choose? Actually, it’s totally on the learner in which way he learns fast. Here what I follow when I learn something new 

Before start learning any topic first, I ask myself how important is it i.e. Is it very urgent or not? If yes, then how many days I have to complete it? And this last step, i.e. completion of that task, I break it into 3 parts 1. Basic 2. Avg. and 3rd is Master. So mostly I made all the list of things I have to learn video link of the video course or blog or both then assign them a tag any of above 3. Assigning a tag is difficult to part because before assigning it is have to have an idea about the difficulty level of the task and will you able to achieve that task in such interval time or not, In case you not able to complete what you expected then don’t get stressed just analyze them and learn why you not able to achieve and what you had to do in order to achieve. All these small steps make a knock on the success door later. 



<strong>Suggestion</strong>: If you are weak or have weak imagination skills to relate theoretical things to the real world, then I will suggest that you go with the videos first (for the basics only). Once you have done with the video, then start any blog or book for depth. 

<h3><strong>Use features as A WEAPON</strong></h3>
![VS Code vs Sublime] (https://nickjanetakis.com/assets/blog/cards/switching-to-vscode-from-sublime-text-59eff7314137b18c5f282d6ded6129ee89f56bc5cd3952aa65734da92cec47f6.jpg)
To understand this just make a list of IDEs, Frameworks, Application etc and their features. Have you listed all the name of the application and features ??
If yes then let us know by commenting below… 
Now it’s time to answer why we have to use them. Features makes works easy and also saves your lots of time too. If you think it’s not worth it then let me explain it with an example… 
Let’s say you are watching some tutorial on Youtube. As you are so intelligent and slow teaching results boredom for you so now you have to 2 ways continue first is close and  2nd one is simply waste your valuable time in searching any alternative. But if I say you have another solution to go with same same video without irritating… then solution is very simple i.e. increase the playback speed of the video from normal to the speed at which you can understand. 
As you can see every platform have some unique features but generally we don’t use their speciality or we use to prefer only that which one you like the most. So if you are using any platform then you have to know about the features (At least know only those which you think will be useful for you ).
For IDEs extensions are most widely features which people use across the globe. This is the main reason most beginners prefer VS Code or Sublime Text.  
If you just decided to practice on your 1st programming language then I will suggest to use only these 3 extension 
<ul>
<li><h5>Debug Visualizer</h5> If you not able to understand the flow of the code you have then it is the best tool to visualise the code.<br> 
<a href="https://marketplace.visualstudio.com/items?itemName=hediet.debug-visualizer">For VS Code</a> , <a href="https://www.granneman.com/webdev/editors/sublime-text/set-up-sublime-text-to-preview-your-code-in-a-web-browser ">For Sublime text</a></li>
<li><h5>Debugger</h5>  It will helps you to find the error in your code.<br>
<a href="https://code.visualstudio.com/api/extension-guides/debugger-extension">For VS Code</a> ,<a href="https://github.com/daveleroy/sublime_debugger"> For Sublime Text</a></li>
<li><h5>Beautify</h5> Beautify helps you to write the code in a format. Generally programmer does not use indentation and spaces in right format which makes the code hard to read. So Beautify helps you to write code in clean format. It is possible that Beautify does not support the language in which you are practicing so you have to find the alternative like <a href="https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode">Prettier</a> . But before searching “Code formatter for VS Code or Sublime” go to description to see the supporting languages.<br>
<a href="https://marketplace.visualstudio.com/items?itemName=HookyQR.beautify">For Vs Code</a>, <a href="https://packagecontrol.io/packages/Formatter">For Sublime Text</a></li> 
</ul>
Here few extension suggestions for VS Code: 
<ul>
<li><a href="https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-close-tag">Auto-Close Tag</a> </li>
<li><a href="https://github.com/prettier/prettier-vscode">Prettier</a></li>
<li><a href="https://marketplace.visualstudio.com/items?itemName=Shan.code-settings-sync">Settings Sync</a></li>
<li><a href="https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker">Code Spell Checker</a></li>
<li><a href="https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint">ESLint</a></li> 
<li><a href="https://marketplace.visualstudio.com/items?itemName=CoenraadS.bracket-pair-colorizer">Bracket Pair Colorizer</a></li>
<li><a href="https://code.visualstudio.com/docs/editor/integrated-terminal">Integrated Terminal </a></li>
<li><a href="https://marketplace.visualstudio.com/items?itemName=PKief.material-icon-theme">Material Icon Theme </a></li>
<li><a href="https://marketplace.visualstudio.com/items?itemName=christian-kohler.path-intellisense">Path Intellisense</a></li>
<li><a href="https://marketplace.visualstudio.com/items?itemName=auchenberg.vscode-browser-preview">Browser Preview</a></li>
<li><a href="https://marketplace.visualstudio.com/items?itemName=KnisterPeter.vscode-github">Github</a></li> 
<li><a href="https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare">Live Share</a></li> 
<li><a href="https://marketplace.visualstudio.com/items?itemName=WallabyJs.quokka-vscode">Quokka.js</a></li> 
<li><a href="https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer">Live Server</a></li> 
<li><a href="https://marketplace.visualstudio.com/items?itemName=xabikos.JavaScriptSnippets">JavaScript(ES6) Code snippets</a></li> 
<li><a href="https://marketplace.visualstudio.com/items?itemName=msjsdiag.debugger-for-chrome">Debugger for Chrome</a> </li>
<li><a href="https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens">GitLens - Git Supercharged</a> </li>
<li><a href="https://marketplace.visualstudio.com/items?itemName=eg2.vscode-npm-script">npm </a></li>
<li><a href="https://marketplace.visualstudio.com/items?itemName=HookyQR.beautify">Beautify</a></li>
<li><a href="https://marketplace.visualstudio.com/items?itemName=humao.rest-client">Rest Client</a></li> </ul>

This is a never ending list so I just wrote few of them. Now it is your job to find which suites you better.<br \>
For sublime text I will suggest you to go through <a href="https://www.slant.co/topics/197/~best-plugins-for-sublime-text">this</a> blog. 

This all for this series. In next upcoming we will describe about productivity, timeline, best practice with a long list of problems, interview preparations, etc. 
<strong>If you like my effort and find the content useful then please share and to support me you can buy me a Coffee or can subscribe my services.</strong> 

<a href="https://www.buymeacoffee.com/opposite"><img src="https://img.buymeacoffee.com/button-api/?text=Buy me a gift&emoji=🎁&slug=opposite&button_colour=FFDD00&font_colour=000000&font_family=Lato&outline_colour=000000&coffee_colour=ffffff"></a>