0% found this document useful (0 votes)
2 views37 pages

Computer Basics for Wouldbe Programmers

The document provides an overview of computer basics, types of computers, and the division between hardware and software. It also details various operating systems and programming languages, highlighting their key concepts, popular uses, and learning resources. The content is aimed at aspiring programmers, offering foundational knowledge necessary for understanding computer systems and software development.

Uploaded by

kellyirenuma57
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views37 pages

Computer Basics for Wouldbe Programmers

The document provides an overview of computer basics, types of computers, and the division between hardware and software. It also details various operating systems and programming languages, highlighting their key concepts, popular uses, and learning resources. The content is aimed at aspiring programmers, offering foundational knowledge necessary for understanding computer systems and software development.

Uploaded by

kellyirenuma57
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 37

COMPUTER BASICS

FOR WOULD-BE
PROGRAMMERS
by
Unicorn ICT Academy
What Is A Computer
A computer is an electronic
device that processes data
according to a set of instructions
(programs). It performs tasks
such as calculations, data
processing, and information
storage, typically comprising
hardware (physical components)
and software (programs and
operating systems).
Types of Computers
1. Supercomputers: Extremely powerful
for complex tasks.
2. Mainframes: Large systems for bulk
data processing.
3. Minicomputers: Mid-sized, specific
applications.
4. Microcomputers: Personal use
(desktops, laptops).
5. Workstations: High-performance for
technical work.
6. Servers: Provide network services.
7. Embedded Systems: Built into devices
for dedicated functions.
Computer Division
1. Computers are divided into:
Hardware
- Physical components that make up the computer.
- Examples: CPU, RAM, hard drive, motherboard, monitor, keyboard, and mouse.

Software
- Programs and operating systems that run on the hardware.
- Examples: Windows, macOS, Linux, Microsoft Office, web browsers, and games.

Hardware is the tangible part you can touch, while software consists of the instructions
that tell the hardware what to do.
Computer OS (Operating
Systems)
Various Computer Operating Systems

1. **Windows**
- Developed by Microsoft.
- Popular for personal and business use.
- User-friendly interface with extensive software compatibility.

2. **macOS**
- Developed by Apple.
- Used on Apple’s Mac computers.
- Known for its sleek design and integration with other Apple products.
Computer OS (Operating
Systems)
3. Linux
- Open-source operating system.
- Used for servers, desktops, and embedded systems.
- Known for its stability, security, and flexibility.

4. Unix
- Multiuser, multitasking operating system.
- Used in servers, workstations, and mainframes.
- Known for its robustness and security.
Computer OS (Operating
Systems)
5. Chrome OS
- Developed by Google.
- Designed for Chromebooks.
- Lightweight OS focused on web applications and cloud storage.

6. Android
- Developed by Google.
- Primarily used in smartphones and tablets.
- Based on a modified version of the Linux kernel.
Computer OS (Operating
Systems)

7. iOS - Developed by Apple.


- Used in iPhones and iPads.
- Known for its user-friendly interface and ecosystem integration.

Each OS serves different purposes and user needs, from personal computing to
enterprise-level applications.
Types of Software
1. System Software
- Operating Systems: Manage hardware and software resources (e.g., Windows,
macOS, Linux).
- Utility Software: Performs maintenance tasks (e.g., antivirus programs, disk cleanup
tools).

2. Application Software
- Productivity Software: For creating documents, spreadsheets, presentations (e.g.,
Microsoft Office, Google Workspace).
- Media Software: For creating and editing images, video, and audio (e.g., Adobe
Photoshop, Final Cut Pro).
- Communication Software: For messaging, video conferencing, and email (e.g.,
Zoom, Slack, Outlook).
-
Types of Software
Entertainment Software: For gaming and streaming media (e.g., Steam, Netflix).

3. Development Software
- Programming Languages: Tools for writing code (e.g., Python, Java, C++).
- Integrated Development Environments (IDEs): Software for building applications
(e.g., Visual Studio, Eclipse).
- Version Control Systems: For tracking changes in code (e.g., Git, SVN).

4. Embedded Software
- Software designed to operate hardware (e.g., firmware in routers, software in
automotive systems).
Each type of software serves specific functions, from managing system resources to
enabling user productivity and entertainment.
PROGRAMMING LANGUAGES

Definition: Programming languages are formal languages


comprising a set of instructions that produce various kinds
of output. They are used by programmers to communicate
with computers and create software programs.
Type of PROGRAMMING
LANGUAGES

