<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: viola kinya kithinji</title>
    <description>The latest articles on DEV Community by viola kinya kithinji (@violakithinji).</description>
    <link>https://dev.to/violakithinji</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F815041%2F9ef4ce71-a6e2-422a-b46a-de8d91cb1382.jpeg</url>
      <title>DEV Community: viola kinya kithinji</title>
      <link>https://dev.to/violakithinji</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/violakithinji"/>
    <language>en</language>
    <item>
      <title>INTERMEDIATE DATA ENGINEERING CONCEPTS.</title>
      <dc:creator>viola kinya kithinji</dc:creator>
      <pubDate>Thu, 15 Sep 2022 13:15:29 +0000</pubDate>
      <link>https://dev.to/violakithinji/intermediate-data-engineering-concepts-3i6k</link>
      <guid>https://dev.to/violakithinji/intermediate-data-engineering-concepts-3i6k</guid>
      <description>&lt;p&gt;In this article am going to discuss a number of key data engineering concepts that will help understand data engineering career path.&lt;br&gt;
&lt;strong&gt;Big data&lt;/strong&gt; is a term used to describe large, complex datasets that are difficult to process using traditional computing techniques. Big data often includes data sets.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fel124xpl41iwr17eati5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fel124xpl41iwr17eati5.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Business intelligence (BI)&lt;/strong&gt; is defined as the collection of processes and strategies for analyzing data to generate insights used to make business decisions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwvrsz8z9yt4h61qlm5nh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwvrsz8z9yt4h61qlm5nh.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data architecture&lt;/strong&gt; involves the process of designing, constructing, and maintaining data systems. Data architecture includes the design of data models, database management systems, and data warehouses. Data engineers often work with data architects to design and implement data systems, but they can also work independently.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhlgvaxqt8zhmc05pol0u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhlgvaxqt8zhmc05pol0u.png" alt="Image description"&gt;&lt;/a&gt; Data lakes in data architecture.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fas0uprjaky2852nlue58.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fas0uprjaky2852nlue58.png" alt="Image description"&gt;&lt;/a&gt; Data architecture in data marts and Olap cubes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Containerization&lt;/strong&gt; is the process of packaging an application so that it can run in isolated environments known as containers. Containerization allows for better resource utilization and portability of applications. A containerized application encapsulates all of its dependencies, libraries, binaries, and configuration files into containers. This allows an application to run in the cloud or on a virtual machine without needing to be refactored.&lt;br&gt;
&lt;strong&gt;Docker&lt;/strong&gt; has become synonymous with containers and is a suite of tools that can be used to create, run, and share containerized applications.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F63lf3s1c0cwtbxrsdxdw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F63lf3s1c0cwtbxrsdxdw.png" alt="Image description"&gt;&lt;/a&gt; Docker for data engineering courtesy  of google pics&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kubernetes, or k8s,&lt;/strong&gt; is a portable, open-source platform for managing containerized applications.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5w1k1r24amxd7v61q3ve.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5w1k1r24amxd7v61q3ve.png" alt="Image description"&gt;&lt;/a&gt; Kubernetes for data engineering. courtesy of google pictures.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cloud computing&lt;/strong&gt; is a model for delivering IT services over the internet. Data engineers often use cloud-based services, like Amazon S3 and Google Cloud Storage, to store and process data.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6k7n7u9kj0gpsg56fpbi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6k7n7u9kj0gpsg56fpbi.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Databases&lt;/strong&gt; are collections of data that can be queried. Relational databases, such as MySQL, Oracle, and Microsoft SQL Server, store data in tables and have existed for over four decades. Now, there are many different types of databases including:&lt;br&gt;
&lt;strong&gt;Wide-column stores&lt;/strong&gt;* such as Cassandra and HBase&lt;br&gt;
&lt;strong&gt;Key-value stores&lt;/strong&gt; such as DynamoDB and memcachedb&lt;br&gt;
&lt;strong&gt;Document databases&lt;/strong&gt; such as MongoDB and Couchbase&lt;br&gt;
&lt;strong&gt;Graph databases&lt;/strong&gt; such as Neo4j&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data accessibility&lt;/strong&gt; is the ability of users to access data stored in a system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data compliance and privacy&lt;/strong&gt; is the act of following laws and regulations related to data. Data privacy is the act of protecting data from unauthorized access.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data governance&lt;/strong&gt; is the process of managing and governing data within an organization. Data governance includes policies and procedures for managing data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data marts&lt;/strong&gt; are subsets of data warehouses that contain only the data needed by a specific group or department.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo9plqvwvsmzbuwknhqp1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo9plqvwvsmzbuwknhqp1.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6ricdldek0hbovmiqlrq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6ricdldek0hbovmiqlrq.png" alt="Image description"&gt;&lt;/a&gt; images courtesy of google pictures.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data integration platforms&lt;/strong&gt; are tools that help organizations combine data from multiple sources. These typically include features for data cleaning and transformation.eg iPaaS- is a set of automated tools that integrate software applications that are deployed in different environments. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data infrastructure components&lt;/strong&gt; can include virtual machines, cloud services, networking, storage, and software. These components are necessary for data systems to function.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data pipelines&lt;/strong&gt; encompass the process of extracting data from one or more sources, transforming the data into a format that can be used by applications further down the line, and loading the data into a target system. Data pipelines essentially automate the process of moving data from one system to another.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu8tb8a58sqtgstzlxtr3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu8tb8a58sqtgstzlxtr3.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data repositories&lt;/strong&gt; or data stores are systems that are used to store data, as discussed earlier. Examples include relational databases, NoSQL databases, and traditional file systems.&lt;br&gt;
Data sources are the systems or devices from which data is extracted. Examples of data sources include Global mental health data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data warehouses&lt;/strong&gt; are centralized systems that store all the data organizations collect. Data warehousing involves extracting data from multiple sources, transforming the data into a format that can be used for analysis, and loading the data into the warehouse.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data lakes&lt;/strong&gt; are repositories that store all the data organizations collect, in their rawest form. Data lakes are often used for storing data that has not been transformed or processed in any way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ETL and ELT processes&lt;/strong&gt;  are used for moving data from one system to another.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ETL (extract, transform, load)&lt;/strong&gt; processes involve extracting data from one or more sources, transforming the data into a format that can be used by the target system, and loading the data into the target system.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ELT (extract, load, transform)&lt;/strong&gt;  processes involve extracting data from one or more sources, loading the data into the target system, and then transforming the data into the desired format.
ETL processes are useful for data that needs cleaning in order to be used by the target system. On the other hand, ELT processes are useful when the target system can handle the data in its raw form, so ELT processes tend to be faster than ETL processes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Data formats&lt;/strong&gt; for storage include text files, CSV files, JSON files, and XML files. Data can also be stored in binary formats, such as Parquet and Avro.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data visualization&lt;/strong&gt;  is the process of creating visual representations of data. These can be used to examine data, find patterns, and make decisions. They are most often used to communicate data to non-technical audiences.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data engineering dashboards&lt;/strong&gt; are web-based applications that allow data engineers to monitor the status of their data pipelines. These typically display the status of data pipelines, the number of errors in a pipeline, and the time it took to run a pipeline.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SQL and NoSQL databases&lt;/strong&gt; : are two types of databases that are used to store data.&lt;/p&gt;

&lt;p&gt;-&lt;strong&gt;SQL (structured query language)&lt;/strong&gt; databases are relational databases, which means that data is stored in tables and can be queried using SQL.&lt;/p&gt;

&lt;p&gt;-&lt;strong&gt;NoSQL (not only SQL)&lt;/strong&gt; databases are non-relational databases, which means that data is stored in a format other than tables and can be queried using a variety of methods.&lt;/p&gt;

&lt;p&gt;You would use SQL databases for structured data, such as data from a financial system, while NoSQL databases are best suited for unstructured data, such as data from social media. For semi-structured data, such as data from a weblog, you could use either SQL or NoSQL databases.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>python</category>
      <category>programming</category>
      <category>database</category>
    </item>
    <item>
      <title>Introduction to python for data engineering.</title>
      <dc:creator>viola kinya kithinji</dc:creator>
      <pubDate>Sun, 04 Sep 2022 17:08:32 +0000</pubDate>
      <link>https://dev.to/violakithinji/introduction-to-python-for-data-engineering-1jfg</link>
      <guid>https://dev.to/violakithinji/introduction-to-python-for-data-engineering-1jfg</guid>
      <description>&lt;p&gt;What is python programming? Python is an interpreted, object-oriented, high-level programming language with dynamic semantics.&lt;/p&gt;

&lt;p&gt;Python becoming a popular programming language globally. We commonly knew that python was common for data science, machine learning/deep learning. Surprisingly it is also used for data engineering because it easy and smooth. Using Python Pandas data frames allows data engineers to process data effectively. Additionally, using python programming for data engineering is an excellent approach to understanding the requirements of data scientists better. Python also helps data engineers to build efficient data pipelines as many data engineering tools use Python in the backend. Moreover, various tools in the market are compatible with Python and allow data engineers to integrate them into their everyday tasks by simply learning Python programming language. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advantages of python for data engineering&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;1.The role of a data engineer involves working with different types of data formats. For such cases, Python is best suited. Its standard library supports easy handling of .csv files, one of the most common data file formats.&lt;/p&gt;

&lt;p&gt;2.A data engineer is often required to use APIs to retrieve data from databases. The data in such cases is usually stored in JSON (JavaScript Object Notation) format, and Python has a library named JSON-JSON to handle such type of data.&lt;/p&gt;

&lt;p&gt;3.The responsibility of a data engineer is not only to obtain data from different sources but also to process it. One of the most popular data process engines is Apache Spark which works with Python DataFrames and even offers an API, PySpark, to build scalable big data projects.&lt;/p&gt;

&lt;p&gt;4.Data engineering tools use Directed Acyclic Graphs like Apache Airflow, Apache NiFi, etc. DAGs are nothing but Python codes used for specifying tasks. Thus, learning Python will help data engineers use these tools efficiently.&lt;/p&gt;

&lt;p&gt;5.Luigi! a Python module that is widely considered a fantastic tool for data engineering.&lt;/p&gt;

&lt;p&gt;6.Python is easy to learn and is free to use for the masses. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Python libraries used for data engineering&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;pandas&lt;/strong&gt; Pandas is the Python library popular among data analysts and data scientists. It is equally useful for data engineers, who often use it for reading, writing, querying, and manipulating data. The advantage of using Pandas dataframes is they are extremely compatible with two popular data types .csv and JSON. Additionally, dataframe objects have many easy-to-use functions that data engineers can perform quick exploratory data analysis. They can also use it to fix common data problems, such as replacing null values with neighborhood averages, removing columns, etc. Thus, Pandas allows data engineers to transform it into a readable and organized form.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SciPy&lt;/strong&gt; SciPy, as the name suggests, is a library in Python that offers various functions for quick mathematical computations. A data engineer can use this library to perform scientific calculations on their data for better analysis.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beautifulsoup&lt;/strong&gt; This is a well-known library used for data mining and web scraping. You will find data engineers using this to extract information from websites, dealing with JSON/HTML data formats, all for preparing their data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Petl&lt;/strong&gt; Petl is a Python package for extracting, modifying, and loading tabular data. Data engineers use this library for building ETL (Extract, Transform, and Load) pipelines. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Great Expectation&lt;/strong&gt; While Pandas is an essential library for analyzing data; there is even a better method to draw relevant conclusions from your data. And that method is to use the Great expectations library. It makes it easy for data engineers to clean data equally and allows them to specify their expectations simply. The library takes care of the backend logic, and it does not matter whether your data belongs to a database or is stored in a dataframe. Additionally, it makes it convenient for data engineers to add production-grade validation to a given data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So how do you learn python for data engineering&lt;/strong&gt;&lt;br&gt;
Inorder to grasp the concept well and understand you have to work on real world python projects for data engineers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data ingestion&lt;/strong&gt; - refers to collecting data from the database for immediate use. A data engineer needs to learn various tools like SQL, Python, etc., to know how to connect to a database and retrieve data. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Manipulation&lt;/strong&gt; - A data engineer deals with data of both types, structured and unstructured. Once they have sourced data from the warehouse, the next step is to implement mathematical operations on it for cleaning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data surfacing&lt;/strong&gt; -Data Surfacing involves building insightful dashboards to help businesses make better and quicker decisions. As a data engineer is the one who prepares the input data for such dashboards, it will be beneficial for them if they know how such dashboards are built.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data acquisition&lt;/strong&gt; - Not always a business is aware of how to identify sources of data. This is where a data engineer comes into the picture, as he is expected to identify the sources, for example, obtaining a website's log data using APIs.&lt;/p&gt;

