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.
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.
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 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.
Examples of web applications developed using Python include Gmail, YouTube, and Reddit.
Examples of applications created using the Node.js include PayPal, Yahoo, Netflix, and Uber.
Examples of companies that have created apps using components from the React library include Walmart, Skype, Facebook, and Instagram.
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.
Companies that utilize Git in their projects include Google, Microsoft, Android, and Twitter.
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.
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 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).
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.
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.
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.”
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.
Want to learn more about computing and the topics described above? Additional information can be found in the blogs and books listed below.
Learn more computing from the SAP PRESS Blog's General Computing section.