Computing Pillar Header

General Computing for Developers and Administrators

 

Computing is about using hardware and software to process and manage information. This includes system administration, database creation and management, program and application development, computer security, IT management, and more. This page will introduce you to computing topics covered in the Rheinwerk Computing series, and how to get started learning in each.

 

Table of Contents

  1. Programming and Project Management
    1. Java: Development Language and Platform
    2. Python: Programming Language for All
    3. JavaScript: Dynamic Content for the Web and Beyond
    4. Node.js: A Runtime Environment for JavaScript
    5. React: A Programming Library for JavaScript
    6. Git: Project Versioning
    7. Docker: Application Containerization
    8. Spring: A Framework for Java
    9. Spring Boot: An Extension of the Spring Framework
  2. Web Development
    1. HTML: The Framework of Websites
    2. CSS: Styling for Websites
  3. Types of Computing Development
    1. Frontend Development
    2. Backend Development
    3. Full Stack Development
  4. Operating Systems
    1. Microsoft Windows
    2. MacOS
    3. Linux
  5. Computer and Web Security
  6. Computing Innovations
    1. Blockchain
    2. Generative AI
  7. Additional Resources
    1. Blog Posts
    2. Books by Rheinwerk Publishing
    3. Videos

Programming and Project Management

There are numerous programming languages and tools out there for developers to utilize in their projects. While it isn’t possible to cover all of them in a single source, it’s worth learning about the most popular. In addition, we’ll cover Git and Docker, which are software development tools and platforms that make developers’ jobs easier by simplifying version control and supporting application containerization.

(Back to ToC.)

Java: Development Language and Platform

Java is an object-oriented programming language used for backend software development, mobile application programming, and game development. Java developers write code that is compiled into a bytecode, a binary code that is run on a virtual machine. Because all code is compiled this way, it can be run on any Java platform, making platform-specific changes unnecessary.

 

In addition to being a programming language, Java also serves as a runtime environment and standard library, which Oracle (the language’s developer) calls the Java platform.

 

Examples of products created using Java include Facebook, Amazon, Minecraft, and eBay.

Python: Programming Language for All

Python is a general-purpose programming language used for backend programming, web development, scripting, and data science. It allows both object-oriented and functional programming, and includes a compiler that utilizes the bytecode feature as described in the Java section above. Python also focuses on flexibility, allowing developers to extend Python’s standard library.

 

Basic Concepts of Python

 

Examples of web applications developed using Python include Gmail, YouTube, and Reddit.

JavaScript: Dynamic Content for the Web and Beyond

JavaScript is a programming language favored by web developers to create web pages and applications. In addition to being used for web projects, JavaScript is a full-fledged language that is used for other projects including frontend and backend web applications, mobile applications, games, 3D apps, and embedded systems such as customizing Internet of Things devices.

 

Examples of functionality enabled by JavaScript include sorting tables, filtering data, adding interactive buttons, and providing dynamically reloading web content.

Node.js: A Runtime Environment for JavaScript

For developers working with the JavaScript language, the Node.js runtime is a popular option for creating server-side JavaScript programs. A lightweight system, Node.js is easy to install on most systems, and its open-source nature makes community collaboration and innovation a common benefit.

 

Examples of applications created using the Node.js include PayPal, Yahoo, Netflix, and Uber.

 

React: A Programming Library for JavaScript

For developers working with the JavaScript language, React is a programming library that can be used when developing UIs. Developers can utilize many different functions, called components, from the React library when putting together a project. This helps cut down the complexity and time it takes to go from ideation to release.

 

Examples of companies that have created apps using components from the React library include Walmart, Skype, Facebook, and Instagram.

Git: Project Versioning

Git is a version control system that keeps track of all the changes that have been made in a program, and who made those changes. This is beneficial because the history provides context into changes and when things happened that may have caused an issue—providing a good “restore point” to backtrack to while figuring out what the issue was. Another benefit is that it allows for multiple developers to work on a project at the same time, and merge all the individual branches of work into the main branch when they’re finished.

 