&lt;p&gt;** Data pipeline** - All the steps that a data engineer performs are eventually automated with the help of data pipelines. Depending on the organization's requirements, these pipelines can be of the type ETL/ELT, depending on the organization needs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Benefits of python&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;1.Reduces development time.&lt;br&gt;
2.Object oriented language.&lt;br&gt;
3.No compiling.&lt;br&gt;
4.Supports dynamic data type.&lt;br&gt;
5.Reduce code length.&lt;br&gt;
6.Easy to use learn and use as developers.&lt;br&gt;
7.Easy to understand codes.&lt;br&gt;
8.Easy to do team projects.&lt;br&gt;
9.Easy to extend to other languages.&lt;br&gt;
10.It's free(open source).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is most necessary with Python to become a data engineer?&lt;/strong&gt;&lt;br&gt;
To become a data engineer with Python, the most necessary part is to explore as many Big Data projects and tools as possible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conculsion&lt;/strong&gt;&lt;br&gt;
Currently data engineering is in demand and not flooded another advantage is that being a data engineer allows you to interact with Big data projects and tools more than data scientists and analysts do. Consistency is key... And you can be anyone you want to be as long as you have a growth mindset.&lt;/p&gt;

</description>
      <category>python</category>
      <category>programming</category>
      <category>beginners</category>
      <category>aws</category>
    </item>
    <item>
      <title>DATA ENGINEERING 101:INTRODUCTION TO DATA ENGINNERING.</title>
      <dc:creator>viola kinya kithinji</dc:creator>
      <pubDate>Wed, 24 Aug 2022 14:50:00 +0000</pubDate>
      <link>https://dev.to/violakithinji/data-engineering-101introduction-to-data-enginnering-3c2e</link>
      <guid>https://dev.to/violakithinji/data-engineering-101introduction-to-data-enginnering-3c2e</guid>
      <description>&lt;p&gt;When you hear about data engineering what comes in your mind? According to me its basically the act of coming up with systems to facilitate the gathering and making use data. The data collected is used to enable subsequent analysis and data science which mostly work hand in hand with machine learning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;what do data engineers do&lt;/strong&gt; They develop and maintain the architecture used in various data science projects. They are responsible for ensuring that the flow of data between servers and applications is uninterrupted.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This question comes up, now that i know what data engineering is what do i need to become one?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt;  &lt;strong&gt;coding&lt;/strong&gt;- In data engineering coding is like food lol! you cannot do without it. It's an highly valued skill for data engineers. Examples of programming language are: python, Ruby, mat lab and Golang&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; &lt;strong&gt;Data warehousing&lt;/strong&gt; - we now know that data engineers are responsible for storing and analyzing a huge amount of data. So they need to be familiar with data warehousing solutions like panopy/Redshift, which are crucial in data engineering role.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; &lt;strong&gt;Knowledge of operating systems&lt;/strong&gt; - Being an engineer you need to have a better understanding of operating systems like Linux, Windows, macOS and UNIX&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4.&lt;/strong&gt; &lt;strong&gt;Database systems&lt;/strong&gt; - As an engineer  you need to have a deep understanding of database management. Since &lt;strong&gt;Structures Query language (SQL)&lt;/strong&gt; is the most widely used solution, Having a deep understanding of it is crucial.&lt;br&gt;
&lt;strong&gt;5.&lt;/strong&gt; &lt;strong&gt;Data analysis&lt;/strong&gt; - Most employers expect you  to have a strong understanding of analytics software's to be precise Apache Hadoop-based solutions like MapReduce, Hive and HBase.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6.&lt;/strong&gt;  &lt;strong&gt;Critical thinking skills&lt;/strong&gt; - Are you a critical thinker? You need to evaluate issues and develop solutions that are both creative and effective. Why? Most of the time you will be required develop a solution that doesn't exist. Critical thinking is key.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7.&lt;/strong&gt; &lt;strong&gt;Basic understanding of machine learning&lt;/strong&gt; - ML is mostly used by data scientists, Basic understanding of ML  will help you in building your knowledge of data modelling and statistical analysis to create solutions that are usable to your peers and by so doing you become outstanding.&lt;br&gt;
&lt;strong&gt;8.&lt;/strong&gt; &lt;strong&gt;Communication skills&lt;/strong&gt; - Let go of the introverted mentality and network, you need to network in order to learn and share ideas and suggestions with people around you.&lt;/p&gt;

&lt;p&gt;Along the way am sure you seen Machine learning, Data scientists and Data analysts and you're wondering who are these people?&lt;br&gt;
well!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data scientists&lt;/strong&gt; Analyses and interprets complex digital data such as the usage of a website, especially in order to assist a business in its decision making.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data analyst&lt;/strong&gt; Gathers and interpret data in order to solve a specific problem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Another question comes up is data scientist better than data engineer?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;unfortunately no, Data scientists can interpret data only after receiving in it's appropriate format while a data engineer gets the data to the data scientists so data scientists need to be equipped with the necessary skills to become data engineers. As of 2022 Data engineers are more in demand than data scientists.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Parting shot&lt;/strong&gt;&lt;br&gt;
You  can be anything you want to be. Don't say there is no time just Begin...Take action!&lt;br&gt;
Happy learning!!&lt;/p&gt;

</description>
      <category>codenewbie</category>
      <category>dataengineering</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>INTRODUCTION TO JAVASCRIPT.</title>
      <dc:creator>viola kinya kithinji</dc:creator>
      <pubDate>Mon, 11 Jul 2022 19:03:08 +0000</pubDate>
      <link>https://dev.to/violakithinji/introduction-to-javascript-kmn</link>
      <guid>https://dev.to/violakithinji/introduction-to-javascript-kmn</guid>
      <description>&lt;p&gt;&lt;strong&gt;What is Javascript&lt;/strong&gt; JavaScript is a cross-platform, object-oriented scripting language used to make webpages interactive (e.g., having complex animations, clickable buttons, popup menus, etc.). There are also more advanced server side versions of JavaScript such as Node.js, which allow you to add more functionality to a website than downloading files (such as real-time collaboration between multiple computers). Inside a host environment (for example, a web browser), JavaScript can be connected to the objects of its environment to provide programmatic control over them. It's standard libraries of objects are :Arrays, Date and math, it also have a core set of language elements such as: operators, control structures and structures. Core JavaScript can be extended for a variety of purposes by supplementing it with additional objects; for example:&lt;/p&gt;

&lt;p&gt;1:Client-side JavaScript- extends the core language by supplying objects to control a browser and its Document Object Model (DOM). For example, client-side extensions allow an application to place elements on an HTML form and respond to user events such as mouse clicks, form input, and page navigation.&lt;br&gt;
2:Server-side JavaScript- extends the core language by supplying objects relevant to running JavaScript on a server. For example, server-side extensions allow an application to communicate with a database, provide continuity of information from one invocation to another of the application, or perform file manipulations on a server.&lt;br&gt;
This means that in the browser, JavaScript can change the way the webpage (DOM) looks. And, likewise, Node.js JavaScript on the server can respond to custom requests from code written in the browser.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Getting started with Javascript&lt;/strong&gt;&lt;br&gt;
Getting started with JavaScript is easy: all you need is a modern Web browser. This guide includes some JavaScript features which are only currently available in the latest versions of Firefox, so using the most recent version of Firefox is recommended.&lt;/p&gt;

&lt;p&gt;The Web Console tool built into Firefox is useful for experimenting with JavaScript; you can use it in two modes: single-line input mode, and multi-line input mode.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Single-line input in the Web Console&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Web Console shows you information about the currently loaded Web page, and also includes a JavaScript interpreter that you can use to execute JavaScript expressions in the current page.&lt;/p&gt;

&lt;p&gt;To open the Web Console (Ctrl+Shift+I on Windows and Linux or Cmd-Option-K on Mac), open the Tools menu in Firefox, and select "Developer ▶ Web Console".&lt;/p&gt;

&lt;p&gt;The Web Console appears at the bottom of the browser window. Along the bottom of the console is an input line that you can use to enter JavaScript, and the output appears in the panel above:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---iZF-iCH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/93cu14pc2cdj710wkysy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---iZF-iCH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/93cu14pc2cdj710wkysy.png" alt="Image description" width="880" height="577"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The console works the exact same way as eval: the last expression entered is returned. For the sake of simplicity, it can be imagined that every time something is entered into the console, it is actually surrounded by console.log around eval, like so:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;console.log(eval('3 + 5'))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Multi-line input in the Web Console&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The single-line input mode of the Web Console is great for quick testing of JavaScript expressions, but although you can execute multiple lines, it's not very convenient for that. For more complex JavaScript, you can use the multi-line input mode.&lt;/p&gt;

&lt;p&gt;Hello world&lt;br&gt;
To get started with writing JavaScript, open the Web Console in multi-line mode, and write your first "Hello world" JavaScript code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;(function(){
  "use strict";
  /* Start of your code */
  function greetMe(yourName) {
    alert('Hello ' + yourName);
  }

  greetMe('World');
  /* End of your code */
})();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Press Cmd+Enter or Ctrl+Enter (or click the Run button) to watch it unfold in your browser!&lt;br&gt;
Remember to always include the (function(){"use strict"; before your code, and add })(); to the end of your code. The strict mode and IIFE articles explain what those do, but for now they can be thought of as doing the following:&lt;/p&gt;

&lt;p&gt;Prevent semantics in JavaScript that trip up beginners.&lt;br&gt;
Prevent code snippets executed in the console from interacting with one-another (e.g., having something created in one console execution being used for a different console execution).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VARIABLES&lt;/strong&gt;&lt;br&gt;
Are containers that store values. You start by declaring a variable with the let keyword, followed by the name you give to the variable:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let myVariable;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A semicolon at the end of line, indicates end of a statement. Its crucial when you want to separate when you want to separate statement on a single-line. There are rules on when you will use and not use semicolons.&lt;br&gt;
You can name your variables anything but there are restrictions. JavaScript is case sensitive you have to be careful when it comes to naming and calling your variables. You can give your variable a value as following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;myVariable ='Nick';
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can do both these operations on a same line as follow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let myVariable = 'Nick';
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You get the value by calling the variable as follows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;myVariable
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;you can change the value of the variable after assigning by:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let myVariable ='Nick'
myVariable = 'Ndolo'

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;&lt;br&gt;
Variables may hold values with different data types: Example&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strings&lt;/strong&gt; -This is a sequence of text known as a string. To signify that the value is a string, enclose it in single quote Eg let myVariable = 'Nick'; &lt;br&gt;
&lt;strong&gt;Numbers&lt;/strong&gt; -This is a number. Numbers don't have quotes around them. Eg let myVariable = 10;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Boolean&lt;/strong&gt; -This is a True/False value. The words true and false are special keywords that don't need quote marks.Eg let myVariable = true;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Arrays&lt;/strong&gt; -This is a structure that allows you to store multiple values in a single reference.Eg let myVariable = [1,'Nick','Ndolo',10];&lt;br&gt;
Refer to each member of the array like this:&lt;br&gt;
myVariable[0], myVariable[1], etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Object&lt;/strong&gt; -This can be anything. Everything in JavaScript is an object and can be stored in a variable. Keep this in mind as you learn.Eg  let myVariable = document.querySelector('h1');&lt;br&gt;
All of the above examples too.   &lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;      **Comments**
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Comments are snippets of text that can be added along with code. The browser ignores text marked as comments. You can write comments in JavaScript just as you can in CSS:&lt;/p&gt;

