Skip to content

This repository contains what you need to learn to be able to become a member of Futurespace, the learning paths will be regularly updated to keep up with new and better technologies.

License

Notifications You must be signed in to change notification settings

FutureSpace-Kenya/Tech-stack-and-learning-paths

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

FutureSpace Learning Path

Introduction

As one of the FutureSpace founders, I believe in empowering our developers with the right knowledge and skills to build and ship cutting-edge software products. Our tech stack is carefully curated to leverage the power of modern web development technologies, and I am committed to providing a comprehensive learning path for our team.

1. User Interface Development

Tailwind CSS

Tailwind CSS is a utility-first CSS framework that allows for rapid UI development. By leveraging pre-defined utility classes, developers can quickly build responsive and visually appealing user interfaces without the need for extensive custom CSS.

Why Tailwind CSS?

  • Rapid prototyping: Tailwind CSS enables developers to quickly style components and build UIs without writing CSS from scratch.
  • Consistent design system: By utilizing the utility classes, Tailwind CSS promotes a consistent design system across the entire application.
  • Responsive design: Tailwind CSS provides built-in responsive utilities, making it easier to create responsive layouts and interfaces.
  • Customization: While leveraging utility classes, Tailwind CSS also offers flexibility for customization and extension when needed.

Learning Resources

2. Front-end Development

Next.js and React

Next.js is a React framework that enables server-side rendering, static site generation, and API routes. By combining Next.js with React, developers can build high-performance, SEO-friendly, and user-friendly web applications.

Why Next.js and React?

  • Server-side rendering (SSR): Next.js supports server-side rendering, which improves initial load times and enhances SEO capabilities.
  • Static site generation (SSG): With Next.js, developers can pre-render pages at build time, resulting in faster load times and improved performance.
  • API routes: Next.js provides a built-in solution for creating API routes, simplifying the process of building and consuming APIs within the same application.
  • React ecosystem: Next.js leverages the powerful React ecosystem, allowing developers to take advantage of the vast collection of React libraries and tools.

Learning Resources

3. Back-end Development

Node.js

Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine, enabling developers to use JavaScript for server-side scripting and building scalable network applications.

Why Node.js?

  • Event-driven, non-blocking I/O model: Node.js follows an event-driven, non-blocking I/O model, making it efficient and suitable for building highly scalable network applications.
  • JavaScript everywhere: By using JavaScript for both client-side and server-side development, developers can leverage their existing JavaScript knowledge and share code between the front-end and back-end.
  • Rich ecosystem: Node.js has a vast ecosystem of packages and libraries, offering solutions for various tasks and requirements.

Learning Resources

Express.js

Express.js is a minimal and flexible Node.js web application framework that provides a robust set of features for building web applications and APIs.

Why Express.js?

  • Simplicity: Express.js provides a minimalistic and straightforward approach to building web applications and APIs.
  • Middleware support: Express.js supports a robust middleware system, allowing developers to add functionality and handle various aspects of the request-response cycle.
  • Routing: Express.js offers a powerful routing system for handling HTTP requests and defining routes for different parts of the application.
  • Ecosystem: Express.js has a large and active ecosystem, with numerous middleware and plugins available for various use cases.

Learning Resources

4. Databases

At FutureSpace, we primarily work with two database technologies: PostgreSQL and MongoDB.

PostgreSQL

PostgreSQL is a powerful open-source relational database management system (RDBMS) that supports advanced features like transactions, concurrency control, and SQL compliance.

Why PostgreSQL?

  • Reliability and data integrity: PostgreSQL is known for its robust ACID (Atomicity, Consistency, Isolation, Durability) compliance, ensuring data integrity and reliability.
  • Advanced features: PostgreSQL offers advanced features like table inheritance, Views, foreign data wrappers, and more.
  • SQL compliance: PostgreSQL is SQL-compliant, making it easy for developers with SQL experience to work with the database.
  • Open-source and community support: PostgreSQL is an open-source project with a large and active community, ensuring ongoing development and support.

MongoDB

MongoDB is a popular NoSQL document-oriented database that stores data in flexible, JSON-like documents, providing high performance, scalability, and flexibility.

Why MongoDB?

  • Scalability and flexibility: MongoDB's document-oriented data model allows for easy data representation and flexibility in handling varying data structures.
  • High performance: MongoDB's architecture and indexing capabilities provide high performance for read and write operations, making it suitable for high-throughput applications.
  • Horizontal scaling: MongoDB supports horizontal scaling through sharding, allowing for seamless distribution of data across multiple servers.
  • Rich query language: MongoDB's query language supports powerful querying capabilities, including ad-hoc queries, indexing, and aggregation.

Learning Resources

PostgreSQL

MongoDB

5. Linux and Bash Automation

In addition to our core tech stack, our developers need to have a solid understanding of Linux and Bash scripting for automation purposes. This knowledge is crucial for streamlining development workflows, deploying applications, and managing server environments.

Linux Fundamentals

  • Understanding the Linux file system, permissions, and basic commands
  • Managing users, groups, and file ownership
  • Working with directories and file manipulation
  • Monitoring system resources and processes

Bash Scripting

  • Writing scripts to automate repetitive tasks and system administration
  • Utilizing control structures, variables, and functions
  • Implementing conditional statements and loops

System Administration

  • Managing packages and software installations
  • Configuring and managing services (e.g., Apache, Nginx, PostgreSQL)
  • Automating system backups and maintenance tasks
  • Monitoring system logs and troubleshooting issues

Learning Resources

Authors

This documentation was created by

  • Steve Tom

About

This repository contains what you need to learn to be able to become a member of Futurespace, the learning paths will be regularly updated to keep up with new and better technologies.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published