Who & What is behind the magic of tech world
Tags: webdev, computerscience, beginners, programming
Published: 2024-07-09 11:51:02

Ganpati Bappa Morya 🙏

Hi, this is me with my first article, which will explain you how the industry of the most prominent sector of the world looks like, who works behind the screens of your most used app or site or game, how the development process works and much more. Let's Start.

I am taking example of Instagram, below is the whole system design of Instagram

![Instagram System Design Image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x6p7o08ewahjlsk2o1o4.png)

A system design is a design of the backend architecture of a tech product, the design should be reliable and scalable to handle projected users (unlike our government websites), usually it is done by seniour software engineers in the company, but it is a crucial part in development so everyone should know about this. 

let's slowly breakdown the design. In every tech product three things are permanent and everything else are just the branches. Hence, the design can be devided into Client (Frontend), Server (Backend) and Database.

![csd](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wom1k27d0qis6949lzh5.png)

In the Instagram design you can see the first Icon named users it is called client or frontend from which we normal consumer interacts and been devotees of. Instagram have two clients one its APP and other is WEBSITE.

The people who make Apps are called as **App developers** or more specificaly Android developers or IOS developers and this branch of IT is called Android development.

To be a App developer here are the tech stack you will require,
1. Android Dev
   - Kotlin or Java (recommended Kotlin)
2. IOS Dev
   - Swift 
   - And a Mac device to develop IOS apps

A third type also exists in which we can make apps for both through one codebase and tech stack
3. Cross Platform Dev
   - React Native (Insta uses this)
   - Flutter (recommended if you are starting out)

**Note**: A App developer should know the fundamentals of server and database also in order to build app and connect them to architecture smoothly, this all three are interconnected 

Now, the people who develop Websites is called as **Web developers** more specificaly Frontend Web Developer and the field is called as Frontend Web Development.
The Fundamentals which is required to do Frontend Web Development is
- HTML
- CSS
- Javascript 

the above is Important and should not be ignored, but this is not enough to be hired as FW dev, you need to learn the frameworks of javascript in order to make a site which is more value providing than the plain javascript

the top frameworks are for job market:
- React JS (Recommended)
- Vue JS
- Angular JS

Here the Job market splits into respective frameworks, like React Developer, Vue Developer, Angular Developer etc. React has more demand in the market.

**Note**: In order to learn the framework you should have a good amount of knowledge in javascript

If you had choosen to learn react i will suggest you to must learn **Nextjs** which is the superset of react and it enables you to stand in the global market.

The above was the frontend world of app and web, there is a world also exists for pc apps but it is a topic for an another day.

Now after the user icon you can see various things, here the actual business logic is written down this is called server or backend.
 
**I found a goldmine video on youtube which will explain backend like no one could, watch now 👇**

{% embed https://youtu.be/XBu54nfzxAQ?si=_ihLguVAmG2F0NL6 %}

Backend is really very vast.

Now, the person who knows frontend and backend and able to make product from start to finish, from development to deployment is known as Full Stack Developer and yes I am a Full Stack Developer ([my portfolio](https://itskaransingh.vercel.app/)), but how do i learned all this without spending a peny? the answer is youtube. But youtube is scatered, right? So, i will tell you how do i learned all this and what is the thaught process behind while learning a new tech.

1. Whichever thing you are learning first know the path, watch roadmap videos of the choosen topic from youtube
2. Watch youtube tutorials which are project building oriented not theory based for specified topic in the roadmap
3. Code along with the tutorial, its okay to make initial projects by watching tutorials (max 2).
4. Try to build something yourself, feel the feeling of being a creator.

So yes this was my approach towards learning from a scatterd platform, but believe we can do anything, build anything, be anything, if we know something that can be implemented in everything.

Please give me the feedback and suggest me the next topic for the article,
Thank you for reading,
**♠️ Karan R Singh**