<?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: Sarang S. Babu</title>
    <description>The latest articles on DEV Community by Sarang S. Babu (@techiestark).</description>
    <link>https://dev.to/techiestark</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%2F969388%2Fef41d1f7-6c5c-4fb5-a287-db7067450248.jpeg</url>
      <title>DEV Community: Sarang S. Babu</title>
      <link>https://dev.to/techiestark</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/techiestark"/>
    <language>en</language>
    <item>
      <title>Before You Start BSc in Computer Science: What You Must Know</title>
      <dc:creator>Sarang S. Babu</dc:creator>
      <pubDate>Thu, 30 Nov 2023 07:47:28 +0000</pubDate>
      <link>https://dev.to/techiestark/before-you-start-bsc-in-computer-science-what-you-must-know-4c8j</link>
      <guid>https://dev.to/techiestark/before-you-start-bsc-in-computer-science-what-you-must-know-4c8j</guid>
      <description>&lt;p&gt;Hey there future tech wizards! If you're gearing up for the rollercoaster ride that is a BSc in Computer Science, hold on tight because we're about to dive into some serious considerations. Think of this as your ultimate guide to navigating the intricate world of coding and algorithms.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Passion for Coding and Problem-Solving:
&lt;/h2&gt;

&lt;p&gt;Let's get real for a moment. Do you find yourself staying up late, fueled by nothing but your love for coding? If debugging feels like solving a thrilling mystery, you're on the right track. A genuine passion for unraveling coding puzzles is your secret sauce. &lt;/p&gt;

&lt;p&gt;Imagine Elon Musk huddled over a computer late at night, fueled by his passion for coding to revolutionize the transportation industry with Tesla. If you're as intrigued by the possibilities of coding, you're on the right track.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Understanding the Course Structure:
&lt;/h2&gt;

&lt;p&gt;Now, let’s talk about the nitty-gritty. Dive into the course structure like you’re exploring a new game. What are the core subjects? Are there cool elective courses that match your ninja coding skills? Understanding the curriculum is like having a map for your quest through computer science.&lt;/p&gt;

&lt;p&gt;Consider Bill Gates navigating the vast landscape of software development. Before co-founding Microsoft, he delved into the intricacies of course structures – his early code being the blueprint for future tech giants.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Real-world Applications:
&lt;/h2&gt;

&lt;p&gt;It's not just about coding in a virtual cave. Ask about real-world applications. Are there chances to build your tech arsenal through hands-on projects and internships? The more you get your hands dirty in real-world scenarios, the better you'll conquer the coding realm.&lt;/p&gt;

&lt;p&gt;Picture Mark Zuckerberg building the early version of Facebook in his dorm room. Seek a program that encourages you to turn your coding skills into real-world applications, just like Zuckerberg transformed social interaction.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Faculty Expertise:
&lt;/h2&gt;

&lt;p&gt;Think of the faculty as your in-game mentors. Who are they? What battles have they fought in the coding world? Having experienced guides by your side can make your coding journey legendary.&lt;/p&gt;

&lt;p&gt;Envision learning from the coding maestros who mentored Sundar Pichai, guiding him to lead Google. Faculty expertise is your guiding force, just as it was for Pichai in his coding odyssey.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Industry Connections and Networking:
&lt;/h2&gt;

&lt;p&gt;Level up your networking game. Does the program offer connections with tech pros? Can you attend industry events or slay internships with big tech dragons? Networking now is like collecting power-ups for your future tech quests.&lt;/p&gt;

&lt;p&gt;Think of Steve Jobs unveiling the first iPhone. Networking in the tech world is your key to unlocking opportunities. Seek a program that introduces you to industry giants, much like Jobs did with Apple.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Technological Resources:
&lt;/h2&gt;

&lt;p&gt;Imagine having the latest and greatest tech gadgets in your coding toolkit. Check out the labs, software, and resources the institution offers. You want to be equipped with the best gear to face the coding challenges that lie ahead.&lt;/p&gt;

&lt;p&gt;Picture Jeff Bezos developing the algorithms behind Amazon. Your coding toolkit is vital, so choose a program with cutting-edge resources, just like Bezos did to shape the future of e-commerce.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Flexibility and Specializations:
&lt;/h2&gt;

&lt;p&gt;Your coding journey is unique. Does the program allow you to choose your path? Whether it's AI, cybersecurity, or data science, having the flexibility to explore different realms ensures you become the coding hero you aspire to be.&lt;/p&gt;

&lt;p&gt;Imagine the versatility of &lt;a href="https://en.wikipedia.org/wiki/Sheryl_Sandberg"&gt;Sheryl Sandberg&lt;/a&gt;, COO of Facebook. Your coding journey should offer flexibility, allowing you to explore specializations just as Sandberg navigated various roles in the tech landscape.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Alumni Success Stories:
&lt;/h2&gt;

&lt;p&gt;Think of alumni as the legendary warriors who've completed the quest. Research their stories. Where are they now? Knowing the successes of those who came before you can be a massive morale boost.&lt;/p&gt;

&lt;p&gt;Think of Tim Cook, following in Steve Jobs' footsteps to lead Apple. Research the success stories of alumni – these are your guiding stars, showing you what's possible after completing the course.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. Future Career Trajectory:
&lt;/h2&gt;

&lt;p&gt;Close your eyes and envision your coding future. Does the program align with where you see yourself? Consider how it prepares you for the tech landscape of tomorrow, not just today.&lt;/p&gt;

&lt;p&gt;Picture Satya Nadella, transforming Microsoft for the cloud era. Your coding future should align with the evolving tech landscape. Choose a program that prepares you for the challenges of tomorrow, not just today.&lt;/p&gt;

&lt;h2&gt;
  
  
  10. Personal Growth and Soft Skills:
&lt;/h2&gt;

&lt;p&gt;Becoming a coding master isn't just about lines of code. It's also about leveling up your soft skills. How does the program nurture your communication, teamwork, and adaptability skills? These are your secret weapons in the coding battlefield.&lt;/p&gt;

&lt;p&gt;Envision the adaptability of &lt;a href="https://en.wikipedia.org/wiki/Marissa_Mayer"&gt;Marissa Mayer&lt;/a&gt;, former Yahoo CEO. Your journey isn't just about code; it's about personal growth. Seek a program that hones your soft skills, just as Mayer's journey did.&lt;/p&gt;

&lt;p&gt;So, there you have it, future coding legends. Consider these factors, and you'll be ready to embark on a BSc in Computer Science that's uniquely tailored to your epic journey. If you are wondering what are the career opportunities after BSc in computer science, here is &lt;a href="https://autotechnerd.com/education/what-to-do-after-bsc-in-computer-science/"&gt;an article&lt;/a&gt; for the same. May your code compile flawlessly, and your bugs be minimal!&lt;/p&gt;

</description>
      <category>programming</category>
      <category>computerscience</category>
      <category>bsc</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How to Choose the Right Database Management System for Your Business?</title>
      <dc:creator>Sarang S. Babu</dc:creator>
      <pubDate>Sun, 30 Apr 2023 16:12:41 +0000</pubDate>
      <link>https://dev.to/techiestark/how-to-choose-the-right-database-management-system-for-your-business-4jgd</link>
      <guid>https://dev.to/techiestark/how-to-choose-the-right-database-management-system-for-your-business-4jgd</guid>
      <description>&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;In today's digital age, data is the lifeline of businesses. It is crucial to have an efficient database management system (DBMS) to store, organize, and retrieve data effectively. The right DBMS can enhance business operations, boost productivity, and improve customer experience. &lt;/p&gt;

&lt;p&gt;The main objective is to develop a dependable database that can reduce downtime. A DBMS may assist a company in resolving issues like revenue loss, which can cost thousands of dollars each minute of downtime, as well as issues with the company's reputation and future commercial opportunities.&lt;/p&gt;

&lt;p&gt;However, choosing the right DBMS for your business can be a daunting task. With so many options available, it can be challenging to determine which DBMS will best meet your business needs. This article will guide you through the process of selecting the right DBMS for your business. &lt;/p&gt;

&lt;p&gt;We will explore the various factors that you should consider when evaluating DBMS options, including the type of data you need to store, scalability requirements, security features, and more. By the end of this article, you will have a better understanding of how to choose the right DBMS for your business.&lt;/p&gt;

&lt;h2&gt;
  
  
  Types of Database Management Systems
&lt;/h2&gt;

&lt;p&gt;Before we dive into the factors to consider when selecting a DBMS, let's briefly discuss the different types of DBMS available. The three main types of DBMS are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Relational Database Management Systems (RDBMS)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;RDBMS is the most common type of DBMS. It is based on the relational model, which uses tables, columns, and rows to organize data. RDBMS is ideal for businesses that need to store structured data, such as customer information, inventory records, and financial transactions. &lt;a href="https://www.mysql.com/"&gt;MySQL&lt;/a&gt;, and PostgreSQL are two such DBMSs.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;NoSQL Database Management Systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;NoSQL DBMS is a non-relational DBMS. It is designed to handle unstructured and semi-structured data, such as social media data, sensor data, and multimedia content. NoSQL DBMS is ideal for businesses that need to store large amounts of data, perform real-time analysis, and handle high-traffic loads. Examples of NoSQL DBMS are Cassandra and MongoDB.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Object-Oriented Database Management Systems (OODBMS)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.techtarget.com/searchoracle/definition/object-oriented-database-management-system"&gt;OODBMS&lt;/a&gt; is a type of DBMS that is based on the object-oriented programming paradigm. It stores data in the form of objects, which can contain attributes and methods. OODBMS is ideal for businesses that need to store complex data structures, such as multimedia content and software applications. Examples are db4o and ObjectStore.&lt;/p&gt;

&lt;p&gt;When deciding which DBMS to work with, these are the major three types to be considered. However, DBMS can further be differentiated on different aspects like cloud databases (stored on the cloud), time-series databases (where time-based queries are optimized), and distributed databases (stored on multiple servers).&lt;/p&gt;

&lt;h2&gt;
  
  
  Factors to Consider When Choosing a DBMS
&lt;/h2&gt;