1. Low-Level Languages:
- Machine Language: Binary code (0s and 1s) that
the computer's CPU can directly execute.
- Assembly Language: A step above machine
language, uses symbolic code and is specific to a
computer's architecture.
Type of PROGRAMMING
LANGUAGES

2. High-Level Languages:
- Procedural Languages: Focus on a sequence of
instructions (e.g., C, Pascal).
- Object-Oriented Languages: Use objects and
classes to organize code (e.g., Java, Python, C++).
- Functional Languages: Emphasize functions and
immutable data (e.g., Haskell, Lisp).
-
Type of PROGRAMMING
LANGUAGES
Scripting Languages: Used for writing scripts
to automate tasks (e.g., JavaScript, PHP, Perl).
- Declarative Languages: Specify what needs
to be done without explicitly listing
commands (e.g., SQL, Prolog).
Type of PROGRAMMING
LANGUAGES
Key Concepts:
- Syntax: The set of rules that defines the
combinations of symbols considered to be
correctly structured programs.
- Semantics:The meaning of the syntactically
correct strings in a language.
-
UNDERSTANDING PROGRAMMING
Java
LANGUAGES
Overview: Java is a high-level, class-based, object-oriented programming language
designed to be portable and run on any device equipped with the Java Virtual Machine
(JVM).

Key Concepts:

Object-Oriented Programming (OOP): Core principles include encapsulation, inheritance,


polymorphism, and abstraction. Java promotes a robust OOP paradigm.
Platform Independence: Java programs are compiled into bytecode that can run on any
device equipped with the JVM.
Automatic Memory Management: Java features automatic garbage collection to manage
memory.
Standard Library: Extensive standard library (Java API) that provides many utilities, such
as data structures, networking, and I/O utilities.
Concurrency: Java provides a rich set of APIs for handling multi-threading and
concurrency, such as the java.util.concurrent package.
UNDERSTANDING PROGRAMMING
Popular Uses:
LANGUAGES

Enterprise Applications: Widely used in enterprise environments for building large-


scale applications (e.g., banking systems, CRM systems).
Android Development: Primary language for Android app development (Android
Studio).
Web Applications: Java is used for web development with frameworks like Spring
and JavaServer Faces (JSF).
Big Data: Tools like Apache Hadoop are often developed in Java.
Learning Resources:

Java Programming and Software Engineering Fundamentals Specialization


(Coursera)
Java Tutorials (Oracle)
Java Programming Masterclass for Software Developers (Udemy)
UNDERSTANDING PROGRAMMING
Python
LANGUAGES
Overview: Python is a high-level, interpreted, and dynamically typed language
known for its readability and straightforward syntax. It emphasizes code readability
and allows developers to express concepts in fewer lines of code.

Key Concepts:

Interpreted Language: Python code is executed line-by-line, making it easier to test


and debug.
Dynamic Typing: Variables in Python do not require an explicit declaration of their
type.
Indentation-Based Syntax: Uses indentation to define blocks of code, enhancing
readability.
Extensive Libraries: Rich standard library and a vast ecosystem of third-party
libraries (e.g., NumPy, Pandas, Matplotlib, Django).
Versatility: Suitable for web development, data science, automation, and more.
UNDERSTANDING PROGRAMMING
Popular Uses:
LANGUAGES

Web Development: Frameworks like Django and Flask enable rapid development of
web applications.
Data Science: Libraries like Pandas, NumPy, and Matplotlib are used for data
analysis and visualization. SciPy and scikit-learn are used for machine learning.
Automation and Scripting: Widely used for writing scripts to automate repetitive
tasks.
Artificial Intelligence and Machine Learning: Libraries like TensorFlow and PyTorch
are popular for AI and ML projects.
Learning Resources:

Python for Everybody Specialization (Coursera)


Python Official Documentation (Python.org)
Automate the Boring Stuff with Python (Udemy)
UNDERSTANDING PROGRAMMING
Go (Golang)
LANGUAGES
Overview: Go, also known as Golang, is a statically typed, compiled language
designed by Google. It is known for its simplicity, efficiency, and concurrency
support.

Key Concepts:

Static Typing: Types are explicitly declared and checked at compile-time, reducing
runtime errors.
Concurrency: Go’s goroutines and channels provide simple and efficient
concurrency mechanisms.
Efficient Compilation: Compiles quickly to native machine code, resulting in fast
execution.
Garbage Collection: Automatic memory management with garbage collection.
Simplicity and Readability: Emphasizes simplicity and avoids complex features like
inheritance and operator overloading.
UNDERSTANDING PROGRAMMING
LANGUAGES
Popular Uses:

