Tuesday, May 2, 2023

Back-end Development Overview

 

Keywords: Software development, Back-end development, software developer, Backend Developer, Server-side Languages, Programming language, Server, Database, API, Logic, Compilers, Workspace, Software development Models, Software Architectures, Software Design methodologies, Client-Side Technologies, Web Server, Web Security, Web development, Skills, Responsibilities, Tools

·        Back-end development

o   refers to the server-side of Software development focusing on everything that happens behind the scenes of Software or System or Application or website.

o   responsible for handling these major components: Server, Database, API and Logic.

o   involves handling user authentication, authorization, and processing user requests.

·        A Backend Developer

o   Backend developer is a software developer who specializes in the design, implementation, and maintenance of the server-side logic that powers applications.

o   ensure the software or website performs correctly, focusing on databases, back-end logic, application programming interface (APIs), architecture, and servers.

o   focuses on creating and maintaining the server-side components of web applications.

o   Primarily tasked with developing server-side APIs, handling database operations, and ensuring that the backend can manage high traffic volumes efficiently

o   On a team, back-end developers collaborate with front-end developers to build the structure of software or system or mobile app.

o   While Backend Developers get started, first they pick a Server-side Programming language and its Ecosystem, choose Workspace such as Code editors or IDE’s and configure version control and Repo Hosting

o   A Backend Developer Should have knowledge of Software development Model, Software Architectures, Client-Side Technologies, Software Design methodologies, Web Server and Web Security.

·        Knowledge of Software development Models including Sequential models (e.g. waterfall and V-model), and Iterative and incremental models (e.g. spiral model and Unified Process), Also have knowledge of Agile Software Development Methodologies and DevOps practices.

·        Knowledge of Software Architectures such as: Domain Driven Design, Event Driven Architecture, SOA Design Concepts with N Layered Architecture, Aspect Oriented Architecture, Model-View-Controller (MVC), Model-View-View Model (MVVM), Cloud Application Architecture, Monolithic and Microservices Architecture. And so on. 

·        Knowledge of Software Design methodologies such as: Object Oriented Design and SOLID Design Principles. And so on.

·        Knowledge of Client-Side Technologies including Web Technologies such as HTML, CSS and JavaScript.

·        Knowledge of Web Server

o   Web servers run websites, stores, processes, and deliver (response) web pages to the user’s request.

o   When the user makes a request by the web server, it is accepted by an HTTP server which finds and sends back the content to the browser through HTTP.

o   Some examples of web servers are IIS, Apache and NGINX

·        Knowledge of Web Security

o   Various threats can attack a website which could result in its poor performance.

o   Web security refers to the protective measures and protocols developers should follow to build an optimized and effective website.

o   It includes scanning a website for vulnerabilities to defend against thefts or loss that occurs due to digital hackers.

o   Types of Risks developers face could be malware, backlisting, buffer overflow, and sensitive data exposure.

o   Various techniques can be followed to avoid such issues: Using HTTPS, implementing secure backup and recovery and various other methods include XSS Attacks, Software updates, and SQL Injection.

o   HTTPS is a secured HTTP. When data is sent using HTTPS, it is protected via the Transport Layer Security protocol, which has three layers of protection: Encryption, Data Integrity and Authentication

·        Back-end Development Skills include:

o   Proficiency in Server-side Languages

o   Proficiency in Backend Frameworks

o   API Design and Development

o   Database Management

o   Unit Testing

o   Version Control

o   Containerization

o   Continuous Integration and Deployment (CI/CD).

o   Cloud development

o   Security Awareness

·        Key Responsibilities of Backend Developer include:

o   Writing clean and maintainable code for server-side application logic.

o   Designing and implementing scalable and performant databases.

o   Integrating user-facing elements developed by front-end developers with server-side logic.

o   Creating and maintaining APIs to allow the front-end system to communicate with the backend services.

o   Ensuring system consistency and availability with robust architecture and efficient code.

o   Managing hosting environments, including database administration and scaling applications to handle load changes.

o   Implementing security and data protection measures to safeguard the application.

o   Developing data storage solutions and managing data access and retrieval.

o   Optimizing the application for maximum speed and scalability.

o   Keeping abreast of emerging technologies and applying them to operations and activities.

·        Backend Developer Tools can be categorized as:

o   Code Editors

o   Server-side Languages Compilers

o   Integrated Development Environments (IDEs)

o   Shell Scripting and package manager's tools

o   Backend Frameworks

o   API tools

o   Database Management Systems (DBMS)

o   Unit test frameworks

o   Version control systems

o   Containers

o   CI/CD tools

o   Cloud platforms.

·        Backend development popular tools:

o   Server-side Languages: C#, Java, Python and so on.

o   IDE's tools: Visual Studio, Visual Studio Code, IntelliJ IDEA and so on.

o   Shell Scripting and package manager's tools: PowerShell, Bash, npm, yarn

o   Backend Frameworks: .NET Frameworks, ASP.NET, Express.js, Django and so on.

o   API may include: Web services or Web APIs

o   DBMS: SQL Server, MySQL, Oracle, PostgreSQL and so on.

o   Unit Test frameworks: NUnit, TestNG, Chai/Mocha and so on.