&lt;p&gt;There are some key factors to be considered to choose the right DBMS for your business. They are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Type of Data to Store&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The type of data you need to store will determine the type of DBMS you need. If you need to store structured data, such as customer information, inventory records, and financial transactions, an RDBMS is ideal. If you need to store unstructured and semi-structured data, such as social media data, sensor data, and multimedia content, a NoSQL DBMS is ideal. If you need to store complex data structures, such as multimedia content and software applications, an OODBMS is ideal.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scalability Requirements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As your business grows, your database will need to scale to accommodate the increased data load. Therefore, it is essential to choose a DBMS that can scale horizontally and vertically. Horizontal scaling involves adding more servers to distribute the workload, while vertical scaling involves upgrading the hardware to increase the capacity of the server. &lt;/p&gt;

&lt;p&gt;Even while your current demand might not seem large, it might increase fast if you acquire and update your data on a regular basis. If so, you require a database system that is not constrained by the amount of data that can be stored on a single computer. &lt;/p&gt;

&lt;p&gt;Consider using a system like &lt;a href="https://cassandra.apache.org/_/index.html"&gt;Cassandra&lt;/a&gt;, MongoDB, or HBase, which allows you to extend horizontally rather than vertically and disperse data storage over a whole cluster. Also, as the throughput (or the transaction rate) on the system increases, it is not feasible for a single database server to handle a huge number of requests simultaneously, causing an increase in response time. In such cases, the database needs to be migrated to a distributed one, and NoSQL DBMS are preferred for such cases over the &lt;a href="https://www.scaler.com/topics/sql/what-is-a-relational-database/"&gt;relational databases&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Cloud storage options excel in situations when boundless storage is required. You may store as much data as you want with object storage services like S3 and GCS since they offer the convenient option of several tiers, which means you pay less for data that is rarely accessed.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Security Features&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Data security is critical for every business. Therefore, it is essential to choose a DBMS that has robust security features. The DBMS should have encryption features, access control mechanisms, and auditing capabilities to ensure that data is secure from unauthorized access.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Performance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The performance of the DBMS is critical for business operations. Therefore, it is essential to choose a DBMS that can handle the workload efficiently. The DBMS should have features such as indexing, caching, and query optimization to enhance performance.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Integration with Other Systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The DBMS should integrate seamlessly with other systems in your business, such as your enterprise resource planning (ERP) system, customer relationship management (CRM) system, and other applications. Integration with other systems will enable you to get a complete view of your business data, which can help you make informed decisions. For instance, if you have a large analytics task that is now running on Apache Spark, you might wish to restrict yourself to &lt;a href="https://docs.oracle.com/en-us/iaas/database-management/doc/enable-database-management-external-databases.html"&gt;external databases&lt;/a&gt; that can connect to Apache Spark easily.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cost&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The cost of the DBMS is another crucial factor to consider. You should consider the upfront cost of the DBMS, as well as the ongoing maintenance and support costs. You should also consider the cost of any additional hardware or software required to run the DBMS. While cost is undoubtedly a consideration in any company spending, it is advisable to base your choice, to the greatest extent possible, on the software's suitability for your needs. &lt;/p&gt;

&lt;p&gt;Choosing a system that you subsequently spend time developing only to realize after the fact that it is inadequate for your purposes might be an expensive error. However, if you don't think you'll use a lot of the capabilities that the most costly programme has to offer, there's no need to buy it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Support and Maintenance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The DBMS requires ongoing support and maintenance to ensure that it runs smoothly. Therefore, it is essential to choose a DBMS that has excellent support and maintenance options. The DBMS should have a dedicated support team that can provide assistance when needed. &lt;/p&gt;

&lt;p&gt;Default settings in a DBMS may lead to no security at all, causing anybody to access the data stored in the database. Hence, you might need to select a system that gives expert, paid assistance so they can help you with server setup and administrative selections at first. For help, you can also hire outside administrators.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ease of Use&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The DBMS should be easy to use, even for non-technical staff. There can be a wide range of users that are supposed to access the system ranging from marketing experts, the IT division, database developers, and others in certain organizations. &lt;/p&gt;

&lt;p&gt;The system should have a user-friendly interface that enables users to perform tasks quickly and easily. Consider the appropriateness from everyone's point of view, and see if you can give various teams or individuals varying levels of authorization. For example, drag-and-drop functionality promotes an easy working technique. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Consistency, Availability and Partition Tolerance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A consistent DBMS ensures that any read request will always return the most recent write. A relational database, such as MySQL or PostgreSQL, is typically more suited for stringent consistency requirements than a document database, such as MongoDB or CouchDB, especially in multi-datacenter scenarios.&lt;/p&gt;

&lt;p&gt;The DBMS should have high availability and disaster recovery features. It should be able to handle system failures, data corruption, and other disasters without losing any data. Partition tolerance refers to the ability of the system to continue running in the face of node or network failures.&lt;/p&gt;

&lt;p&gt;According to the CAP theorem, there are inherent trade-offs between these three elements (Consistency, Availability, and Partition Tolerance), therefore it is impossible to attain all the qualities at the best level in a single database. &lt;/p&gt;

&lt;p&gt;Just two of the three options are available at once, and your decision will entirely depend on how you prioritize according to your needs. While non-relational database engines primarily meet AP and CP needs, traditional relational databases are a natural fit for the CA side.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Compliance Requirements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Depending on your industry, you may have compliance requirements that you need to meet, such as HIPAA for healthcare or PCI DSS for payment processing. Therefore, it is essential to choose a DBMS that can meet these compliance requirements.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;This article discussed the factors to consider when selecting the right Database Management System (DBMS) for a business. &lt;/li&gt;
&lt;li&gt;We discussed the importance of having an efficient DBMS that can store, organize, and retrieve data effectively. The right DBMS can enhance business operations, boost productivity, and improve customer experience. &lt;/li&gt;
&lt;li&gt;Then we briefly discussed the three main types of DBMS: Relational Database Management Systems (RDBMS), NoSQL Database Management Systems, and Object-Oriented Database Management Systems (OODBMS). However, DBMS can be differentiated based on different aspects like cloud databases, time-series databases, and distributed databases. &lt;/li&gt;
&lt;li&gt;We discuss the factors to consider when choosing a DBMS, which are the type of data to store, scalability requirements, security features, performance, and integration with other systems. We elaborate on each of these factors and provide examples of DBMS that would be ideal for each factor.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>dbms</category>
      <category>database</category>
    </item>
    <item>
      <title>Career as Python Developer - A Complete Guide</title>
      <dc:creator>Sarang S. Babu</dc:creator>
      <pubDate>Mon, 30 Jan 2023 12:33:10 +0000</pubDate>
      <link>https://dev.to/techiestark/career-as-python-developer-a-complete-guide-e19</link>
      <guid>https://dev.to/techiestark/career-as-python-developer-a-complete-guide-e19</guid>
      <description>&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;Python is a high-level, object-oriented programming language that is widely used to create websites and applications, automate operations, and conduct data analysis. According to the  Stack Overflow traffic, Python is the fastest-growing popular programming language. &lt;/p&gt;

&lt;p&gt;Python developers are software developers who specialize in building server-side web application logic. Their role is to develop, debug, and implement application projects using the Python programming language. &lt;/p&gt;

&lt;p&gt;They usually create back-end components, connect the software to third-party web services, and support front-end developers by connecting their work with the Python app.&lt;/p&gt;

&lt;h2&gt;
  
  
  Python Developer Job Description
&lt;/h2&gt;

&lt;p&gt;A Python developer uses the Python programming language to create server-side web application logic. Python developers must be skilled in a variety of areas, including front-end development and programming, database architecture, server-side application, as well as &lt;a href="https://www.investopedia.com/terms/b/businesslogic.asp"&gt;business logic&lt;/a&gt;, and user experience. &lt;/p&gt;

&lt;p&gt;Python developers must have a solid foundation in computer programming, as well as knowledge of software engineering practices. It is proficient in the language and understands how to use it to develop software applications. They also comprehend coding principles and are capable of developing efficient and effective systems.&lt;/p&gt;

&lt;h2&gt;
  
  
  Roles and Responsibilities of a Python Developer
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Python Developer Roles
&lt;/h3&gt;

&lt;p&gt;The role of a Python developer is extremely important. An organization classifies the Python developer role into three levels for using Python programming language for projects and applications:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Roles&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Requirements&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Junior Python Developer&lt;/td&gt;
&lt;td&gt;Good problem-solving skills, Basic knowledge of Python and associated frameworks, Quick learners with the skill to modify approaches dependent on the situation, Understanding of how to test Python code efficiently and effectively, Excellent communication and teamwork abilities.&lt;/td&gt;
&lt;td&gt;Entry-level Python coders will follow and learn more from senior developers. Their main task is to implement unit tests and upgrade existing code under the supervision of other developers who may guide them and help them progress quickly.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Senior Python Developer&lt;/td&gt;
&lt;td&gt;Previous job experience as a Senior Python Developer, Working knowledge of SQL and databases, Hands-on knowledge of Python frameworks (e.g. Django, CherryPy, Bottle, Flask), Experience with front-end technologies such as JavaScript, HTML5, CSS3, and the AngularJS framework is a plus, Familiarity with RestAPI and Amazon Web Services (AWS), Capability to work collaboratively on projects as well as independently when necessary&lt;/td&gt;
&lt;td&gt;Mid-level Python developers should be able to write and build components for integration into new or existing systems, as well as maintain existing code by contributing improvements and other code changes. They are also responsible for collaborating with UI/UX designers to implement design into the code along with building efficient back-end features for Python.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Python Developer Responsibilities
&lt;/h3&gt;

&lt;p&gt;A Python developer is responsible for the following tasks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Writing code that is scalable, efficient, testable, and reusable.&lt;/li&gt;
&lt;li&gt;Updating, analyzing, and adding modifications to the current software according to the business requirements.&lt;/li&gt;
&lt;li&gt;Integration of user-friendly components into various software, as well as &lt;a href="https://www.ibm.com/in-en/topics/data-storage"&gt;data storage&lt;/a&gt; solutions.&lt;/li&gt;
&lt;li&gt;Developing - Backend features to improve performance and responsiveness.&lt;/li&gt;
&lt;li&gt;Designing and implementing - Applications with high availability and low latency, data protection, and security features.&lt;/li&gt;
&lt;li&gt;Performing testing and debugging of software applications using Python frameworks.&lt;/li&gt;
&lt;li&gt;Increasing the functionality of existing software systems.&lt;/li&gt;
&lt;li&gt;Developing digital technologies for online traffic monitoring.&lt;/li&gt;
&lt;li&gt;Developing predictive features for Artificial Intelligence and Machine learning-based features.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Skills required for being a Python Developer
&lt;/h2&gt;