Web Servers and Networking: Well-suited for building web servers and networking
tools (e.g., HTTP servers).
Cloud Services: Used in cloud infrastructure tools like Docker and Kubernetes.
Distributed Systems: Ideal for building distributed systems and microservices due to
its concurrency features.
Learning Resources:

Go Programming Language (Official Website)


Go: The Complete Developer's Guide (Udemy)
Go Tutorial (Tour of Go)
UNDERSTANDING PROGRAMMING
LANGUAGES
Kotlin
Overview: Kotlin is a statically typed programming language that runs on the JVM
and can be used anywhere Java is used. It is designed to improve upon Java’s
shortcomings and is fully interoperable with Java.

Key Concepts:

Concise Syntax: Reduces boilerplate code compared to Java, making code easier to
read and write.
Null Safety: Built-in null safety features to help avoid null pointer exceptions.
Interoperability: Fully interoperable with Java, allowing for seamless integration
with existing Java code and libraries.
Coroutines: Provides support for asynchronous programming through coroutines.
Modern Features: Includes modern programming features like extension functions,
lambda expressions, and smart casts.
UNDERSTANDING PROGRAMMING
LANGUAGES
Popular Uses:

Android Development: Officially supported by Google for Android app


development.
Server-Side Development: Used for building web applications with frameworks like
Ktor and Spring.
Multiplatform Development: Supports multiplatform projects, allowing code to run
on JVM, JavaScript, and native platforms.
Learning Resources:

Kotlin for Java Developers (Coursera)


Kotlin Official Documentation
Kotlin for Beginners: Learn Programming with Kotlin (Udemy)
UNDERSTANDING PROGRAMMING
LANGUAGES
C
Overview: C is a general-purpose, procedural programming language that provides
low-level access to memory and system resources. It is known for its efficiency and
control over hardware.

Key Concepts:

Procedural Programming: Focuses on functions and procedures to create programs.


Low-Level Operations: Allows direct manipulation of memory and hardware using
pointers.
Efficient and Portable: Provides high performance and can be used across different
platforms with minimal changes.
Manual Memory Management: Programmers have direct control over memory
allocation and deallocation using functions like malloc and free.
UNDERSTANDING PROGRAMMING
LANGUAGES
Popular Uses:

System Programming: Used for developing operating systems, compilers, and other
system-level software.
Embedded Systems: Widely used in embedded systems due to its efficiency and
low-level capabilities.
Game Development: Often used in game engines and performance-critical game
components.
Hardware Drivers: Development of hardware drivers and firmware.
Learning Resources:

C Programming for Beginners (Udemy)


Learn-C.org (Interactive Tutorial)
C Programming Language (K&R) Book
UNDERSTANDING PROGRAMMING
LANGUAGES
C++
Overview: C++ is an extension of C that includes object-oriented features, making it
suitable for both low-level system programming and high-level application
development.

Key Concepts:

Object-Oriented Programming: Supports classes, objects, inheritance,


polymorphism, and encapsulation.
Standard Template Library (STL): Provides a collection of template classes and
functions for common data structures and algorithms.
Manual Memory Management: Like C, provides control over memory allocation and
deallocation.
Performance and Efficiency: Combines low-level hardware control with high-level
programming features.
UNDERSTANDING PROGRAMMING
LANGUAGES
Popular Uses:

Game Development: Widely used for game engines and performance-critical game
components (e.g., Unreal Engine).
System/Software Development: Used for developing operating systems, databases,
and other performance-intensive applications.
Real-Time Systems: Suitable for real-time and embedded systems due to its
efficiency.
Learning Resources:

C++ for C Programmers, Part A (Coursera)


C++ Tutorial (cplusplus.com)
Beginning C++ Programming - From Beginner to Beyond (Udemy)
UNDERSTANDING PROGRAMMING
LANGUAGES
C#
Overview: C# is a modern, object-oriented language developed by Microsoft for
building a wide range of applications on the .NET framework.

Key Concepts:

Object-Oriented Programming: Supports encapsulation, inheritance, and


polymorphism.
Integrated Development Environment (IDE): Primarily used with Visual Studio.
Memory Management: Automatic garbage collection.
Rich Library and Framework Support: Extensive .NET libraries and frameworks for
various types of applications (e.g., ASP.NET for web development).
UNDERSTANDING PROGRAMMING
LANGUAGES
Popular Uses:

