├── .github
├── ISSUE_TEMPLATE
│ ├── bug_fix.yml
│ ├── doc.yml
│ └── feature_request.yml
└── PULL_REQUEST_TEMPLATE
│ └── new_feature_request.md
├── Android Developer
├── Android-Project-20-Ideas.md
├── Android-Studio.md
└── README.md
├── Backend-Developer
├── Node js
│ └── README.md
└── README.md
├── CONTRIBUTING.md
├── Deep Learning RoadMap
└── README.md
├── DevOps-Roadmap
└── README.md
├── DevRel
├── DevRel-at-DG@2x.jpg
└── README.md
├── Frontend-Developer
├── Git-Github
│ └── README.md
├── HTML-CSS
│ └── README.md
├── JavaScript
│ ├── Javascript-roadmap.md
│ └── Readme.md
├── README.md
└── frameworks
│ ├── Angular
│ └── README.md
│ ├── Ember
│ └── README.md
│ ├── FLutter
│ ├── Screenshot 2023-02-20 011032.png
│ └── mobile-developer(Flutter).md
│ ├── README.md
│ ├── React
│ └── README.md
│ └── Vue
│ └── README.md
├── Full-Stack-Developer
└── Full-stack-developer.md
├── LICENSE
├── ML-AI
└── README.md
├── README.md
├── SECURITY.md
└── WEB3-Developer
└── README.md
/.github/ISSUE_TEMPLATE/bug_fix.yml:
--------------------------------------------------------------------------------
1 | name: Bug Fix Issue
2 | description: Found a bug? Use this template to report it!
3 | title: "[BUG] "
4 | labels: ["aspect: bug"]
5 | body:
6 | - type: textarea
7 | id: bug_description
8 | attributes:
9 | label: Bug Description
10 | description: A brief description of the bug, including any error messages or unexpected behavior observed.
11 | validations:
12 | required: true
13 | - type: textarea
14 | id: steps_to_reproduce
15 | attributes:
16 | label: Steps to Reproduce
17 | description: Please list the exact steps to reproduce the bug. Be as specific as possible, and include any input data, expected output, or any other relevant details.
18 | validations:
19 | required: true
20 | - type: textarea
21 | id: expected_behavior
22 | attributes:
23 | label: Expected Behavior
24 | description: Describe what should have happened when the steps above were performed. Be as specific as possible.
25 | validations:
26 | required: true
27 | - type: textarea
28 | id: actual_behavior
29 | attributes:
30 | label: Actual Behavior
31 | description: Describe what actually happened.
32 | validations:
33 | required: true
34 | - type: textarea
35 | id: suggested_fix
36 | attributes:
37 | label: Suggested Fix
38 | description: Provide any suggested fixes or solutions for the bug if applicable.
39 | validations:
40 | required: false
41 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/doc.yml:
--------------------------------------------------------------------------------
1 | name: 📄 Documentation issue
2 | description: Found an issue in the documentation? You can use this one!
3 | title: "[DOCS] "
4 | labels: ["📄 aspect: text"]
5 | body:
6 | - type: textarea
7 | id: description
8 | attributes:
9 | label: Description
10 | description: A brief description of the question or issue, also include what you tried and what didn't work
11 | validations:
12 | required: true
13 | - type: textarea
14 | id: screenshots
15 | attributes:
16 | label: Screenshots
17 | description: Please add screenshots if applicable
18 | validations:
19 | required: false
20 | - type: textarea
21 | id: extrainfo
22 | attributes:
23 | label: Additional information
24 | description: Is there anything else we should know about this issue?
25 | validations:
26 | required: false
27 | - type: markdown
28 | attributes:
29 | value: |
30 | You can also join our Discord community [here](https://discord.gg/s5vVzsY6)
31 | Feel free to check out other cool repositories of our BuildersChain Community [here](https://github.com/BuildersChain)
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.yml:
--------------------------------------------------------------------------------
1 | name: 💡 General Feature Request
2 | description: Have a new idea/feature for Developers-Roadmap ? Please suggest!
3 | title: "[FEATURE] "
4 | labels: ["⭐ goal: addition","🚦 status: awaiting triage"]
5 | body:
6 | - type: textarea
7 | id: description
8 | attributes:
9 | label: Description
10 | description: A brief description of the enhancement you propose, also include what you tried and what worked.
11 | validations:
12 | required: true
13 | - type: textarea
14 | id: screenshots
15 | attributes:
16 | label: Screenshots
17 | description: Please add screenshots if applicable
18 | validations:
19 | required: false
20 | - type: textarea
21 | id: extrainfo
22 | attributes:
23 | label: Additional information
24 | description: Is there anything else we should know about this idea?
25 | validations:
26 | required: false
27 | - type: markdown
28 | attributes:
29 | value: |
30 | You can also join our Discord community [here](https://discord.gg/s5vVzsY6)
31 | Feel free to check out other cool repositories of our BuildersChain Community [here](https://github.com/BuildersChain)
32 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE/new_feature_request.md:
--------------------------------------------------------------------------------
1 |
2 | ## Fixes Issue
3 |
4 |
5 |
6 |
7 | ## Changes proposed
8 |
9 |
10 |
11 |
12 |
18 |
19 | - [ ] Added new content/feature to the developer roadmap
20 | - [ ] Updated relevant documentation to reflect the new changes
21 | - [ ] Ensured that all new and existing tests pass
22 | - [ ] Ensured that there is no plagiarized content in this PR
23 |
24 | ## Check List (Check all the applicable boxes)
25 |
26 | - [ ] My code follows the code style of this project.
27 | - [ ] My change requires changes to the documentation.
28 | - [ ] I have updated the documentation accordingly.
29 | - [ ] All new and existing tests passed.
30 | - [ ] This PR does not contain plagiarized content.
31 | - [ ] The title of my pull request is a short description of the requested changes.
32 |
33 | ## Screenshots
34 |
35 |
36 |
37 | ## Note to reviewers
38 |
39 |
--------------------------------------------------------------------------------
/Android Developer/Android-Project-20-Ideas.md:
--------------------------------------------------------------------------------
1 | # Android Projects 20 Ideas
2 |
3 | 
4 |
5 | ### 1 ePOST OFFICE Management System Android Application
6 |
7 | ### 2 OnRoad Vehicle Breakdown Help Assistance
8 |
9 | ### 3 Agri Shop: Farmers Online Selling Application
10 |
11 | ### 4 GYM Management Android App
12 |
13 | ### 5 COVID-19 Online Test Results & availability booking of Covid Hospitals
14 |
15 | ### 6 A Food Wastage Reduction Android Application
16 |
17 | ### 7 eVoting : SMS OTP Verification System Based Mobile Application
18 |
19 | ### 8 e-Vaccination management System Android app
20 |
21 | ### 9 Toll Gate App For Android Based Payment
22 |
23 | ### 10 Online Movie Ticket Booking Project App
24 |
25 | ### 11 Foot ball Team & Score Management System
26 |
27 | ### 12 eCommerce Old Book Store Shopping with eWallet Android App
28 |
29 | ### 13 Android app for Finding Lost Debit Card Security
30 |
31 | ### 14 Insurance Management System
32 |
33 | ### 15 Pg/Hostel Management Application Android App
34 |
35 | ### 16 iCar - Car Pooling Mobile App
36 |
37 | ### 17 Ediagnostic Lab Online Reporting Android App
38 |
39 | ### 18 Inventory Management System
40 |
41 | ### 19 Exam And Hall Ticket Management Application System
42 |
43 | ### 20 Health Diet Online Search And Proposal System
44 |
--------------------------------------------------------------------------------
/Android Developer/Android-Studio.md:
--------------------------------------------------------------------------------
1 | # Android Studio
2 |
3 | 
4 |
5 |
6 |
7 | ### Introduction
8 |
9 | Android Studio is the official integrated development environment (IDE) for Google's Android operating system, built on JetBrains' IntelliJ IDEA software and designed specifically for Android development.
10 |
11 | 1. [Wikipedia](https://en.wikipedia.org/wiki/Android_Studio)
12 |
13 |
14 |
15 | # Language used in Android Studio
16 | ### We can use one from following languages
17 |
18 |
19 |
20 |
21 | 1. [Java](https://www.javatpoint.com/java-tutorial)
22 | 2. [Kotlin](https://www.javatpoint.com/kotlin-tutorial)
23 |
24 | # What is XML in Android development?
25 |
26 | ### XML stands for eXtensible Markup Language
27 | which is a way of describing data using a text-based document. Because XML is extensible and very flexible, it's used for many different things, including defining the UI layout of Android apps.
28 |
29 |
30 | # Download Android Studio
31 |
32 | [Download Android Studio](https://developer.android.com/studio?gclid=CjwKCAjw_MqgBhAGEiwAnYOAevg5o6xvW363smLkrMrPJRcG4ZrL7k2Jx29qqDr79pukeptj9yN7vRoCarcQAvD_BwE&gclsrc=aw.ds)
33 |
34 | [SetUp Android Studio geeksforgeeks](https://www.geeksforgeeks.org/guide-to-install-and-set-up-android-studio/)
35 |
36 | # Resource for Android Studio
37 |
38 | 1. [Javatpoint Android Tutorial](https://www.javatpoint.com/android-tutorial)
39 |
40 |
--------------------------------------------------------------------------------
/Android Developer/README.md:
--------------------------------------------------------------------------------
1 | # Become Android Developer
2 |
3 | 
4 |
5 | Android is an open-source operating system, based on the Linux kernel and used in mobile devices like smartphones, tablets, etc.
6 |
7 |
8 |
9 |
10 |
11 | # What does Android developer do?
12 |
13 | 
14 |
15 | An android developer designs software and applications for Android devices and the Google Play Store. This software
16 | developer creates apps used on Android phones and tablets. They often work for large organizations or directly for an app development company.
17 |
18 |
19 |
20 |
21 |
22 | # How Are Android Apps Developed?
23 |
24 | 
25 |
26 | Android Studio is the official, unified, integrated development environment (IDE) for building apps designed to run on Android devices. The platform offers app developers structured code modules to divide projects into units of functionality for independent building, testing and debugging.
27 |
28 |
29 |
30 | ## 1.Choose an IDE
31 |
32 | - Android Studio
33 | - IntelliJ IDEA
34 | - Eclipse
35 | - NetBeans
36 | - Komodo
37 |
38 | ## 2. Pick a language
39 |
40 | - Java
41 | - Kotlin
42 |
43 | ## 3. Get familiar with the anatomy of an app
44 |
45 | ### Activity:
46 |
47 | - Activity life cycle
48 | - Handle Activity State Changes
49 | - Understand Tasks and Back Stack
50 | - Processes and Application Lifecycle
51 |
52 | ### Services:
53 |
54 | - Types of Android Services
55 | - The Life Cycle of Android Services
56 |
57 | ### Content Provider:
58 |
59 | - Content URI
60 | - Operations in Content Provider
61 | - Working of the Content Provider
62 | - Creating a Content Provider
63 |
64 | ### Broadcast Receiver:
65 |
66 | - Implicit Broadcast Exceptions
67 |
68 | ## 4. Learn the basics of UI
69 |
70 | - TextView
71 | - Button
72 | - ImageView
73 | - EditText
74 | - CheckBox
75 | - Spinner
76 | - RecyclerView
77 |
78 | ## 5. Learn the paradigm of asynchronous programming
79 |
80 | - Android service
81 | - Callbacks
82 | - Reactive programming (like RxJava or RxKotlin)
83 | - Kotlin coroutines
84 |
85 | ## 6. Choose where to store your data
86 |
87 | - Room Database – the database object provides the interface to the underlying SQLite database. An application should only have one room database instance, which may then be used to access multiple database tables.
88 | - Data Access Object (DAO) – contains the SQL statements required to insert, retrieve and delete data within the SQLite database.
89 | - Entities – typically a data class that defines the schema for a table within the database and defines the table name, column names, and data types, and identifies which column is to be the primary key.
90 |
91 | ## 8. Connect your app to the internet
92 |
93 | - Retrofit
94 | - Gson
95 |
96 | ## 9. Choose the right application architecture
97 |
98 | - MVVM
99 | - MVP
100 | - MVC
101 | - VIPER
102 |
103 | ## 10. Don’t forget to test your code
104 |
105 | #### Types of tests on Android
106 |
107 | - Functional testing
108 | - Performance testing
109 | - Accessibility testing
110 | - Compatibility testing
111 |
112 | ## Conclusion
113 | I covered all the major sections that are gonna help you become an Android developer
114 |
115 | Of course, that was just the basic explanation of main topics like activities and fragments.
116 |
117 | The learning curve at the beginning will be hard. You will continuously learn and explore new possibilities with different programming concepts and programming paradigms such as reactive programming.
--------------------------------------------------------------------------------
/Backend-Developer/Node js/README.md:
--------------------------------------------------------------------------------
1 | # Node.js Roadmap
2 |
3 | Node.js is a popular JavaScript runtime environment that allows developers to run JavaScript on the server side. It has gained widespread adoption among developers due to its ability to handle high traffic, non-blocking I/O, and its scalable architecture. In this roadmap, we will cover the key concepts, tools, and frameworks that you need to learn to become a proficient Node.js developer.
4 |
5 |
6 | Node.js is a powerful technology that is widely used for building scalable and high-performance web applications, server-side APIs, and real-time applications. It has a large and active community, which provides a wealth of resources, tools, and frameworks. Node.js has a bright future, and there are many job opportunities available for Node.js developers. By learning Node.js and its related frameworks, developers can build robust and scalable web applications.
7 |
8 |
9 |
10 |
11 |
12 |
13 | ## Prerequisites
14 | Before you start learning Node.js, it's recommended that you have a strong foundation in JavaScript. You should have a good understanding of core concepts such as functions, objects, and arrays. You should also be familiar with asynchronous programming concepts such as callbacks, promises, and async/await.
15 |
16 | ## Step 1: Learn the Basics
17 | To start with Node.js, you need to learn the basics of Node.js and its core modules. You should start with the official Node.js documentation, which covers the basics of Node.js and its core modules such as fs, http, and path.
18 |
19 | ## Step 2: Build Command-Line Applications
20 | Node.js is popular for building command-line applications. To become a proficient Node.js developer, you should learn how to build command-line applications. You can start with the Commander.js framework, which provides an easy way to create command-line interfaces for Node.js applications.
21 |
22 | ## Step 3: Build Web Applications
23 | Node.js is also widely used for building web applications. To build web applications, you need to learn how to use web frameworks such as Express.js or Hapi.js. These frameworks provide an easy way to build web applications using Node.js. You should also learn how to use popular template engines such as Handlebars or EJS.
24 |
25 | ## Step 4: Learn Database Integration
26 | Node.js provides several modules for integrating with databases such as MySQL, MongoDB, and PostgreSQL. To become a proficient Node.js developer, you should learn how to integrate Node.js with different databases. You can start with the official documentation of the database that you want to use with Node.js.
27 |
28 | ## Step 5: Learn Authentication and Authorization
29 | Authentication and authorization are crucial for securing web applications. To become a proficient Node.js developer, you should learn how to implement authentication and authorization in Node.js. You can start with popular authentication and authorization libraries such as Passport.js and jsonwebtoken.
30 |
31 | ## Step 6: Learn Testing
32 | Testing is essential for ensuring the quality of your code. To become a proficient Node.js developer, you should learn how to write unit tests and integration tests for your Node.js applications. You can start with popular testing frameworks such as Mocha and Jest.
33 |
34 | ## Step 7: Learn Deployment
35 | Deploying Node.js applications can be challenging, especially if you're new to it. To become a proficient Node.js developer, you should learn how to deploy Node.js applications to different platforms such as Heroku or AWS. You can start with the official documentation of the platform that you want to deploy your Node.js application to.
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 | ## Advantages of Node.js
44 | * Node.js is built on top of the V8 JavaScript engine, which is fast and efficient.
45 | * Node.js provides non-blocking I/O, which allows it to handle a large number of requests without slowing down the application.
46 | * Node.js has a large and active community, which provides a wealth of resources, tools, and frameworks.
47 | * Node.js is platform-independent, which means that it can be run on different operating systems.
48 |
49 | ## Disadvantages of Node.js
50 | * Node.js is not suitable for CPU-intensive tasks as it uses a single-threaded event loop model.
51 | * Node.js requires developers to be proficient in asynchronous programming concepts.
52 | * Node.js may require additional effort to integrate with existing systems that are built on other technologies.
53 |
54 | ## Jobs Available
55 | Node.js is in high demand, and there are many job opportunities available for Node.js developers. Some of the popular job roles in Node.js are:
56 |
57 | * Node.js Developer
58 | * Full Stack Developer
59 | * Backend Developer
60 | * API Developer
61 | * DevOps Engineer
62 |
63 | ## Salary
64 | The salary of Node.js developers varies depending on their experience, location, and job role. According to Payscale, the average salary of a Node.js developer in the United States is $89,000 per year.
65 |
66 | ## Future of Node.js
67 | Node.js has a bright future, as it is expected to continue growing in popularity and adoption. Some of the trends that are expected to shape the future of Node.js are:
68 |
69 | * Increased use of serverless architectures with Node.js
70 | * Increased adoption of microservices architectures with Node.js
71 | * Increased use of machine learning and artificial intelligence with Node.js
72 |
73 | ## Frameworks Related to Node.js
74 | Node.js has a wide range of frameworks and libraries that can be used to build web applications and APIs. Some of the popular frameworks related to Node.js are:
75 |
76 | * Express.js: A minimalist web framework for Node.js.
77 | * Koa.js: A web framework that uses ES6 async functions.
78 | * Nest.js: A scalable and modular web framework for building * enterprise-grade applications.
79 | * Socket.io: A library that enables real-time bidirectional communication between the server and the client.
80 |
81 | ## Conclusion
82 | In this roadmap, we covered the key concepts, tools, and frameworks that you need to learn to become a proficient Node.js developer. It's important to note that this roadmap is not exhaustive, and there is always more to learn. However, by following these steps, you will have a strong foundation in Node.js and be able to build robust web applications using Node.js.
--------------------------------------------------------------------------------
/Backend-Developer/README.md:
--------------------------------------------------------------------------------
1 | # Backend-Development
2 |
3 | ## Getting Started with Backend Development
4 |
5 | Backend development is an essential part of web development, where developers create server-side applications that interact with databases, APIs, and other components of a web application. Starting with back end development can be overwhelming. This back-end developer
6 | roadmap will guide you to start with it in the proper way. We will cover the most important building blocks of the web. This guide will help you to become a modern back-end developer.
7 |
8 | ## Prerequisites
9 |
10 | Before you start with backend development, you should have a good understanding of at least one programming language such as Python, Java, PHP, Ruby, or JavaScript. Additionally, you should have a basic understanding of web development concepts such as HTTP, APIs, and databases.
11 |
12 | ## Choose a Programming language
13 |
14 | - JavaScript
15 | - Python
16 | - PHP
17 | - Ruby (Not Recomended)
18 | - Rust
19 | - Java
20 | - Go Lang
21 |
22 | ## Choose a Framework
23 |
24 | ### Node js Frameworks
25 |
26 |
27 |
28 | - Express.js
29 | - Nest.js
30 | - Fastify
31 | - Sails
32 | - Hapi
33 | - Restify
34 |
35 | ### Python Frameworks
36 |
37 |
38 | - Django
39 | - Flask
40 |
41 | ### PHP Frameworks
42 |
43 |
44 | - Laravel
45 | - Symfony
46 |
47 | ### Java Framworks
48 |
49 |
50 | - Spring
51 | - Google Web Toolkit
52 |
53 | ## Backend concepts
54 |
55 | - HTTP / HTTPS
56 | - REST
57 | - GraphQL
58 | - Web Sockets
59 | - CORS
60 | - MVC Architecture
61 | - CI / CD
62 | - Serverless
63 |
64 | ## Learn about databases
65 |
66 | ### SQL
67 |
68 | - MySQL
69 | - PostgreSQL
70 | - SQL Lite
71 |
72 | ### NoSQL
73 |
74 | - MongoDB
75 | - CouchDB
76 | - DynamoDB
77 |
78 | ## Learn Caching
79 |
80 | - Redis
81 | - Memcached
82 |
83 | ## ORM / ODM
84 | - Mongoose (MongoDB)
85 | - Prisma (SQL)
86 | - Sequelize (SQL)
87 |
88 | ## Essential things to learn
89 |
90 |
91 | - Authentication
92 | - OAuth
93 | - Hashing (bcrypt)
94 | - Rate Limiting
95 | - Reverse proxy
96 | - Load balancer
97 | - Documentation (Swagger)
98 |
99 | ## Learn any HTML Templating Engine
100 |
101 | - EJS
102 | - PUG
103 | - Handlebars
104 | - doT
105 | - Jade
106 | - Eta
107 |
108 | ## Other Important Topics
109 |
110 | - Linux
111 | - Git
112 | - Terminal (CLI)
113 | - Basic Networking
114 | - Web Security
115 | - Payment Gateways
116 | - Testing
117 |
118 |
119 | ## Learn to deploy
120 |
121 |
122 | - Google Cloud
123 | - AWS
124 | - Digital Ocean
125 | - Azure
126 | - Heroku
127 | - Linode
128 | - Vercel
129 |
130 | ## Optional things to learn
131 |
132 |
133 | - Docker
134 | - Performance
135 | - Scalability
136 | - Kubernetes
137 |
138 | ## Tools to learn
139 |
140 |
141 | - NPM
142 | - Postman
143 | - Insomnia
144 | - GitHub
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 | ### Study resources Node :-
154 |
155 | - [Node.js documentation](https://nodejs.org/en/docs/)
156 | - [Node.js Tutorials](https://www.tutorialspoint.com/nodejs/index.htm)
157 | - [Learn Node.js - Full Course for Beginners FreeCodeCamp](https://www.youtube.com/watch?v=RLtyhwFtXQA)
158 |
159 |
160 | ### Study resources Django :-
161 |
162 | - [Django documentation](https://docs.djangoproject.com/en/3.2/)
163 | - [Django Tutorials](https://www.djangoproject.com/start/)
164 | - [Python Django Web Framework - Full Course for Beginners](https://www.youtube.com/watch?v=F5mRW0jo-U4)
165 |
166 | ### Study resources Ruby:-
167 |
168 | - [Ruby on Rails documentation](https://guides.rubyonrails.org/)
169 | - [Ruby on Rails Tutorials](https://www.railstutorial.org/)
170 | - [Ruby on Rails Crash Course](https://www.youtube.com/watch?v=fmyvWz5TUWg)
171 |
172 |
173 | ### Study resources Flask :-
174 |
175 | - [Flask documentation](https://flask.palletsprojects.com/en/2.1.x/)
176 | - [Flask Tutorials](https://flask.palletsprojects.com/en/2.1.x/tutorial/)
177 | - [Flask Full Web Development Tutorial](https://flask.palletsprojects.com/en/2.1.x/tutorial/)
178 |
179 | ## Conclusion
180 |
181 | Backend development is an essential part of web development. There are many different frameworks and tech stacks available, so it's important to choose the one that best suits your needs. In this guide, we covered some of the most popular backend frameworks and tech stacks, as well as the related study resources. Good luck with your backend development journey!
182 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contribution
2 |
3 | First of all thank you for considering to contribute. Please look at the details below:
4 |
5 | - [Contribution](#contribution)
6 | - [New Roadmaps](#new-roadmaps)
7 | - [Existing Roadmaps](#existing-roadmaps)
8 | - [Adding Content](#adding-content)
9 | - [Guidelines](#guidelines)
10 |
11 | ## New Roadmaps
12 |
13 | For new roadmaps, submit a roadmap by providing [a textual roadmap similar to this roadmap](Frontend-Developer\JavaScript\Javascript-roadmap.md) in an issue.
14 |
15 | ## Existing Roadmaps
16 |
17 | For the existing roadmaps, please follow the details listed for the nature of contribution:
18 |
19 | - **Fixing Typos** — Make your changes in the [roadmap JSON file]()
20 | - **Adding or Removing Nodes** — Please open an [issue](https://github.com/BuildersChain/Developers-Roadmap/issues) with your suggestion.
21 |
22 | **Note:** Please note that our goal is not to have the biggest list of items. Our goal is to list items or skills most relevant today.
23 |
24 | ## Adding Content
25 |
26 | Find [the content directory inside the relevant roadmap](). Please keep the following guidelines in mind when submitting content:
27 |
28 | - Content must be in English.
29 | - Put a brief description about the topic on top of the file and the a list of links below with each link having title of the URL.
30 |
31 | ## Guidelines
32 |
33 | - Adding everything available out there is not the goal!
34 |
35 | The roadmaps represent the skillset most valuable today, i.e., if you were to enter any of the listed fields today, what would you learn?! There might be things that are of-course being used today but prioritize the things that are most in demand today, e.g., agreed that lots of people are using angular.js today but you wouldn't want to learn that instead of React, Angular, or Vue. Use your critical thinking to filter out non-essential stuff. Give honest arguments for why the resource should be included.
36 | - Do not add things you have not evaluated personally!
37 |
38 | Use your critical thinking to filter out non-essential stuff. Give honest arguments for why the resource should be included. Have you read this book? Can you give a short article?
39 | - Create a Single PR for Content Additions
40 |
41 | If you are planning to contribute by adding content to the roadmaps, I recommend you to clone the repository, add content to the [content directory of the roadmap]() and create a single PR to make it easier for me to review and merge the PR.
42 | - Write meaningful commit messages
43 | - Look at the existing issues/pull requests before opening new ones
44 |
--------------------------------------------------------------------------------
/Deep Learning RoadMap/README.md:
--------------------------------------------------------------------------------
1 | # Complete Roadmap for Deep Learning
2 |
3 | Deep learning is a branch of machine learning and artificial intelligence that uses advanced computations to model the structure and operation of the neural networks in the human brain. In order to automatically extract and learn complicated representations of data patterns, hierarchical features, and complex abstractions from large-scale datasets, it revolves around training and using deep artificial neural networks, which are typically made up of multiple layers of interconnected nodes or artificial neurons.
4 |
5 |
8 |
9 |
10 |
11 |
12 | ## Table of contents
13 |
14 | #### [Applications of Deep Learning](https://github.com/GauriTr/Developers-Roadmap-Dl/tree/main/Deep%20Learning%20RoadMap)
15 | #### [Carrier Paths in deep learning](https://github.com/GauriTr/Developers-Roadmap-Dl/tree/main/Deep%20Learning%20RoadMap)
16 | #### [Skills needed to be acquired](https://github.com/GauriTr/Developers-Roadmap-Dl/tree/main/Deep%20Learning%20RoadMap)
17 |
18 |
19 |
20 | ## Applications of Deep Learning
21 | Deep learning has various applications specially in this day and age as it is growing day by day there is so much to explore.
22 |
23 | Some of the commonly used applications that are commonly known are:
24 | - Natural Lnaguage Processing
25 | - Speech Recognition
26 | - Targeted Marketing
27 | - Autonomous Systems(autonomous systems like self-driving cars and drones. It helps in perception tasks, object detection, and decision-making by processing real-time sensor data and generating appropriate responses.)
28 | - Healthcare
29 |
30 |
33 |
34 | ## Carrier Paths in deep learning
35 | Artificial intelligence and machine learning are promising employment fields with prospects for lifelong development.
36 | As a result, the field of machine learning and deep learning is very expansive and seems promising in terms of career possibilities and pay.
37 |
38 | - Data Engineer
39 | - Data Scientist
40 | - Data Analyst
41 | - Research Scientist
42 | - Natural Language
43 | - Software devloper with specialization in Data Science
44 | - AI consultant
45 | - AI architect
46 |
47 |
57 |
58 | ## Skills needed to be acquired
59 | An effective machine learning method is deep learning. Consequently, developing deep learning models calls for extensive machine learning expertise. Let's examine some of the crucial abilities you'll require to master deep learning:
60 |
61 |
62 | # 1. Basic Mathematical skills
63 | Understanding how deep learning algorithms function requires a solid foundation in mathematics, particularly statistics.
64 | Some of the requitred mathematical skills are:
65 | - Linear Algebra
66 | - Probability Theory
67 | - Statistics
68 | - Calculus
69 | - Algorithms
70 | - Optimization
71 |
72 |
73 |
74 | # 2. Programming skills
75 | Efficiency in at least one language is needed, While many programming languages can be used in machine learning, some of the most popular ones include Python and R. These high-level programming languages come with libraries and packages that simplify your work further.
76 |
77 |
87 |
88 | # 3. Data Engineering
89 | Having a solid foundation in data engineering is essential since deep learning uses a lot of data.
90 | ```sh
91 | Data engineering may include skills like:
92 | ```
93 | - Data Pre-processing
94 | - Managing huge databases(knowledge of Oracle, MySQL, and NoSQL databases.)
95 | - Data extraction, transformation and load (ETL)
96 | ```
97 |
98 |
99 | 
100 |
101 |
102 | # 4.Knowledge of Machine learning
103 | If you want to grasp deep learning, you must be familiar with machine learning algorithms.
104 |
105 | ```sh
106 | Some Ml algorithms you should be familiar with are:
107 | ```
108 |
109 | - Naive Bayes.
110 | - Support Vector Machine.
111 | - K nearest Neighbour.
112 | - Linear Regression.
113 | - Logistic Regression.
114 | - Decision Tree.
115 | - Random Forest.
116 | - K means Clustering.
117 | - Hierarchical Clustering.
118 | - Apriori.
119 |
120 |
121 | # 5.Deep Learning algorithms
122 | Deep learning algorithms are a vital component of any deep learning toolkit.
123 |
124 |
125 | ```sh
126 | Some DL algorithms you should be familiar with are:
127 | ```
128 |
129 | - Artificial Neural Networks (ANN): Neural networks are the foundation of deep learning.
130 |
131 | - Convolutional Neural Networks (CNN): CNNs are widely used for image recognition and computer vision tasks.
132 |
133 | - Recurrent Neural Networks (RNN): RNNs are designed to process sequential data, such as natural language or time series data, by utilizing feedback connections.
134 |
135 | - Long Short-Term Memory (LSTM): LSTMs are a type of RNN that addresses the vanishing gradient problem.
136 |
137 | - Generative Adversarial Networks (GAN): GANs consist of two neural networks, a generator and a discriminator, that are trained in an adversarial manner.
138 |
139 | - Autoencoders: Autoencoders are neural networks trained to reconstruct their input data at the output layer.
140 |
141 | - Deep Belief Networks (DBN): DBNs are composed of multiple layers of restricted Boltzmann machines (RBMs) and can be used for unsupervised pre-training or as generative models.
142 |
143 | - Reinforcement Learning (RL): Although not exclusive to deep learning, RL algorithms can benefit from deep neural networks as function approximators.
144 |
145 |
148 |
149 | > After learning these algorithms you should also know how to :-
150 | ```sh
151 | - Select a Problem.
152 | - Choose an appropriate algorithm for your problem.
153 | - Create a model with one or more algorithms.
154 | - Optimize your model for the best accuracy.
155 | ```
156 |
157 |
160 |
161 |
162 | # 6.Knowledge of Deep learning Frameworks
163 | You must become familiar with the various deep learning frameworks that support deep neural network creation, training, and validation.
164 |
165 | ```sh
166 | Some DL framework you should be familiar with are:
167 | ```
168 |
169 | - TensorFlow.
170 |
171 | - Theano.
172 |
173 | - scikit learn.
174 |
175 | - PyTorch.
176 |
177 | - Keras.
178 |
179 | - DL4J.
180 |
181 | - Caffe.
182 |
183 | - Microsoft Cognitive Toolkit.
184 |
185 |
186 | # 7. Projects
187 | Making projects and learning from them is the essential part because without this step you can not learn deep learning or require those skills that you want.
188 |
189 | # "The more you work on projects, the more you will learn."
190 |
191 | > Some projects you can start making at the begginers level are:
192 |
193 | - Face Detection
194 | - Image Classification
195 | - Color detection
196 |
197 |
198 | #### For more awareness about the learning platforms which provide the knowledge about skills to be learnt, [Click Here](https://www.mltut.com/deep-learning-roadmap/)
199 |
200 |
201 |
--------------------------------------------------------------------------------
/DevOps-Roadmap/README.md:
--------------------------------------------------------------------------------
1 | ## What is DevOps?
2 | DevOps is a methodology in the software development and IT industry. Used as a set of practices and tools, DevOps integrates and automates the work of software development and IT operations as a means for improving and shortening the systems development life cycle.
3 |
4 | ## 1 - Software Development Basics
5 | As you are working closely with the development team to improve and automate tasks for them, you need to understand the concepts of:
6 |
7 | * how developers work and
8 | * what workflows they use,
9 | * how they collaborate on developing features,
10 | * the modern processes like agile and scrum,
11 | * what Git workflow they use and
12 |
13 | Now here it's important to mention that you don't need to be a software developer or the one implementing those agile and scrum processes. You need to understand how those things work on a high level, conceptually.
14 |
15 | ## 2 - Software Deployment
16 | The next one is software deployment. Once the feature is developed, it needs to be released to the end users, which means you need an environment, where your application will be running and be available for the end users.
17 |
18 | ### 2.1 - Operating Systems & Linux Basics
19 | And as a DevOps engineer you need to know how to provision and prepare these environments and
20 | how to maintain them.
21 | And for that you need knowledge of general server administration like creating virtual machines, mostly with Linux operating system, installing software, doing patches, configure networking on premise as well as on cloud.
22 |
23 | ### 2.2 - Containers with Docker
24 | And as part of the more modern infrastructure concepts you need to understand how to work with containers and the most popular container technology, which is Docker.
25 |
26 |
27 | ### 2.3 - Container Orchestration with Kubernetes
28 | And for projects with tens or hundreds of Docker containers you need to know how to work with container orchestration platforms like Kubernetes, which is the most popular one nowadays.
29 |
30 |
31 |
32 | ### 2.4 - Cloud - Learn 1 of the most popular cloud provider
33 | If you're working on cloud like AWS, which is the most popular and most used cloud platform for now, you also need to know AWS specific services and how to manage the whole deployment infrastructure on AWS.
34 |
35 | AWS Market Share
36 | Source: Statista Cloud Infrastructure Market Share
37 |
38 | ## 3 - CI/CD - Continuous Integration and Continuous Deployment
39 | And connecting all these pieces together and kind of the heart of the DevOps processes is CI CD pipelines.
40 |
41 | How do you connect these two software development and deployment? In other words, when software is being developed, how do you deploy those developed features?
42 |
43 | It's not just about deploying it to the deployment environment, we don't just take it and throw it on there. Why? Because humans make mistakes, either because of lack of knowledge in some area or just accidentally. So instead we add many gatekeepers before the deployment, so the deployed code needs to go through various of these gate checks in order to be allowed on the final environment and that's what the DevOps CI/CD pipeline is for:
44 |
45 | * testing code,
46 | * packaging it and
47 | * deploying all the way to the end environment
48 | * to deliver it to their end users.
49 | * CI/CD Pipeline
50 |
51 | Now what are those gatekeepers? Well, testing the code quality, testing code logic, testing that it didn't break any previously existing code, checking for any security issues, testing that it functions as it's supposed to etc. So tools for implementing this whole CI/CD pipelines with all those gatekeepers is a super important skillset.
52 |
53 | So knowing any CI/CD tools like Jenkins, Gitlab CI/CD, GitHub Actions, Circle CI and so on. And most importantly how to integrate this tool with all other technologies to test things, deploy the code and so on is very important.
54 |
55 |
56 |
57 | ## 4 - Monitoring and Observability
58 | Now again we are humans and we can assume that even with the most cautious measures and a lot of extensive testing, we can't always 100% test every single aspect of the deployment and some issue may slip through in the production. That's why we have bugs in production and that's okay as long as we have a plan for handling a bug or issue when it appears in production.
59 |
60 | So again a part of DevOps skillset is to create a process of handling discovered issues in production instead of having a panic mode. So what does that skillset include? Well, it's a thing called "monitoring and observability".
61 |
62 | So in the last stage of CD or continuous deployment, after deploying the code changes, we don't just say: "hey we're done, that's deployed so now let's move on to the next task", instead we observe and monitor closely what happens. If some user encounters an error, if something crashes or doesn't work, so we know we need to proactively fix that. So maybe for a couple of hours or within the next days of deployment, we're actively looking and observing whether some kind of issue appears in production.
63 |
64 |
65 |
66 | ## 5 - Automation
67 | And finally the last missing piece of really conquering DevOps is automating all this. 👏 So basically you automate most of your own work and work of other engineers, automating especially in areas where the same task needs to be repeated.
68 |
69 | Let me give you some examples, for every new code released:
70 |
71 | * you always need to test your application,
72 | * you always need to check for security,
73 | * you always need to package and
74 | * deploy application changes.
75 |
76 | These tasks should happen automatically, so you make sure to execute automated tests that developers or test engineers write, you have automated security checks, quality checks and you have scripts or automation code that deploys that code to the end environment:
77 | CI/CD automates all human tasks
78 |
79 | So you don't deploy the application locally from your own machine, but rather CI/CD pipeline deploys it automatically.
80 |
81 | Another one is monitoring. Obviously you don't want to be sitting in front of a computer and observing and waiting to see if something breaks in the application, instead you want to deploy tools that monitor the application and notify you if something's off or if something happens:
82 | Monitoring tools
83 |
84 | So monitoring and observability tools go under your DevOps toolbelt as well.
85 |
86 | ### 5.1 - Infrastructure as Code
87 | But in DevOps we don't stop there with automation, we also automate things that don't repeat on every code change deployment, but still prove to be incredibly efficient.
88 |
89 | So for example provisioning infrastructure or setting up a Kubernetes cluster is not something you do very often but we still automate it in DevOps. Why? Because we want to be able to easily replicate our deployment environments if they get corrupted or if we need multiple staging environments, like DEV, TEST and PRODUCTION:
90 | Infrastructure as Code
91 |
92 | And generally having everything in code versus some manual scripts that some person on a team executes and no one knows about has many benefits:
93 |
94 | First of all, encouraging collaboration in a team on infrastructure configuration
95 | Documenting changes to infrastructure
96 | Transparency of the infrastructure state and
97 | Accessibility to that information in a centralized place versus being scattered around on people's local machines in the form of some scripts.
98 | This is an infrastructure as code concept as part of the whole movement towards automating all workflows to make them more efficient.
99 |
100 | And some of the most popular tools in this area are Terraform for Infrastructure Provisioning and Ansible for Configuration Management.
101 |
102 |
103 | ### 5.2 Scripting skills
104 | While you don't need to actually program the application as a DevOps engineer (more to that later in the article), you will need some scripting or basic programming skills to automate various DevOps processes.
105 |
106 | This can be simple shell scripting or even better a full-fledged programming language like Python. However, you don't need to be able to develop web applications with Python like a software developer. Being able to write automation scripts with Python is absolutely enough and is actually way easier to learn.
107 |
108 | Some examples would be writing a shell script to do a task in a Jenkins job in a CI/CD pipeline or writing a small utility script for flushing the cache, starting the builds and deployments, connecting different tools etc.
109 |
110 | There are many programming languages, but I would recommend starting with Python. Python is widely used, easy to learn and used for many different use cases, especially in DevOps. And the good thing is, programming concepts stay the same, so when you learn one language well, you can easily learn new ones quite quickly.
111 |
112 |
113 |
114 | ## 6 - Version Control with Git
115 | You write all automation logic mentioned above as code.
116 | And just like developers manage the application code with a version control tool, like Git, you need to manage this automation code and configuration files with a version control tool as well.
117 |
118 | So these are the fundamental processes and respective tools that are part of DevOps. So any other DevOps tools you may come across - and there are hundreds of them - are simply optimizing or improving different parts of this workflow.
119 |
120 | What is YOUR zero or starting point? 🤔
121 | So having those DevOps skills is the final goal and you're starting from zero, but many of you are transitioning to DevOps or starting your DevOps journey having various different backgrounds. So the zero or that starting point is different for all of you and as I mentioned at the beginning you may be systems administrator or software engineer or QA engineer etc or may not have an IT background at all and want to transition into DevOps:
122 | Different starting points when transitioning into DevOps
123 |
124 | So now I want to show you how you can transition to DevOps and basically learn all these tools that I just mentioned starting from your specific background. ✅
125 |
126 | Starting as a Systems Administrator 🧑🏽💻
127 | If you are a systems administrator you know how to administer servers and other systems. So you already have some skills in:
128 |
129 | setting up infrastructure
130 | configuring and preparing it for deployment
131 | so working with operating systems, installing and running software
132 | security, networking configuration etc is already familiar for you.
133 | Some of the other tasks you do as systems administrator are things like monitoring systems, health, backup and disaster recovery, installing and patching servers and so on.
134 |
135 | In smaller projects you may have to also do database administration, network administration or security administration.
136 |
137 | All of these are very useful skills, if you want to become a DevOps engineer. 👍 So you already have a lot of skills you can use in the deployment and operations side of DevOps:
138 | Skills in deployment and operations part of DevOps
139 |
140 | This includes Day 0 activities such as initial setup of the infrastructure, but also Day 1 tasks like maintaining and operating this infrastructure.
141 |
142 | Many systems administrators also know scripting, so that will be helpful in the automation part of DevOps. So as a systems administrator you already have a very good foundation to get into DevOps, however the big part missing here to start in DevOps is learning the software development basics:
143 |
144 | understanding the git workflows
145 | how developers work and so on
146 | Now very important to note, even though some DevOps engineers do know how to program, it's not an essential skill in DevOps, because as a DevOps engineer your main task is not developing and programming the application it's creating automated processes for delivering the developed software to the end users efficiently with as few bugs and issues as possible:
147 | Process to deliver app to end users
148 |
149 | But to be able to deliver the application changes, of course you need to understand how that application was built, developed and how it works.
150 |
151 | Starting as a Software Developer 👩💻
152 | If you are a software developer, again you have a pretty good background, because you already know an important part of DevOps, which is the software development processes and how these work.
153 |
154 | But most probably you are missing skills in server management. So you need to start by learning about:
155 |
156 | virtual machines
157 | creating and configuring servers
158 | configuring infrastructure security, networking etc
159 | And since most modern applications run on cloud, you need to also learn how to do all these on cloud infrastructure.
160 |
161 | So that would be your starting point when learning DevOps as a software developer.
162 |
163 | And once you have that foundation you can build on that by learning about how containers work on top of the virtual machines and how to run applications in containers and how to run containers on a platform like Kubernetes etc.
164 |
165 | And of course your programming skills will be great help in writing automated scripts for various parts of the application development and deployment processes. 👍
166 |
167 | Starting as a Test Automation Engineer👨🏼💻
168 | Another common background people have when transitioning into DevOps is a test automation engineer. Now here you may have a bit more catching up to do and more skills to learn compared to developers or systems administrators, but you can definitely reuse many of your skills in DevOps.
169 |
170 | As a test engineer you most probably know how the software developers are working, like the agile processes, Jira workflows and so on. And as part of your test automation knowledge you understand the different testing scopes like
171 |
172 | testing on code level
173 | testing the whole application on a more abstract level
174 | testing how the application integrates with other services etc.
175 | You also understand how to test different aspects of an application and that knowledge is really helpful for setting up an automated CI/CD pipeline, because in order to automate the pipeline and streamline delivering your application changes all the way to the production environment, you need extensive automated testing:
176 |
177 | Extensive testing for multi-stage deployments
178 |
179 | Because as soon as you need a human element you will break the automated pipeline and add a bottleneck:
180 | Manual process breaks automated pipeline
181 |
182 | And since you know how to write automated tests in various programming languages, your skills in various testing frameworks is definitely helpful here for scripting and coding some automation parts of DevOps processes. Or let's say it won't be completely new to you. 👍
183 |
184 | Starting as a Network Engineer🧑🏻💻
185 | The last honorable mention of a background going into DevOps is network engineering. This is probably the farthest from DevOps compared to the other three that I just mentioned, but you still have some skills that you can bring into DevOps as a network engineer.
186 |
187 | As a network engineer you know how to configure devices and networking between devices. So you have valuable knowledge in configuring networking for infrastructure on premise.
188 |
189 | Transition to Cloud Network Engineer
190 | But as most companies are moving their infrastructure to cloud, many network engineers transition to cloud network engineering:
191 | Moving to cloud
192 |
193 | So they do all of that on cloud platforms. And instead of configuring routes and switches and networks on on-premise infrastructure, they configure virtual routes and virtual switches and virtual networks on cloud infrastructure.
194 |
195 | With networking and virtual networking knowledge you have an advantage to understand networking in virtual machines and containers, which is a big part of how modern applications are running. So it will be easier for you to understand Docker and Kubernetes networking for example and these are usually pretty difficult parts to manage and troubleshoot or secure, when you're configuring and maintaining the deployment environments with Kubernetes and containers on them.
196 |
197 | So you can definitely use your knowledge and expertise in this area. Some network engineers even know scripting in bash or python for example, which is another helpful skill when it comes to automation part of DevOps.
198 |
199 | DevOps Bootcamp considering these different backgrounds 💡
200 | Now all of these backgrounds we actually considered when creating our DevOps bootcamp curriculum.
201 |
202 | So we added the Linux Basics module, where you learn everything about Operating Systems and Linux as well as Networking, Bash scripting and so on. Everything from scratch:
203 | Linux Module for Software Developers and Testers
204 |
205 | So if you are a software developer or a test automation engineer, this will give you the prerequisite knowledge and foundation for learning things like provisioning deployment servers, configuring servers and preparing for deployment etc as well as how to administer some DevOps tools like Jenkins and Kubernetes cluster and so on.
206 |
207 | Obviously as a system administrator you would skip that part, but instead you would need to learn Git and how to work with Git workflows, to use it for writing infrastructure as code for example. You also need to learn about build and packaging tools to package the applications written in various languages.
208 |
209 | So as you see there are some prerequisites you need to have in DevOps and various backgrounds bring various of those prerequisites with them and we included those prerequisites as well for those missing them, but after those prerequisites are fulfilled the path pretty much looks the same for everybody, because tools like Kubernetes, Terraform, EKS, even Docker are pretty new to many professionals and there is no one profession that was specifically dedicated to those tools previously. So everyone needs to learn them no matter what their IT background is:
210 |
211 | ### DevOps Bootcamp
212 |
213 | Starting with no or little IT background 🙉
214 | Finally, we also get many questions about starting our DevOps Bootcamp with very little to no IT background. Which means there are probably many of you reading this article, who are thinking about getting into DevOps without much IT pre-knowledge and want to know what the path is to DevOps.
215 |
216 | Now this is a very tricky one, because DevOps is NOT really the entry-level profession in it. It's not the first thing you learn when you want to get into the IT field.
217 | Now why is that? 🤷🏻♂️ Because DevOps is about
218 |
219 | automating processes and software development and deployment that people have done manually for a very long time.
220 |
221 | This means before you automate processes and tasks that are done manually, you first need to understand what those processes and tasks are in the first place. If you don't understand those, you won't know what you're automating or why you even need DevOps.
222 |
223 | ## 1 - Understand complete software development lifecycle
224 | So if you're completely new to IT and already know you want to eventually become a DevOps engineer, then you should start by understanding the complete software development life cycle first. And the good news is, it's easier than it sounds. You don't need to go and learn software development for months for that and you definitely don't need to become an expert in managing infrastructure and configuring servers.
225 |
226 | If you learn the right things, you can actually do it in a relatively short time:
227 | Go find some example projects, where you create a super simple application and learn how to deploy to a virtual server, so learning the steps of developing, packaging, maybe even automatically testing and then deploying an example application on a Linux server on a cloud platform.
228 |
229 | This will actually be a very good foundational knowledge for building on it to learn DevOps. In this process
230 |
231 | you will learn the basics of creating an application,
232 | you will learn how to create a virtual machine with a Linux server on some easy to use cloud platform and host your application there.
233 | And then repeat the whole process once more, simulating making an update to your application and this will teach you basic skills for each part of the software development process, but most importantly it will make you understand the complete workflow of what goes into that. 👀
234 |
235 | You don't need any fancy tools for that, no Jenkins, no fancy programming framework, not even Git. Again these are to understand the basic concepts and then you can start learning those DevOps tools like Jenkins, Docker, Kubernetes and so on. Because this phase is not about learning the tools, it's about understanding the concepts and the complete workflow.
236 |
237 | ## 2 - How software development teams collaborate
238 | After that go ahead and watch some tutorials about agile and scrum methods and how software development teams collaborate and work in software development projects.
239 |
240 | ## 3 - DevOps Pre-Requisites and 4 - DevOps Skills
241 | And these skills will actually be enough to start our DevOps Bootcamp, because Linux, Git and all these basic tools you actually learn in our bootcamp from scratch. 🚀 But again you need to understand those workflows first in order to understand, why we're using Git, why we need Jenkins, why we're learning Linux and scripting etc.
242 |
243 | And because of a lot of requests for our Bootcamp from IT beginners 🙈, we actually also decided to create a complete bootcamp prerequisites course. So if you're interested in that you can already sign up to get notified when the course is out 🔔: IT Beginners Course
244 |
245 | So you can of course learn this as I said all by yourself following those steps and put a learning path together by yourself or you can use our prerequisites course when it's out.
246 |
247 | Summary - DevOps Roadmap
248 | So to summarize there are 4 phases:
249 |
250 | #### 1 - Getting the pre-requisites right
251 | First one getting the prerequisites right. So depending on which background and pre-knowledge you have, you need to first make sure to get any missing prerequisite knowledge.
252 |
253 | So as a system administrator or a network engineer, learn the software development workflows. As a developer, learn the basics of infrastructure, virtual servers etc. Of course with zero IT background, you have to get all this prerequisite knowledge from server administration to development first. So you have a more difficult entry, but it is possible if you know what to learn.
254 |
255 | #### 2 - Cloud, Docker, Kubernetes
256 | Second step is learning cloud, Docker and Kubernetes. After learning the prerequisites, you can already get started with important DevOps skills of working with containers and container orchestration tools. So basically learning Docker and Kubernetes to help your teams deploy and efficiently run the application. Kubernetes itself is a very complex tool, so it may take some time to master it and make it production ready.
257 |
258 | And since most of the modern applications and Kubernetes clusters are running on cloud, you need to learn cloud infrastructure, how to work with cloud infrastructure, how to configure it, how to scale it and so on.
259 |
260 | #### 3 - Automation
261 | The third step is automation. Once you have mastered the above skills and technologies it's time to learn how to optimize and automate the existing processes. And as a DevOps professional automation skills are one of the most important ones.
262 |
263 | As the heart of DevOps, learning to build CI/CD pipelines is an essential skill.
264 |
265 | And finally you will learn how to automate parts of the complete DevOps processes one by one using the concepts and tools of what's called X as code, including Infrastructure as Code, Configuration as Code, Security as Code, Policy as Code and so on, which basically means just automating everything in the form of code
266 |
267 | #### 4 - Go from there. Keep learning 🙌
268 | Number four is just go from there. DevOps is evolving and new tools are being developed all the time. So as a DevOps professional, you should learn how to evaluate and test many new tools, always with the same goal to optimize and automate existing processes and make them efficient.
269 |
--------------------------------------------------------------------------------
/DevRel/DevRel-at-DG@2x.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BuildersChain/Developers-Roadmap/17443b1657bc4fd9e44fc7ce348b8a341d336e04/DevRel/DevRel-at-DG@2x.jpg
--------------------------------------------------------------------------------
/DevRel/README.md:
--------------------------------------------------------------------------------
1 | # What is DevRel?
2 |
3 |
4 |
5 | Developer Relations is abbreviated as DevRel. Developer Relations refers to a marketing strategy that prioritises relationships with developers. There is a term in general society known as PR (Public Relations); DevRel is the developer version of this. Its definition is straightforward.
6 |
7 | > DevRel is the marketing technique used to ensure that one's company, products, and developers establish a good, continuous relationship with external developers through mutual communication.
8 |
9 |
10 | ## Why we need DevRel?
11 |
12 | Why did DevRel become so significant? DevRel became significant because advertisements were not originally designed with developers in mind. As a result, the products and services developed would not reach them. Marketing is used to ensure that one's products and services are delivered to their intended audience. Marketing that does not reach developers is meaningless.
13 |
14 | As a result, relevant marketing strategies developed with developers as users became known as DevRel.
--------------------------------------------------------------------------------
/Frontend-Developer/Git-Github/README.md:
--------------------------------------------------------------------------------
1 | # Git-Github
2 |
3 | ## Introduction
4 | Git is a distributed version control system that helps keep track of changes in your code, manage different versions of your code and collaborate with other developers. GitHub is a web-based platform that hosts Git repositories, allowing developers to share their code, collaborate, and keep track of their work.
5 |
6 | ## Setting up a repository on GitHub
7 |
8 | * Create a GitHub account
9 | * Create a new repository by clicking on the "New repository" button.
10 | * Choose a name and description for your repository, and select the type of repository you want to create.
11 | * Initialize your repository with a README file, if you wish.
12 | * Clone the repository to your local machine by copying the repository URL.
13 | * Type in the command "git clone [repository URL]" to clone the repository.
14 | * Open a terminal window and navigate to the directory you want to keep your code.
15 |
16 |
17 | ## Basic Git Commands
18 |
19 | * `git `status` - This shows the status of your local repository.
20 | * `git clone [repository link]` - Clone the forked copy of the project.
21 | * `git branch [branch name]` - Creates a new branch.
22 | * `git checkout -b [your branch name]` - Creates a new branch and also checks out in that as well.
23 | * `git add [file name]` - Adds the specified file to the repository.
24 | * `git commit -m "[commit message]"` - Commits the changes to the repository with a message describing the changes.
25 | * `git push origin [branch name]` - Pushes the changes to the specified branch on GitHub.
26 | * `git pull origin [branch name]` - Pulls the latest changes from the specified branch on GitHub to your local repository.
27 |
28 | ## Collaborating on GitHub
29 |
30 | * Fork the repository you want to collaborate on.
31 | * Clone the forked repository to your local machine.
32 | * Create a new branch to work on.
33 | * Make changes to the code and push the changes to your forked repository.
34 | * Submit a pull request to the original repository, describing the changes you have made.
35 | * The repository owner will review the changes and merge them into the original repository if they are approved.
36 |
37 | ## Learning Resources
38 |
39 | * [Git Documentation](https://git-scm.com/doc)
40 | * [GitHub Documentation](https://git-scm.com/doc)
41 | * [Udemy's Git and GitHub Masterclass](https://www.udemy.com/course/git-and-github-masterclass/)
42 | * [FreeCodeCamp's Git Tutorials](https://www.freecodecamp.org/news/introduction-to-git-and-github/)
43 | * [Codecademy's Git Tutorials](https://www.codecademy.com/learn/learn-git)
44 | * [Kunal Kushwaha's Git and GitHub Tutorial](https://youtu.be/apGV9Kg7ics)
45 |
46 | By following these steps and using these resources, you will be able to effectively use Git and GitHub to manage your code and collaborate with other developers.
47 |
--------------------------------------------------------------------------------
/Frontend-Developer/HTML-CSS/README.md:
--------------------------------------------------------------------------------
1 | # HTML
2 |
3 |
4 | ## Introduction
5 |
6 |
7 | ### What is HTML????
8 |
9 |
10 | HTML, or Hypertext Markup Language, was primarily designed to provide a means of creating structured scientific documents. HTML can embed scripting languages such as PHP or JavaScript to affect the behavior and content of web pages. The World Wide Web Consortium (W3C) maintains both the HTML and CSS standards.
11 |
12 | For more details check out these following resources:
13 |
14 | 1. [MDN Docs on HTML](https://developer.mozilla.org/en-US/docs/Web/HTML)
15 | 2. [W3S HTML Tutorial](https://www.w3schools.com/html/)
16 | 3. [Javatpoint HTML Tutorial](https://www.javatpoint.com/html-tutorial)
17 | 4. [Wikipedia](https://en.wikipedia.org/wiki/HTML)
18 |
19 |
20 | # CSS
21 |
22 |
23 | ## Introduction
24 |
25 |
26 | ### What is CSS????
27 |
28 |
29 | CSS stands for Cascading Style Sheets.
30 |
31 | CSS is a stylesheet language used to describe the presentation of a document written in HTML or XML (including XML dialects such as SVG, MathML or XHTML). CSS describes how elements should be rendered on screen, on paper, in speech, or on other media
32 | CSS describes how HTML elements are to be displayed.
33 |
34 | For more details check out these following resources:
35 |
36 | 1. [MDN Docs on css](https://developer.mozilla.org/en-US/docs/Web/CSS)
37 | 2. [W3S CSS Tutorial](https://www.w3schools.com/css/)
38 | 3. [Javatpoint CSS Tutorial](https://www.javatpoint.com/css-tutorial)
39 | 4. [Wikipedia](https://en.wikipedia.org/wiki/CSS)
40 |
--------------------------------------------------------------------------------
/Frontend-Developer/JavaScript/Javascript-roadmap.md:
--------------------------------------------------------------------------------
1 | > Textual version of the JavaScript roadmap
2 |
3 | - Introduction to JavaScript
4 | - What is JavaScript?
5 | - History of JavaScript
6 | - JavaScript Versions
7 | - How & Where to Run JavaScript
8 |
9 | - All about Variables
10 | - Rules for naming variables
11 | - Variable Declarations
12 | - var
13 | - let
14 | - const
15 | - Variable Scopes
16 | - Block Scope
17 | - Global Scope
18 | - Function Scope
19 | - Hosting
20 |
21 | - Data Types
22 | - Primitive Types
23 | - string
24 | - number
25 | - bigint
26 | - boolean
27 | - undefined
28 | - symbol
29 | - null
30 | - Object
31 | - Object Prototypes
32 | - Prototypal Inheritance
33 | - Built-in Objects
34 | - `typeof` operator
35 |
36 | - Type Casting
37 | - Implicit Type Casting
38 | - Explicit Type Casting
39 | - Type Conversion vs Coercion
40 |
41 | - Equality comparisons
42 | - Equality Algorithms in JavaScript
43 | - isLooselyEqual
44 | - isStrictlyEqual
45 | - SameValueZero
46 | - SameValue
47 | - Value Comparison Operators
48 | - ===
49 | - ==
50 | - Object.is
51 |
52 | - Loops and Iteration
53 | - for statement
54 | - do...while statement
55 | - while statement
56 | - break / continue
57 | - labeled statements
58 | - for...in statement
59 | - for...of statement
60 |
61 | - Control Flow
62 | - Conditional Statements
63 | - if...else
64 | - switch
65 |
66 | - Data Structures
67 | - Indexed Collections
68 | - Arrays
69 | - Typed Arrays
70 | - Keyed Collections
71 | - Map
72 | - Weak Map
73 | - Set
74 | - Weak Set
75 | - Structured Data
76 | - JSON
77 |
78 | - Exception Handling Statements
79 | - throw statement
80 | - try / catch / finally statement
81 | - Utilizing Error Objects
82 |
83 | - Expressions and Operators
84 | - Assignment Operators
85 | - Comparison Operators
86 | - Arithmetic Operators
87 | - Bitwise Operators
88 | - Logical Operators
89 | - BigInt Operators
90 | - String Operators
91 | - Conditional Operators
92 | - Comma Operators
93 | - Unary Operators
94 | - Relational Operators
95 |
96 | - Functions
97 | - Defining Functions
98 | - Calling Functions
99 | - Function Parameters
100 | - Default Parameters
101 | - Rest Parameters
102 | - Arrow Functions
103 | - IIFEs
104 | - `arguments` Object
105 | - Scope and Function Stack
106 | - Recursion
107 | - Lexical Scoping
108 | - Closures
109 | - JavaScript's Built-in Functions
110 |
111 | - Strict Mode `use strict`
112 | - `this` keyword
113 | - `this` in a method
114 | - `this` in a function (default mode)
115 | - `this` alone
116 | - `this` in a function (strict mode)
117 | - `this` in Event Handlers
118 | - `this` in arrow functions
119 | - Explicit Function Binding
120 | - `call` method
121 | - `apply` method
122 | - `bind` method
123 | - Function Borrowing
124 |
125 | - Asynchronous JavaScript
126 | - setTimeout
127 | - setInterval
128 | - callbacks / callback hell
129 | - Promises
130 | - async/await
131 | - Event Loop
132 | - Classes
133 | - Iterators and Generators
134 | - modules in javascript
135 | - Common JS vs ESM
136 | - Memory Management
137 | - Memory Lifecycle
138 | - Garbage Collection
139 | - Debugging
140 | - JavaScript Bugs
141 | - Performance Issues
142 |
--------------------------------------------------------------------------------
/Frontend-Developer/JavaScript/Readme.md:
--------------------------------------------------------------------------------
1 | # Javascript
2 |
3 | ## Introduction
4 |
5 | ### What is JavaScript????
6 |
7 |
8 | Along with [HTML]() and [CSS](), the computer language known as JavaScript, or JS, is one of the foundational elements of the World Wide Web. It enables us to add interactivity to pages, such as the sliders, alerts, click interactions, popups, etc. that you may have encountered on various websites. It is used in non-browser settings as well, such as [Node.js]() for writing server-side JavaScript code, Electron for creating desktop apps, [React Native]() for creating mobile applications, and others, in addition to the browser.
9 |
10 |
11 | For more details check out these following resources:
12 |
13 | 1. [MDN Docs on JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript)
14 | 2. [W3S JavaScript Tutorial](https://www.w3schools.com/js/default.asp)
15 |
16 |
17 |
18 | # jQuery
19 |
20 | ## Introduction
21 |
22 | ### What is jQuery????
23 |
24 | The purpose of jQuery is to make it much easier to use JavaScript on your website. jQuery is a lightweight, "write less, do more", JavaScript library. The purpose of jQuery is to make it much easier to use JavaScript on your website. jQuery takes a lot of common tasks that require many lines of JavaScript code to accomplish, and wraps them into methods that you can call with a single line of code. jQuery also simplifies a lot of the complicated things from JavaScript, like AJAX calls and DOM manipulation.
25 |
26 | The jQuery library contains the following features:
27 |
28 | 1. HTML/DOM manipulation
29 | 2. CSS manipulation
30 | 3.HTML event methods
31 | 4.Effects and animations
32 | 5.AJAX
33 | 6.Utilities
34 |
35 | For more details check out these following resources:
36 |
37 | 1. [W3S jQuery Tutorial](https://www.w3schools.com/jquery/default.asp)
38 |
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/Frontend-Developer/README.md:
--------------------------------------------------------------------------------
1 | Frontend Development
2 |
3 | #### Starting with web development can be overwhelming. This front-end developer roadmap will guide you to start with it in the proper way. We will cover the most important building blocks of the web. This guide will help you to become a modern front-end developer.
4 |
5 | ## HTML
6 |
7 |
8 |
9 | - Basic HTML
10 | - Text Formatting
11 | - Emmet
12 | - Classes and IDs
13 | - Images
14 | - Forms
15 | - Graphics
16 | - Media
17 | - Semantic HTML
18 | - SEO Basics
19 |
20 | ## CSS
21 |
22 | - Basics
23 | - Selectors
24 | - CSS units and values
25 | - Colors
26 | - Positioning
27 | - Box Model
28 | - Display
29 | - Specificity
30 | - Margins, padding, and borders
31 | - FlexBox
32 | - Grid
33 | - Media Queries
34 | - Pseudo Elements
35 | - Pseudo Classes
36 | - Transitions
37 | - Animations
38 |
39 | ### HTML CSS Projects
40 |
41 | - Personal Portfolio Website: Create a website to showcase your skills, projects, and experience.
42 |
43 | - Online Resume: You can include your skills, work experience, education, and any other relevant information.
44 |
45 | - Recipe Website:Include pictures, ingredients, and step-by-step instructions.
46 |
47 | - E-commerce Website: Build an online store where users can browse products, add items to their cart, and checkout.
48 |
49 | - Blog: Create a blog to share your thoughts, ideas, and experiences.
50 |
51 | - News Website: Build a news website that features the latest news stories from around the world.
52 |
53 | - Landing Page: Design a landing page for a product, service, or event.
54 |
55 | - Online Quiz: Create an online quiz that users can take and receive a score.
56 |
57 | ## JavaScript
58 |
59 |
60 |
61 | - Basic Syntax
62 | - Data Types
63 | - Conditions
64 | - Loops
65 | - Functions
66 | - Arrays
67 | - Objects
68 | - DOM Manipulation
69 | - Fetch API / Ajax
70 | - Async Await
71 | - Event Listeners
72 | - ES6+ JavaScript
73 | - Promises
74 | - Classes
75 | - Array Methods
76 | - Scoping
77 | - Hoisting
78 | - Closures
79 |
80 | ### JavaScript Projects
81 |
82 | - Todo List: Create a todo list that allows users to add, delete, and mark tasks as complete.
83 |
84 | - Weather App: Build a weather app that allows users to enter a location and see the current weather conditions.
85 |
86 | - Quiz App: Create a quiz app that asks users a series of questions and provides feedback on their answers.
87 |
88 | - Pomodoro Timer: Build a timer that uses the Pomodoro technique to help users stay focused and productive.
89 |
90 | - Calculator: Create a calculator that allows users to perform basic arithmetic operations like addition, subtraction, multiplication, and division.
91 |
92 | - Random Quote Generator: Build an app that displays a random quote each time it's loaded. You can use a public API to fetch quotes from a database.
93 |
94 | ## Git-GitHub
95 |
96 |
97 |
98 | - Installing Git
99 | - Staging and Commit
100 | - Git Init
101 | - Git Add
102 | - Git Commit
103 | - Git Clone
104 | - Git Stash
105 | - Git Ignore
106 | - Git Fork
107 | - Git Origin Master
108 | - Git Remote
109 | - Git Checkout
110 | - Git Revert
111 | - Git Reset
112 | - Git Branch
113 | - Git Push
114 | - Git Pull
115 |
116 | ## Learn any CSS Framework
117 |
118 |
119 |
120 | - Bootstrap
121 | - Tailwind
122 | - Materialize
123 | - Bulma
124 | - Semantic UI
125 | - Foundation
126 |
127 | ## Learn any CSS Preprocessor
128 |
129 |
130 |
131 | - SASS / SCSS
132 | - Postcss
133 | - Less
134 | - Stylus
135 |
136 | ## Pick a JavaScript Framework / Library
137 |
138 |
139 |
140 | - React
141 | - Vue
142 | - Angular
143 | - Svelte
144 | - Meteor
145 | - Remix
146 |
147 | #### I recomend you to choose React.React is a popular JavaScript library that is widely used for building web applications.
148 |
149 | #### React is a powerful and flexible library that can help you build complex web applications quickly and efficiently. Whether you're building a small personal project or a large-scale enterprise application, React is definitely worth considering.
150 |
151 | ## Basic things to learn in React
152 |
153 | - Components
154 | - JSX
155 | - Props
156 | - State
157 | - Events
158 | - Conditional Rendering
159 |
160 | #### React - Hooks
161 |
162 |
163 | - useState
164 | - useEffect
165 | - useRef
166 | - useContext
167 | - useReducer
168 | - useMemo
169 | - useCallback
170 |
171 | ## Learn some React UI Frameworks
172 |
173 |
174 |
175 | - Material UI
176 | - Ant Design
177 | - Chakra UI
178 | - React Bootstrap
179 | - Rebass
180 | - Blueprint
181 | - Semantic UI React
182 |
183 | ## Learn some popular React packages
184 |
185 | - React Router
186 | - React Query
187 | - Axios
188 | - React Hook Form
189 | - Styled Components
190 | - Storybook
191 | - Framer Motion
192 |
193 | ## Learn state management in React
194 |
195 |
196 | - Redux
197 | - MobX
198 | - Hookstate
199 | - Recoil
200 | - Akita
201 |
202 |
203 | ## Learn to test your apps
204 |
205 |
206 | * Jest
207 | * Testing Library
208 | * Cypress
209 | * Enzyme
210 | * Jasmine
211 | * Mocha
212 |
213 |
214 | ## Learn to deploy your websites
215 |
216 |
217 | * Netlify
218 | * Vercel
219 | * Firebase
220 | * Github Pages
221 | * Heroku
222 | * Render
223 |
224 | ## Important Note
225 | #### You don’t need to learn all the things mention in this roadmap to become a front-end developer or get a job as a front-end devloper.
226 |
227 |
228 | #### There is no end of learning in web development there’s always something to learn
229 |
230 | ## So never stop learning!
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
268 |
--------------------------------------------------------------------------------
/Frontend-Developer/frameworks/Angular/README.md:
--------------------------------------------------------------------------------
1 | # Angular
2 | Angular is an open-source JavaScript framework for building client-side web applications. It was developed and is maintained by Google. Angular is a complete rewrite of AngularJS, which was the first version of the framework.
3 |
4 | ## Advantages of Angular
5 | * Modular architecture - Angular is designed with a modular architecture that enables developers to build complex applications in a modular and maintainable way.
6 |
7 | * Two-way data binding - Angular's two-way data binding makes it easy to keep the data model and the view in sync, which reduces the amount of boilerplate code required to create dynamic user interfaces.
8 |
9 | * Dependency injection - Angular's dependency injection system makes it easy to manage dependencies in your application and to write testable code.
10 |
11 | * TypeScript - Angular is written in TypeScript, which adds type checking and other advanced features to JavaScript, making it more robust and easier to maintain.
12 |
13 | * Large community and ecosystem - Angular has a large and active community of developers, which means there are many resources available, such as tutorials, libraries, and tools.
14 |
15 |
16 |
17 |
18 |
19 | ## Jobs Available in the Market
20 | * Front-end Developer - Angular is one of the most in-demand skills for front-end developers. Front-end developers who are proficient in Angular can expect to find many job opportunities in the market.
21 |
22 | * Full-stack Developer - Full-stack developers who are proficient in Angular can work on building complex web applications that require a strong understanding of both front-end and back-end development.
23 |
24 | * UI/UX Designer - Angular is often used to build complex user interfaces, which means that UI/UX designers who are proficient in Angular can find job opportunities in companies that require strong design skills.
25 |
26 | * Angular Developer - Companies that build web applications using Angular are always looking for developers who are proficient in the framework. As an Angular developer, you can expect to work on building and maintaining complex web applications.
27 |
28 | * Web Application Developer - As more and more companies move their business online, the demand for web application developers who are proficient in Angular is increasing. Angular is one of the most popular frameworks for building web applications, which means that web application developers who are proficient in Angular are in high demand.
29 |
30 | ## Angular Roadmap
31 | This roadmap outlines the recommended learning path and progression for developers interested in mastering Angular.
32 |
33 | ## Getting Started
34 | Learn the basics of HTML, CSS, and JavaScript.
35 | Familiarize yourself with TypeScript, which is a superset of JavaScript and the preferred language for Angular development.
36 | Get comfortable with using the command line interface (CLI) to create, build, and test Angular applications.
37 |
38 | ## Core Concepts
39 | * Understand Angular's component-based architecture and how to create and use components.
40 | * Learn about Angular's data binding system and how to use it to display and update data.
41 | * Become familiar with Angular's dependency injection system and how to use it to manage dependencies in your application.
42 | * Learn how to use Angular's router to handle navigation between pages in your application.
43 |
44 | ## Advanced Topics
45 | * Learn about Angular's forms module and how to use it to create forms with validation.
46 | * Understand how to use Angular's HTTP module to communicate with a backend API.
47 | * Learn how to use Angular's reactive programming features, such as observables and reactive forms.
48 | * Become familiar with Angular's testing framework and how to write unit tests and end-to-end tests for your application.
49 | * Learn about Angular's server-side rendering (SSR) capabilities and how to use them to improve performance and SEO.
50 |
51 | ## Libraries and Tools
52 | * Learn how to use popular Angular libraries, such as RxJS, ng-bootstrap, and Material Design.
53 | * Become familiar with popular tools for debugging and profiling Angular applications, such as the Angular DevTools and Augury.
54 | * Learn how to use tools for optimizing your Angular application's performance, such as the Angular CLI's built-in optimization tools and lazy loading.
55 |
56 | ## Best Practices
57 | * Understand Angular's recommended best practices for structuring your application, such as the use of modules and lazy loading.
58 | * Learn how to write maintainable and scalable Angular code, such as using a consistent code style and following SOLID principles.
59 | * Familiarize yourself with common pitfalls and anti-patterns in Angular development and how to avoid them.
60 |
61 | ## Contributing
62 | If you have suggestions or contributions for this roadmap, feel free to create an issue or pull request in the repository.
63 |
64 | ## Resources
65 | * Official Angular documentation: https://angular.io/docs
66 | * Angular University: https://angular-university.io/
67 | * Ultimate Angular: https://ultimatecourses.com/angular
68 | * Ng-book: https://www.ng-book.com/
69 | * Angular in Action: https://www.manning.com/books/angular-in-action
70 |
--------------------------------------------------------------------------------
/Frontend-Developer/frameworks/Ember/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BuildersChain/Developers-Roadmap/17443b1657bc4fd9e44fc7ce348b8a341d336e04/Frontend-Developer/frameworks/Ember/README.md
--------------------------------------------------------------------------------
/Frontend-Developer/frameworks/FLutter/Screenshot 2023-02-20 011032.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BuildersChain/Developers-Roadmap/17443b1657bc4fd9e44fc7ce348b8a341d336e04/Frontend-Developer/frameworks/FLutter/Screenshot 2023-02-20 011032.png
--------------------------------------------------------------------------------
/Frontend-Developer/frameworks/FLutter/mobile-developer(Flutter).md:
--------------------------------------------------------------------------------
1 | ## Flutter roadmap
2 | # basic dart
3 |
4 | ## What is Flutter?
5 | Flutter is a free and open-source mobile application development framework created by Google.
6 | It was first introduced in 2017 and has since gained a lot of popularity among developers.
7 | Advantages of Flutter
8 | 1.Provides fast development cycles and hot reload, which allows for quick iterations and reduces development time.
9 |
10 | 1. Uses a single codebase to create apps for both Android and iOS platforms, reducing the need for separate teams and resources.
11 | 1. Offers a customizable widget-based framework that allows for creating visually appealing and interactive user interfaces.
12 | 1. Provides access to a wide range of plugins and packages that can be easily integrated with the codebase, allowing for easier customization and feature additions.
13 | 1. Supports the use of popular programming languages such as Dart, which allows for easy adoption and integration with existing development processes.
14 | 1. Comes with a robust documentation and active community support, which makes it easier for developers to get help and stay up to date with the latest updates and features.
15 | ## Conclusion
16 | Flutter is a powerful framework for mobile application development that offers many advantages to developers. Its customizable widgets, fast development cycles, and support for popular programming languages make it a popular choice among developers who want to create visually appealing and interactive mobile applications quickly and efficiently.
17 | # whats in this roadmap ?
18 | ->what is flutter?
19 | ->some core basic, like different types of widgets
20 | ->state topics
21 | ->advance topics
22 |
23 | 1. widgets
24 | 1. stateless widgets
25 | 1. stateful widgets
26 | 1. material(android)/cupertino(ios) widgets
27 | 1. projects->make
28 | 1. software design principles->solid,design patterns etc
29 | 1. api
30 | 1. shared preferences
31 | 1. networking in flutter,pub.dev
32 | 1. sqlite/firebase/supabase->preference
33 | 1. some advance topics and → provider or velocityx or redux
34 | 1. testing
35 | 1. packages&plugins
36 | 1. memory&performance
37 | 1. dos and donts for developer
38 |
39 | ## links
40 | 1. https://youtu.be/j-LOab_PzzU
41 | 2. flutter.dev
42 |
43 | # mostly setup is the most difficult so here are the steps
44 | # flutter setup
45 | 1. install flutter, set path in enviroment variables of bin
46 | # https://docs.flutter.dev/get-started/install
47 | 1. then install android studio
48 | # https://developer.android.com/studio
49 | 1. install latest sdk and also cmline tools when opening android studio first time
50 | 1. setup virtual device in android studio settings->device manager->new device
51 | 1. go to environment variables -> system-> path->paste sdk path
52 | 1. run flutter doctor in cmd
53 | see if any errors
54 | if error of android toolchain,
55 | go to android studio installation path by cd then run -> mklink /D "jre" "jbr" -> this will create a symbolic link so sdk will be able to run required dependancies from jbr
56 | if any error of flutter sdk then -> make sure flutter/bin is added into path environment variables
57 | if any error of cmake, make sure simple visual studio is installed with cmake package
58 | 
--------------------------------------------------------------------------------
/Frontend-Developer/frameworks/README.md:
--------------------------------------------------------------------------------
1 | # Frameworks
2 |
3 | ## Introduction
4 |
5 | Frontend development is the practice of designing and coding user interfaces for web applications. Frontend frameworks are powerful tools that simplify the development process of websites and web applications. In this article, we'll discuss the different frameworks available for frontend development and provide learning resources for each of them.
6 |
7 | ## Angular
8 |
9 | Angular is a powerful JavaScript framework for building web applications. Developed by Google, it allows developers to create dynamic and complex web applications with a wide range of features, including two-way data binding, dependency injection, and a robust testing infrastructure. It uses TypeScript, a superset of JavaScript, which adds features such as static typing and classes, making it more organized and easier to maintain. Angular also provides developers with a set of conventions that make the development process easier, including the use of components, services, and modules. Its popularity can be attributed to its ability to handle large-scale applications and its strong support for testability, making it a favorite among developers for building enterprise applications.
10 |
11 | Example: Gmail, Google Drive, and Google Analytics are all built with Angular.
12 |
13 | ### Learning resources:
14 |
15 | * [Angular documentation](https://angular.io/docs)
16 | * [Coursera Angular course](https://www.coursera.org/learn/angular)
17 | * [Codecademy Angular course](https://www.codecademy.com/learn/learn-angularjs)
18 |
19 | ## React
20 |
21 | React is a popular JavaScript library used to build user interfaces. Developed by Facebook, React allows developers to create reusable UI components and efficiently manage complex user interfaces. It uses a virtual DOM that allows developers to update only the necessary parts of the user interface, making it faster and more efficient than other UI frameworks. React is often used in conjunction with other libraries and frameworks, such as Redux for state management, and React Native for building mobile applications. Its popularity can be attributed to its simplicity, efficiency, and ability to create high-performing web applications.
22 |
23 | Example: Facebook, Instagram, and Airbnb are all built with React.
24 |
25 | ### Learning resources:
26 |
27 | * [React documentation](https://reactjs.org/docs/getting-started.html)
28 | * [Coursera React course](https://www.coursera.org/learn/react)
29 | * [Codecademy React course](https://www.codecademy.com/learn/react-101)
30 |
31 | ## Vue.js
32 |
33 | Vue.js is a progressive JavaScript framework for building user interfaces. It was created by Evan You and is known for its simplicity, flexibility, and ease of integration with other libraries and projects. Vue is incrementally adoptable, which means it can be integrated into existing projects and applications without disrupting the entire architecture. It provides developers with tools for building reusable components, managing state with a centralized store, and reactive updates to the user interface. It is lightweight, with a small footprint, and has fast performance. Its popularity can be attributed to its ease of use, flexibility, and the fact that it allows developers to build highly scalable applications with ease.
34 |
35 | Example: Alibaba, Xiaomi, and WizzAir are all built with Vue.js.
36 |
37 | ### Learning resources:
38 |
39 | * [Vue.js documentation](https://vuejs.org/v2/guide/)
40 | * [Coursera Vue.js course](https://www.coursera.org/learn/vue-js)
41 | * [Codecademy Vue.js course](https://www.codecademy.com/learn/learn-vue-js)
42 |
43 | ## Ember
44 |
45 | Ember is a JavaScript framework for building web applications. It is an opinionated framework, meaning it provides developers with a set of conventions for coding web applications, making the development process easier and more efficient. Ember is known for its strong support for convention over configuration, which means it provides developers with a set of conventions for coding web applications that make the development process easier. It provides developers with a robust infrastructure for building web applications, including features such as two-way data binding, templates, and components. Ember also provides developers with a set of tools for testing their applications, making it easier to maintain and update their code. Its popularity can be attributed to its strong focus on developer productivity, making it an excellent choice for building large-scale web applications.
46 |
47 | Example: LinkedIn, Netflix, and Yahoo are all built with Ember.
48 |
49 | ### Learning resources:
50 |
51 | * [Ember documentation](https://emberjs.com/)
52 | * [Coursera Ember course](https://www.coursera.org/learn/ember-js)
53 | * [Codecademy Ember course](https://www.codecademy.com/learn/learn-ember-js)
54 |
55 | ## Conclusion
56 |
57 | Frontend frameworks are powerful tools that simplify the development process of websites and web applications. In this article, we have discussed some of the most popular frontend frameworks and provided learning resources for each of them. We hope that this article has been helpful in helping you decide which frontend framework to use for your next project.
58 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/Frontend-Developer/frameworks/React/README.md:
--------------------------------------------------------------------------------
1 | # Roadmap to learn React
2 |
3 | ## What to learn before you start React ?
4 | * Git/Github
5 | * Basic javascript
6 | * npm / yarn
7 | * To work efficiently in terminal
8 | * and ofcourse basic html and css.
9 |
10 | ## What is React.js?
11 | React is a popular JavaScript library for building user interfaces (UIs) for web applications.React can be used to build single-page applications (SPAs) and can be combined with other libraries and frameworks, such as Redux, React Router, and Next.js, to create more complex applications.
12 |
13 | ## Why to learn React ?
14 | React allows developers to build complex UIs by breaking them down into small, reusable components that can be easily managed and updated.
15 |
16 | ## THE Roadmap !
17 | ### 1. __Learn the basics of__
18 | * __HTML:__ In HTML, you should know Basics of all tags, new features, and support in HTML5, About how to work with emmets and about divs.
19 |
20 | * __CSS:__ In CSS, you should know about Box model mainly, and the basic styling.
21 |
22 | * __JavaScript:__ Javascript is the most integral prerequisite if you want to start React. It adds interactivity and dynamics in the HTML document. It is a client-side scripting language. To take inputs from users, validate them, display alerts etc., we use JavaScript.
23 |
Following are the important points to consider:
24 |
25 | -Functions
26 | -Strings
27 | -Array manipulation
28 | -Loops
29 | -Printing alerts
30 | -Logging on consoles
31 |
32 | ### 2. __The basic Tools you'll need-__
33 | * __Git / Github:__ In github, you need to learn-
34 | 1. How to create a repository.
35 | 2. The basic git commands such as how to push your code.
36 | 3. How to create branches and how to open a pull request.
37 | 4. And, Version control.
38 |
39 |
40 | * __VS Code/ Atom or any code editor you're comfortable with.__
41 |
42 | * __Package Managers :__
43 | You'll need package managers like Npm or Yarn. These are tools used to manage the packages and libraries. You can choose the package manager of your choice.
44 |
45 |
46 | * __Libraries for better styling:__
47 | Few third party libraries such as React Bootstrap, Mantine etc would make your application's styling much better and easier.
48 |
49 | * __Working with API's:__
50 | 1. __Fetch API__: The Fetch API is a built-in JavaScript API that allows you to make HTTP requests to an API endpoint and retrieve data. Understanding how to use the Fetch API is essential when working with APIs in React.
51 | 2. __React Hooks__: React Hooks are a way to add state and other React features to functional components. The useEffect() Hook is often used when working with APIs, as it allows you to perform side effects, such as making API requests, when a component is rendered.
52 | 3. __Promises:__ The Fetch API returns a Promise, which is a JavaScript object that represents a value that may not be available yet. Understanding how to work with Promises and handle asynchronous data in React is important when working with APIs.
53 | 4. __GET and POST requests:__ GET and POST are two of the most common HTTP methods used in APIs to retrieve or send data, respectively.
54 |
55 | * __Routing, Navigation and loading:__
56 | Routing and navigation are important concepts in web development, as they allow users to navigate between different pages or views within a web application.
57 |
58 | ## How to start ?
59 | Now, this is the main deal. The best place to learn React is the official website, but as a beginner, it can be a little bit overwhelming for you. So, here are some resoources i found very useful-
60 |
61 | #### Documentation based resources-
62 | * [React's official website](https://reactjs.org/)
63 | * [W3School's React documentation](https://www.w3schools.com/REACT/DEFAULT.ASP)
64 |
65 | #### Tutorial based resources-
66 | * [Udemy](https://www.udemy.com/course/the-complete-web-development-bootcamp/)
67 | * [NetNinja's youtube playlist](https://www.youtube.com/playlist?list=PL4cUxeGkcC9gZD-Tvwfod2gaISzfRiP9d)
68 | * [FreeCodeCamp's youtube playlist](https://www.youtube.com/playlist?list=PLWKjhJtqVAbkArDMazoARtNz1aMwNWmvC)
69 |
70 | #### Additional resources
71 | * [Airbnb React/JSX Style Guide](https://github.com/airbnb/javascript/tree/master/react)
72 | * [Chrome react dev tools](https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi?hl=en)
73 | * [React icons](https://react-icons.github.io/react-icons/)
74 |
75 | ### Last but not the least,
76 | Remember, learning React is a journey, not a destination. It takes time and practice to become proficient, but with dedication and perseverance, you can master this powerful and popular framework.
77 |
78 | **Happy Coding ;) !**
79 |
80 |
81 |
82 |
--------------------------------------------------------------------------------
/Frontend-Developer/frameworks/Vue/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BuildersChain/Developers-Roadmap/17443b1657bc4fd9e44fc7ce348b8a341d336e04/Frontend-Developer/frameworks/Vue/README.md
--------------------------------------------------------------------------------
/Full-Stack-Developer/Full-stack-developer.md:
--------------------------------------------------------------------------------
1 | # Full stack Development
2 |
3 | ## Getting Started with Full stack Development
4 |
5 | Full stack development refers to the end-to-end application software development, including the front end and back end. The front end consists of the user interface, and the back end takes care of the business logic and application workflows.In this guide, we'll cover the basic steps to get started with Full stack development, including the different frameworks or tech stacks you can learn, and the related study resources.
6 |
7 | ## Prerequisites
8 |
9 | Before you start with Full stack development, you should have a fairly good understanding of both frontend and backend development.We have already created roadmaps for both frontend and backend development.
10 |
11 | # Study resources
12 |
13 | - [Frontend roadmap](https://github.com/WeMakeDevs/roadmaps/tree/main/Frontend-Development)
14 | - [Backend roadmap](https://github.com/WeMakeDevs/roadmaps/tree/main/Backend-Development)
15 |
16 | ## Learn Typescript
17 |
18 | TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale.Think of it as javascript but with type safety.
19 |
20 | # Study resources
21 |
22 | - [Typescript docs](https://www.typescriptlang.org/docs/)
23 | - [Freecodecamp - Typescript tutorial](https://www.youtube.com/watch?v=30LWjhZzg50&t=777s)
24 | - [The net ninja Typescript tutorial](https://www.youtube.com/playlist?list=PL4cUxeGkcC9gUgr39Q_yD6v-bSyMwKPUI)
25 |
26 | ## Learn Advance GitHub Features
27 |
28 | It's used for storing, tracking, and collaborating on software projects. It makes it easy for developers to share code files and collaborate with fellow developers on open-source projects.Learning advance features will help you collaborating more effeciently with other fellow developers.
29 |
30 | # Study resources
31 |
32 | - [Github pages](https://www.typescriptlang.org/docs/)
33 | - [Github actions](https://www.youtube.com/watch?v=30LWjhZzg50&t=777s)
34 | - [Publishing packages](https://www.youtube.com/playlist?list=PL4cUxeGkcC9gUgr39Q_yD6v-bSyMwKPUI)
35 |
36 | ## Learn about Cloud service providers
37 |
38 | Cloud service providers are companies that establish public clouds, manage private clouds, or offer on-demand cloud computing components (also known as cloud computing services) like Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS), and Software-as-a-Service(SaaS). Cloud services can reduce business process costs when compared to on-premise IT.
39 |
40 | # Study resources
41 |
42 | - [AWS](https://docs.aws.amazon.com/)
43 | - [Azure](https://learn.microsoft.com/en-us/azure/?product=popular)
44 | - [Google cloud](https://cloud.google.com/training?hl=en)
45 | - [IBM](https://www.ibm.com/training/cloud)
46 |
47 | ## Learn GraphQL
48 |
49 | GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. GraphQL provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve APIs over time, and enables powerful developer tools.
50 |
51 | # Study resources
52 |
53 | - [GraphQl docs](https://graphql.org/)
54 | - [Freecodecamp - GraphQl tutorial](https://www.youtube.com/watch?v=ed8SzALpx1Q)
55 | - [Traversy Media - GraphQl tutorial](https://www.youtube.com/watch?v=BcLNfwF04Kw)
56 |
57 | ## Learn CDN
58 |
59 | A content delivery network, or content distribution network, is a geographically distributed network of proxy servers and their data centers. The goal is to provide high availability and performance by distributing the service spatially relative to end users.
60 |
61 | # What is CDN
62 |
63 | - [Resource 1](https://www.cloudflare.com/en-in/learning/cdn/what-is-a-cdn/)
64 | - [Resource 2](https://www.hostinger.in/tutorials/what-is-cdn)
65 | - [Resource 3](https://www.youtube.com/watch?v=Bsq5cKkS33I)
66 |
67 | ## Learning scaling
68 |
69 | It can be defined as a process to expand the existing configuration (servers/computers) to handle a large number of user requests or to manage the amount of load on the server. This process is called scalability.
70 |
71 | - [App server scaling](https://www.youtube.com/watch?v=xUumgxZ04SM)
72 | - [Web app archietecture](https://www.youtube.com/watch?v=sDlCSIDwpDs)
73 | - [Types of scaling](https://www.youtube.com/watch?v=xpDnVSmNFX0)
74 |
75 | ## Deploying on web servers
76 |
77 | Software deployment is all of the activities that make a software system available for use. The general deployment process consists of several interrelated activities with possible transitions between them.
78 |
79 | - [Deploy a MERN project on heroku](https://www.freecodecamp.org/news/deploying-a-mern-application-using-mongodb-atlas-to-heroku/)
80 | - [Linux server setup and MERN deployment](https://www.youtube.com/watch?v=7aRjGIhwyQM)
81 | - [Full node js deployment](https://www.youtube.com/watch?v=oykl1Ih9pMg&feature=youtu.be)
82 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 Builders Chain
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/ML-AI/README.md:
--------------------------------------------------------------------------------
1 | # Complete Roadmap for Data Science, ML and AI
2 |
3 |
4 | As we know Data Science, Machine Learning and Artificial Intelligence are hot topics nowadays, but few are telling you the exact path to cover or learn things in a simple way. So that’s why we cover all the paths for you to become an expert in the domain. So let’s get started!
5 |
6 |
7 |
8 |
9 |
10 |
11 | 1. Python Programming
12 |
13 |
14 |
15 |
16 |
17 | Python Programming is one of high level language with multiple application in today's world. It is the easy to learn, available at every platform with same functionality and interpreted language.
18 |
19 |
20 |
21 |
22 |
23 | Some Reading Resource:
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 | 
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 | 2. Exploratory Data Analysis (EDA)
51 |
52 |
53 |
54 |
55 |
56 |
57 | Exploratory data analysis is an approach to analyzing data sets to summarize their main characteristics, often using statistical graphics and other data visualization methods. we can say that it is a technique to Analyze or visualize data in a much efficient way so that it makes a more meaningful.
58 |
59 |
60 |
61 | Some Reading Resource:
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 | 
75 |
76 |
77 |
78 | 3. Feature Engineering
79 |
80 |
81 |
82 |
83 |
84 | Feature engineering is the process of using domain knowledge to extract features from raw data via data mining techniques. These features can be used to improve the performance of machine learning algorithms.
85 |
86 | Techniques:
87 | - Handling Missing Value
88 | - Handling Outlier
89 | - Categorical Encoding
90 | - Normalization and Standardization
91 |
92 |
93 |
94 | 
95 |
96 |
97 |
98 |
99 |
100 | 4. Feature Selection
101 |
102 |
103 |
104 |
105 |
106 | In machine learning and statistics, feature selection, also known as variable selection, attribute selection, or variable subset selection, is the process of selecting a subset of relevant features for use in model construction. Simply we can say that to select the right feature for our machine learning model.
107 |
108 | Techniques:
109 | - Correlation
110 | - Forward Elimination or Backward Elimination
111 | - Univariate selection
112 | - Random forest importance
113 | - Feature Selection with Decision Tree
114 |
115 |
116 |
117 | 
118 |
119 |
120 |
121 |
122 |
123 | 5. Machine Learning
124 |
125 |
126 |
127 |
128 |
129 | Machine learning is the study of computer algorithms that improve automatically through experience and by the use of data. It is seen as a part of artificial intelligence.
130 |
131 | Supervised Learning algorithms:
132 | - Linear Regression
133 | - Ridge and Lasso Regression
134 | - Logistic Regression
135 | - Decision Tree
136 | - Random Forest
137 | - XGboost
138 | - Adaboost
139 | - Gradient Boosting
140 | - Catboost
141 | - Light-Gbm
142 |
143 | Unsupervised Learning algorithms:
144 | - K-means Clustering
145 | - Hierarchical Clustering
146 | - DB-scan Clustering
147 | - Silhouette Clustering
148 |
149 |
150 |
151 | 
152 |
153 |
154 |
155 |
156 | 6. Hyperparmameter Tuning
157 |
158 |
159 |
160 |
161 |
162 | In machine learning, hyperparameter optimization or tuning is the problem of choosing a set of optimal hyperparameters for a learning algorithm. A hyperparameter is a parameter whose value is used to control the learning process. By contrast, the values of other parameters (typically node weights) are learned.
163 |
164 | Techniques:
165 | - Grid Search-cv
166 | - Randomized search-cv
167 | - Hyperopt
168 | - Optuna
169 | - Genetic Algorithm
170 |
171 |
172 |
173 | 
174 |
175 |
176 |
177 |
178 | 7. Docker
179 |
180 |
181 |
182 |
183 |
184 | Docker is a set of the platform as service products that use OS-level virtualization to deliver software in packages called containers. Containers are isolated from one another and bundle their own software, libraries, and configuration files; they can communicate with each other through well-defined channels.
185 |
186 |
187 |
188 | 
189 |
190 |
191 |
192 |
193 | 8. Kubernetes
194 |
195 |
196 |
197 |
198 |
199 | Kubernetes is an open-source container-orchestration system for automating computer application deployment, scaling, and management. It was originally designed by Google and is now maintained by the Cloud Native Computing Foundation.
200 |
201 |
202 |
203 | 
204 |
205 |
206 |
207 | 9. Deployment
208 |
209 |
210 |
211 |
212 |
213 |
214 | Learn deployment techniques about how to deploy an ml project on cloud services like:
215 | - AWS
216 | - AZURE
217 | - GCP
218 |
219 |
220 |
221 |
222 | 
223 |
224 |
225 |
226 |
227 | This is the complete path to master machine learning from end to end, hope this roadmap helps you to achieve your goal.
228 |
229 |
230 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | # Developer Roadmap
11 | Welcome to the Developer Roadmap! This guide is designed to help aspiring developers and established professionals alike to understand the key skills, technologies, and methodologies required for building software applications. Whether you are just starting out on your developer journey, or you are an experienced coder looking to expand your knowledge, this roadmap will provide you with a comprehensive overview of the landscape.
12 |
13 |
14 | ### [View all Roadmaps](https://github.com/BuildersChain/Developers-Roadmap)
15 |
16 | 
17 |
18 | Here is the list of available roadmaps with more being actively worked upon.
19 |
20 | - [Frontend Roadmap](https://github.com/BuildersChain/Developers-Roadmap/tree/main/Frontend-Developer)
21 |
22 | - [Backend Roadmap](https://github.com/BuildersChain/Developers-Roadmap/tree/main/Backend-Developer)
23 |
24 | - [Blockchain Roadmap](https://github.com/BuildersChain/Developers-Roadmap/tree/main/WEB3-Developer)
25 |
26 | - [AI - ML Roadmap](https://github.com/BuildersChain/Developers-Roadmap/tree/main/ML-AI)
27 |
28 | - [JavaScript Roadmap](https://github.com/BuildersChain/Developers-Roadmap/blob/main/Frontend-Developer/JavaScript/Javascript-roadmap.md)
29 |
30 | - [Android Roadmap](https://github.com/BuildersChain/Developers-Roadmap/tree/main/Android%20Developer)
31 |
32 | - [DevRel Roadmap](https://github.com/BuildersChain/Developers-Roadmap/tree/main/DevRel)
33 |
34 |
35 | ## Share with the community
36 |
37 | Please consider sharing a post about [BuildersChain](https://github.com/BuildersChain) and the value it provides. It really does help!
38 |
39 | [](https://twitter.com/builderschain)
40 | [](https://www.linkedin.com/company/builderschain)
41 |
42 |
43 | ## Contribution
44 |
45 | > Have a look at [contribution docs](./CONTRIBUTING.md) for how to update any of the roadmaps
46 |
47 | - Add content to roadmaps
48 | - Add new roadmaps
49 | - Suggest changes to existing roadmaps
50 | - Discuss ideas in issues
51 | - Spread the word
52 |
53 |
54 |
55 |
106 |
--------------------------------------------------------------------------------
/SECURITY.md:
--------------------------------------------------------------------------------
1 | # Security Policy
2 |
3 | > This page is under development
4 |
5 | ## Supported Versions
6 |
7 | Use this section to tell people about which versions of your project are
8 | currently being supported with security updates.
9 |
10 | | Version | Supported |
11 | | ------- | ------------------ |
12 | | 5.1.x | :white_check_mark: |
13 | | 5.0.x | :x: |
14 | | 4.0.x | :white_check_mark: |
15 | | < 4.0 | :x: |
16 |
17 | ## Reporting a Vulnerability
18 |
19 | Use this section to tell people how to report a vulnerability.
20 |
21 | Tell them where to go, how often they can expect to get an update on a
22 | reported vulnerability, what to expect if the vulnerability is accepted or
23 | declined, etc.
24 |
--------------------------------------------------------------------------------
/WEB3-Developer/README.md:
--------------------------------------------------------------------------------
1 | # Blockchain Roadmap: Zero to Hero!!
2 |
3 |
4 |
5 | ## Roadmap to deep dive into Blockchain
6 | **Its not surprising to see the growth in blockchain or Web3 space.** It offers so many features those were not in the earlier webs (web1.0 and web2.0), Indeed, Blockchain is one of the top emerging technology domains in the present scenario of **Tech industry**. And as a result we have massive demand for blockchain developers. So don't u think this is the right time to deep dive into this field.
7 |
8 | If yes then you're on the right place😎🚀 This blog is written by an intension to provide all the crucial details that are required for folks to deep dive into this industry, so without further delay let's get in!!
9 |
10 | ## Why we need Blockchain?
11 | Blockchain technology integrates a peer to peer network between a large number of computers of users where each user's system acts like a node and hence these computers collectively work together and build an integrated network which eliminate the **centralized** web and offers **decentralized** working.
12 |
13 |
14 |
15 |
16 |
17 | This Decentralized network eliminates the third party and makes the whole working of the web much more **transparent!**
18 |
19 |
20 | > Blockchain Developers can be classified into two types- Blockchain Software Developer and Core Blockchain Developers. Now let's take a look at the roles and responsibilities
21 |
22 |
23 | ### Core Blockchain Developer:
24 | - Design and monitors the network architecture
25 | - Implement various blockchain features & functionality
26 | - Design the Blockchain protocols and consensus protocols.
27 |
28 | ### Blockchain Software Developer
29 | - Develops APIs for Blockchain integration.
30 | - Develop & Implement Smart Contracts, etc.
31 | - Develop the frontend and backend of Decentralized Applications.
32 |
33 | > _Now as you've got through some basic knowledge of Blockchain and their job profiles. Now let's see how can you jump into this field and become a successful Blockchain Engineer._
34 |
35 | ### 1. Learn about Computer Science fundamentals.
36 | Before going much deeper into blockchain and writing code, You should acquire knowledge of Computer Science fundamentals like: **Databases and their Management, Computer Networks and Protocols, Operating Systems, Object Oriented Programming and Etc.**
37 |
38 | For this below are some resources to learn about them thoroughly:
39 |
40 | * [Computer Science fundaments](https://engineering-computer-science.wright.edu/computer-science-and-engineering/computer-science-fundamentals-course-cs5160)
41 | * [Teach Yourself Computer Science](https://teachyourselfcs.com/)
42 | * [Best way to learn CS fundamentals](https://medium.com/javarevisited/8-best-computer-science-courses-for-beginners-to-learn-online-696379aa4e96)
43 | * [Be certified CS Learner](https://www.coursera.org/specializations/cs-fundamentals)
44 | * [Learn CS fundaments](https://www.learncomputerscienceonline.com/)
45 |
46 |
47 |
48 |
49 |
50 | > **After getting the crucial knowledge of CS fundamentals, Its time get proficient with programming and other skills.**
51 | ### 2. Learn how web works and Network security.
52 |
53 | once you're done with Computer Science fundamentals. Learn about cryptography and steganography, Network security concepts like encryption, Decryption, Integrity, non-repudiation, and how a system can be hacked and spoofed by a non-ethical hacker and what measures should we use to minimize the risk of cyber attacks.
54 |
55 |
56 |
57 |
58 |
59 |
60 | ### 3. Learn basics of Blockchain
61 | Once you're enough confident with your computer science fundamentals, now its time to dive deeper into the concepts of blockchain like what are **Smart Contract, DApps, DeFis, EVM chain, Distributed Ledger Technology, Hashing, Cryptography and etc.** You need to learn about Bitcoin, Ethereum and other crucial concepts such as public and private approaches, Decentralization, trustlessness, and etc. For this you can use various online courses and official documentation.
62 |
63 |
64 |
65 |
66 |
67 |
68 | ### 4. Learn about Smart Contracts and Solidity
69 | > _**A smart contract is a computer program or a transaction protocol that is intended to automatically execute, control or document legally-relevant events and actions according to the terms of contract or an agreement.**_
70 |
71 |
72 |
73 |
74 | _Using reference of [Investopedia](https://www.investopedia.com/terms/s/smart-contracts.asp) "A smart contract is a self-executing contract with the terms of the agreement between buyer and seller being directly written into lines of code. The code and the agreements contained therein exist across a distributed, decentralized **Blockchain** network."_
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 | **Learn Solidity programming language in which Smart Contracts are mostly written for EVM compatible chains.** you can also learn blockchain for non-EVM compatible chains and for that u can use Solana and other **blockchains**. moreover if you wish to write Smart Contracts in other language then u can use Vyper as an alternative for **Solidity**, but solidity is more versatile and widely used.
83 |
84 |
85 |
86 | ### 5. Learn Web framework to make DApps
87 | You can become a blockchain by only following the above written steps but if you wish to also run your app on the blockchain then you must learn **Web Development**. you should learn some basics for web development like **HTML, CSS, JavaScript** I would highly suggest you to everyone reading this blog to learn JavaScript, because doing so will really help you to get more exposure in the field.
88 |
89 |
90 |
91 |
92 |
93 | Learn some framework based on JavaScript You can learn: React.js, Angular.js, learn some databases like MongoDB and for backend learn Node.js.
94 | After following all the above steps, you're good to go!!
95 |
96 | **Now the last but the most important step is:**
97 |
98 | ### 6. Make projects and Learn along with it.
99 | Now as you've done with basic knowledge of blockchain, keep this in mind to follow project bases learning and make projects along with your learning journey to showcase yourself and your skills in the Tech Industry!
100 |
101 |
102 |
103 |
104 | Join developer communities and being active in those will be really helpful!!
105 |
106 |
107 | ## WEB3 Developer Guide🔥🔥
108 | [click here](https://github.com/kartikver15gr8/WEB3-For-All#readme)
109 |
--------------------------------------------------------------------------------