&lt;p&gt;Python developers are involved in activities other than coding, thus they must have a wide range of relevant skill sets. Although &lt;a href="https://www.scaler.com/topics/python/"&gt;Python&lt;/a&gt; is easy to learn because of its simple syntax, users can continue in their professions by learning intermediate and advanced Python coding skills. &lt;/p&gt;

&lt;p&gt;Some essential skills for becoming a Python developer are as follows:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Good understanding of core Python:&lt;/strong&gt; A Python Developer must have a deep understanding of Python that goes beyond what other developers in data science, web development, or other industries are expected to have. &lt;/p&gt;

&lt;p&gt;A Python Developer must be familiar with the concepts of object-oriented programming, basic Python syntax, primitive data types, data structure semantics, file handling, exception handling, Generators, Iterators, and arithmetic operators.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Frameworks:&lt;/strong&gt; &lt;a href="https://github.com/topics/python-framework"&gt;Frameworks&lt;/a&gt; make it easier for developers to develop applications (or software). They provide the automatic implementation of redundant activities, save development time, and lay a strong emphasis on application logic rather than a common element. &lt;/p&gt;

&lt;p&gt;Using a Python framework is a simple way to streamline and optimize the development process. To determine which Python framework is ideal for your software project, start by comparing the various types of frameworks available. Some examples of Python frameworks are Django, Flask, CherryPy, Bottle, Dash, Falcon, and AIOHTTP.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Front-end Technologies:&lt;/strong&gt; If you believe that being a Python developer means simply working with back-end technologies, you may be going wrong. A Python developer is sometimes required to work with front-end technologies to guarantee that the client-side matches the server side. &lt;/p&gt;

&lt;p&gt;In a company context, this would frequently involve the Project Managers, UI/UX team, and SCRUM Masters to improve workflow synchronization. Working on the front-end provides you with a clear image of the application's design as well as its functionality. &lt;/p&gt;

&lt;p&gt;However, just because you don't have these responsibilities doesn't mean you shouldn't concentrate on your front-end programming skills. A working knowledge of a few front-end technologies such as HTML, CSS, JavaScript, and AngularJs will be useful. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Analytical Skills:&lt;/strong&gt; Python is all about data science analysis. Analytical skills are essential for becoming a good Python coder. Good analytical skills allow you to create better websites and applications. The platform's sophistication is entirely dependent on how well the programmer applied analytical logic to the code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Artificial Intelligence (AI) and Machine Learning (ML):&lt;/strong&gt; There is no way to avoid Artificial Intelligence and Machine Learning in today's world. Even simple web apps can benefit from these cutting-edge technologies. This is especially true if you intend to use Python in the context of data science, where you may be working with neural networks, data visualization, data analysis, and data collecting. &lt;/p&gt;

&lt;p&gt;To truly master AI/Machine Learning with Python, you must first grasp Machine Learning Algorithms (a branch of AI that tries to develop systems that can learn from data patterns automatically).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Version Control:&lt;/strong&gt; Several updates and versions occur during the development phase of any software project built in Python code or other programming languages. Version control allows for the complete traceability of even minor changes. It becomes really useful when working on a project with other developers.  &lt;/p&gt;

&lt;p&gt;You'll come across keywords like "push", "commit," "pull," and "fork" while learning version control, all of which link to the core principals that enable version control. Remember that this will be the second most needed tool after your IDE or code editor. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Object Relational Mappers:&lt;/strong&gt; &lt;a href="https://en.wikipedia.org/wiki/Object%E2%80%93relational_mapping"&gt;ORMs&lt;/a&gt; provide a high-level abstraction over a relational database, allowing a developer to create, read, update, and delete data and schemas in their database using Python code rather than writing SQL queries.&lt;/p&gt;

&lt;p&gt;Instead of writing long SQL statements or stored procedures, developers can work with a database using the programming language they are most familiar with. The option to write Python code instead of SQL can help to speed up web application development, particularly at the start of a project. Some examples of popular ORMs are Prisma2, Sequelize, and TypeORM.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Python libraries:&lt;/strong&gt; Libraries are an excellent way for developers to share useful code. Coders in their working environment either create libraries or use open-source libraries created by other developers. &lt;/p&gt;

&lt;p&gt;There is a very high possibility that everything you intend to develop has already been developed and is ready for use, with proper documentation. Some examples of Python libraries that are popular among developers are Tensorflow, Pyinstaller, FastApi, Faker, and Pillow. &lt;/p&gt;

&lt;p&gt;Since you'll be using these packages virtually daily, a knowledgeable Python developer must be capable of finding, understanding, and correctly implementing packages offered by the Python ecosystem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Troubleshooting abilities:&lt;/strong&gt; To be a successful Python developer, you must be able to troubleshoot because problems might occur when you least expect them, and most people do not have the solution at hand.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Communication Skills:&lt;/strong&gt; Python developers must convey technical aspects to non-technical staff members in order to do their work properly. As a result, excellent communication skills are required for becoming a successful developer, regardless of the job at hand. &lt;/p&gt;

&lt;p&gt;Listening carefully to what other people are saying is one of the most useful talents you can nurture if you want to become a successful Python developer since it allows you to grasp each person's unique viewpoint on problems and ways that they might be able to address them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Salary of a Python Developer based on Company and Location
&lt;/h2&gt;

&lt;p&gt;If you have hands-on practice with Python then some of the high-paying jobs are waiting for you. There will be plenty of opportunities for you whether you are a beginner or an experienced Python developer.&lt;/p&gt;

&lt;p&gt;Some companies have to develop their best work using the Python programming language. This shows the importance of the employer/company in determining the salary of a Python developer. &lt;/p&gt;

&lt;p&gt;The below table provides insights of the best Python developer recruiting companies and the average salary they provide to their developers.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Company Name&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Average Pay&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Amazon Inc&lt;/td&gt;
&lt;td&gt;₹ 1,241,000/year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Accenture&lt;/td&gt;
&lt;td&gt;₹ 5,64,105/year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Capgemini&lt;/td&gt;
&lt;td&gt;₹ 5,25,924/year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cognizant Technology Solutions&lt;/td&gt;
&lt;td&gt;₹ 5,55,014/year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Infosys&lt;/td&gt;
&lt;td&gt;₹ 4,25,742/year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tata Consultancy Services&lt;/td&gt;
&lt;td&gt;₹ 4,30,837/year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tech Mahindra&lt;/td&gt;
&lt;td&gt;₹ 5,29,000/year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wipro Technologies&lt;/td&gt;
&lt;td&gt;₹ 4,00,000/year&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Have you ever wondered why locations like Banglore, New Delhi, Gurgaon, and Pune are so densely populated with working people?&lt;/p&gt;

&lt;p&gt;This is because these are some of the places with a higher rate of career opportunities than Jaipur or Ranchi. Every place has its unique set of operating conditions and requirements. As a result, location is an important factor in determining the salary structure of a python developer.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Location&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Average Salary&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;New Delhi&lt;/td&gt;
&lt;td&gt;₹ 605,786/year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Jaipur, Rajasthan&lt;/td&gt;
&lt;td&gt;₹ 420,000/year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gurgaon, Haryana&lt;/td&gt;
&lt;td&gt;₹ 651,000/year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bangalore&lt;/td&gt;
&lt;td&gt;₹ 726,709/year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mumbai, Maharashtra&lt;/td&gt;
&lt;td&gt;₹ 504,398/year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Chennai, Tamil Nadu&lt;/td&gt;
&lt;td&gt;₹ 501,493/year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pune, Maharashtra&lt;/td&gt;
&lt;td&gt;₹ 520,725/year&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions (FAQs)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Is Python developer a good career?
&lt;/h3&gt;

&lt;p&gt;Yes, working as a Python developer is currently a good career. Python developers are in great demand not just because Python is a popular and extensively used language, but also because Python has become a solution in many various fields. &lt;/p&gt;

&lt;p&gt;From web applications to machine learning and data science. Also, Python is continuously expanding especially in a startup environment where time and money are generally limited. &lt;/p&gt;

&lt;h3&gt;
  
  
  What career opportunities can you get with Python?
&lt;/h3&gt;

&lt;p&gt;Python being a high-level object-oriented programming language is high in demand. Python can open the door to various job opportunities. Some of which are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python Developer&lt;/li&gt;
&lt;li&gt;Data Scientist&lt;/li&gt;
&lt;li&gt;Quality Assurance Engineer&lt;/li&gt;
&lt;li&gt;Data Analyst&lt;/li&gt;
&lt;li&gt;Machine learning engineer&lt;/li&gt;
&lt;li&gt;Product Manager&lt;/li&gt;
&lt;li&gt;Educator &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Which language to choose Python or Java?
&lt;/h3&gt;

&lt;p&gt;Python is simpler and easier to understand, while Java is faster and more portable. Both programming languages are well-established, platform-independent, and part of a large community. Both Python and Java programming languages have benefits and drawbacks. &lt;/p&gt;

&lt;p&gt;It is entirely up to you to choose the language for your project. Python is dynamically coded, whereas Java is statically coded. Java works on the Write Once, Use Anywhere (WORA) principle, whereas Python requires a Python compiler to write and run code. &lt;/p&gt;

&lt;p&gt;Python's industrial demand may overtake Java's in the next few days. This does not imply that Java will go out of trend ( both can co-exist). At the end, both programming languages are good. A programmer can easily code in both languages, depending on his or her choice.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does Python have a future?
&lt;/h3&gt;

&lt;p&gt;Python is a user-friendly cross-platform programming language. It is now one of the most popular programming languages. The good news is that it is still evolving, and demand for Python developers in every field is growing. &lt;/p&gt;

&lt;p&gt;This prominence and acceptance by millions of people demonstrates its worth and ensures that the Python programming language has a bright future. It will maintain its lead over the other coding languages. &lt;/p&gt;

&lt;p&gt;So, whether you're thinking of studying it or using it for a software development project, this can be a good option.&lt;/p&gt;

&lt;p&gt;Thanks for reading till here, hope this article was helpful in choosing the right career, do follow for more. &amp;lt;3&lt;/p&gt;