Windows Applications: Building desktop applications with Windows Forms or WPF.


Web Applications: ASP.NET for developing dynamic web applications.
Game Development: Unity game engine uses C# for scripting.
Mobile Development: Xamarin for cross-platform mobile app development.
Learning Resources:

C# Programming for Unity Game Development (Coursera)


C# Fundamentals for Absolute Beginners (Microsoft Channel 9)
The Complete C# Masterclass (Udemy)
UNDERSTANDING PROGRAMMING
LANGUAGES
PHP
Overview: PHP is a server-side scripting language designed for web development
but also used as a general-purpose language.

Key Concepts:

Server-Side Scripting: Generates dynamic page content.


Embedded HTML: Can be embedded in HTML code.
Database Integration: Strong support for databases like MySQL.
Easy to Learn: Simple syntax, especially for those familiar with HTML and
JavaScript.
Rich Ecosystem: Large community and many frameworks (e.g., Laravel, Symfony).
UNDERSTANDING PROGRAMMING
LANGUAGES
Popular Uses:

Web Development: Building dynamic websites and web applications.


Content Management Systems: WordPress, Joomla, and Drupal are built on PHP.
E-commerce Platforms: Magento, WooCommerce (WordPress plugin).
Learning Resources:

PHP for Beginners - Become a PHP Master (Udemy)


PHP Manual (php.net)
PHP: The Right Way (Tutorial)
UNDERSTANDING PROGRAMMING
LANGUAGES
JavaScript
Overview: JavaScript is a high-level, interpreted scripting language primarily used
for client-side web development, but also used for server-side development with
Node.js.

Key Concepts:

Event-Driven: Executes in response to user or system events.


Dynamic Typing: Flexible variable types.
Asynchronous Programming: Promises, async/await for non-blocking operations.
Rich Ecosystem: Extensive libraries and frameworks (e.g., React, Angular, Vue).
UNDERSTANDING PROGRAMMING
LANGUAGES
Popular Uses:

Web Development: Client-side scripting for dynamic web pages.


Server-Side Development: Node.js allows JavaScript to be used on the server.
Full-Stack Development: MEAN (MongoDB, Express.js, Angular, Node.js) and MERN
(MongoDB, Express.js, React, Node.js) stacks.
Mobile Development: React Native for building mobile apps.
Learning Resources:

JavaScript and jQuery: Interactive Front-End Web Development (Book)


JavaScript: Understanding the Weird Parts (Udemy)
JavaScript.info (Tutorial)
UNDERSTANDING PROGRAMMING
LANGUAGES
Swift
Overview: Swift is a powerful, open-source language developed by Apple for iOS,
macOS, watchOS, and tvOS app development.

Key Concepts:

Safety: Designed to eliminate common programming errors.


Performance: Compiled and optimized for performance.
Interoperability: Works alongside Objective-C.
Modern Features: Includes modern programming features like optionals, closures,
and generics.
UNDERSTANDING PROGRAMMING
LANGUAGES
Popular Uses:

iOS/macOS Applications: Primary language for developing apps within the Apple
ecosystem.
Server-Side Development: Swift can be used for server-side programming with
frameworks like Vapor.
Cross-Platform Development: Swift can be used with frameworks like SwiftUI for
developing applications across multiple Apple platforms.
Learning Resources:

Swift Programming: The Big Nerd Ranch Guide (Book)


The Complete iOS App Development Bootcamp (Udemy)
Swift Playgrounds (Apple)
UNDERSTANDING PROGRAMMING
LANGUAGES
Ruby
Overview: Ruby is a high-level, interpreted language known for its simplicity and
productivity, often used in web development.

Key Concepts:

Object-Oriented: Everything is an object.


Convention Over Configuration: Defaults that reduce the need for explicit
configuration.
Dynamic Typing: Variables do not require an explicit declaration of their type.
Rich Ecosystem: RubyGems for libraries and frameworks (e.g., Rails).
UNDERSTANDING PROGRAMMING
LANGUAGES
Popular Uses:

Web Applications: Ruby on Rails framework enables rapid development of web


applications.
Automation Scripts: Used for scripting and automating tasks.
Prototyping: Quick prototyping of applications due to its simplicity.
Learning Resources:

Learn to Program by Chris Pine (Book)


The Odin Project (Free Full-Stack Curriculum)
Ruby Programming Language (Codecademy)

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy