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
  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. Computer and Web Security
  5. 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.

(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.)

 

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.)

 

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