---
title: Learn Computing from the Experts | The Rheinwerk Computing Blog (13)
description: Dive into programming, web development, and more with Rheinwerk Computing Blog! Your go-to resource for expanding your computing knowledge. (13)
---

[![Rheinwerk Computing Logo](https://blog.rheinwerk-computing.com/hubfs/computing_logo-header.svg)](https://blog.rheinwerk-computing.com/) [Blog](https://blog.rheinwerk-computing.com)

- Books 
    - Get an overview of our wide selection of books on every relevant computing topic. 
          - [General Computing](https://www.sap-press.com/rheinwerk-computing/general-computing/)
          - [DevOps](https://www.sap-press.com/rheinwerk-computing/devops/)
          - [Programming Languages](https://www.sap-press.com/rheinwerk-computing/programming-languages/)
          - [Security](https://www.sap-press.com/rheinwerk-computing/security/)
          - [Software Development](https://www.sap-press.com/rheinwerk-computing/software-development/)
- Book Subscription 
    - Get unlimited access to all Rheinwerk Computing books! 
          - [Programming Subscription](https://sap-press.com/subscriptions/)

![](https://blog.rheinwerk-computing.com/hs-fs/hubfs/How%20to%20Write%20Your%20Own%20Python%20Functions.jpg?width=1000&name=How%20to%20Write%20Your%20Own%20Python%20Functions.jpg)

[Featured](https://blog.rheinwerk-computing.com/tag/featured) | Featured article

## [How to Write Your Own Python Functions](https://blog.rheinwerk-computing.com/how-to-write-your-own-python-functions)

Functions in Python provide functionality that you or someone else has already pro­grammed. In this post, we’ll teach you how to write your own Python functions.

![Rheinwerk Computing](https://blog.rheinwerk-computing.com/hubfs/RW-logo-300x300.png) by [Rheinwerk Computing](https://blog.rheinwerk-computing.com/author/rheinwerk-computing) 

[Read More](https://blog.rheinwerk-computing.com/how-to-write-your-own-python-functions)

# Latest Blog Posts

[![Getting Started with Coding Via AI Tools Like ChatGPT \[5 Real-Life Examples\]](https://blog.rheinwerk-computing.com/hs-fs/hubfs/Getting%20Started%20with%20Coding%20Via%20AI%20Tools%20Like%20ChatGPT%20%5B4%20Examples%5D.png?height=600&name=Getting%20Started%20with%20Coding%20Via%20AI%20Tools%20Like%20ChatGPT%20%5B4%20Examples%5D.png)](https://blog.rheinwerk-computing.com/getting-started-with-coding-via-ai-tools-like-chatgpt)

[Programming Languages](https://blog.rheinwerk-computing.com/tag/programming-languages)

## [Getting Started with Coding Via AI Tools Like ChatGPT \[5 Real-Life Examples\]](https://blog.rheinwerk-computing.com/getting-started-with-coding-via-ai-tools-like-chatgpt)

Chat systems such as ChatGPT provide the most intuitive introduction to AI-supported coding. When we wrote this post, there were various free systems...

![Rheinwerk Computing](https://blog.rheinwerk-computing.com/hubfs/RW-logo-300x300.png) by [Rheinwerk Computing](https://blog.rheinwerk-computing.com/author/rheinwerk-computing) 

[Read More](https://blog.rheinwerk-computing.com/getting-started-with-coding-via-ai-tools-like-chatgpt)

[![Designing Software Architectures: Heuristic Basics](https://blog.rheinwerk-computing.com/hs-fs/hubfs/Designing%20Software%20Architectures_%20Heuristic%20Basics.jpg?height=600&name=Designing%20Software%20Architectures_%20Heuristic%20Basics.jpg)](https://blog.rheinwerk-computing.com/designing-software-architectures-heuristic-basics)

[Software Development](https://blog.rheinwerk-computing.com/tag/software-development)

## [Designing Software Architectures: Heuristic Basics](https://blog.rheinwerk-computing.com/designing-software-architectures-heuristic-basics)

Heuristics are methods and procedures used to solve problems with efficient use of resources.

![Rheinwerk Computing](https://blog.rheinwerk-computing.com/hubfs/RW-logo-300x300.png) by [Rheinwerk Computing](https://blog.rheinwerk-computing.com/author/rheinwerk-computing) 

[Read More](https://blog.rheinwerk-computing.com/designing-software-architectures-heuristic-basics)

[![How to Install and Configure Fail2ban](https://blog.rheinwerk-computing.com/hs-fs/hubfs/How%20to%20Install%20and%20Configure%20Fail2ban.jpg?height=600&name=How%20to%20Install%20and%20Configure%20Fail2ban.jpg)](https://blog.rheinwerk-computing.com/how-to-install-and-configure-fail2ban)

[Cybersecurity](https://blog.rheinwerk-computing.com/tag/cybersecurity)

## [How to Install and Configure Fail2ban](https://blog.rheinwerk-computing.com/how-to-install-and-configure-fail2ban)

*Fail2ban* is a program that monitors logging files where programs log failed login

![Rheinwerk Computing](https://blog.rheinwerk-computing.com/hubfs/RW-logo-300x300.png) by [Rheinwerk Computing](https://blog.rheinwerk-computing.com/author/rheinwerk-computing) 

[Read More](https://blog.rheinwerk-computing.com/how-to-install-and-configure-fail2ban)

[![What Is RAII in C++?](https://blog.rheinwerk-computing.com/hs-fs/hubfs/What%20is%20RAII%20in%20C.jpg?height=600&name=What%20is%20RAII%20in%20C.jpg)](https://blog.rheinwerk-computing.com/what-is-raii-in-cpp)

[What Is?](https://blog.rheinwerk-computing.com/tag/what-is)

## [What Is RAII in C++?](https://blog.rheinwerk-computing.com/what-is-raii-in-cpp)

Resource Acquisition Is Initialization (RAII) means that when creating an object—a resource—its initialization is also done.

![Rheinwerk Computing](https://blog.rheinwerk-computing.com/hubfs/RW-logo-300x300.png) by [Rheinwerk Computing](https://blog.rheinwerk-computing.com/author/rheinwerk-computing) 

[Read More](https://blog.rheinwerk-computing.com/what-is-raii-in-cpp)

[![How to Create a Snake Game with Java](https://blog.rheinwerk-computing.com/hs-fs/hubfs/How%20to%20Create%20a%20Snake%20Game%20with%20Java.jpg?height=600&name=How%20to%20Create%20a%20Snake%20Game%20with%20Java.jpg)](https://blog.rheinwerk-computing.com/how-to-create-a-snake-game-with-java)

[Java](https://blog.rheinwerk-computing.com/tag/java)

## [How to Create a Snake Game with Java](https://blog.rheinwerk-computing.com/how-to-create-a-snake-game-with-java)

In this blog post, you'll learn how to create a *Snake* game with the Java language.

![Rheinwerk Computing](https://blog.rheinwerk-computing.com/hubfs/RW-logo-300x300.png) by [Rheinwerk Computing](https://blog.rheinwerk-computing.com/author/rheinwerk-computing) 

[Read More](https://blog.rheinwerk-computing.com/how-to-create-a-snake-game-with-java)

[![How Is Scripting Different from Programming?](https://blog.rheinwerk-computing.com/hs-fs/hubfs/How%20Is%20Scripting%20Different%20from%20Programming.jpg?height=600&name=How%20Is%20Scripting%20Different%20from%20Programming.jpg)](https://blog.rheinwerk-computing.com/how-is-scripting-different-from-programming)

[Programming Languages](https://blog.rheinwerk-computing.com/tag/programming-languages)

## [How Is Scripting Different from Programming?](https://blog.rheinwerk-computing.com/how-is-scripting-different-from-programming)

Scripting allows you to automate repetitive tasks, connect different software tools, and quickly solve small problems with minimal code.

![Rheinwerk Computing](https://blog.rheinwerk-computing.com/hubfs/RW-logo-300x300.png) by [Rheinwerk Computing](https://blog.rheinwerk-computing.com/author/rheinwerk-computing) 

[Read More](https://blog.rheinwerk-computing.com/how-is-scripting-different-from-programming)

[![3 Different Types of Mobile Apps: A Comparison](https://blog.rheinwerk-computing.com/hs-fs/hubfs/3%20Different%20Types%20of%20Mobile%20Apps_%20A%20Comparison.png?height=600&name=3%20Different%20Types%20of%20Mobile%20Apps_%20A%20Comparison.png)](https://blog.rheinwerk-computing.com/3-different-types-of-mobile-apps-a-comparison)

[Web Development](https://blog.rheinwerk-computing.com/tag/web-development)

## [3 Different Types of Mobile Apps: A Comparison](https://blog.rheinwerk-computing.com/3-different-types-of-mobile-apps-a-comparison)

Basically, mobile applications are divided into the following three types:

![Rheinwerk Computing](https://blog.rheinwerk-computing.com/hubfs/RW-logo-300x300.png) by [Rheinwerk Computing](https://blog.rheinwerk-computing.com/author/rheinwerk-computing) 

[Read More](https://blog.rheinwerk-computing.com/3-different-types-of-mobile-apps-a-comparison)

[![Database Normalization: A Step-by-Step Guide to First, Second, and Third Normal Forms](https://blog.rheinwerk-computing.com/hs-fs/hubfs/Database%20Normalization_%20A%20Step-by-Step%20Guide%20to%20First%2c%20Second%2c%20and%20Third%20Normal%20Forms.jpg?height=600&name=Database%20Normalization_%20A%20Step-by-Step%20Guide%20to%20First,%20Second,%20and%20Third%20Normal%20Forms.jpg)](https://blog.rheinwerk-computing.com/database-normalization-a-step-by-step-guide-to-first-second-and-third-normal-forms)

[Programming Languages](https://blog.rheinwerk-computing.com/tag/programming-languages)

## [Database Normalization: A Step-by-Step Guide to First, Second, and Third Normal Forms](https://blog.rheinwerk-computing.com/database-normalization-a-step-by-step-guide-to-first-second-and-third-normal-forms)

Normalization is actually not a component of relational databases, but it’s so common and prevalent that it’s as inseparable from relational...

![Rheinwerk Computing](https://blog.rheinwerk-computing.com/hubfs/RW-logo-300x300.png) by [Rheinwerk Computing](https://blog.rheinwerk-computing.com/author/rheinwerk-computing) 

[Read More](https://blog.rheinwerk-computing.com/database-normalization-a-step-by-step-guide-to-first-second-and-third-normal-forms)

[![HTML Headings Done Right: How to Organize Content with h1 to h6](https://blog.rheinwerk-computing.com/hs-fs/hubfs/HTML%20Headings%20Done%20Right_%20How%20to%20Organize%20Content%20with%20_h1_%20to%20_h6_.png?height=600&name=HTML%20Headings%20Done%20Right_%20How%20to%20Organize%20Content%20with%20_h1_%20to%20_h6_.png)](https://blog.rheinwerk-computing.com/html-headings-done-right-how-to-organize-content-with-h1-to-h6)

[HTML & CSS](https://blog.rheinwerk-computing.com/tag/html-css)

## [HTML Headings Done Right: How to Organize Content with h1 to h6](https://blog.rheinwerk-computing.com/html-headings-done-right-how-to-organize-content-with-h1-to-h6)

Properly structured HTML headings not only improve readability but also enhance accessibility and SEO—learn how to use \<h1\> to \<h6\> correctly in this...

![Rheinwerk Computing](https://blog.rheinwerk-computing.com/hubfs/RW-logo-300x300.png) by [Rheinwerk Computing](https://blog.rheinwerk-computing.com/author/rheinwerk-computing) 

[Read More](https://blog.rheinwerk-computing.com/html-headings-done-right-how-to-organize-content-with-h1-to-h6)

[![How to ](https://blog.rheinwerk-computing.com/hs-fs/hubfs/How%20to%20_Do_%20UX%20Design_%20A%20Guide%20to%20the%20ISO%209241-210%20Standard.png?height=600&name=How%20to%20_Do_%20UX%20Design_%20A%20Guide%20to%20the%20ISO%209241-210%20Standard.png)](https://blog.rheinwerk-computing.com/how-to-do-ux-design-a-guide-to-the-iso-9241-210-standard)

[User Experience](https://blog.rheinwerk-computing.com/tag/user-experience)

## [How to "Do" UX Design: A Guide to the ISO 9241-210 Standard](https://blog.rheinwerk-computing.com/how-to-do-ux-design-a-guide-to-the-iso-9241-210-standard)

Probably the oldest and most widely used process in the usability and UX world comes from an International Organization for Standardization (ISO)...

![Rheinwerk Computing](https://blog.rheinwerk-computing.com/hubfs/RW-logo-300x300.png) by [Rheinwerk Computing](https://blog.rheinwerk-computing.com/author/rheinwerk-computing) 

[Read More](https://blog.rheinwerk-computing.com/how-to-do-ux-design-a-guide-to-the-iso-9241-210-standard)

- <https://blog.rheinwerk-computing.com/page/12>
- [1](https://blog.rheinwerk-computing.com/page/1)
- [...](https://blog.rheinwerk-computing.com/page/8)
- [11](https://blog.rheinwerk-computing.com/page/11)
- [12](https://blog.rheinwerk-computing.com/page/12)
- [13](https://blog.rheinwerk-computing.com/page/13)
- [14](https://blog.rheinwerk-computing.com/page/14)
- [15](https://blog.rheinwerk-computing.com/page/15)
- [...](https://blog.rheinwerk-computing.com/page/18)
- [31](https://blog.rheinwerk-computing.com/page/31)
- <https://blog.rheinwerk-computing.com/page/14>

### Blog Topics

- [All Topics](https://blog.rheinwerk-computing.com)
- [Programming Languages](https://blog.rheinwerk-computing.com/tag/programming-languages)
- [How To](https://blog.rheinwerk-computing.com/tag/how-to)
- [JavaScript](https://blog.rheinwerk-computing.com/tag/javascript)
- [DevOps](https://blog.rheinwerk-computing.com/tag/devops)
- [Featured](https://blog.rheinwerk-computing.com/tag/featured)
- [Web Development](https://blog.rheinwerk-computing.com/tag/web-development)
- [What Is?](https://blog.rheinwerk-computing.com/tag/what-is)
- [Cybersecurity](https://blog.rheinwerk-computing.com/tag/cybersecurity)
- [Artificial Intelligence](https://blog.rheinwerk-computing.com/tag/artificial-intelligence)
- [Software Development](https://blog.rheinwerk-computing.com/tag/software-development)

**Subscribe to our blog!**Get notified about future blog updates.

- <https://www.linkedin.com/showcase/rheinwerk-computing/>
- <https://www.youtube.com/channel/UChj-U-uWGM7qRlHXSFU93ew>
- <https://blog.rheinwerk-computing.com/rss.xml>

### Most Popular Blog Posts

1. [What Is?](https://blog.rheinwerk-computing.com/tag/what-is) [What Is the Basic Structure of a Python Program?](https://blog.rheinwerk-computing.com/what-is-the-basic-structure-of-a-python-program)
   
   by [Rheinwerk Computing](https://blog.rheinwerk-computing.com/author/rheinwerk-computing)
2. [HTML & CSS](https://blog.rheinwerk-computing.com/tag/html-css) [Twelve-Factor App Principles for Developers](https://blog.rheinwerk-computing.com/twelve-factor-app-principles-for-developers)
   
   by [Rheinwerk Computing](https://blog.rheinwerk-computing.com/author/rheinwerk-computing)
3. [Java](https://blog.rheinwerk-computing.com/tag/java) [Elements of the Java Programming Language](https://blog.rheinwerk-computing.com/elements-of-the-java-programming-language)
   
   by [Rheinwerk Computing](https://blog.rheinwerk-computing.com/author/rheinwerk-computing)
4. [Cybersecurity](https://blog.rheinwerk-computing.com/tag/cybersecurity) [11 Linux Shell Commands for Hacking and Security](https://blog.rheinwerk-computing.com/11-linux-shell-commands-for-hacking-and-security)
   
   by [Rheinwerk Computing](https://blog.rheinwerk-computing.com/author/rheinwerk-computing)
5. [Cybersecurity](https://blog.rheinwerk-computing.com/tag/cybersecurity) [What Are the 4 Principles of Cryptography?](https://blog.rheinwerk-computing.com/what-are-the-4-principles-of-cryptography)
   
   by [Rheinwerk Computing](https://blog.rheinwerk-computing.com/author/rheinwerk-computing)

**Subscribe to our blog!**Get notified about future blog updates.

- <https://www.linkedin.com/showcase/rheinwerk-computing/>
- <https://www.youtube.com/channel/UChj-U-uWGM7qRlHXSFU93ew>
- <https://blog.rheinwerk-computing.com/rss.xml>

### The official Rheinwerk Computing Blog

Rheinwerk Computing is an imprint of Rheinwerk Publishing and publishes resources that will help you accelerate your computing journey. The Rheinwerk Computing Blog is designed to provide helpful, actionable information on a variety of topics, including programming, administration, security, and analytics!

### Blog Topics

- [All Topics](https://blog.rheinwerk-computing.com)
- [Programming Languages](https://blog.rheinwerk-computing.com/tag/programming-languages)
- [How To](https://blog.rheinwerk-computing.com/tag/how-to)
- [JavaScript](https://blog.rheinwerk-computing.com/tag/javascript)
- [DevOps](https://blog.rheinwerk-computing.com/tag/devops)
- [Featured](https://blog.rheinwerk-computing.com/tag/featured)
- [Web Development](https://blog.rheinwerk-computing.com/tag/web-development)
- [What Is?](https://blog.rheinwerk-computing.com/tag/what-is)
- [Cybersecurity](https://blog.rheinwerk-computing.com/tag/cybersecurity)
- [Artificial Intelligence](https://blog.rheinwerk-computing.com/tag/artificial-intelligence)
- [Software Development](https://blog.rheinwerk-computing.com/tag/software-development)

### Blog curated by

[![Rheinwerk Computing Logo](https://blog.rheinwerk-computing.com/hubfs/computing_logo-header.svg)](https://www.sap-press.com/rheinwerk-computing/) [Visit Rheinwerk Computing Store](https://www.sap-press.com/rheinwerk-computing/)

### About

- [Home](https://sap-press.com/)
- [About Us](https://sap-press.com/the-publisher/)
- [Contact](mailto:info@rheinwerk-publishing.com)
- [Legal Notes](https://sap-press.com/legal-notes/)
- [Privacy Policy](https://sap-press.com/privacy/)
- [Terms of Use](https://sap-press.com/terms/)

© 2026 Rheinwerk Publishing, Inc. | Change Privacy Options