</description>
      <category>python</category>
      <category>beginners</category>
      <category>programming</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Best Career Path for a Computer Science Graduate</title>
      <dc:creator>Sarang S. Babu</dc:creator>
      <pubDate>Tue, 24 Jan 2023 18:37:33 +0000</pubDate>
      <link>https://dev.to/techiestark/best-career-path-for-a-computer-science-graduate-5hdk</link>
      <guid>https://dev.to/techiestark/best-career-path-for-a-computer-science-graduate-5hdk</guid>
      <description>&lt;p&gt;Computer science engineers are in high demand due to the growing reliance on technology in every aspect of our lives. From software development to data science, there are a variety of career paths available for computer science engineers. &lt;/p&gt;

&lt;p&gt;However, with so many options, it can be difficult to know where to start and which career path is best suited for you. In this article, we will explore some of the most popular career paths for computer science engineers and provide tips on how to choose the best path for you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Software Development
&lt;/h2&gt;

&lt;p&gt;One of the most popular career paths for computer science engineers is software development. As a &lt;a href="https://www.computerscience.org/careers/software-developer/"&gt;software developer&lt;/a&gt;, you will be responsible for designing, developing, and maintaining software systems. This can include everything from mobile apps and websites to large-scale enterprise systems. &lt;/p&gt;

&lt;p&gt;Software development requires a deep understanding of computer science principles, as well as the ability to think creatively and solve problems. It's also a field that is constantly evolving, with new programming languages and tools being developed all the time, so there's always something new to learn.&lt;/p&gt;

&lt;h2&gt;
  
  
  Data Science
&lt;/h2&gt;

&lt;p&gt;Data science is another popular career path for computer science engineers. This field combines computer science, statistics, and domain knowledge to extract insights and knowledge from data. Data scientists use machine learning and statistical models to analyze large data sets, identify patterns, and make predictions. &lt;/p&gt;

&lt;p&gt;This field is particularly in demand as organizations are looking to gain insights from their data to improve decision-making and gain a competitive advantage. Data scientists need to have strong analytical and problem-solving skills, as well as a solid understanding of programming languages like Python and R.&lt;/p&gt;

&lt;h2&gt;
  
  
  Artificial Intelligence/Machine Learning
&lt;/h2&gt;

&lt;p&gt;Artificial Intelligence (AI) and Machine Learning (ML) are two of the most rapidly growing fields within computer science. As a computer science engineer in this field, you will be responsible for developing algorithms and statistical models that enable computers to learn and make predictions or decisions without explicit instructions. &lt;/p&gt;

&lt;p&gt;This can include everything from image recognition and natural language processing to self-driving cars and robots. AI and ML require a deep understanding of computer science and math, as well as the ability to think creatively and work with large data sets.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cloud Computing
&lt;/h2&gt;

&lt;p&gt;Cloud computing is another popular career path for computer science engineers. This field involves designing and managing cloud-based systems and infrastructure. As more and more organizations move their data and applications to the cloud, the demand for cloud computing experts is increasing. &lt;/p&gt;

&lt;p&gt;Cloud computing requires a strong understanding of computer networks and systems, as well as experience with cloud-based platforms like &lt;a href="https://aws.amazon.com/"&gt;Amazon Web Services&lt;/a&gt; and &lt;a href="https://azure.microsoft.com/en-in"&gt;Microsoft Azure&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cybersecurity
&lt;/h2&gt;

&lt;p&gt;Cybersecurity is a crucial field for computer science engineers. As cyber attacks become more sophisticated and frequent, organizations are in need of experts who can protect their systems and networks. &lt;/p&gt;

&lt;p&gt;As a cybersecurity expert, you will be responsible for identifying and mitigating security threats, implementing security protocols, and developing security software. Cybersecurity requires a solid understanding of computer science and networks, as well as the ability to think critically and stay up-to-date on the latest threats.&lt;/p&gt;

&lt;h2&gt;
  
  
  Network and System Administration
&lt;/h2&gt;

&lt;p&gt;Network and system administration is another important career path for computer science engineers. This field involves designing, implementing, and maintaining computer networks and systems. Network and system administrators are responsible for ensuring that networks and systems are running smoothly and efficiently.&lt;/p&gt;

&lt;p&gt;This can include everything from configuring routers and switches to troubleshooting performance issues. Network and system administration requires a solid understanding of computer networks and systems, as well as the ability to think critically and troubleshoot problems.&lt;/p&gt;

&lt;p&gt;Choosing the best career path for you&lt;/p&gt;

&lt;p&gt;Choosing the best career path for you can be a challenging task. It's important to consider your interests and strengths, as well as the current job&lt;/p&gt;

</description>
      <category>computerscience</category>
      <category>career</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Queue Data Structure and Implementation in Python</title>
      <dc:creator>Sarang S. Babu</dc:creator>
      <pubDate>Sun, 18 Dec 2022 19:15:04 +0000</pubDate>
      <link>https://dev.to/techiestark/queue-data-structure-and-implementation-in-python-1a22</link>
      <guid>https://dev.to/techiestark/queue-data-structure-and-implementation-in-python-1a22</guid>
      <description>&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;Queue is a linear data structure through which we follow elements are accessed from the both ends and it  follows the FIFO (first in first out) principle. &lt;/p&gt;

&lt;p&gt;Let us understand the first in first out principle (FIFO) with the help of an example, suppose we are standing in a assembly line in the school the student who first enters in the assembly queue goes out from the queue first. &lt;/p&gt;

&lt;p&gt;The side at which the elements are inserted are known as the rear while the side at which the elements are deleted are known as the front.&lt;/p&gt;

&lt;h2&gt;
  
  
  Scope of the article
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;In this article we will learn read about the different operation we can perform in the queue.&lt;/li&gt;
&lt;li&gt;We will also read about the different types of queue with its implementation in python.&lt;/li&gt;
&lt;li&gt;We will also read about the applications of queue.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Now since we already know that the queue follows the first in first out (&lt;a href="https://www.investopedia.com/terms/f/fifo.asp" rel="noopener noreferrer"&gt;FIFO&lt;/a&gt;) principle and is widely used by us in our daily life.&lt;/p&gt;

&lt;p&gt;Now let us read about the different operation we can perform in a queue:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Enqueue&lt;/li&gt;
&lt;li&gt;Dequeue&lt;/li&gt;
&lt;li&gt;Isempty&lt;/li&gt;
&lt;li&gt;Isfull&lt;/li&gt;
&lt;li&gt;Peek&lt;/li&gt;
&lt;li&gt;Front&lt;/li&gt;
&lt;li&gt;Rear&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now let us read about each of these operations in details:&lt;/p&gt;

&lt;h3&gt;
  
  
  Enqueue:
&lt;/h3&gt;

&lt;p&gt;This operation is used to add elements in the &lt;a href="https://www.scaler.com/topics/data-structures/queue-in-data-structure/" rel="noopener noreferrer"&gt;queue&lt;/a&gt;. If in any condition the rear index excedes the size of the queue then we can say that the queue is full and then it is said to be in an overflow condition. &lt;/p&gt;

&lt;p&gt;The time complexity to perform this operation is O(1).&lt;/p&gt;

&lt;h3&gt;
  
  
  Dequeue:
&lt;/h3&gt;

&lt;p&gt;Since the enqueue operation is used to insert elements in the queue so the dequeue operation is used to delete the elements from the queue. If the rear points to -1 that is there are no more elements to delete then we can say that the queue is in the underflow condition. &lt;/p&gt;

&lt;p&gt;The time complexity to perform this operation is O(1). &lt;/p&gt;

&lt;h3&gt;
  
  
  Isempty:
&lt;/h3&gt;

&lt;p&gt;This operation in the queue is used to check whether the queue is empty or not.&lt;/p&gt;

&lt;h3&gt;
  
  
  Isfull:
&lt;/h3&gt;

&lt;p&gt;By the word isfull we can understand that this operation is used to check whether the queue is full or not.&lt;/p&gt;

&lt;h3&gt;
  
  
  Peek:
&lt;/h3&gt;

&lt;p&gt;This operation is used to find the peek element that is the first element of the queue without deleting. It returns the value of the first element without deleting it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Front:
&lt;/h3&gt;

&lt;p&gt;This operation is used to get the first element from the queue. The time complexity to perform this operation is O(1).&lt;/p&gt;

&lt;h3&gt;
  
  
  Rear:
&lt;/h3&gt;

&lt;p&gt;This operation is  used to  get the last element from the queue.  The time complexity to perform the rear operation in queue is O(1).&lt;/p&gt;

&lt;p&gt;Now since we have read about the operation which we can perform in the queue let us see the implementation of  queue in python:&lt;/p&gt;

&lt;h3&gt;
  
  
  Implementation of queue in python:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;queue1 = []
queue1.append('1')
queue1.append('4')
queue1.append('9')
queue1.append('87')
queue1.append('75')
print("Currently present elements present in the queue are :")
print(queue1)
print("The elements which are dequeued from the queue are ")
print(queue1.pop(0))
print(queue1.pop(0))
print(queue1.pop(0))
print(queue1.pop(0))
print("\nThe present elements present in the queue after removing the elements are :")
print(queue1)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Output
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Initial elements which are present in the queue are
['1', '4', '9', '87', '75']

Elements which are dequeued from the queue  are
1
4
9
87

The present elements presnent in the queue after removing the elements are :
['75']
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the above code firstly we have added five elements in the queue then using the pop operation we have deleted the first four elements which were present in the queue.&lt;/p&gt;

&lt;p&gt;Run the above code in your editor for a better and clear explanation.&lt;/p&gt;

&lt;p&gt;Now lets us see the queue implementation using list in python:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;queue=[]
def Enqueue():
    if len(queue)==size: 
        print("overflow!!Cannot insert more elements")
    else:
        element=input("Enter the element which u want to insert:")
        queue.append(element)
        queue.append(element)
        print("the above elements are added to the queue")
def dequeue():
    if not queue:
        print("Cannot delete more elements from the queue , Underflow condition!!!")
    else:
        removed_element=queue.pop(0)
        removed_element=queue.pop(0)
        print("The removed element from the queue are!!:",removed_element)