Below is an example of a repository hosted on GitHub.

 

Clean ABAP GitHub Repository

 

Companies that utilize Git in their projects include Google, Microsoft, Android, and Twitter.

Docker: Application Containerization

Docker is a containerization platform that allows developers the opportunity to run their programs in multiple different languages and runtimes without having to install each on their computer. This is done by packaging applications into “containers” that include everything needed to execute the code in a virtual environment—similar to a virtual machine on a computer. By utilizing Docker containers, developers can build applications once and run them anywhere--shipping code faster and providing more value to users.

 

Examples of companies that utilize Docker include Spotify, Yelp, and Shopify.

Spring: A Framework for Java

The Spring framework provides Java developers with a set of building blocks to create applications with less code and configuration. It allows developers to worry less about the platform that they’re running on, which makes ad-hoc modification, testing, and reuse easier to accomplish.

 

Examples of companies that use the Spring framework include Starbucks, Nokia, and BlackRock.

Spring Boot: An Extension of the Spring Framework

Spring Boot is an extension of the Spring framework and empowers Java developers to create efficient, scalable applications without the burden of excessive configuration. By abstracting complexities and providing pre-built templates, the framework accelerates development, allowing programmers to focus on crafting robust, production-ready applications that can be run in a single executable file.

 

Examples of companies that have created apps using components from the Spring Boot library include Udemy, Intuit, and Trivago.

(Back to ToC.)

Web Development

The world of web development is a little less wide than computer programming, in terms of languages and tools used when creating websites. JavaScript plays one of three major roles in web development, by adding interactive functionality to websites. The other two major roles are filled by HTML and CSS. Below describes each.

HTML: The Framework of Websites

HTML stands for Hypertext Markup Language, and it serves as the basic building block for all websites. Developers using HTML create the structure of a webpage through the use of opening and closing tags. This includes laying out the headings of a webpage; adding elements such as images, buttons, and sections; and structuring other framework elements.

 

HTML-only websites are quite plain as more stylized design is achieved through the use of CSS. To learn more about what a webpage’s HTML might look like, you can open the developer tools page of your browser to see how the page is structured.

CSS: Styling for Websites

CSS stands for Cascading Style Sheets, and it serves as the way a website gets its ornamentation. While HTML provides the structure of a webpage, it’s often quite plain; by adding CSS, developers can add a more varied layout, color, font changes, and more, providing a better user experience. Check out this example of a webpage without CSS (on the left) to get an idea of what CSS adds to the user experience (on the right).

 

Example of a Webpage without CSS

(Back to ToC.)

Types of Computing Development

Webpage and application development can generally be categorized into two key areas: frontend programming and backend programming. While historically, the frontend and backend have been programmed by different groups of developers, over time more and more developers have been combining the two skillsets into one so they become what is known as a full stack developer.

Frontend Development

Frontend development is focused on the visual elements and the user interface of an app or website, and utilizes tools like CSS, JavaScript, and HTML. Frontend developers are in charge of creating the outward appearance of a program and utilize skills such as design thinking and version control.

Backend Development

Backend development, on the other hand, is focused on connecting applications to servers and databases, and connecting servers and databases to each other. Backend developers use languages, frameworks, and tools such as Python, Ruby, Java, Node.js, and APIs. They are in charge of making sure applications run as designed and troubleshoot issues when they arise.

Full Stack Development

As mentioned above, full stack development refers to the combining of frontend and backend development tasks by a single developer. The benefit of full stack development is that one developer can do both types of programming, providing more value to employers.”

(Back to ToC.)

Operating Systems

An operating system (OS) serves as the foundational software that manages and controls the fundamental operations of a computer system. From handling file storage and input/output operations to ensuring security and facilitating communication between hardware components, an operating system is an essential component that empowers computers to function effectively and efficiently.