&lt;p&gt;If your comment contains no line breaks, it's an option to put it behind two slashes like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/*
Everything in between is a comment
*/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If your comment contains no line breaks, it's an option to put it behind two slashes like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;This is a comment
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Operators&lt;/strong&gt;&lt;br&gt;
An operator is a mathematical symbol that produces a result based on two values (or variables). In the following table, you can see some of the simplest operators, along with some examples to try in the JavaScript console.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Addition(+)&lt;/strong&gt;&lt;br&gt;
Add two numbers together or combine two strings.Eg 'hello'+ 'world'&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Subtraction, Multiplication and Division(-, *, /)&lt;/strong&gt;&lt;br&gt;
These do what you'd expect them to do in basic math. Eg  9 - 3;&lt;br&gt;
8 * 2; // multiply in JS is an asterisk&lt;br&gt;
9 / 3;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Assignment(=)&lt;/strong&gt;&lt;br&gt;
As you've seen already: this assigns a value to a variable. Eg&lt;br&gt;
let myVariable = 'Nick';&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strictly Equal(===)&lt;/strong&gt;&lt;br&gt;
This performs a test to see if two values are equal. It returns a true/false (Boolean) result. Eg let myVariable = 3;&lt;br&gt;
myVariable === 4;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Not, Does not-Equal&lt;/strong&gt;&lt;br&gt;
This returns the logically opposite value of what it precedes. It turns a true into a false, etc.. When it is used alongside the Equality operator, the negation operator tests whether two values are not equal. Eg For "Not", the basic expression is true, but the comparison returns false because we negate it:&lt;/p&gt;

&lt;p&gt;let myVariable = 3;&lt;br&gt;
!(myVariable === 3);&lt;/p&gt;

&lt;p&gt;"Does-not-equal" gives basically the same result with different syntax. Here we are testing "is myVariable NOT equal to 3". This returns false because myVariable IS equal to 3:&lt;/p&gt;

&lt;p&gt;let myVariable = 3;&lt;br&gt;
myVariable !== 3;  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;&lt;br&gt;
 Mixing data types can lead to some strange results when performing calculations. Be careful that you are referring to your variables correctly, and getting the results you expect. For example, enter '35' + '25' into your console. Why don't you get the result you expected? Because the quote marks turn the numbers into strings, so you've ended up concatenating strings rather than adding numbers. If you enter 35 + 25 you'll get the total of the two numbers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conditionals&lt;/strong&gt;&lt;br&gt;
Conditionals are code structures used to test if an expression returns true or not. A very common form of conditionals is the if ... else statement. For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let iceCream = 'chocolate';
if(iceCream === 'chocolate') {
  alert('Yay, I love chocolate ice cream!');
} else {
  alert('Awwww, but chocolate is my favorite...');
}


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The expression inside the if( ... ) is the test. This uses the strict equality operator (as described above) to compare the variable iceCream with the string chocolate to see if the two are equal. If this comparison returns true, the first block of code runs. If the comparison is not true, the second block of code—after the else statement—runs instead.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Functions&lt;/strong&gt;&lt;br&gt;
are a way of packaging functionality that you wish to reuse. It's possible to define a body of code as a function that executes when you call the function name in your code. This is a good alternative to repeatedly writing the same code. You have already seen some uses of functions. For example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let myVariable = document.querySelector('h1');

alert('hello!');
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These functions, document.querySelector and alert, are built into the browser.&lt;/p&gt;

&lt;p&gt;If you see something which looks like a variable name, but it's followed by parentheses— () —it is likely a function. Functions often take arguments: bits of data they need to do their job. Arguments go inside the parentheses, separated by commas if there is more than one argument.&lt;/p&gt;

&lt;p&gt;For example, the alert() function makes a pop-up box appear inside the browser window, but we need to give it a string as an argument to tell the function what message to display.&lt;/p&gt;