def display():
    print(queue)
    size=int(input("Enter the size of Queue which u want :"))
    while True:
        print("Select the Operation of your choices:1.Add elements in the queue 2.Delete elements from the queue 3. Display the current elenents from the queue 4. Exit from the queue ")
        choice=int(input())
        if choice==1:
            Enqueue()
        elif choice==2:
            dequeue()
        elif choice==3:
            display()
        elif choice==4:
            break
        else:
            print("Invalid Option! enter any other option")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the above code using list in python we have implemented three operations that is enqueue, dequeue, display in a queue. We have created seperate functions for each of them. &lt;/p&gt;

&lt;p&gt;Run the code in your editor for a better and clear explanation.&lt;/p&gt;

&lt;p&gt;Now lets us read about the types of queue:&lt;/p&gt;

&lt;h2&gt;
  
  
  Types of queues:
&lt;/h2&gt;

&lt;p&gt;They are mainly four type of queues in python. They are as follows:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Simple Queue&lt;/li&gt;
&lt;li&gt;Circular Queue&lt;/li&gt;
&lt;li&gt;Priority Queue&lt;/li&gt;
&lt;li&gt;Double Ended Queue&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now let us read about each of them in details:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Simple queue
&lt;/h3&gt;

&lt;p&gt;The simple queue is the normal queue in which the insertion and deletion of elements follow the FIFO(first in first out) principle. &lt;/p&gt;

&lt;p&gt;There are mainly disadvantages of using the simple queue that is it the elements which enter first , are removed first hence suppose we have a queue of 10 elements if we delete all the 8 elements and only 2 are left then also we cannot add elements . &lt;/p&gt;

&lt;h3&gt;
  
  
  2. Circular Queue:
&lt;/h3&gt;

&lt;p&gt;In this queue the last node is connected to the first element of the queue , this queue solves the problem of the simple queue that is if we want to add elements in the starting and empty space is present then we can directly add elements to the queue.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Priority Queue
&lt;/h3&gt;

&lt;p&gt;In this the elements of the queue are arranged according to priority. The elements with high  priority are arranged according to the FIFO (first in first out) principle. &lt;/p&gt;

&lt;h3&gt;
  
  
  4. Deque
&lt;/h3&gt;

&lt;p&gt;In this type of queue we get a benefit that we can insert as well as delete elements from both sides of the queue either from the rear or front ends. A good example of a string is a no whose reverse is similar to its original. &lt;/p&gt;

&lt;h2&gt;
  
  
  Application of queue in python:
&lt;/h2&gt;

&lt;p&gt;Queue is used by in real word too like suppose we are standing in a assembly line in the school the student who first enters in the assembly queue goes out from the queue first. Queues are also used in cd players. &lt;/p&gt;

&lt;p&gt;And is also used in the famous social media platform, &lt;a href="https://www.whatsapp.com/" rel="noopener noreferrer"&gt;Whatsapp&lt;/a&gt;. Queues are also mainly used in scheduling algorithms. These are few applications of queue which is used by us in our daily life.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Queue follows the first in first out principle and is very useful in our day to day life,&lt;/li&gt;
&lt;li&gt;Queues are used to implement various Cpu scheduling algorithms.&lt;/li&gt;
&lt;li&gt;In this article we have studied abou the different operations of queue with examples.&lt;/li&gt;
&lt;li&gt;We have also read about the types of queue with their uses in this article.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>kubernetes</category>
      <category>devops</category>
      <category>opensource</category>
    </item>
    <item>
      <title>What is SQL Injection and How to prevent it?</title>
      <dc:creator>Sarang S. Babu</dc:creator>
      <pubDate>Wed, 30 Nov 2022 13:41:43 +0000</pubDate>
      <link>https://dev.to/techiestark/what-is-sql-injection-and-how-to-prevent-it-62g</link>
      <guid>https://dev.to/techiestark/what-is-sql-injection-and-how-to-prevent-it-62g</guid>
      <description>&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;SQL, or Structured Query Language, is a database management and manipulation language that has progressively gained recognition in many open-source and commercial databases. &lt;/p&gt;

&lt;p&gt;As a result, many hackers use the SQL Injection attack technique, which is one of the most common internet hacking strategies. &lt;/p&gt;

&lt;p&gt;SQL injection, often known as SQLI, is a typical vector attack that employs malicious SQL code to manipulate backend databases in order to access information that was not intended to be displayed. &lt;/p&gt;

&lt;p&gt;This information may include sensitive company data, user lists, or confidential consumer information. &lt;/p&gt;

&lt;p&gt;In this article, we will gain deep knowledge of SQL injection, the types of SQL injection, and how to prevent SQL injections.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is SQL Injection?
&lt;/h2&gt;

&lt;p&gt;SQL Injection (SQLi) is a kind of injection attack that allows malicious SQL commands to be executed. These statements operate a database server that is hidden behind a web application. &lt;/p&gt;

&lt;p&gt;SQL Injection vulnerabilities allow attackers to bypass application security protections. &lt;/p&gt;

&lt;p&gt;They can bypass the authorization and authentication of a web page or web application and access the complete content of the SQL database. SQL Injection can also be used to add, alter, and delete records in the database.&lt;/p&gt;

&lt;p&gt;Any website or web application that uses a &lt;a href="https://azure.microsoft.com/en-in/products/azure-sql/database/" rel="noopener noreferrer"&gt;SQL database&lt;/a&gt;, such as Oracle, MySQL, SQL Server, or others, may be vulnerable to SQL Injection. Criminals may use it to get illegal access to your sensitive data, including customer information, personal information, trade secrets, intellectual property, and other information. &lt;/p&gt;

&lt;p&gt;SQL injection attacks are one of the most common, widespread, and deadly web application vulnerabilities. &lt;/p&gt;

&lt;h2&gt;
  
  
  How does SQL Injection work?
&lt;/h2&gt;

&lt;p&gt;SQL injections are often carried out through web pages or application input. Input forms are frequently encountered in features such as form fields, search boxes, and URL parameters.&lt;/p&gt;

&lt;p&gt;In order to carry out a SQL injection attack, bad actors must first find vulnerabilities in a web page or application. Attackers develop harmful payloads and submit their input content to execute malicious commands after discovering a target.&lt;/p&gt;

&lt;p&gt;In certain circumstances, bad actors may simply use an automated tool to do an SQLi on their behalf—all they need is the URL of the target website to collect stolen data from the victim.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example of SQL injection
&lt;/h2&gt;

&lt;p&gt;Let's use two database tables created &lt;a href="https://www.scaler.com/topics/sql/create-table-in-sql/" rel="noopener noreferrer"&gt;using SQL&lt;/a&gt; for this SQL injection example: Users and Contacts. The Users table will have as few as three fields: ID, username, and password. &lt;/p&gt;

&lt;p&gt;More information about the users may be found in the Contacts database, which includes UserID, FirstName, LastName, Email, Address1, payment card number, and security code.&lt;/p&gt;

&lt;p&gt;The Users table contains login information such as:&lt;br&gt;
1) kishu, P@$$w0rd&lt;br&gt;
2) sarka, 18feb2001&lt;br&gt;
3) rnishant, $iamperfect$&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Note: Passwords should never be saved in cleartext and should always be hashed and salted when stored in a database.&lt;br&gt;
*&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;When a user wishes to log in, they will navigate to the login page and enter their username and password. &lt;/p&gt;

&lt;p&gt;This data is then delivered to the website, which creates a SQL query and sends it to the database server. As an example, consider the following query:&lt;/p&gt;

&lt;p&gt;Select ID from Users where username=’kishu’ and password=’P@$$w0rd’&lt;/p&gt;

&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/SQL" rel="noopener noreferrer"&gt;SQL&lt;/a&gt; then performs a true or false comparison for each row that is requested by the query. In our example, the query instructs the database to search the Users table and provide the ID value for each record where the username is "kishu" and the password is "P@$$w0rd". &lt;/p&gt;

&lt;p&gt;Often, the website will next check to see what the database server returns and if it is a number. In our situation, the webserver would return a 1 and allow the user to proceed past the login screen.&lt;/p&gt;

&lt;p&gt;But what if we want to be malicious with it? We can fool the database server into thinking we have successfully authenticated since it conducts the true-or-false check. &lt;/p&gt;

&lt;p&gt;We may accomplish this by appending an OR to the password. If we use 'x' or 1=1 as our password, we'll get a new SQL query that looks like this:&lt;/p&gt;

&lt;p&gt;Select ID from Users where username=’kishu’ and password=’x’ or 1=1&lt;/p&gt;

&lt;p&gt;This will work for us since the database server will check the second condition if x is not kishu's password. Is 1 equal to 1 if x is not kishu's password? &lt;/p&gt;

&lt;p&gt;Yes, it does! The ID is returned to the program, and the user is successfully authenticated.&lt;/p&gt;

&lt;p&gt;This does not have to be a 1=1 condition. Any two equal values, such as 99=99, 426=426, or simply a=a, will work.&lt;/p&gt;

&lt;p&gt;If a web page can display data, it may also be allowed to print more information on the screen. We can attempt to obtain the data by chaining two SQL calls together. &lt;/p&gt;

&lt;p&gt;In addition to our 'or 1=1' expression, we can add a second statement such as UNION SELECT LastName, credit card number, and security code from Contacts. &lt;/p&gt;

&lt;p&gt;Extra clauses like this may require additional work, but the ultimate purpose of a SQL injection attack is data access.&lt;/p&gt;

&lt;p&gt;Another way for blind SQL injection, in which no data is returned to the screen, is to insert additional hints. We can put the server to sleep using a condition similar to our "or 1=1" condition. We can add "or sleep(10)" and this will appear to perform what we want. &lt;/p&gt;

&lt;p&gt;It will instruct the database server to take a 10-second nap, and all responses will be delayed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Types of SQL Injection
&lt;/h2&gt;

&lt;p&gt;Injections were ranked the number one threat to online application security in the OWASP Top 10, and SQL injection vulnerabilities can be attacked in a variety of ways.&lt;/p&gt;

&lt;p&gt;SQL injections are commonly performed by executing commands on the database server, requesting data based on errors, or interfering with query logic.&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%2Fa50c58hruapih0ehxck5.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%2Fa50c58hruapih0ehxck5.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In-band SQL injection&lt;/strong&gt; - It is a kind of SQL injection in which the attacker receives the result as a direct response over the same communication channel. &lt;/p&gt;

&lt;p&gt;For example, if the attacker attempts the attack manually in a web browser, the results will be shown in the same web browser. In-band SQL injection is also known as classic SQL injection.&lt;/p&gt;