Microsoft Windows

Windows Personal computers (PCs) have been the cornerstone of computing for decades. Known for their wide availability and compatibility, PCs run on various operating systems, with Microsoft Windows being the most prominent. PCs offer an extensive range of hardware configurations, allowing users to tailor their systems to specific needs, whether it's for gaming, content creation, business tasks, or general use. This modularity also facilitates easy upgrades and repairs.

MacOS

macOS Mac computers, developed and manufactured by Apple, stand out for their design elements, user-friendly interface, and robust hardware-software integration. Operating on macOS, Macs are renowned for their stability, security features, and optimized performance. Apple's stringent control over both the hardware and software aspects of Macs ensures a cohesive and reliable user experience. Macs are favored by creatives, designers, and professionals in media-related fields due to their exceptional capabilities for graphic design, video editing, and audio production.

Linux

Linux Linux is an operating system that is often associated with open-source and community-driven development, and has carved a unique niche in the computing landscape. Linux comes in various distributions, such as Ubuntu, Fedora, and CentOS, each tailored to specific user preferences and requirements. Known for its stability, security, and customization options, Linux is widely used in server environments, powering a significant portion of the internet's infrastructure. Its versatility extends to personal computing as well, with many users opting for Linux-based systems for programming, system administration, and privacy-conscious browsing.

(Back to ToC.)

 

Computer and Web Security

Computers and web applications are made up of many parts, and often use sensitive information, including personal data, proprietary secrets, and governmental documents. Because this data is important to those accessing it, and because computers are interconnected more than ever thanks to the internet and cloud technology, it’s crucial to safeguard against unauthorized access.

 

Computer security is always evolving as bad actors find new system vulnerabilities, so administrators must stay on top of updating systems and providing new ways to safeguard against intrusions.

 

There are three major areas that need to be considered when looking at computer security: people, processes, and technology. It’s important to make sure that those who should have access to a system are the only ones able to access it, and that they have secure ways to use it—such as using strong passwords and two-factor authentication. Once logged in, it’s important to ensure that the activities being performed are following best practices and keeping in line with different data privacy laws and security processes. And to make sure systems are safe from outside attacks and internal compromise, a number of technologies exist to keep things running safely, such as firewalls.

 

One popular method of detecting security weaknesses is penetration testing, which involves simulating attacks on a computer system. Also known as ethical hacking, penetration testing plays a large role in finding vulnerabilities before they can be exploited.

(Back to ToC.)

 

Computing Innovations

The computing realm is hurtling towards a future defined by groundbreaking advancements. Innovations like blockchain and artificial intelligence usher in a new era of technology, marked by both possibilities and challenges across various domains.

Blockchain

Blockchain is a revolutionary technology: a distributed and decentralized digital ledger that records transactions in a secure, transparent, and immutable manner. The technology's foundation rests on cryptographic principles, ensuring the integrity and authenticity of data. This novel approach eliminates the need for intermediaries, reducing costs and increasing trust between parties. Originally popularized by financial uses such as Bitcoin, blockchain's potential extends far beyond financial applications to sectors like SCM, healthcare, and digital identity verification.

Generative AI

Generative artificial intelligence (AI) uses neural networks and deep learning models to create original, computer-generated content that resembles human-created data. (In fact, this section was actually written by a generative AI platform, ChatGPT!) Generative AI models operate by learning from vast datasets, subsequently generating new content based on the patterns and styles they've assimilated. Generative AI has far-reaching implications across diverse domains, including art and media, product design, architecture, fashion, and more.

(Back to ToC.)

 

Additional Resources

Want to learn more about computing and the topics described above? Additional information can be found in the blogs and books listed below.

Blog Posts

Books by Rheinwerk Publishing

Videos

What Next?

Learn more computing from the SAP PRESS Blog's General Computing section.

SAP PRESS Blog