&lt;p&gt;You can also define your own functions. In the next example, we create a simple function which takes two numbers as arguments and multiplies them:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function multiply(num1,num2) {
  let result = num1 * num2;
  return result;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Try running this in the console; then test with several arguments. For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;multiply(4, 7);
multiply(20, 20);
multiply(0.5,3);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt; The return statement tells the browser to return the result variable out of the function so it is available to use. This is necessary because variables defined inside functions are only available inside those functions. This is called variable scoping. (Read more about variable scoping.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Events&lt;/strong&gt;&lt;br&gt;
Real interactivity on a website requires event handlers. These are code structures that listen for activity in the browser, and run code in response. The most obvious example is handling the click event, which is fired by the browser when you click on something with your mouse. To demonstrate this, enter the following into your console, then click on the current webpage:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;document.querySelector('html').addEventListener('click', function() {
  alert('Ouch! Stop poking me!');
});

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There are many ways to attach an event handler to an element. Here we select the  element. We then call its addEventListener() function, passing in the name of the event to listen to ('click') and a function to run when the event happens.&lt;/p&gt;

&lt;p&gt;Note that&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;document.querySelector('html').addEventListener('click', function() {
  alert('Ouch! Stop poking me!');
});

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Is equivalent to&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let myHTML = document.querySelector('html');
myHTML.addEventListener('click', function() {
  alert('Ouch! Stop poking me!');
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It's just shorter.&lt;/p&gt;

&lt;p&gt;The functions we just passed to addEventListener() here are called anonymous functions, because they don't have a name. There's an alternative way of writing anonymous functions, which we call an arrow function. An arrow function uses () =&amp;gt; instead of function ():&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conculsion&lt;/strong&gt;&lt;br&gt;
In this article i have handled introduction to Javascript and javascript basics...Consistency is key.&lt;/p&gt;

</description>
      <category>codenewbie</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>DATA STRUCTURES AND ALGORITHMS 102:DEEP DIVE INTO DATA STRUCTURES AND ALGORITHMS IN PYTHON.</title>
      <dc:creator>viola kinya kithinji</dc:creator>
      <pubDate>Sun, 26 Jun 2022 19:11:23 +0000</pubDate>
      <link>https://dev.to/violakithinji/data-structures-and-algorithms-102deep-dive-into-data-structures-and-algorithms-4n2f</link>
      <guid>https://dev.to/violakithinji/data-structures-and-algorithms-102deep-dive-into-data-structures-and-algorithms-4n2f</guid>
      <description>&lt;p&gt;In my last article on Introduction to data structures and algorithms I walked you through what algorithms and data structures are, types, classification, properties, characteristics, operations and merits. To get more insights read the articles . &lt;a href="https://dev.to/violakithinji/introduction-to-data-structures-and-algorithms-48hh"&gt;here&lt;/a&gt; and this &lt;a href="https://dev.to/violakithinji/introduction-to-data-structures-and-algorithms-with-python-1i2m"&gt;here&lt;/a&gt;.&lt;br&gt;
 In today's topic we will look at:&lt;br&gt;
1.we will learn data structures, abstract data types and their implementation&lt;br&gt;
2.Implementation of binary tree traversal technique in python,&lt;br&gt;
3.Graph traversals techniques i.e. Depth first search and Breadth-first-search in python&lt;br&gt;
4.Implementation of sorting Algorithms in python.&lt;br&gt;
5.Enhanced analytical skill and efficiently use searching and sorting algorithms in real applications.&lt;br&gt;
6.Implementation of searching algorithms in python.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Implementation of ADT(Abstract data type)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Abstract Data type (ADT) is a type (or class) for objects whose behavior is defined by a set of values and a set of operations. The definition of ADT only mentions what operations are to be performed but not how these operations will be implemented. It does not specify how data will be organized in memory and what algorithms will be used for implementing the operations. It is called “abstract” because it gives an implementation-independent view. The process of providing only the essentials and hiding the details is known as abstraction.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--28g9J9t5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d6yv8trhku15rgqlbbh2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--28g9J9t5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d6yv8trhku15rgqlbbh2.png" alt="Image description" width="880" height="428"&gt;&lt;/a&gt;&lt;br&gt;
 user of data type does not need to know how that data type is implemented, for example, we have been using Primitive values like int, float, char data types only with the knowledge that these data type can operate and be performed on without any idea of how they are implemented. So a user only needs to know what a data type can do, but not how it will be implemented. Think of ADT as a black box which hides the inner structure and design of the data type. Now we’ll define three ADTs namely List ADT, Stack ADT, Queue ADT.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;List ADT&lt;/strong&gt;&lt;br&gt;
The data is generally stored in key sequence in a list which has a head structure consisting of count, pointers and address of compare function needed to compare the data in the list.&lt;br&gt;
The data node contains the pointer to a data structure and a self-referential pointer which points to the next node in the list.&lt;br&gt;
The List ADT Functions is given below:&lt;br&gt;
get() – Return an element from the list at any given position.&lt;br&gt;
insert() – Insert an element at any position of the list.&lt;br&gt;
remove() – Remove the first occurrence of any element from a non-empty list.&lt;br&gt;
removeAt() – Remove the element at a specified location from a non-empty list.&lt;br&gt;
replace() – Replace an element at any position by another element.&lt;br&gt;
size() – Return the number of elements in the list.&lt;br&gt;
isEmpty() – Return true if the list is empty, otherwise return false.&lt;br&gt;
isFull() – Return true if the list is full, otherwise return false.&lt;br&gt;
&lt;strong&gt;Stack ADT&lt;/strong&gt;&lt;br&gt;
In Stack ADT Implementation instead of data being stored in each node, the pointer to data is stored.&lt;br&gt;
The program allocates memory for the data and address is passed to the stack ADT.&lt;br&gt;
The head node and the data nodes are encapsulated in the ADT. The calling function can only see the pointer to the stack.&lt;br&gt;
The stack head structure also contains a pointer to top and count of number of entries currently in stack.&lt;br&gt;
push() – Insert an element at one end of the stack called top.&lt;br&gt;
pop() – Remove and return the element at the top of the stack, if it is not empty.&lt;br&gt;
peek() – Return the element at the top of the stack without removing it, if the stack is not empty.&lt;br&gt;
size() – Return the number of elements in the stack.&lt;br&gt;
isEmpty() – Return true if the stack is empty, otherwise return false.&lt;br&gt;
isFull() – Return true if the stack is full, otherwise return false.&lt;br&gt;
&lt;strong&gt;Queue ADT&lt;/strong&gt;&lt;br&gt;
The queue abstract data type (ADT) follows the basic design of the stack abstract data type.&lt;br&gt;
Each node contains a void pointer to the data and the link pointer to the next element in the queue. The program’s responsibility is to allocate memory for storing the data.&lt;br&gt;
enqueue() – Insert an element at the end of the queue.&lt;br&gt;
dequeue() – Remove and return the first element of the queue, if the queue is not empty.&lt;br&gt;
peek() – Return the element of the queue without removing it, if the queue is not empty.&lt;br&gt;
size() – Return the number of elements in the queue.&lt;br&gt;
isEmpty() – Return true if the queue is empty, otherwise return false.&lt;br&gt;
isFull() – Return true if the queue is full, otherwise return false.&lt;br&gt;
Features of ADT:&lt;/p&gt;

&lt;p&gt;Abstraction: The user does not need to know the implementation of the data structure.&lt;br&gt;
Better Conceptualization: ADT gives us a better conceptualization of the real world.&lt;br&gt;
Robust: The program is robust and has the ability to catch errors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;implementation of searching Algorithms&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Search algorithm&lt;/strong&gt; is the set of procedures used to locate the specific data from the collection of data. The searching algorithm is always considered to be the fundamental procedure of computing. And hence it is always said that the difference between the fast application and slower application is often decided by the searching algorithm used by the application. We have various types of search algorithms like linear, Fibonacci, binary, exponential  etc. But today we are going look at linear search algorithm  and binary search algorithm in depth.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linear search algorithm&lt;/strong&gt;&lt;br&gt;
Linear search is also known as a sequential searching algorithm to find the element within the collection of data. The algorithm begins from the first element of the list, starts checking every element until the expected element is found. If the element is not found in the list, the algorithm traverses the whole list and return “element not found”. Consider the python program below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def LinearSearch(array, n, k):

    for j in range(0, n):

        if (array[j] == k):

            return j

    return -1


array = [1, 3, 5, 7, 9]

k = 7
n = len(array)

result = LinearSearch(array, n, k)

if(result == -1):

    print("Element not found")

else:

    print("Element found at index: ", result)


Output
Element found at index:  3 

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Time Complexity of Linear Search&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The running time complexity of the linear search algorithm is O(n) for N number of elements in the list as the algorithm has to travel through each and every element to find the desired element.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Applications of Linear Search&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Used to find the desired element from the collection of data when the dataset is small&lt;br&gt;
The searching operations is less than 100 items&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Binary search&lt;/strong&gt;&lt;br&gt;
Binary search is used with a similar concept, i.e to find the element from the list of elements. Binary search algorithms are fast and effective in comparison to linear search algorithms. The most important thing to note about binary search is that it works only on sorted lists of elements. If the list is not sorted, then the algorithm first sorts the elements using the sorting algorithm and then runs the binary search function to find the desired output. We have two binary search methods, recursive and iterative method  &lt;/p&gt;

&lt;p&gt;Below is an iterative method using python program&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def binarySearch(arr, k, low, high):

    while low &amp;lt;= high:
        mid = low + (high - low)//2
        if arr[mid] == k:
            return mid
        elif arr[mid] &amp;lt; k:

            low = mid + 1
        else:

            high = mid - 1
    return -1

arr = [1, 3, 5, 7, 9]

k = 5
result = binarySearch(arr, k, 0, len(arr)-1)

if result != -1:

    print("Element is present at index " + str(result))

else:

    print("Not found")


Output
Element is present at index 2 


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Below is recursive method using a python program&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def BinarySearch(arr, k, low, high):

    if high &amp;gt;= low:

        mid = low + (high - low)//2

        if arr[mid] == k:
            return mid

        elif arr[mid] &amp;gt; k:
            return BinarySearch(arr, k, low, mid-1)

        else:
            return BinarySearch(arr, k, mid + 1, high)

    else:
        return -1


arr = [1, 3, 5, 7, 9]
k = 5

result = BinarySearch(arr, k, 0, len(arr)-1)

if result != -1:
    print("Element is present at index " + str(result))
else:
    print("Not found")


Output
Element is present at index 2


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Time complexity of Binary Search&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The running time complexity for binary search is different for each scenario. The best-case time complexity is O(1) which means the element is located at the mid-pointer. The Average and Worst-Case time complexity is O(log n) which means the element to be found is located either on the left side or on the right side of the mid pointer. Here, n indicates the number of elements in the list.&lt;/p&gt;

&lt;p&gt;The space complexity of the binary search algorithm is O(1).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Applications of Binary Search&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The binary search algorithm is used in the libraries of Java, C++, etc.&lt;br&gt;
It is used in another additional program like finding the smallest element or largest element in the array&lt;br&gt;
It is used to implement a dictionary&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Implementation of binary traversal tree in python&lt;/strong&gt;&lt;br&gt;
Binary tree is special type of hierarchal data structures defined using nodes. Basically its extended version of linked list. Its a tree data structure where each node is allowed to have maximum two children node, generally referred as Left Child and Right Child. Hashing, routing data for network traffic, data compression, and binary search trees are some of its application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key terminologies used&lt;/strong&gt;&lt;br&gt;
Root:- The Topmost node&lt;br&gt;
Height:- Total Number of edges from root node to last(deepest) node&lt;br&gt;
Leaf:- Node with no children&lt;br&gt;
Depth of a Tree: The number of edges from the tree’s node to the root is.&lt;br&gt;
Internal Node:- Node having at least one Child.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Type of Binary Tree&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Perfect Binary Tree&lt;/strong&gt;&lt;br&gt;
A Binary Tree with all the interior node (all nodes except leaf node) have two children and all leaf node has same depth&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Balanced Binary Tree&lt;/strong&gt;&lt;br&gt;
Every tree where the maximum difference between right and left subtree height is 1.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Complete Binary Tree&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;All binary tree where every node is completely filled with 2 or 0 node .&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Degenerate Binary Tree&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every binary tree, where every internal node has only single child.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Applications of Binary Tree&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;-Used in 3d Video Games.&lt;br&gt;
-Highly used in router for tabling purpose.&lt;br&gt;
-Scheduling processes in OS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;implementation of binary tree in python&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;implementing the code&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class BinaryTree:

    def __init__(self, value):

        self.left = None
        self.right = None
        self.value = value

    def insert(self, value):

        if self.value:
            if data &amp;lt; self.value:
                if self.left is None:
                    self.left = BinaryTree(value)
                else:
                    self.left.insert(value)
            elif data &amp;gt; self.value:
                if self.right is None:
                    self.right = BinaryTree(value)
                else:
                    self.right.insert(value)
        else:
            self.value = value

    def PrintTree(self):
        if self.left:
            self.left.PrintTree()
        print( self.data),
        if self.right:
            self.right.PrintTree()

root = BinaryTree(100)
root.insert(50)
root.insert(55)
root.insert(60)
root.insert(20)
root.insert(52)


root.PrintTree()

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Traversal operation&lt;/strong&gt;&lt;br&gt;
When, we print the values of every node here we are using preorder traversal where left first left most child is printed, then root, then the right child.&lt;/p&gt;

&lt;p&gt;Traversal:-&lt;/p&gt;

&lt;p&gt;PreOrder Traversal&lt;br&gt;
InOrder Traversal&lt;br&gt;
PostOrder Traversal&lt;br&gt;
PostOrder Traversal:-&lt;/p&gt;

&lt;p&gt;Here the Left child is visited first, then the Right child node and then Root node.&lt;/p&gt;

&lt;p&gt;The minutes changes in the PrintTree() method is following&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    def PrintTree(self):

        if self.left:
            self.left.PrintTree()

        if self.right:
            self.right.PrintTree()
        print(self.value)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;PreOrder Traversal&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here the Root is visited first, then left child node and then right child node.&lt;/p&gt;

&lt;p&gt;The minutes changes in the PrintTree() method is following&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    def PrintTree(self):
        print(self.value)
        if self.left:
            self.left.PrintTree()

        if self.right:
            self.right.PrintTree()


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Search Operation&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Searching in a Binary Tree&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Searching in a binary tree is a very simple step, as we have already discussed traversing a binary tree, so we can use the traversing technique to get all the elements in a tree and and find our required element. Here we are using preorder traversal, you guys can use anyone of them.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   def PrintTree(self,element):

        if self.left:
            self.left.PrintTree()
        if(self.data==element):
            print("Found",self.data)
            return(1)
        else:
            continue
        if self.right:
            self.right.PrintTree()

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Deletion operation&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Deleting a element from the binary tree&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
def delete_Node(root, key):
    if not root: 
        return root
    if root.val &amp;gt; key: 
        root.left = delete_Node(root.left, key)
    elif root.val &amp;lt; key: 
        root.right= delete_Node(root.right, key)
    else: 
        if not root.right:
            return root.left
        if not root.left:
            return root.right
        temp_val = root.right
        mini_val = temp_val.val
        while temp_val.left:
            temp_val = temp_val.left
            mini_val = temp_val.val
        root.right = deleteNode(root.right,root.val)
    return root


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Explanation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The above programs explain the procedure to delete a particular element from the given binary tree. Here root represents the root node and key represents the element that needs to be deleted or has been ordered by the user.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Graph traversals techniques&lt;/strong&gt;&lt;br&gt;
Graphs are very useful data structures in solving many important mathematical challenges.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Depth First Traversal&lt;/strong&gt;&lt;br&gt;
Also called depth first search (DFS),this algorithm traverses a graph in a depth ward motion and uses a stack to remember to get the next vertex to start a search, when a dead end occurs in any iteration. We implement DFS for a graph in python using the set data types as they provide the required functionalities to keep track of visited and unvisited nodes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class graph:
   def __init__(self,gdict=None):
      if gdict is None:
         gdict = {}
      self.gdict = gdict
# Check for the visisted and unvisited nodes
def dfs(graph, start, visited = None):
   if visited is None:
      visited = set()
   visited.add(start)
   print(start)
   for next in graph[start] - visited:
      dfs(graph, next, visited)
   return visited

gdict = { 
   "a" : set(["b","c"]),
   "b" : set(["a", "d"]),
   "c" : set(["a", "d"]),
   "d" : set(["e"]),
   "e" : set(["a"])
}
dfs(gdict, 'a')

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Breadth First Traversal&lt;/strong&gt;&lt;br&gt;
Also called breadth first search (BFS),this algorithm traverses a graph breadth ward motion and uses a queue to remember to get the next vertex to start a search, when a dead end occurs in any iteration. Please visit this link in our website to understand the details of BFS steps for a graph.&lt;/p&gt;

&lt;p&gt;We implement BFS for a graph in python using queue data structure discussed earlier. When we keep visiting the adjacent unvisited nodes and keep adding it to the queue. Then we start dequeue only the node which is left with no unvisited nodes. We stop the program when there is no next adjacent node to be visited.&lt;/p&gt;

&lt;p&gt;Example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import collections
class graph:
   def __init__(self,gdict=None):
      if gdict is None:
         gdict = {}
      self.gdict = gdict
def bfs(graph, startnode):
# Track the visited and unvisited nodes using queue
   seen, queue = set([startnode]), collections.deque([startnode])
   while queue:
      vertex = queue.popleft()
      marked(vertex)
      for node in graph[vertex]:
         if node not in seen:
            seen.add(node)
            queue.append(node)

def marked(n):
   print(n)

# The graph dictionary
gdict = { 
   "a" : set(["b","c"]),
   "b" : set(["a", "d"]),
   "c" : set(["a", "d"]),
   "d" : set(["e"]),
   "e" : set(["a"])
}
bfs(gdict, "a")

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Implementation of sorting Algorithms&lt;/strong&gt; &lt;br&gt;
Sorting is defined as an arrangement of data in a certain order. Sorting techniques are used to arrange data(mostly numerical) in an ascending or descending order.&lt;/p&gt;

&lt;p&gt;Some of the real-life examples of sorting are:&lt;/p&gt;

&lt;p&gt;1.Telephone Directory:  It is a book that contains telephone numbers and addresses of people in alphabetical order.&lt;br&gt;
2.Dictionary: It is a huge collection of words along with their meanings in alphabetical order.&lt;br&gt;
3.Contact List: It is a list of contact numbers of people in alphabetical order on a mobile phone.The different types of order are:&lt;/p&gt;

&lt;p&gt;Increasing Order: A set of values are said to be increasing order when every successive element is greater than its previous element. For example: 1, 2, 3, 4, 5. Here, the given sequence is in increasing order.&lt;br&gt;
Decreasing Order: A set of values are said to be in increasing order when the successive element is always less than the previous one. For Example: 5, 4, 3, 2, 1. Here the given sequence is in decreasing order.&lt;br&gt;
Non-Increasing Order: A set of values are said to be in non-increasing order if every ith element present in the sequence is greater than or equal to its (i-1)th element. This order occurs whenever there are numbers that are being repeated. For Example: 1, 2, 2, 3, 4, 5. Here 2 repeated two times.&lt;br&gt;
Non-Decreasing Order: A set of values are said to be in non-decreasing order if every ith element present in the sequence is less than or equal to its (i-1)th element. This order occurs whenever there are numbers that are being repeated. For Example: 5, 4, 3, 2, 2, 1. Here 2 repeated two times.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sorting Techniques&lt;/strong&gt;&lt;br&gt;
The different implementations of sorting techniques in Python are:&lt;/p&gt;

&lt;p&gt;Bubble Sort&lt;br&gt;
Selection Sort&lt;br&gt;
Insertion Sort&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bubble Sort&lt;/strong&gt;&lt;br&gt;
Bubble Sort is a simple sorting algorithm. This sorting algorithm repeatedly compares two adjacent elements and swaps them if they are in the wrong order. It is also known as the sinking sort. It has a time complexity of O(n2) in the average and worst cases scenarios and O(n) in the best-case scenario. Bubble sort can be visualized as a queue where people arrange themselves by swapping with each other so that they all can stand in ascending order of their heights. Or in other words, we compare two adjacent elements and see if their order is wrong, if the order is wrong we swap them. (i.e arr[i] &amp;gt; arr[j] for 1 &amp;lt;= i &amp;lt; j &amp;lt;= s; where s is the size of the array, if array is to be in ascending order, and vice-versa).&lt;/p&gt;

&lt;p&gt;Example &lt;/p&gt;

&lt;p&gt;Here we sort the following sequence using bubble sort&lt;/p&gt;

&lt;p&gt;Sequence: 2, 23, 10, 1&lt;/p&gt;

&lt;p&gt;First Iteration&lt;/p&gt;

&lt;p&gt;(2, 23, 10, 1) –&amp;gt; (2, 23, 10, 1), Here the first 2 elements are compared and remain the same because they are already in ascending order.&lt;/p&gt;

&lt;p&gt;(2, 23, 10, 1) –&amp;gt; (2, 10, 23, 1), Here 2nd and 3rd elements are compared and swapped(10 is less than 23) according to ascending order.&lt;/p&gt;

&lt;p&gt;(2, 10, 23, 1) –&amp;gt; (2, 10, 1, 23), Here 3rd and 4th elements are compared and swapped(1 is less than 23) according to ascending order&lt;/p&gt;

&lt;p&gt;At the end of the first iteration, the largest element is at the rightmost position which is sorted correctly.&lt;/p&gt;

&lt;p&gt;Second Iteration&lt;/p&gt;

&lt;p&gt;(2, 10, 1, 23) –&amp;gt; (2, 10, 1, 23), Here again, the first 2 elements are compared and remain the same because they are already in ascending order.&lt;/p&gt;

&lt;p&gt;(2, 10, 1, 23) –&amp;gt; (2, 1, 10, 23), Here 2nd and 3rd elements are compared and swapped(1 is less than 10) in ascending order.&lt;/p&gt;

&lt;p&gt;At the end of the second iteration, the second largest element is at the adjacent position to the largest element.&lt;/p&gt;

&lt;p&gt;Third Iteration&lt;/p&gt;

&lt;p&gt;(2, 1, 10, 23) –&amp;gt; (1, 2, 10, 23), Here the first 2 elements are compared and swap according to ascending order.&lt;/p&gt;

&lt;p&gt;The remaining elements are already sorted in the first and second Iterations. After the three iterations, the given array is sorted in ascending order. So the final result is 1, 2, 10, 23.&lt;/p&gt;

&lt;p&gt;** Implementation of bubble sort**&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Python3 program for Bubble Sort Algorithm Implementation
def bubbleSort(arr):

    n = len(arr)

    # For loop to traverse through all
    # element in an array
    for i in range(n):
        for j in range(0, n - i - 1):

            # Range of the array is from 0 to n-i-1
            # Swap the elements if the element found
            #is greater than the adjacent element
            if arr[j] &amp;gt; arr[j + 1]:
                arr[j], arr[j + 1] = arr[j + 1], arr[j]

# Driver code

# Example to test the above code
arr = [ 2, 1, 10, 23 ]

bubbleSort(arr)

print("Sorted array is:")
for i in range(len(arr)):
    print("%d" % arr[i])

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Selection Sort&lt;/strong&gt;&lt;br&gt;
This sorting technique repeatedly finds the minimum element and sort it in order. Bubble Sort does not occupy any extra memory space. During the execution of this algorithm, two subarrays are maintained, the subarray which is already sorted, and the remaining subarray which is unsorted. During the execution of Selection Sort for every iteration, the minimum element of the unsorted subarray is arranged in the sorted subarray. Selection Sort is a more efficient algorithm than bubble sort. Sort has a Time-Complexity of O(n2) in the average, worst, and in the best cases.&lt;/p&gt;

&lt;p&gt;Example &lt;/p&gt;

&lt;p&gt;Here we sort the following sequence using the selection sort&lt;/p&gt;

&lt;p&gt;Sequence: 7, 2, 1, 6&lt;/p&gt;

&lt;p&gt;(7, 2, 1, 6) –&amp;gt; (1, 7, 2, 6), In the first traverse it finds the minimum element(i.e., 1) and it is placed at 1st position.&lt;/p&gt;

&lt;p&gt;(1, 7, 2, 6) –&amp;gt; (1, 2, 7, 6), In the second traverse it finds the 2nd minimum element(i.e., 2) and it is placed at 2nd position.&lt;/p&gt;

&lt;p&gt;(1, 2, 7, 6) –&amp;gt; (1, 2, 6, 7), In the third traverse it finds the next minimum element(i.e., 6) and it is placed at 3rd position.&lt;/p&gt;

&lt;p&gt;After the above iterations, the final array is in sorted order, i.e., 1, 2, 6, 7.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Implementation of Selection Sort&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Selection Sort algorithm in Python
def selectionSort(array, size):

    for s in range(size):
        min_idx = s

        for i in range(s + 1, size):

            # For sorting in descending order
            # for minimum element in each loop
            if array[i] &amp;lt; array[min_idx]:
                min_idx = i

        # Arranging min at the correct position
        (array[s], array[min_idx]) = (array[min_idx], array[s])

# Driver code
data = [ 7, 2, 1, 6 ]
size = len(data)
selectionSort(data, size)

print('Sorted Array in Ascending Order is :')
print(data)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Insertion Sort&lt;/strong&gt;&lt;br&gt;
This sorting algorithm maintains a sub-array that is always sorted. Values from the unsorted part of the array are placed at the correct position in the sorted part. It is more efficient in practice than other algorithms such as selection sort or bubble sort. Insertion Sort has a Time-Complexity of O(n2) in the average and worst case, and O(n) in the best case.&lt;/p&gt;

&lt;p&gt;Example &lt;/p&gt;

&lt;p&gt;Here we sort the following sequence using the insertion sort&lt;/p&gt;

&lt;p&gt;Sequence: 7, 2, 1, 6&lt;/p&gt;

&lt;p&gt;(7, 2, 1, 6) –&amp;gt; (2, 7, 1, 6), In the first iteration, the first 2 elements are compared, here 2 is less than 7 so insert 2 before 7.&lt;/p&gt;

&lt;p&gt;(2, 7, 1, 6) –&amp;gt; (2, 1, 7, 6), In the second iteration the 2nd and 3rd elements are compared, here 1 is less than 7 so insert 1 before 7.&lt;/p&gt;

&lt;p&gt;(2, 1, 7, 6) –&amp;gt; (1, 2, 7, 6), After the second iteration (1, 7) elements are not in ascending order so first these two elements are arranged. So, insert 1 before 2. &lt;/p&gt;

&lt;p&gt;(1, 2, 7, 6) –&amp;gt; (1, 2, 6, 7), During this iteration the last 2 elements are compared and swapped after all the previous elements are swapped. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Implementation of Insertion Sort&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Creating a function for insertion sort algorithm
def insertion_sort(list1): 

        # Outer loop to traverse on len(list1) 
        for i in range(1, len(list1)): 

            a = list1[i] 

            # Move elements of list1[0 to i-1],
            # which are greater to one position
            # ahead of their current position 
            j = i - 1 

            while j &amp;gt;= 0 and a &amp;lt; list1[j]: 
                list1[j + 1] = list1[j] 
                j -= 1 

            list1[j + 1] = a 

        return list1 

# Driver code
list1 = [ 7, 2, 1, 6 ] 
print("The unsorted list is:", list1) 
print("The sorted new list is:", insertion_sort(list1))

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Application of search and sorting in real  applications&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Searching is the process of locating a given object or data within a large set of data. Sorting, on the other hand, is the arrangement of data in a specific required order. The common application of these algorithms is in databases and other computer applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conculsion&lt;/strong&gt;&lt;br&gt;
Have handled data structure and algorithms in depth. Am open to additions, corrections and questions. I believe we learn through each other. Happy coding&lt;/p&gt;

</description>
      <category>datastructures</category>
      <category>algorithms</category>
      <category>python</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Introduction to Data structures and Algorithms.</title>
      <dc:creator>viola kinya kithinji</dc:creator>
      <pubDate>Sun, 19 Jun 2022 19:50:10 +0000</pubDate>
      <link>https://dev.to/violakithinji/introduction-to-data-structures-and-algorithms-48hh</link>
      <guid>https://dev.to/violakithinji/introduction-to-data-structures-and-algorithms-48hh</guid>
      <description>&lt;p&gt;Have heard a lot techies talk about data structures and algorithms, Honestly speaking data structures and algorithms is a challenging topic. It needs consistency ,resilience and a lot of practice to crack it. Let's dive in:&lt;/p&gt;

&lt;p&gt;1: &lt;strong&gt;What is an algorithms&lt;/strong&gt; A finite sequence of steps  for accomplishing some computational task.&lt;br&gt;
2: &lt;strong&gt;what is a data structure&lt;/strong&gt; Is an arrangement of data in memory locations to represent values of the carrier set of an abstract data type.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Properties of an algorithm&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;-The inputs must be specified, that is  algorithm should have some inputs.&lt;br&gt;
-The outputs must be specified, That is atleast one output should be returned by the algorithm after the completion of the specific task based on the given inputs.&lt;br&gt;
-Definiteness- Every statement of the algorithm should be unambiguous.&lt;br&gt;
-Effectiveness- Writing an algorithm is a prior process of actual implementation of the algorithm. So I need to analyze the algorithm in a finite amount of time with a pen and paper to judge the performance for giving the final version of the algorithm.&lt;br&gt;
-finiteness- No infinite loop should be allowed in an algorithm.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5gZvylLy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ii7veg6etgi0ckcgj67l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5gZvylLy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ii7veg6etgi0ckcgj67l.png" alt="Image description" width="748" height="508"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Characteristics of an algorithm&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;-It's a step by step procedure for solving any problem an algorithms recognizes.&lt;br&gt;
-Being finite set of instructions, if followed it accomplishes a particular task.&lt;br&gt;
-Being a sequence of computational steps it transforms inputs to valuable or required output.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Types of an algorithm&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;-recursive algorithm- Its the most interesting because it calls itself repeatedly until the problem is solved.&lt;br&gt;
-Divide and conquer algorithm- Its divides the algorithm into two parts. The first parts divide the problem on hand into smaller subproblems of the same type. The second part the smaller problems are solved the added together to give the final solution.&lt;br&gt;
-Dynamic programming algorithms- Solves complex problems by breaking them into multiple simple sub problems and the its solves each of them once and then stores them for future reference.&lt;br&gt;
-Greedy algorithm- Used for solving optimization problems. Its not guaranteed to be able to find an optimal solution. Its components are:&lt;br&gt;&lt;br&gt;
     1:  The first one is a candidate set from which we try to find a solution.&lt;br&gt;
     2: A selection function that helps choose the best possible candidate.&lt;br&gt;
     3: A feasibility function that helps in deciding if the candidate can be used to find a solution.&lt;br&gt;
     4: Solution function that tells when we have found a solution to the problem.&lt;/p&gt;

&lt;p&gt;-Brute force Algorithms- Its the simplest algorithms in the concept.it blindly iterates all possible solution to search one or more than one solution that may solve a function.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data structures&lt;/strong&gt;&lt;br&gt;
A data structure is not language specific you can use any programming language. its a set of algorithm that we can use to structure the data in the memory. By so doing 'n' number of algorithm are proposed and now all these algorithms are termed as "Abstract data types" ADT gives us the blueprint while data structure provides the implementation part.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BS8jVfZR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zdjalb31oracnepwmjr5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BS8jVfZR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zdjalb31oracnepwmjr5.png" alt="Image description" width="131" height="261"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Types of data structures&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;-Primitive data structures- These are primitive data types. i.e. char, int, float, double and pointer are primitive data structures that can hold a single value.&lt;br&gt;
-Non primitive data structures- Are divided into two types:&lt;br&gt;
        1. Linear data structures- its the arrangement of data in a sequential manner examples are: Arrays, linked lists, Stacks and Queues. A element is connected to only one another element in a linear form.&lt;br&gt;
        2. Non-linear data structures- This one element is connected to the 'n' number of elements. example: Trees and Graphs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data structures can also be classified as:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Static data structure- Here the size is allocated at the compile time, So the maximum size is fixed.&lt;/li&gt;
&lt;li&gt;Dynamic data structure- Here the size is allocated at the run time, so the maximum size is flexible. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Major operations on data structures&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Searching- we can search any element in a data structure.&lt;/li&gt;
&lt;li&gt;Sorting- We can sort the elements of a data structure in an ascending or descending order.&lt;/li&gt;
&lt;li&gt;Insertion- we can insert new elements in a data structure.&lt;/li&gt;
&lt;li&gt;Updation- we can replace the element with another element.&lt;/li&gt;
&lt;li&gt;Deletion- we can delete an element from the data structure.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Merits of a data structure&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Efficiency- when the chosen data structure for implementing a certain ADT is good. Then its efficient in time and space.&lt;/li&gt;
&lt;li&gt;Reusability-Multiple client programs can use the data structure.&lt;/li&gt;
&lt;li&gt;Abstraction- ADT specifies a data structure that provides a level of abstraction, This means a client cannot see the internal working of the data structure, so it doesn't have to stress about the implementation part. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I bet by the end of the article you will have a glimpse of what data structures and algorithms are, implementation, types and how there are used. Cheers am open to comments and additions.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>The Ultimate Guide to Getting Started in Data Science.</title>
      <dc:creator>viola kinya kithinji</dc:creator>
      <pubDate>Sun, 03 Apr 2022 21:13:01 +0000</pubDate>
      <link>https://dev.to/violakithinji/the-ultimate-guide-to-getting-started-in-data-science-3kc6</link>
      <guid>https://dev.to/violakithinji/the-ultimate-guide-to-getting-started-in-data-science-3kc6</guid>
      <description>&lt;p&gt;&lt;strong&gt;Data Science&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Is an interdisciplinary field that uses scientific methods, processes, algorithms and systems to extract knowledge and insights from noisy, structured and unstructured data, and apply knowledge and actionable insights from data across  a broad range of application domains.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I will handle this topic using the following steps:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;-Downloading and installing  python and the text editors&lt;br&gt;
-Learn the data science process.&lt;br&gt;
-Visualization&lt;br&gt;
-Attempt your first data science project.&lt;br&gt;
-Databases.&lt;br&gt;
-Statistical learning&lt;br&gt;
-Data structures and algorithms.&lt;br&gt;
-Machine learning&lt;br&gt;
-Attempt an advanced project.&lt;br&gt;
-Learn more python.&lt;br&gt;
-Deep learning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Downloading and installing python and text editors&lt;/strong&gt;&lt;br&gt;
As a data scientist you will need first to be conversant with excel this is because of data cleaning and sorting. Then go to your browser and download python, run and install. we have different environments to write your python code example pycharm, visual studio and python IDE. We also have online platform like the goggle colab and jupyter notebook.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn the data science process&lt;/strong&gt;&lt;br&gt;
1st revolution - mechanization led by the steam engine&lt;br&gt;
2nd revolution - mass production driven by electricity and oil based power.&lt;br&gt;
3rd revolution - Automated production supported by electronics and information technologies.&lt;br&gt;
4th revolution - information technologies, internet of things, artificial intelligence, Big data, cloud, Cyber physical systems.&lt;/p&gt;

&lt;p&gt;Data scientist - also known as data managers and statisticians. data scientist takes data projects from end to end. They can help store large amount of data, create predictive modelling processes and present the findings.&lt;br&gt;
Data engineers - also known as database engineer and data architect, they use computer science to  process large datasets. They focus on coding, cleaning up datasets and implementing requests that come from data scientists.&lt;br&gt;
Data analysts - they help people from across the company understand specific queries with charts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Visualization&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The graphical representation  of information and data.by using visual elements like charts, graphs and maps, data visualization tools provides an accessible way to see and understand trends, outliers and patterns in data. They use libraries like pandas, seaborn and numpy and matplotlib.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First data project&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;my first project was on data visualization I downloaded a mental health dataset from data world, sorted the data and cleaned. For data analysis and visualization I used jupyter notebook and google colab and python libraries like pandas and matplotlib. You  can look for sample projects in areas that you are well polished and work with them. Or also hacker ranks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Databases&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We have relational and non relational database. Non Relational  databases provide a mechanism for storage and retrieval of data that is modeled in means other than the tabular relation used in  relational database.&lt;br&gt;
relational database - structured to recognize relations between stored items of information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;statistical learning&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In python we have a built in python library for descriptive statistics.it can be used if your data datasets are not too large or if you you cant rely on importing other libraries. Numpy is a third party library for numerical computing, optimized for working with single and multi-dimensional arrays. Here you choose  and get started with python statistics libraries, calculating descriptive statistics, working with 2D data, visualizing Data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data structures and Algorithms&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Data structures - are containers that organize and group data according to type, They differ based on mutability and order. Mutability refers to the ability to change an object after creation. we have two types built in(lists, tuples, sets and dictionaries) and user defined data structures(Stacks using arrays, The condition check, Queue using arrays).&lt;br&gt;
Data algorithms- Is a sequence of steps executed by a computer that takes an input and transforms it into a target output.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Machine learning&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is making the computer learn from studying  data and statistics. Machine learning is a step into the direction of artificial intelligence(AI).ML is a program that analyzes data and learns to predict the outcome.it is used in installing python, loading, summarizing and visualizing datasets, evaluates some algorithms and make some predictions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advanced project&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you are conversant with python libraries and some of the external libraries you should now know how to install external libraries and work with them. Below are some source code to use at an advance project: &lt;br&gt;
-Digital clock GUI&lt;br&gt;
-Get desktop notification with python.&lt;br&gt;
-use your phone camera for computer vision.&lt;br&gt;
-music player GUI.&lt;br&gt;
-image converter GUI&lt;br&gt;
-weight converter GUI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more python&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Python evolves every time so you have to keep coding and discovering new techniques in python. One thing about coding languages they need consistency and committed. Don't be too comfortable in one area explore the whole language understanding every bit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deep Learning&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Is a subset of machine learning that trains a computer to perform human like tasks, image identification and prediction making. It improves the ability to classify, recognize, detect and describe using data. It's role is to process both unlabeled and unstructured data. This learning  method also creates more complex statistical models. With each new piece of data, the model becomes more complex.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CONCULSION&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That was a brief description of the ultimate guide to get started in data science, in your free time go through the steps deeply and make sure you understand what  in happens in each step precisely. Your mindset and consistency is key. &lt;/p&gt;

</description>
      <category>100daysofcode</category>
      <category>python</category>
      <category>datascience</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>INTRODUCTION TO SEABORNS.</title>
      <dc:creator>viola kinya kithinji</dc:creator>
      <pubDate>Sun, 03 Apr 2022 18:22:25 +0000</pubDate>
      <link>https://dev.to/violakithinji/introduction-to-seaborns-5ha9</link>
      <guid>https://dev.to/violakithinji/introduction-to-seaborns-5ha9</guid>
      <description>&lt;p&gt;&lt;strong&gt;Seaborn&lt;/strong&gt; is a library for making statistical graphics in Python. It builds on top of matplotlib and integrates closely with pandas data structures.&lt;br&gt;
Seaborn helps you explore and understand your data. Its plotting functions operate on dataframes and arrays containing whole datasets and internally perform the necessary semantic mapping and statistical aggregation to produce informative plots. Its dataset-oriented, declarative API lets you focus on what the different elements of your plots mean, rather than on the details of how to draw them.&lt;br&gt;
One has to be familiar with Numpy and Matplotlib and Pandas to learn about Seaborn.&lt;/p&gt;

&lt;p&gt;Seaborn offers the following functionalities:&lt;br&gt;
-Dataset oriented API to determine the relationship between variables.&lt;br&gt;
-Automatic estimation and plotting of linear regression plots.&lt;br&gt;
-It supports high-level abstractions for multi-plot grids.&lt;br&gt;
-Visualizing univariate and bivariate distribution.&lt;/p&gt;

&lt;p&gt;Using Seaborn we can plot wide varieties of plots like:&lt;/p&gt;

&lt;p&gt;-Heat maps-The heatmap represents the data in a 2-dimensional form. The ultimate goal of the heatmap is to show the summary of information in a colored graph. It utilizes the concept of using colors and color intensities to visualize a range of values.&lt;/p&gt;

&lt;p&gt;-Pair Plots -are used when we want to see the relationship pattern among more than 3 different numeric variables. For example, let’s say we want to see how a company’s sales are affected by three different factors, in that case, pair plots will be very helpful.&lt;/p&gt;

&lt;p&gt;-pie chart and bar charts.Pie Chart is generally used to analyze the data on how a numeric variable changes across different categories.&lt;/p&gt;

&lt;p&gt;-scatter plots-Scatter Plot is used when we want to plot the relationship between any two numeric columns from a dataset. These plots are the most powerful visualization tools that are being used in the field of machine learning.&lt;br&gt;
-distributions plots-We can compare the distribution plot in Seaborn to histograms in Matplotlib. They both offer pretty similar functionalities. here use sns.distplot.&lt;/p&gt;

&lt;p&gt;Regression plots-Regression plots create a regression line between 2 numerical parameters in the jointplot(scatterplot) and help to visualize their linear relationships.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to learn Seaborn&lt;/strong&gt;&lt;br&gt;
1.Do a thorough research on seaborns, the basics, it's importance in data visualization and how it relates with other libraries and why they do.&lt;br&gt;
2.Try out plotting using seaborn this way you will grasp more lets agree on this one, practice makes perfect. So first start by looking for a dataset.&lt;br&gt;
3.Try reading some articles about seaborns and looking for a worked out problem to master the techniques lastly make use of galleries and YouTube.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Installation of seaborn&lt;/strong&gt;&lt;br&gt;
I find Jupyter notebook efficient in doing  data visualization hope you like it too. for the ones using local machine you run this command on your terminal. If you are using  google colab or jupyter notebooks worry not about installation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install seaborn
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Importing the library&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import seaborn as sns
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Loading dataset&lt;/strong&gt;&lt;br&gt;
for demonstration am using a dataset in my local machine and we will see how seaborn helps us to visualize the distribution of each feature.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DpzGk_j2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w8pcipkem35y2e9qqyzz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DpzGk_j2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w8pcipkem35y2e9qqyzz.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dYuItMt8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c59vu4ofqkbyledof6nl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dYuItMt8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c59vu4ofqkbyledof6nl.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ejnFFLWG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5fx9wco6qm7x70b4txjv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ejnFFLWG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5fx9wco6qm7x70b4txjv.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qi_1AWA3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4qrm80rcyoiqytjzd5i7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qi_1AWA3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4qrm80rcyoiqytjzd5i7.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FSBNetlC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s6s2x7kor3fc9bd3haap.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FSBNetlC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s6s2x7kor3fc9bd3haap.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt; This shows the relationship between matplotlib and seaborn.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
Data visualization is fun to work with and you get to work with different python libraries and makes your plots and graphs more appealing. Go through seaborn attentively and make sure you practice using all those graphs and libraries. Consistency is key.&lt;/p&gt;

</description>
      <category>seaborn</category>
      <category>datascience</category>
      <category>100daysofcode</category>
    </item>
    <item>
      <title>Relational and Non relational database.</title>
      <dc:creator>viola kinya kithinji</dc:creator>
      <pubDate>Sun, 03 Apr 2022 15:03:19 +0000</pubDate>
      <link>https://dev.to/violakithinji/relational-and-non-relational-database-2f9c</link>
      <guid>https://dev.to/violakithinji/relational-and-non-relational-database-2f9c</guid>
      <description>&lt;p&gt;&lt;strong&gt;Database&lt;/strong&gt;A collection of information organized to provide efficient retrieval.&lt;br&gt;
&lt;strong&gt;Relational database management systems(RDBMS)&lt;/strong&gt; SQl: PostgreSQL ,SQlite, oracle.&lt;br&gt;
&lt;strong&gt;Non relational database management systems&lt;/strong&gt; NOSQL: MongoDB, Redis, Aerospike, Couchbase.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CAP Theorem&lt;/strong&gt; It comprises of relational and non-relational databases. CAP stands for consistency, Availability and partition Tolerant.&lt;br&gt;
&lt;strong&gt;Relational database management systems&lt;/strong&gt; There are organized and defined in structured sticker schemas.&lt;br&gt;
-Normalized data is the process of storing data into columns and tables to reduce redundancy.&lt;br&gt;
Reliable relational DBs are ACID compliant: &lt;br&gt;
-Atomicity-modification falls on nothing rule.&lt;br&gt;
-Consistency- Valid data is brought into the database.&lt;br&gt;
-isolation- Requires multiple simultaneous transactions do not impact each other's execution.&lt;br&gt;
-Duration-Ensures any transaction committed in the database are not lost.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disadvantages of relational databases&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;-Scalability&lt;br&gt;
RDMS are historically intended to be run on a single machine. This means that if the requirements of the machine are insufficient, due to data size or an increase in the frequency of access, you will have to improve the hardware in the machine, also known as vertical scaling.&lt;/p&gt;

&lt;p&gt;This can be incredibly expensive and has a ceiling, as eventually the costs outweigh the benefits. Plus, there will potentially come a stage where you simply cannot get hardware capable of hosting the database. The only solution would be to buy a machine that supports better hardware but none of that is cheap.&lt;/p&gt;

&lt;p&gt;-Flexibility&lt;br&gt;
In relational databases, the schema is rigid. You define the columns and data types for those columns, including any restraints such as format or length. Common examples of constraints would include phone number length or minimum/maximum length for a name column.&lt;/p&gt;

&lt;p&gt;Although this means you can interpret the data more easily and identify the relationships between tables, it also means that making changes to the structure of the data is very complex. You have to decide at the start what the data will look like, which isn’t always possible. If you want to make changes later, you have to change all the data, which involves the database being offline temporarily.&lt;/p&gt;

&lt;p&gt;-Performance&lt;br&gt;
The performance of the database is tightly linked to the complexity of the tables — the number of them, as well as the amount of data in each table. As this increases, the time taken to perform queries increases too.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Non relational databases&lt;/strong&gt;&lt;br&gt;
-information is stored in a dynamic ,non-normalized and more flexible manner.&lt;br&gt;
-More designed to be distributed than relational.&lt;br&gt;
-Follow the base system: basically Available, soft state, eventual consistency.&lt;br&gt;
&lt;strong&gt;Major types of NoSQL&lt;/strong&gt;&lt;br&gt;
-Key value-stored in big hash tables pf keys and values.&lt;br&gt;
-column oriented- two dimensional arrays whereby each key has one or more key/values pairs attached to it.&lt;br&gt;
-Document stored-similar to key value but with structured and encoding of data.&lt;br&gt;
-Graph based- are like trees with edges, nodes and properties for index-free adjacency.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Comparison between SQL and NoSQL&lt;/strong&gt;&lt;br&gt;
    SQL&lt;br&gt;
 -Strict and structured schemas, tabular data(design).&lt;br&gt;
-Light declarative language, standardized use even with subtly different syntaxes.(CRUD Queries)&lt;br&gt;
-CAP,ACID compliance. Consistency enforced after each transaction.(Transactions)&lt;br&gt;
  NoSQL&lt;br&gt;
-Schemaless, document oriented, dynamic and unstructured.(design)&lt;br&gt;
-No standard interface, differs from system to system.(CRUD Queries).&lt;br&gt;
-CAP,BASE systems, fault tolerant transactions for eventual consistency.&lt;br&gt;
&lt;strong&gt;How to choose&lt;/strong&gt;&lt;br&gt;
First you will have to understand the kind of data that you have and how it is stored.&lt;br&gt;
For NOSQL-if you will have a lot of unstructured data and aggregate information with nesting denormalized data.&lt;br&gt;
For SQL- normalized, space efficient, but costly joins!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In summary what you need to know about relational databases/Non relational database:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Relational databases&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;-They work with structured data.&lt;br&gt;
-Relationships in the system have constraints, which promotes a high level of data integrity.&lt;/p&gt;

&lt;p&gt;-There are limitless indexing capabilities, which results in &lt;br&gt;
 faster query response times.&lt;/p&gt;

&lt;p&gt;-They are excellent at keeping data transactions secure.&lt;/p&gt;

&lt;p&gt;-They provide the ability to write complex SQL queries for data &lt;br&gt;
 analysis and reporting.&lt;/p&gt;

&lt;p&gt;-Their models can ensure and enforce business rules at the data &lt;br&gt;
 layer adding a level of data integrity not found in a non- &lt;br&gt;
 relational database.&lt;/p&gt;

&lt;p&gt;-They are table and row oriented.&lt;/p&gt;

&lt;p&gt;-They Use SQL (structured query language) for shaping and manipulating data, which is very powerful.&lt;/p&gt;

&lt;p&gt;-SQL database examples: MySql, Oracle, Sqlite, Postgres and MS-SQL. NoSQL database examples: MongoDB, BigTable, Redis, RavenDb, Cassandra, Hbase, Neo4j and CouchDb.&lt;/p&gt;

&lt;p&gt;SQL databases are best fit for heavy duty transactional type applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Non relational database&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;-They have the ability to store large amounts of data with little structure.&lt;/p&gt;

&lt;p&gt;-They provide scalability and flexibility to meet changing business requirements.&lt;/p&gt;

&lt;p&gt;-They provide schema-free or schema-on-read options.&lt;/p&gt;

&lt;p&gt;-They have the ability to capture all types of data “Big Data” including unstructured data.&lt;/p&gt;

&lt;p&gt;-They are document oriented.&lt;/p&gt;

&lt;p&gt;-NoSQL or non-relational databases examples:MongoDB, Apache Cassandra, Redis, Couchbase and Apache HBase.&lt;/p&gt;

&lt;p&gt;-They are best for Rapid Application Development. NoSQL is the best selection for flexible data storage with little to no structure limitations.&lt;/p&gt;

&lt;p&gt;-They provide flexible data model with the ability to easily store and combine data of any structure without the need to modify a schema.&lt;/p&gt;

</description>
      <category>database</category>
      <category>postgres</category>
      <category>mongodb</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Git and Github</title>
      <dc:creator>viola kinya kithinji</dc:creator>
      <pubDate>Thu, 31 Mar 2022 20:24:09 +0000</pubDate>
      <link>https://dev.to/violakithinji/git-and-github-160e</link>
      <guid>https://dev.to/violakithinji/git-and-github-160e</guid>
      <description>&lt;p&gt;What is Git? It is a version control system that you download onto your computer. It is essential that you use Git if you want to collaborate with other developers on a coding project or work on your own project.&lt;/p&gt;

&lt;p&gt;What is version control? The management of changes to documents, computers programs, large websites, and other collections of information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Terms used.&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;-Directory-folder.&lt;br&gt;
-Terminal/command line-interface for text commands.&lt;br&gt;
-CLI-commandline interface.&lt;br&gt;
-Cd-change directory.&lt;br&gt;
-Code editor-word processor for writing codes.&lt;br&gt;
-Repository-project, or the folder/place where your project is kept.&lt;br&gt;
-Github-A website to host your repositories online.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Git Commands.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;-clone-Bring a repo that is hosted somewhere like Github into a folder on your local machine.&lt;br&gt;
add-Track your files and changes in Git.&lt;br&gt;
-commit-saves your files in Git.&lt;br&gt;
-push-Upload Git commit to a remote repo, like Github.&lt;br&gt;
-pull-Downloads changes from a remote repo to your local machine,the opposite of push.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let's get started.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You will first start by downloading Git  here &lt;a href="https://git-scm.com/downloads" rel="noopener noreferrer"&gt;https://git-scm.com/downloads&lt;/a&gt;. After downloading and setting up you will create a Github account here &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;https://github.com/&lt;/a&gt;. Bingo! you have done it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to create a repo.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F513a4e6a8veb9n0fdec0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F513a4e6a8veb9n0fdec0.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;From the conversation box on the image you can see some commands there you will select new repository or on the left there is an icon indicating new.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmgc2meimb2z2vpeak6dm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmgc2meimb2z2vpeak6dm.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On the above picture is an indication of how it will look like.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to clone your repo to your local machine.&lt;/strong&gt;&lt;br&gt;
 [](&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faps7s4el8ia4fqf3ib0b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faps7s4el8ia4fqf3ib0b.png" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
The picture above  shows how to copy the link so as to clone. On the icon labelled "code" below is the link copy it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cloning.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdepv3k93hl6x4vkqeawr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdepv3k93hl6x4vkqeawr.png" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
This picture shows how to clone it on your local machine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to add, commit and push.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftlhwl4a0c65r273la5ea.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftlhwl4a0c65r273la5ea.png" alt="Image description"&gt;&lt;/a&gt;  This picture shows how to track and saves my files in Git.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Git push.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo7ag5c4bdcbjgcpmuwqw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo7ag5c4bdcbjgcpmuwqw.png" alt="Image description"&gt;&lt;/a&gt; .Upload Git commit to a remote repo, like Github.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pull Request.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcxv111f8t2p7vcczid8u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcxv111f8t2p7vcczid8u.png" alt="Image description"&gt;&lt;/a&gt;.A pull request (or PR) is a way to alert a repo's owners that you want to make some changes to their code. It allows them to review the code and make sure it looks good before putting your changes on the primary branch. .&lt;br&gt;
&lt;strong&gt;Merging pull request.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fck7ddkdqes9iuaea5emz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fck7ddkdqes9iuaea5emz.png" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
 You might see a big green button at the bottom that says 'Merge pull request'. Clicking this means you'll merge your changes into the primary branch. When you successfully merge the pull request make sure you delete your branch too many branches is a put off by doing so make sure yours commits were merged.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How it will look like after merging&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcql7rw8nmkexa6snyuea.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcql7rw8nmkexa6snyuea.png" alt="Image description"&gt;&lt;/a&gt; When you're done,You can double check that your commits were merged by clicking on the 'Commits' link on the first page of your new repo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx6lrxtzkr6qsqggu0kzh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx6lrxtzkr6qsqggu0kzh.png" alt="Image description"&gt;&lt;/a&gt;. When you're done, you can double check that your commits were merged by clicking on the 'Commits' link on the first page of your new repo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkekerbffit7yut6jk59c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkekerbffit7yut6jk59c.png" alt="Image description"&gt;&lt;/a&gt; This image shows a list of commits in your branch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to update the changes on Github to the repo on my local machine.&lt;/strong&gt;&lt;br&gt;
After creating a pull request and merging pull request on your github repo a little differences comes in with the one in your local  machine. In order to get the most recent changes that you or others have merged on GitHub, use the git pull origin master command on your Git bash "git pull" This shows you all the files that have changed and how they've changed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conculsions.&lt;/strong&gt;&lt;br&gt;
The more you use git, the more comfortable you'll... git with it. (I couldn't resist.).Github is useful because you're able to store your code online and allows you and others to work together on projects from  anywhere.&lt;/p&gt;

</description>
      <category>github</category>
      <category>git</category>
      <category>100daysofcode</category>
    </item>
    <item>
      <title>Mental health</title>
      <dc:creator>viola kinya kithinji</dc:creator>
      <pubDate>Fri, 04 Mar 2022 17:47:28 +0000</pubDate>
      <link>https://dev.to/violakithinji/mental-health-3k70</link>
      <guid>https://dev.to/violakithinji/mental-health-3k70</guid>
      <description>&lt;p&gt;I don't know what drove me into writing this article but I believe through this article I will communicate to many and give  hope to many.&lt;br&gt;
How is your mental health right now? How are you feeling are you afraid, hopeless, anxious, suicidal.&lt;br&gt;
Recently have been feeling anxious. Anxiety is that condition that's accompanied with fear and worry. from my research have found out that can be as a result of childhood trauma and also your upbringing. Anxiety makes you a slave of your thoughts you fear to try something because you're worried what will people say or what if I can't do it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Suicide&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What comes in your mind when you hear about suicide,I remember I lost a friend to suicide.Do you check on your family? family is anyone close to you.Some of us assume that this is a man he will maneuver around and come into his senses no please, let's stop giving men these superhero titles and thoughts.It does not make you less of a man if you share your problems in fact to me that's a hero.Do you know the largest population of depressed people is men and children.Men who is the most important person in your life? Wife, children, family?? Noo you're the most important person in your life work on your self growth and love.You can't love your family if don't love you.&lt;br&gt;
Many are asking how are children depressed? How many of us parents fight infront of kids,Use abusive words Infront of our kids and also direct to the kids,Compare your kids and many more.are you among the group how are planning to change this inorder bring up functional generation?.&lt;br&gt;
Any time you feel your mental health is at stake kindly seek help from professionals not from your religious leaders...A professional is trained to handle the cases and religious leader is trained to handle religious matters. Yes some religious leaders are trained too. what if am financially down? we have institutions that offer free service inquire around you.&lt;br&gt;
Let's embark on this journey of healing and living a happy and stress free life.&lt;br&gt;
Please if someone confides with you don't make them regret sharing .Be the light to the person.&lt;br&gt;
A healthy mind is a happy family.&lt;/p&gt;

</description>
      <category>mentalhealth</category>
    </item>
    <item>
      <title>Python for everyone: Mastering python the right way.</title>
      <dc:creator>viola kinya kithinji</dc:creator>
      <pubDate>Fri, 04 Mar 2022 16:20:11 +0000</pubDate>
      <link>https://dev.to/violakithinji/python-for-everyone-mastering-python-the-right-way-322m</link>
      <guid>https://dev.to/violakithinji/python-for-everyone-mastering-python-the-right-way-322m</guid>
      <description>&lt;p&gt;&lt;strong&gt;python the right way&lt;/strong&gt;&lt;br&gt;
Huh the right way? Some might be wondering which is the right way. Truth be told I felt the same in the beginning and yes there is the right way. First a mindset how is your mindset like? It requires a positive mindset and a go getter. Secondly passion, are you passionate or you're doing it Because of you saw someone doing it?. Take for instance if you're not passionate and you face a challenge, wait yes there are challenges do you think you will maneuver?. And lastly the drive, what drives you to know more about python? .&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is python&lt;/strong&gt;&lt;br&gt;
Is an interpreted, interactive, object-oriented programming language. So what is python used for:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data science: Analysis and Visualization&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GLd8gCsz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/flhsakr2pkw70s9m92bs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GLd8gCsz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/flhsakr2pkw70s9m92bs.png" alt="Image description" width="880" height="526"&gt;&lt;/a&gt;&lt;br&gt;
With a Python data visualization library, you can create a wide variety of plots and visual representations, such as:&lt;/p&gt;

&lt;p&gt;-Lines, Bars, and Markers.&lt;br&gt;
-Images, contours and fields.&lt;br&gt;
-Subplots, axes and figures.&lt;br&gt;
-Statistics (Box Plots, Bar Charts, and Histograms).&lt;br&gt;
-Pie and polar charts.&lt;br&gt;
-3D Plots.&lt;br&gt;
and more!&lt;br&gt;
You can add text, labels, annotations, color, shapes, collections, animations, and interactivity to your plots depending on the package or library that you choose to work with.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Libraries and Packages&lt;/strong&gt;&lt;br&gt;
Let's see some of the most popular packages and libraries to work with Python in data science:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Python for Data Analysis&lt;/strong&gt;&lt;br&gt;
-NumPy: this package is described as "the fundamental package for scientific computing with Python". According to the official website of this package, "nearly every scientist working in Python draws on the power of NumPy."&lt;br&gt;
-Pandas: is "a fast, powerful, flexible source data analysis and manipulation tool."&lt;br&gt;
Python for Data Visualization&lt;br&gt;
-Matplotlib: is "a comprehensive library for creating static, animated, and interactive visualizations in Python." &lt;br&gt;
Seaborn: is "a Python data visualization library based on matplotlib." &lt;br&gt;
-ggplot2: is "a system for declaratively creating graphics, based on The Grammar of Graphics". According to its official website: "you provide the data, tell ggplot2 how to map variables to aesthetics, what graphical primitives to use, and it takes care of the details."&lt;br&gt;
-Bokeh: is "an interactive visualization library for modern web browsers".&lt;br&gt;
Pandas: this library has many tools for data visualization.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Machine learning&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Python is an essential tool for every developer who wants to enter the fascinating area of Machine Learning. Let's see a brief introduction to Machine Learning.&lt;/p&gt;

&lt;p&gt;What is Machine Learning?&lt;br&gt;
Machine Learning is an area of Computer Science that creates systems that are able to learn on their own.&lt;/p&gt;

&lt;p&gt;This type of system uses algorithms that are continuously improved based on input data that helps the system "learn". It learns how to respond autonomously to new scenarios by generating an appropriate output in new scenarios based on previous knowledge.&lt;/p&gt;

&lt;p&gt;One of the most amazing things about these systems is that they are continually refined.&lt;/p&gt;

&lt;p&gt;They are not like the programs that we typically write in a Python script where we specify every possible action that the program can take. In Machine Learning, the system is trained to "think" and make decisions based on previous knowledge.&lt;/p&gt;

&lt;p&gt;This is why we say that machines "learn" from the data&lt;/p&gt;

&lt;p&gt;-Neural Networks: The Building-Blocks of Machine Learning&lt;br&gt;
-Neural networks are the processing units of the system. They try to simulate a real network of neurons of the brain. They virtual "neurons" receive input, learn how to process that input, and generate an output based on their previous knowledge.&lt;/p&gt;

&lt;p&gt;This is very similar to what out brain does every single moment of every single day.&lt;/p&gt;

&lt;p&gt;Thanks to neural networks, a Machine Learning algorithm can learn how to predict the expected output from a given input based on previous knowledge.&lt;/p&gt;

&lt;p&gt;For example, when you see recommended videos on YouTube, those recommendations were generated by neural networks that predict what videos you might like to watch based on your previous patterns. Amazing, right?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Python and Machine Learning&lt;/strong&gt;&lt;br&gt;
you have this question in mind right?: what is the role of Python in this area? It is one of the most popular and powerful tools used to program this type of system.&lt;/p&gt;

&lt;p&gt;One of the most popular libraries used by developers around the world to work with Python applied to Machine Learning is&lt;/p&gt;

&lt;p&gt;-TensorFlow: It's a free open-source library developed by the Google Brain Team. This library is used for research and production at Google.&lt;br&gt;
According to Jeff Dean, the lead of Google's Artificial Intelligence division:&lt;br&gt;
Today it is used heavily in our speech recognition systems, in a new Google Photos product, Gmail, and Google Search. (source)&lt;br&gt;
The best part is that developers all over the world can use this library to tackle real-world problems.&lt;/p&gt;

&lt;p&gt;These are two other popular Python libraries used for Machine Learning:&lt;/p&gt;

&lt;p&gt;-Keras – an open-source neural-network library written in Python.&lt;br&gt;
-PyTorch – an open-source Machine Learning library used for developing and training neural networks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Web development&lt;/strong&gt;&lt;br&gt;
Python is used widely by back-end developers to run servers for web applications and interacts with databases and APIs after after a client requests data from the app's front-end in the browser. It uses frameworks and libraries like Django, pyramid and flask that extends the language utility. The frameworks are use for security, scalabilty and convenience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Computer science education&lt;/strong&gt;&lt;br&gt;
Python currently plays a key role in computer science education around the world.  Let's see why.&lt;/p&gt;

&lt;p&gt;Why Python?&lt;/p&gt;

&lt;p&gt;Python is so widely used as a teaching tool because:&lt;/p&gt;

&lt;p&gt;-It is easy to learn: its syntax is simple and it can be learned quickly. Students start diving into more advanced aspects of computer science much more quickly than with other programming languages.&lt;br&gt;
-It is powerful: it is used in real-world applications, so students immediately start acquiring valuable skills for their careers.&lt;br&gt;
-It is versatile: it supports various programming paradigms including imperative programming, functional programming, procedural programming, and object-oriented programming.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Desktop Applications&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Python is use to build desktop applications. Example some Linux and open source applications used python. In addition cross platform applications are built with GUI libraries using python.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Business Applications&lt;/strong&gt;&lt;br&gt;
Tryton and Odoo are tools used for enterprise development they also perform accounting, inventory, customer relationship management and other tasks. Many businesses rely on python for heavy lifting.&lt;br&gt;
&lt;strong&gt;Game development&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;python is also used in developing interactive games. We have libraries that provides functionality and a room for game development. Examples are Pysoy and Pygame.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Web scrapping&lt;/strong&gt;&lt;br&gt;
Python is used to pull large data from websites which is useful in real world activities. Python uses BeautifulSoup which pulls such data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Computer Vision and Image Processing&lt;/strong&gt;&lt;br&gt;
Python is used for computer vision and image processing, fields that are expanding rapidly.&lt;/p&gt;

&lt;p&gt;The goal of image processing is to process an image, apply transformations to it, and return a new version of the original image.  &lt;/p&gt;

&lt;p&gt;In contrast, the goal of computer vision is more complex because it tries to make the computer understand and interpret an image and its content.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Image Processing&lt;/strong&gt;&lt;br&gt;
Let's start with image processing. With a Python library, you can perform operations such as:&lt;/p&gt;

&lt;p&gt;-Cropping, flipping, and rotating.&lt;br&gt;
-Manipulating exposure and color channels.&lt;br&gt;
-Detecting edges and lines.&lt;br&gt;
-Adding filters and restoring images.&lt;br&gt;
-Computer Vision&lt;/p&gt;

&lt;p&gt;Now let's dive into computer vision. If you start researching this topic, you might be surprised by its current applications. Some of them are:&lt;/p&gt;

&lt;p&gt;-Navigation.&lt;br&gt;
-Object and Event Detection.&lt;br&gt;
-Facial recognition.&lt;br&gt;
-Image classification.&lt;/p&gt;

&lt;p&gt;This scientific field is so important that Google developed a tool called Cloud Vision, which has a Python version for developers to incorporate this functionality into their programs.&lt;/p&gt;

&lt;p&gt;According to the "Using the Vision API with Python" tutorial in Google Codelabs, the Google Cloud Vision API:&lt;/p&gt;

&lt;p&gt;Allows developers to easily integrate vision detection features within applications, including image labeling, face and landmark detection, optical character recognition (OCR), and tagging of explicit content.&lt;br&gt;
This set of tools provides functionality for face detection, landmark detection, logo detection, label detection, text detection, and more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Python Libraries&lt;/strong&gt;&lt;br&gt;
These are some awesome libraries for computer vision and image processing:&lt;/p&gt;

&lt;p&gt;-OpenCV: an "open source computer vision and machine learning software library". Its Python version is called OpenCV-Python.&lt;br&gt;
-scikit-image: a "collection of algorithms used for image processing".&lt;br&gt;
-NumPy: it can be used to process the pixels of an image as a 2D array.&lt;br&gt;
-SciPy: the scipy.ndimage package "contains various functions for multidimensional image processing."&lt;/p&gt;

&lt;p&gt;We have a wide  variety of  python application kindly try to go through the rest and get insights and drive to be a python guru.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Important note&lt;/strong&gt;&lt;br&gt;
As a beginner you come across practice exercises, please do not copy paste them try do them manually. The point of these exercises is to train  your hands, your brains and your mind in how to read, write and see code. If you're copypasting you are cheating yourself out of the effectiveness of the lessons.&lt;br&gt;
we also have websites such as Hacker rank you can use it to assess yourself after covering a certain topic by trying the challenges offered there to see if you're understanding and if  YOU can solve problems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;learning websites&lt;/strong&gt;&lt;br&gt;
-codecademy.&lt;br&gt;
-Udemy.&lt;br&gt;
-coursera.&lt;br&gt;
-Youtube.&lt;br&gt;
-W3Schools.&lt;br&gt;
-freecodecamp.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Conculsion *&lt;/em&gt;&lt;br&gt;
As a beginner we have the fear of unknown and also some tend to suffer from the imposter syndrome please don't allow these monsters stop you, face them. Success is not final, failure is not fatal: it is the courage to continue that counts. Python is fun to work with if your motivated, driven and passionate to know what it entails and its applications and advantages. I have written two articles on introduction to data structure and algorithms the second one is introduction to modern python kindly take a look.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>webdev</category>
      <category>programming</category>
      <category>python</category>
    </item>
  </channel>
</rss>