&lt;p&gt;In-band SQL injections are classified into two types: Error-based SQL injection and Union-based SQL injection.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Error-based SQL injection&lt;/strong&gt; - In an error-based SQL injection, attackers take advantage of database errors caused by unsanitized inputs on a web page or application. &lt;/p&gt;

&lt;p&gt;During an attack, this technique uses error messages to return complete query results and disclose secret database information. &lt;/p&gt;

&lt;p&gt;Using the error message, you can determine what database it uses, the server version where the handlers are stored, etc.&lt;/p&gt;

&lt;p&gt;This method can also be used to determine whether a website or online application is vulnerable and to get extra information in order to reconstruct malicious queries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Union-based SQL injection&lt;/strong&gt; - This is the most common type of SQL injection used by attackers. This injection technique permits bad actors to take data from the database by expanding the results of the original query. &lt;/p&gt;

&lt;p&gt;It employs the &lt;a href="https://learn.microsoft.com/en-us/sql/t-sql/language-elements/set-operators-union-transact-sql" rel="noopener noreferrer"&gt;UNION SQL operator&lt;/a&gt; to combine the results of two or more SELECT queries created by the database into a single result, which is then returned as part of the response. &lt;/p&gt;

&lt;p&gt;You can create your searches within the URL or combine multiple statements within the input fields and try to get a response.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Blind SQL injection&lt;/strong&gt; - In this injection, the data is not transferred via the web application. The attacker cannot see the result of an in-band attack. &lt;/p&gt;

&lt;p&gt;Blind SQL injections are typically more sophisticated and difficult to execute than other types of injections since they occur when generic error signals are received from the target.&lt;/p&gt;

&lt;p&gt;Blind SQL injections differ from conventional SQL injections in the way they retrieve information from the database. &lt;/p&gt;

&lt;p&gt;When used in conjunction with time-based attacks, bad actors query the database for true or false queries, then decide the answer based on the response, as well as the time it takes to obtain a server response.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Boolean-based SQL injection&lt;/strong&gt; - In this injection, the attacker will send a SQL query to the database, instructing it to return a different result based on whether the query returns True or False. &lt;/p&gt;

&lt;p&gt;This kind of attack replaces the query's logic and criteria with its own. It is frequently used in permission or authentication queries to trick the database into thinking they have elevated access or the correct credentials.&lt;/p&gt;

&lt;p&gt;Boolean-based SQL injections are also employed in blind SQL injections, which extract data from the database by elimination. &lt;/p&gt;

&lt;p&gt;Attackers can determine what data is saved based on the result of the operation by sending a large number of queries, each with a slightly different condition than the previous ones.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Time-based SQL injection&lt;/strong&gt; - Time-based SQL injections are frequently used to determine the presence of vulnerabilities in an online application or website, as well as in conjunction with Boolean-based techniques during Blind SQL injections.&lt;/p&gt;

&lt;p&gt;In this injection, the attacker sends a SQL query to the database, causing the database to wait for a set period of time before sharing the result. &lt;/p&gt;

&lt;p&gt;The attacker can use the response time to determine whether a query is True or False.&lt;/p&gt;

&lt;p&gt;Bad actors can easily read the text as it is returned during a normal SQL injection. &lt;/p&gt;

&lt;p&gt;However, when attackers are unable to get information from a database server, they frequently switch to time-based SQL injections to achieve their goals. This is accomplished by employing activities that take a long time to complete—often many seconds.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to prevent SQL injection?
&lt;/h2&gt;

&lt;p&gt;Attackers commonly target websites with known vulnerabilities. SQL injections during targeted attacks are also commonly caused by unknown, unpatched, or zero-day vulnerabilities.&lt;/p&gt;

&lt;p&gt;The simplest strategy to defend your website from SQL injections is to maintain all third-party software and components up to date. However, there are many techniques available to assist prevent SQL injection vulnerabilities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1) Use Prepared Statements with Parameterized Queries&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Prepared statements are used to ensure that no dynamic variables in a query can escape their location. The core query is defined first, followed by the arguments and their types. &lt;/p&gt;

&lt;p&gt;Since the query knows what form of data is expected, such as a string or a number, they know exactly how to include it in the query without causing issues.&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%2F2c1xosqrf17slx011vvo.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%2F2c1xosqrf17slx011vvo.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the above example, even if the login or password variables try to escape their query, the prepared statements effectively escape their characters to prevent unexpected behavior or SQLi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) Make use of stored procedures&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Stored procedures are common SQL operations that are saved on the database and differ only in their arguments. Since stored procedures cannot be dynamically inserted within queries, they make it far more difficult for attackers to execute malicious SQL.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3) Object-relational mapping&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most development teams choose to use Object Relational Mapping frameworks to more smoothly transfer SQL result sets into code objects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4) Allowlist input validation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As a general guideline, do not rely on user-submitted data. Allowlist validation can be used to compare user input to a predefined set of known, approved, and defined input. &lt;/p&gt;

&lt;p&gt;When data is received that does not match the set values, it is discarded, thus safeguarding the application or website against malicious SQL injections in the process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5) Implement the Principle of Least Privilege&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Principle of Least Privilege is a computer science principle that improves access limits to your website in order to reduce security risks.&lt;/p&gt;

&lt;p&gt;To put this principle into practice and protect against SQL injections, do the following:&lt;/p&gt;

&lt;p&gt;To accomplish an action, use the least amount of rights available on your system.&lt;/p&gt;

&lt;p&gt;Allow privileges only for the time that the action is necessary.&lt;/p&gt;

&lt;p&gt;Do not grant admin-level access to application accounts.&lt;br&gt;
Reduce the rights granted to each database account in your environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6) Remove User-supplied Input&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Bad actors can just read the text as it is returned during a typical SQL injection. When attackers are unable to get information from a database server, they frequently switch to time-based SQL injections to achieve their objectives. &lt;/p&gt;

&lt;p&gt;This is accomplished by employing activities that take a long time to complete—often many seconds.&lt;/p&gt;

&lt;p&gt;Time-based SQL injections are frequently used to determine the presence of vulnerabilities in an online application or website, as well as in conjunction with Boolean-based techniques during Blind SQL injections.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7) Make use of a Web Application Firewall&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A web application firewall can protect against generic SQL injections. Web application firewalls can detect and prevent SQL injections by blocking potentially dangerous web requests. &lt;/p&gt;

&lt;p&gt;For example, if you detect a SQL injection vulnerability in open-source code, using an Acunetix scan, you may not be able to fix it right away but in such cases, you can utilize a web application firewall to temporarily clean your input.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to prevent SQL injection - General Guidelines
&lt;/h2&gt;

&lt;p&gt;SQL Injection vulnerabilities are difficult to avoid. Specific preventive strategies vary depending on the SQLi vulnerability subtype, the SQL database engine, and on the programming language. &lt;/p&gt;

&lt;p&gt;However, there are some broad strategic concepts you should adhere to keep your web application secure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1) Develop and maintain awareness&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To make your web application safe, everyone involved in its development must be aware of the risks of SQL Injections. All of your developers, QA employees, DevOps, and SysAdmins should be provided with appropriate security training. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) Do not rely on any user input&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Consider all user input to be untrustworthy. Any user input used in a SQL query increases the danger of SQL Injection. Treat input from authenticated and/or internal users similarly to public input.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3) Use whitelists rather than blacklists&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Do not use blacklists to filter user input. A skilled attacker will always find a way around your blacklist. If possible, only utilize strict whitelists to check and filter user input.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4) Adopt the latest technologies&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;SQLi protection is not available in older web development technologies. Use the most recent version of the development environment and language, as well as any latest connected technologies. For example, use PDO instead of MySQLi in PHP.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5) Employ verified mechanisms&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Don't try to create SQLi security from scratch. Most recent development technologies include SQLi protection mechanisms. Instead of reinventing the wheel, use such mechanisms. For example, use parameterized queries or stored procedures.&lt;/p&gt;

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

&lt;p&gt;SQL injection (SQLi) is the manipulation of SQL code to gain access to protected resources, such as sensitive data, or to execute malicious SQL commands. &lt;/p&gt;

&lt;p&gt;When used correctly, a SQL injection can disclose intellectual property, client data, or a private company's administration credentials. &lt;/p&gt;

&lt;p&gt;SQL injection attacks are one of the most common, widespread, and damaging vulnerabilities in web applications. &lt;/p&gt;

&lt;p&gt;This attack can harm any website or web app that uses a SQL database, such as MySQL, Oracle, SQL Server, or any other.&lt;/p&gt;

&lt;p&gt;Some ways to prevent SQL injection include using prepared statements with parameterized queries, making use of stored procedures and web application firewalls, and many more.&lt;/p&gt;

&lt;p&gt;Thanks for reading till here, hope you have learnt something new today :). You can find more article by me here - &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/techiestark/procedural-language-vs-object-oriented-language-key-differences-1e20"&gt;Procedural Language vs. Object-Oriented Language - Key Differences&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/techiestark/dml-ddl-dcl-and-tcl-commands-in-sql-explained-59c6"&gt;DML, DDL, DCL, and TCL commands in SQL Explained&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>sql</category>
      <category>cybersecurity</category>
      <category>database</category>
      <category>security</category>
    </item>
    <item>
      <title>DML, DDL, DCL, and TCL commands in SQL Explained</title>
      <dc:creator>Sarang S. Babu</dc:creator>
      <pubDate>Mon, 28 Nov 2022 10:02:35 +0000</pubDate>
      <link>https://dev.to/techiestark/dml-ddl-dcl-and-tcl-commands-in-sql-explained-59c6</link>
      <guid>https://dev.to/techiestark/dml-ddl-dcl-and-tcl-commands-in-sql-explained-59c6</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;SQL stands for "Structured Query Language." It is a standard computer language used to manipulate, store, and retrieve data from relational databases(RDBMS). &lt;/p&gt;

&lt;p&gt;Structured Query Language is the standard database language used by all Relational Database Management Systems (RDMS), including MySQL, MS Access, Oracle, Sybase, Informix, Postgres, and SQL Server. SQL performs the required tasks using commands such as Create, Drop, Insert, etc. &lt;/p&gt;

