Before coding loads!
Tags: codenewbie, devjournal, beginners
Published: 2021-04-09 18:40:15

Coding can be overwhelming. We have all been there in that state of confusion before embarking on the coding journey. Before you start coding, there are a few points you have to keep in mind when it comes to web development or programming in general.

#### Code editors

Code editors such as [Atom](https://atom.io/), [Brackets](brackets.io), and [Visual Studio Code](https://code.visualstudio.com/) will create the coding environment where you can write your code. I recommend _Visual Studio Code_, which comes with packages and extensions that will make your workflow much faster and easier.

#### Sources

Avoid jumping from one source to another or from one video to another. I recommend juniors to opt for one source and stick to it until the end.

* Documentations

Documentations are super handy. Sticking to documentations will help you get the gist of whatever is going on and not get lost. Documentations such as [MDN Documentation](https://developer.mozilla.org/en-US/) and [W3Schools](https://www.w3schools.com/) can provide you with the best paths and understanding all concepts you need to know. Each scripting or programming language has its own documentation like [Python Documentation](https://docs.python.org/3/), [PHP Documentation](https://www.php.net/docs.php) and so on.

* YouTube

Not all YouTube channels are informative. Potential creators such as [Brad Traversy](https://www.youtube.com/user/TechGuyWeb), [Web Dev Simplified](https://www.youtube.com/channel/UCFbNIlppjAuEX4znoulh0Cw), [The Net Ninja](https://www.youtube.com/channel/UCW5YeuERMmlnqo4oq8vwUpg), [Dev Ed](https://www.youtube.com/channel/UClb90NQQcskPUGDIXsQEz5Q), [Kevin Powell](https://www.youtube.com/user/KepowOb), and [Steve Griffith](https://www.youtube.com/channel/UCTBGXCJHORQjivtgtMsmkAQ) can provide you with reliable crash courses and content to follow.

* Platforms

You do not have to spend money on platforms to have access to. There are great free platforms that could provide you with a reliable source of information such as [FreeCodeCamp](https://www.freecodecamp.org/), which I highly recommend. You can also go with [Codecademy](https://www.codecademy.com/) which has free access for HTML, CSS and JavaScript basics. But, if you want to go further with other languages, you will have to go pro and pay. I think that _Documentations_ are sufficient.

#### Frontend & backend

Before starting, you have to understand the difference between a _front-end developer_, a _backend developer_, and a _full-stack developer_ and the languages each part uses to achieve their goals.

* A frontend developer

Basically, a frontend developer deals with _client side_ which refers to whatever the user sees on the screen and interacts with. A frontend developer will have to acquire `HTML`, `CSS`, `JavaScript`, and later go with `React`. (S)he has to analyse the performance of a website, for example, and imagine enough to design it.

* A backend developer

Basically, a backend developer deals with _server side_ which refers to whatever the user cannot see. Everything occurs in the background. Everything that has to do with functionalities like creating a shopping cart, making dynamic pages, creating app tools etc. A backend developer will have to acquire one of server-side languages such as [PHP](https://www.php.net/), [Node.js](https://nodejs.org/en/), [Python](https://www.python.org/) etc and a relational ([MySQL](https://www.mysql.com/), [PostgreSQL](https://www.postgresql.org/), [IBM](https://www.ibm.com/analytics/database-management)) or non-relational (such as [MongoDB](https://www.mongodb.com/), [Cassandra](https://cassandra.apache.org/)) database.

* A full stack developer

A full-stack developer deals with both frontend and backend sides.

#### Consistency

Juniors often start taking it lightly. Keep in mind: to become a professional web developer or programmer, you have to learn and practise as much as possible through _doing_. The keyword here is _doing_. You have to be consistent and stick to a determined schedule.

#### Libraries & frameworks

I wish I knew this when I had started my journey. `Libraries` and `frameworks` are coded by other developers and software engineers. Most people in the area use both terms interchangeably, but there is a subtle difference.

* Libraries

A `library` is a set of thousand codes or rules pre-defined for us to employ. For instance, [jQuery](https://jquery.com/) is a JavaScript library that provides us with ready-made code put together to help us _write less and do more_. In a nutshell, you manage and dominate the library the way you want.

* Frameworks

A `framework` is also a set of thousand predefined codes or rules. But you cannot control it; it controls the flow of your work. For example, after finishing with HTML, CSS, and JavaScript and having a basic understanding of server-side, you will have to pick a framework to stick to when building your projects. Frameworks such as [Vue](https://vuejs.org/) and [Angular](https://angular.io/) target frontend. [Express](https://expressjs.com/) is another framework for [Node.js](https://nodejs.org/en/) on the server-side.

#### Problem-solving & errors

* Problem-solving

A developer or programmer has to have a particular mindset before starting the journey. Keep in mind that developing or programming is all about _problem-solving_. Keep that mindset during the entire journey from learning to becoming a professional developer or programmer.

* Errors

It is the standard to make mistakes. We are not born smart. The great portion of the entire journey aims at going through trial and error to reach the problem-solving stage. Although I'm not a big fan of [Stackoverflow](https://stackoverflow.com/), you still can check it out for error solving. I recommend you to understand your code and solve it yourself.

#### Tricks & hacks

Through the entire journey, there are `tricks` and `hacks` you have to learn. No one will ever tell you about them unless you do your thorough research. I recommend [Dev.to](https://dev.to/), [CSS-Tricks](https://css-tricks.com/), [freeCodeCamp](https://www.freecodecamp.org/) which provide informative articles that can help you during your work.

#### Best and bad practices

Last thing to keep in mind: there are radically two ways of writing your code; either the _best_ way or the _bad_ way. A good practice aims at achieving a clean and highly-secured code which doesn't allow room for bugs to break it down. A bad practice, which you should avoid, leaves your code not clear, not clean and, most importantly, fragile. That's to say it could easily break. 

The list could go on and on. But, these are the fundamentals you have to keep in mind as a junior developer.