o   Version Control systems and Hosting services: Git, GitHub, Bitbucket and so on.

o   Containers: Docker, Kubernetes and so on.

o   CI/CD tools: Azure DevOps, Jenkins, GitHub Actions and so on.

o   Cloud platforms: MS Azure, AWS, Google Cloud and so on.

·        Web development terminology:

Sunday, April 30, 2023

Computer Science: Algorithms Topics

- Mathematical Background

*Summations

*Sets,Relations and Functions

*Graphs and Trees

*Counting and Probability

*Matrices

- The Role of Algorithms in Computing

*Algorithms as a technology

*Analyzing algorithms

*Designing algorithms

- Recurrences

- Probabilistic Analysis and Randomized Algorithms

- Sorting

*Insertion Sort

*Merge Sort

*Heap Sort

*Quick Sort

- Data Structures Algorithms

*Searching

*Hashing

- Dynamic Programming

- Greedy Algorithms

        - Graph Algorithms

- Matrix Operations

- Linear Programming

- Number-Theoretic Algorithms

- String Matching Algorithms

- Computational Geometry

- Approximation Algorithms

Friday, April 28, 2023

قائمة تخصصات البرمجيات والادوات المستخدمة للمبتدئين










Software developer

تطوير برمجيات

General

  • Azure DevOps

  • JIRA Tracking

  • Microsoft Teams

  • Git Source control

  • OOP Object Oriented Programming

  • Agile methodologies

  • Microsoft Office

  • Visual Studio

Programming languages


  • C#.NET - .NET Core Framework

  • Java Programming language.

  • Python Programming language.

Front-end

  • JavaScript

  • Angular web framework

  • React.js 

  • Ionic Framework

  • Vue.js

API

  • Web API -RESTful API

  • JSON

  • Entity Framework

Databases

  • SQL Server

  • MySQL

  • PostgreSQL

  • NoSQL-MongoDB









Software tester

اختبار برمجيات

General

  • Azure DevOps

  • JIRA Tracking

  • Microsoft Teams

  • Git Source control

  • OOP Object Oriented Programming

  • Agile methodologies

  • Microsoft Office

Testing Process

  • Software Testing Life Cycle

  • ISTQB Testing Foundation

  • ISTQB Agile Testing

Programming Languages

  • C#.NET Programming 

  • Java Programming language

  • Python Programming language

Performance Testing

  • JMeter

  • LoadRunner

API Testing

  • Postman

  • SoapUI

Test Automation

  • Selenium

  • Robot Framework











System/Business Analyst

تحليل النظم

General

  • Azure DevOps

  • JIRA Tracking

  • Microsoft Teams

  • Git Source control

  • OOP Object Oriented Programming

  • Agile methodologies

  • Microsoft Office

Programming languages


  • C#.NET Programming.

  • Java Programming language

  • Python Programming language

Analysis

  • Create BRD / SRS 

  • Create User stories/ Use Cases

  • Service-oriented architectures

  • Perform requirements analysis.

  • Microsoft Visio

  • Design Data mapping, diagrams, and flowcharts.









Mobile Application Developer

تطوير تطبيقات موبيل

General

  • Azure DevOps

  • JIRA Tracking

  • Microsoft Teams

  • Git Source control

  • OOP Object Oriented Programming 

  • Agile methodologies

  • Visual Studio Code

Mobile Toolkit

  • Flutter cross-platform

  • React cross-platform

  • JavaScript

  • CSS Cascading Style Sheets

  • Angular 

  • Android SDK's

  • iOS SDK

  • RESTful APIs

  • C++ Programming language











Game Developer

تطوير العاب

General

  • Azure DevOps

  • JIRA Tracking

  • Microsoft Teams

  • Git Source control

  • OOP Object Oriented Programming

  • Agile methodologies

  • Microsoft Office

Programming languages


  • C Programming language

  • C++ Programming language

  • C#.NET Programming

Frameworks

  • Unity, physics, and animation 

  • VR technologies









UI/UX Designer

تصميم واجهات المستخدم

General

  • Azure DevOps

  • JIRA Tracking

  • Microsoft Teams

  • Git Source control

  • OOP Object Oriented Programming 

  • Agile methodologies

  • Visual Studio Code

UI/UX Toolkit

  • Design graphic user interface elements.

  • HTML

  • CSS Cascading Style Sheets

  • Adobe Illustrator 

  • Adobe Photoshop

Prototypes/Wireframe

  • Figma

  • Adobe XD

  • Sketch

Tuesday, April 11, 2023

Computer Science: Data Science Topics

Introduction to Data Science

*Data and Data science

*Data and datasets

*Collecting and preparing 

Analyzing data using Statistics

*Discriptive statistics

*Statistical measurment

*Probability distributions

*Inferential statistics

*Regression Analysis 

Predicting and Modeling using Data

*Time series and Forecasting

*Decision-Making using Machine Learning

*Deep learning and AI

Maintaining professional and ethical Data Science practice

*Ethics throughout data science cycle

*Visualizing data

*Reporting results

Using Technology for Data Science

*Spreadsheets for Data Science

*Python programming for Data science

*R programming for Data Science