&lt;p&gt;These SQL commands are divided into four categories:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Data Definition Language (DDL)&lt;/li&gt;
&lt;li&gt;Data Query Language (DQL)&lt;/li&gt;
&lt;li&gt;Data Manipulation Language (DML)&lt;/li&gt;
&lt;li&gt;Data Control Language (DCL)&lt;/li&gt;
&lt;li&gt;Transaction Control Language (TCL)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Let's learn these commands one by one in brief.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fpbiig6z7stcdj4xumh0v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fpbiig6z7stcdj4xumh0v.png" alt="Image description" width="800" height="540"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note:- &lt;a href="https://www.oracle.com/in/database/what-is-a-relational-database/" rel="noopener noreferrer"&gt;RDBMS&lt;/a&gt; stands for Relational DataBase Management Systems. It's a program that allows us to build, delete, and update relational databases. A relational database is a database system that retrieves and stores data in the form of rows and columns in a tabular format. It is a subset of the DBMS designed by E.F. Codd in the 1970s.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Data Definition Language (DDL)
&lt;/h2&gt;

&lt;p&gt;Data Definition Language or DDL commands in SQL are used to build and alter the database schema and its objects. In simple words, Data Definition Language(DDL) is a set of Structured Query Language commands used to create, update, and delete database structures but not data. &lt;/p&gt;

&lt;p&gt;The DDL commands deal with how data should be stored in the database. Generally, a general user shouldn't use these commands; instead, they should use an application to access the database. &lt;/p&gt;

&lt;p&gt;In SQL, there are five primarily used &lt;a href="https://www.scaler.com/topics/ddl-in-dbms/" rel="noopener noreferrer"&gt;DDL commands&lt;/a&gt;. These commands are listed below.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CREATE&lt;/td&gt;
&lt;td&gt;It is a DDL command that is used to create databases, tables, triggers, and other database objects.&lt;br&gt;&lt;br&gt;&lt;strong&gt;For Example&lt;/strong&gt;:- To create a database, we use the following command. &lt;br&gt;&lt;br&gt;CREATE DATABASE database_name;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DROP&lt;/td&gt;
&lt;td&gt;It is a DDL command that is used to destroy or remove database objects from a SQL database. This DDL command lets us quickly delete the entire table, view, or index from the database.&lt;br&gt;&lt;br&gt;&lt;strong&gt;For Example&lt;/strong&gt;:- To delete a table from the SQL database, we use the following command.&lt;br&gt;&lt;br&gt;DROP TABLE table_name;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ALTER&lt;/td&gt;
&lt;td&gt;It is a DDL command this is used for Modifying and renaming aspects of an existing database table. This command can also be used to add and drop constraints from the table.&lt;br&gt;&lt;br&gt;&lt;strong&gt;For Example&lt;/strong&gt;:- We use the following command to add a new field to the existing table.&lt;br&gt;&lt;br&gt;ALTER TABLE table_name ADD column_name column_definition;&lt;br&gt;&lt;br&gt;We use the following command to modify the column of the table:&lt;br&gt;&lt;br&gt;ALTER TABLE table_name MODIFY ( column_name column_datatype(size));&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TRUNCATE&lt;/td&gt;
&lt;td&gt;TRUNCATE is another DDL command that deletes or eliminates all records from a table. This command also deletes the space set aside for storing table records. &lt;br&gt;&lt;br&gt;The TRUNCATE command does not have a WHERE clause, similar to the DROP command.&lt;br&gt;&lt;br&gt;TRUNCATE is faster than both DROP and DELETE. After using this command, we cannot roll back the data, just like with the DROP command.&lt;br&gt;&lt;br&gt;&lt;strong&gt;For Example&lt;/strong&gt;:- We use the following command to delete the table.&lt;br&gt;&lt;br&gt;TRUNCATE TABLE table_name;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RENAME&lt;/td&gt;
&lt;td&gt;The DDL command RENAME is used to modify the name of a database table.&lt;br&gt;&lt;br&gt;&lt;strong&gt;For Example&lt;/strong&gt;:- We use the following command to rename the table.&lt;br&gt;&lt;br&gt;RENAME TABLE old_table_name TO new_table_name;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Data Query Language (DQL)
&lt;/h2&gt;

&lt;p&gt;Data Query Language or DQL command retrieves data from a database. The objective of the DQL Command is to obtain a schema relation based on the query given to it. It contains the &lt;a href="https://en.wikipedia.org/wiki/Select_(SQL)" rel="noopener noreferrer"&gt;SELECT command&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;With the help of this command, you can retrieve data from the database and manipulate it. When a SELECT command is executed on a table or tables, the result is compiled into a new temporary table, which is then displayed or received by the program, i.e., a front-end.&lt;/p&gt;

&lt;p&gt;Data Query Language contains only one command.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;SELECT&lt;/td&gt;
&lt;td&gt;In SQL, the SELECT command or statement is used to retrieve data records from a database table and present them in the form of a result set. It is typically seen as a DQL command, although it can also be regarded as DML.&lt;br&gt;&lt;br&gt;The basic syntax of the SELECT command is:&lt;br&gt;&lt;br&gt;SELECT column_name1,…&lt;br&gt;FROM table_name&lt;br&gt;WHERE condition_ expression;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Data Manipulation Language (DML)
&lt;/h2&gt;

&lt;p&gt;The Data Manipulation Language or DML commands in Structured Query Language modify the data in the SQL database. We can simply access, store, alter, update, and delete existing records in the database using DML commands. &lt;/p&gt;

&lt;p&gt;The three primarily used Data Manipulation Language (DML) commands in SQL are as follows.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;INSERT&lt;/td&gt;
&lt;td&gt;It is an important data manipulation (DML) command in Structured Query Language that allows users to insert data into database tables.&lt;br&gt;&lt;br&gt;Syntax:&lt;br&gt;&lt;br&gt;INSERT INTO table_name ( column-1,column-2, …. column-N)&lt;br&gt;VALUES (value-1, value-2, value-3, .... value-N);&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DELETE&lt;/td&gt;
&lt;td&gt;SQL users can delete one or more existing records from the database tables using the DELETE DML command.&lt;br&gt;&lt;br&gt;This Data Manipulation Language command does not delete the stored data permanently from the database. We combine the DELETE command with the WHERE clause to choose particular rows from the table.&lt;br&gt;&lt;br&gt;Syntax:&lt;br&gt;&lt;br&gt;DELETE FROM table_Name WHERE condition;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UPDATE&lt;/td&gt;
&lt;td&gt;This DML command is used to change the value of a column in a Structured Query Language Database table.&lt;br&gt;&lt;br&gt;Syntax:&lt;br&gt;&lt;br&gt;UPDATE table_name SET&lt;br&gt;[column_name_1= value_1, column_name_2 = value_2 ...column_nameN = valueN] WHERE [CONDITION];&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Data Control Language (DCL)
&lt;/h2&gt;

&lt;p&gt;Data Control Language or DCL is associated with the commands used in  Structured Query Language that permit users to access, alter or work on the different privileges to control the database. &lt;/p&gt;

&lt;p&gt;This command also allows the database owner to give access, revoke access, and change the given permissions as and when required. DCL is basically used for enforcing &lt;a href="https://www.ibm.com/in-en/topics/data-security" rel="noopener noreferrer"&gt;data security&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There are two DCL commands present in SQL:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Grant&lt;/td&gt;
&lt;td&gt;GRANT is a DCL command that grants (give access to) security privileges to specific database users. It is mostly used to restrict user access to INSERT, DELETE, UPDATE, SELECT, EXECUTE, ALTER, or to provide user data privileges.&lt;br&gt;&lt;br&gt;The basic syntax of the GRANT command is:&lt;br&gt;&lt;br&gt;GRANT  ON  TO &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Revoke&lt;/td&gt;
&lt;td&gt;REVOKE is a DCL command used to revoke given access granted via the GRANT command. It is mainly used to revert back to the time when no access was specified, i.e., withdrawing the permission that was authorized to carry out specific tasks.&lt;br&gt;&lt;br&gt;The basic syntax of the REVOKE command is:&lt;br&gt;&lt;br&gt;REVOKE  ON  FROM &lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Transaction Control Language (TCL)
&lt;/h2&gt;

&lt;p&gt;Transaction control language (TCL) commands are used to handle the transaction within the database. Transactions combine a collection of tasks into a single execution unit. &lt;/p&gt;

&lt;p&gt;Each transaction starts with some specific task and finishes when all of the tasks in the group are completed successfully. &lt;/p&gt;

&lt;p&gt;The transaction fails if any of the tasks fails. As a result, a transaction has only two outcomes, i.e., either success or failure. &lt;/p&gt;

&lt;p&gt;We use the following TCL commands to control the execution of a transaction:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;COMMIT&lt;/td&gt;
&lt;td&gt;It is a TCL command that is used to save the data permanently. Any DML command, such as -INSERT, DELETE, or UPDATE, can be rolled back if the data is not permanently stored. To be on the safe side, we use the COMMIT command.&lt;br&gt;&lt;br&gt;Basic Syntax:&lt;br&gt;&lt;br&gt;commit;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ROLLBACK&lt;/td&gt;
&lt;td&gt;The ROLLBACK command retrieves or restores data to the most recent savepoint or committed state. Suppose the data inserted, removed, or altered is incorrect for any reason.&lt;br&gt;&lt;br&gt;In that case, you can roll back the data to a specific savepoint, or if no savepoint is available, then the rollback is done from the last committed state.&lt;br&gt;&lt;br&gt;Basic Syntax:&lt;br&gt;&lt;br&gt;rollback&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SAVEPOINT&lt;/td&gt;
&lt;td&gt;This command temporarily saves data at a specific point so it can be rolled back to that point if required.&lt;br&gt;&lt;br&gt;Basic Syntax:&lt;br&gt;&lt;br&gt;savepoint A;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SET TRANSACTION&lt;/td&gt;
&lt;td&gt;This command specifies the transaction's characteristics.&lt;br&gt;&lt;br&gt;Basic Syntax:&lt;br&gt;&lt;br&gt;SET TRANSACTION [Read Write / Read Only];&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;SQL stands for "Structured Query Language." It is a standard computer language used to manipulate, store, and retrieve data from relational databases(RDBMS).&lt;/li&gt;
&lt;li&gt;The SQL commands are divided into four categories:&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Data Definition Language (DDL)&lt;/li&gt;
&lt;li&gt;Data Query Language (DQL)&lt;/li&gt;
&lt;li&gt;Data Manipulation Language (DML)&lt;/li&gt;
&lt;li&gt;Data Control Language (DCL)&lt;/li&gt;
&lt;li&gt;Transaction Control Language (TCL)&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Data Definition Language(DDL) is a set of Structured Query Language commands used to create, update, and delete database structures but not data. Some of the common DDL commands are: CREATE, ALTER, DROP and TRUNCATE.&lt;/li&gt;
&lt;li&gt;Data Query Language or DQL command retrieves data from a database. It only includes the SELECT command.&lt;/li&gt;
&lt;li&gt;The Data Manipulation Language or DML commands in Structured Query Language modify the data in the SQL database. Some of the common DDL commands are: INSERT, UPDATE, and DELETE.&lt;/li&gt;
&lt;li&gt;Data Control Language or DCL is associated with the commands used in  Structured Query Language that permit users to access, alter or work on the different privileges to control the database. The two common DCL commands are GRANT and REVOKE.&lt;/li&gt;
&lt;li&gt;Transaction control language (TCL) commands are used to handle the transaction within the database. Some of the common DDL commands are COMMIT, ROLLBACK, SAVEPOINT, and SET TRANSACTION.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>career</category>
      <category>learning</category>
      <category>flutter</category>
      <category>ai</category>
    </item>
    <item>
      <title>Procedural Language vs. Object-Oriented Language - Key Differences</title>
      <dc:creator>Sarang S. Babu</dc:creator>
      <pubDate>Wed, 09 Nov 2022 10:48:58 +0000</pubDate>
      <link>https://dev.to/techiestark/procedural-language-vs-object-oriented-language-key-differences-1e20</link>
      <guid>https://dev.to/techiestark/procedural-language-vs-object-oriented-language-key-differences-1e20</guid>
      <description>&lt;p&gt;In this article, we will be learning the key differences between procedural and object-oriented programming languages. If you are new to these terminologies, we will be covering them in this article so keep reading.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Procedural Programming?
&lt;/h2&gt;

&lt;p&gt;It is defined as a programming language that is inherited from structural programming and is dependent on the concept called the &lt;a href="https://www.ibm.com/docs/en/db2-for-zos/11?topic=procedure-languages-used-create-stored-procedures"&gt;procedures&lt;/a&gt;. It is also known as routines or subroutines, functions, or methods that comprises of series of computational steps that are to be done during the execution of the program. Any given procedure can be called out at any time during the execution of the program.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example of procedural programming
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;
void function1(){
   printf(“Hello”);
   printf(“World”);
}
int main()
{
   printf(“Hey”);
   function1();
   printf(“Welcome”);
   int n = 63;
   if(n &amp;gt; 0){
      printf(“The code is executed”);
   } else {
printf(“Number is less than 0”)
   }
   return 0;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The languages that are used in procedural programming are as follows:&lt;/p&gt;

&lt;p&gt;Fortran, COBOL, pascal, basic, and &lt;a href="https://www.scaler.com/topics/c/"&gt;C Language&lt;/a&gt; etc&lt;/p&gt;

&lt;h2&gt;
  
  
  Advantages of procedural programming
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;It has a simple, straightforward and intuitive way of writing a code and hence good for beginners.&lt;/li&gt;
&lt;li&gt;It is easy to track the flow of the procedural program and to understand how the objects are interacting with the functions and classes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Disadvantage of procedural programming
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The code is not reusable and hence the replication of code increases&lt;/li&gt;
&lt;li&gt;It is not easy to scale for complex and larger applications
Due to the visibility of the data, it is not secure &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What is Object-Oriented Programming?
&lt;/h2&gt;

&lt;p&gt;It is defined as a programming language that uses the concept of an object in programming. The object contains data which are in the form of attributes and the code is in the form of methods. &lt;/p&gt;

&lt;p&gt;The programs of computers are designed by using this concept of an object in an object-oriented programing language that it interacts with the real world. &lt;/p&gt;

&lt;p&gt;There are various types of object-oriented programming languages but the most used ones are class-based where objects are instances of a class and are determined by the type of the object.&lt;/p&gt;

&lt;p&gt;When the code is executed, it uses an appropriate class to make an object which is an instance of that class. That object will have state and access to all of the behavior defined by its class.&lt;/p&gt;

&lt;p&gt;State also known as an instance variable:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Each object, or instance of a class will have its own unique set of instance variables as defined in the class. &lt;/li&gt;
&lt;li&gt;Collectively, the values assigned to an object instances variables make up the object's state.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Example of object-oriented programming
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class Dog{
    constructor(name, birthday) {
        this.name = name;
        this.birthday = birthday;
    }

    //Declaring private variables
    attendance = 0;

    getAge() {
        //Getter
        return this.calcAge();
    }

    calcAge() {
        //calculate age using today's date and birthday
        return Date.now() - this.birthday;
    }

    bark() {
        return console.log("Woof");
    }

    updateAttendance() {
        //add a day to the dog's attendance days at the petsitters
        this.attendance++;
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Encapsulation of objects is done in an object-oriented programming language.&lt;/p&gt;

&lt;p&gt;If we want maintainability, flexibility, and extensibility our design must include encapsulation by&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Keep instance variables private&lt;/li&gt;
&lt;li&gt;Keeping the accessor method public&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The languages that are used in object-oriented programming are as follows:&lt;br&gt;
&lt;a href="https://www.scaler.com/topics/java/"&gt;Java&lt;/a&gt;, C++, Python, PHP, C#, JavaScript, Swift, etc.&lt;/p&gt;

&lt;p&gt;The principles of object-oriented programing are as follows:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Polymorphism&lt;/strong&gt; - it is defined as an ability to share multiple objects at the same name but having different structures or functionalities depending on the context. It is mostly observed in method overloading and overriding. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Inheritance&lt;/strong&gt; - it is the mechanism of serving one class from another. The class from which other classes are derived is called a superclass. The class which is derived from the superclass is called a subclass. The subclass is a specialized version of the superclass or it can be said that the subclass is the extended version of the superclass. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Encapsulation&lt;/strong&gt; - it is defined as a wrapping of data into a unit. In simple terms, it means wrapping of classes or objects which means the attributes and state of objects with their methods or behavior. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Abstraction&lt;/strong&gt; - it is defined as an ability of a class to show certain data or attributes of an object while keeping other data private. This is done in order to hide the implementation details for the user. &lt;/p&gt;

&lt;h2&gt;
  
  
  Advantages of OOPs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Simple&lt;/strong&gt; - it has simple syntax, clean and easy to understand&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Object-oriented&lt;/strong&gt; - all the code is managed with classes and objects&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Robust&lt;/strong&gt;- the programs are robust in nature as it provides automatic garbage collection for unused objects and also provide appropriate ways of exception handling which would prevent the system from crashing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dynamic&lt;/strong&gt;- the object-oriented programming languages are dynamic i.e, it is capable of linking new class libraries, methods, and objects. The linking depends on the runtime query and the response of the user i.e whether to execute a particular code or to abort the process.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Secure&lt;/strong&gt;- since the program is made up of classes and objects, it is secure as compared to another programming language.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The disadvantage of OOPs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Planning of entities, objects, and their linking beforehand&lt;/li&gt;
&lt;li&gt;The OOps programs are relatively larger as compared to others&lt;/li&gt;
&lt;li&gt;Difficult to implement&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Procedural Programming vs Object-Oriented Programming
&lt;/h2&gt;

&lt;p&gt;Here is a few differences between Procedural Programming vs Object-Oriented Programming&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Procedural programming language&lt;/th&gt;
&lt;th&gt;Object-oriented programming language&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;When the program is divided into smaller sections called functions it is called procedural programming.&lt;/td&gt;
&lt;td&gt;When the program is divided into smaller sections called objects, it is called object-oriented programming.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The top-down approach is followed in procedural programming.&lt;/td&gt;
&lt;td&gt;The bottom-up approach is followed in object-oriented programming.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The procedural programming has no access specifier.&lt;/td&gt;
&lt;td&gt;Object-oriented programming has access specifiers for instance, public, private, protected, etc.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Addition of new function and data is not easy&lt;/td&gt;
&lt;td&gt;Addition of new function and data is easy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Procedural programming is less secure since it does not have a proper way of hiding the data.&lt;/td&gt;
&lt;td&gt;Object-oriented programming is more secure since it provides hiding the data.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Overloading methods is not possible in procedural programming.&lt;/td&gt;
&lt;td&gt;Overloading of methods is possible in object-oriented programming.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The concept of inheritance and data hiding is not there in procedural programming.&lt;/td&gt;
&lt;td&gt;The concept of inheritance and data hiding is used in object-oriented programming languages.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The function is more important as compared to data in procedural programming.&lt;/td&gt;
&lt;td&gt;The data is more important as compared to functions in object-oriented programming.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Procedural programming is generally based on an unreal-world example.&lt;/td&gt;
&lt;td&gt;Object-oriented programming is mostly based on real-world examples.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;For designing medium-sized programs, procedural programming is used.&lt;/td&gt;
&lt;td&gt;For designing large and complex issues, object-oriented programming is used.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The concept of procedure abstraction is used in this.&lt;/td&gt;
&lt;td&gt;The concept of data abstraction is used in this.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The reusability of code is absent in procedural programming.&lt;/td&gt;
&lt;td&gt;The reusability of code is present in object-oriented programming.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Examples of this are Basic, FORTRAN, C, pascal, etc.&lt;/td&gt;
&lt;td&gt;Examples of this are Java, Python, C++, C#, etc.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Programming language that is inherited from structural programming and is dependent on the concept called the procedures. &lt;/p&gt;

&lt;p&gt;It is also known as routines or subroutines, functions, or methods that comprises of series of computational steps that are to be done during the execution of the program. Any given procedure can be called out at any time during the execution of the program.&lt;/p&gt;

&lt;p&gt;Object-oriented language is defined as a programming language that uses the concept of an object in programming. The object contains data which are in the form of attributes and the code is in the form of methods. &lt;/p&gt;

&lt;p&gt;The programs of computers are designed by using this concept of an object in an object-oriented programing language that it interacts with the real world. &lt;/p&gt;

&lt;p&gt;There are various types of object-oriented programming languages but the most used ones are class-based where objects are instances of a class and are determined by the type of the object.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>coding</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
