Welcome to Technical Review Fundamentals. After watching this video, you will be able to: Summarize basic technical concepts, Define fundamental technical terms, And prepare for technical job interviews and exams. Before you enter the job market, it’s a good idea to solidify your skills as much as you can. It’s just as important to understand your limitations as well. This is a brief overview of some fundamental skills and concepts that would be valuable for you to know as you look for a software development position. Use it to review basic technical concepts. If some of them aren’t familiar to you, or you’re unsure of your knowledge, you may want to study them further to solidify your skills and make yourself a stronger candidate. You can also determine where you might want to expand your knowledge further. Software engineering is concerned with all aspects of software production from the early stages of system specification to maintaining the system when it’s in use. Beyond the development and production process, it includes project management and the development of tools, methods, and so on to support software production. As an engineering discipline, it uses appropriate theories and methods to solve problems within organizational and financial constraints. Any software process includes three types of activities: Software specification, where customers and engineers define the software that is to be produced and the constraints on its operation. Software development, where the software is designed and programmed by developers and engineers. Software testing, where the software is checked to ensure that it is what the customer requires. Engineers may become involved if a redesign is necessary. Coding is the process of writing computer programs. Essentially, coding translates the ideas from an algorithm into computer language. Here are some basic coding concepts. An array is a data structure consisting of a collection of values or variables, each identified by at least one array index or key. Depending on the language, array types may overlap other data types that describe aggregates of values, such as lists and strings. In a loop, which is also called an iteration, a statement or block is executed until the program reaches a certain state, or the operations have been applied to every element of a collection. This is usually expressed with keywords such as while, repeat, for, or do-until. A data type is a classification of data that indicates how the programmer intends to use the data. Most programming languages support various types of data, including integer, real, character or string, and Boolean. The basic arithmetic operations are addition, subtraction, multiplication, and division. Arithmetic is performed according to an order of operations. The scope of an identifier name binding is an association of a name to an entity, such as a variable. It is the region of a computer program where the binding is valid, meaning where the name can be used to refer to the entity. Such a region is referred to as a scope block. Programming languages simplify giving instructions to the CPU. The CPU understands only machine language instructions, which are very difficult for people to write. High-level languages are easier for people to use, so programs that are written in a high-level language are translated into machine language by either a compiler or an interpreter. This way, programming is easier for developers to do, and machine learning programs can then be executed any time they are needed. The history of programming languages stretches back to the 1950s. FORTRAN, the first high-level programming language, was designed for performing complex mathematical calculations. COBOL was designed around the same time for business applications. BASIC is a general-purpose language from the early 1960s that was designed to be simple enough for beginners to learn. C and C++ are powerful, general-purpose languages developed at Bell Laboratories in the 1970s. C# was created by Microsoft around 2000 for developing applications based on the Microsoft .NET platform. Java was created by Sun Microsystems in the early 1990s. It can be used to develop programs that run on a single computer or over the Internet from a web server. JavaScript is a slightly later related scripting language that can be run in browsers only. Python is a popular general-purpose language created in the early 1990s that is used in a wide variety of applications. Ruby, another general-purpose language from the 1990s, is popular for programs that run on web servers. Knowledge about networks and networking is fundamental to modern software development. Here are a few important networking concepts. The most common types of networks are defined in terms of geographic area. From the smallest to the largest, these are: Personal area networks, or PANs Local area networks, or LANs Metropolitan area networks, or MANs And wide area networks, or WANs A network protocol is an established set of rules that determine how data is transmitted between different devices in the same network. These rules help tell the computers in the network how to handle the information they receive. Some of the most common include: SMTP and POP3, used to provide e-mail services HTTP, a protocol used to deliver web content in browsers DNS, used in domain name translation SNMP, a network management protocol And DHCP, used to assign IP addresses to network devices automatically IP addresses enable devices to find each other easily no matter where they are in the world. Their format has evolved as the internet has grown. IPv4 is a four-byte address format that has been in use for decades and continues to be used by most internet-connected organizations. The latest IP addressing scheme, IPv6, uses a six-byte address so that many more devices on the Internet can be addressed. Object-oriented programming, or OOP, is a style of programming based on the concept of "objects“, data structures that can be used within the program. Objects can contain data in the form of fields, and code, in the form of procedures. Procedures are attached to objects and can access and modify the object's data fields. Object-oriented programming can model complicated systems from the real world into manageable software solutions. Basic ideas of object-oriented programming can be understood in terms of four fundamentals. In abstraction, the programmer tries to ensure that the entity will have all the relevant aspects included and no extraneous ones. Its main goal is to handle complexity by hiding unnecessary details from the user. That enables the user to implement more complex logic on top of the abstraction without understanding or even thinking about all the hidden complexity. Encapsulation refers to bundling data with the methods that operate on that data. Encapsulation is used to hide the values or state of a structured data object inside a class, preventing unauthorized parties’ direct access to them. Similar to abstraction, it provides an appearance of simplicity that promotes efficient and effective programming. Inheritance is basing an object or class upon another object or class, retaining similar implementation. In most class-based object-oriented languages, an object created through inheritance, known as a “child object”, acquires all the properties and behaviors of the parent, with some well-defined exceptions. Polymorphism is providing a single interface to entities of different types that may share some characteristics. For example, if an instructor and a student are both a kind of person, we can write a function which accepts a parameter of type “Person” and have it work on both instructor and student objects because they both inherit from the Person parent object. The Structured Query Language (SQL) is one of the fundamental building blocks of modern database architecture. SQL defines the methods used to create and manipulate relational databases on all major platforms. Normalization is a database design technique that reduces data redundancy and eliminates undesirable characteristics like insertion, update, and deletion anomalies. Normalization rules divide larger tables into smaller tables and link them using relationships. The purpose of normalization in SQL is to eliminate redundant data and ensure data is stored logically. SQL commands can be divided into two main sub-languages. The Data Definition Language contains the commands used to create and destroy databases and database objects. After the database structure is defined with DDL, database administrators and users can use the Data Manipulation Language to insert, retrieve and modify the data contained within it. A join statement combines data in several tables to efficiently process large quantities of data. There are five types of join: inner joins, outer joins, right joins, left joins, and cross joins. The term ‘cloud computing’ refers to various forms of virtualized IT infrastructure. In other words, cloud provides extended, virtualized computing resources that are available anywhere even though they run on physical components that are stored on-premises or at a vendor’s data center. In this way, servers, operating system software, networking, and other infrastructure can be pooled and divided without regarding physical hardware boundaries. There are three types of cloud services models. Each type of cloud computing provides different levels of control, flexibility, and management so that you can select the proper set of services for your needs. Infrastructure as a Service, or IaaS, is the most flexible type of cloud service and gives you complete control over the hardware that runs the application. Platform as a Service, or PaaS, provides a ready-to-use development environment where developers can focus on writing and executing code to make customized applications. And Software as a Service, or SaaS, provides you with a complete product that is fully run and managed by the service provider. There are also three types of cloud deployment model. Each is defined by where the infrastructure for the environment is located. In a public cloud model, clients store and host their applications, files, data, and other resources on a virtual server. These services are made available for the general public and are shared among multiple clients through a service provider. Public cloud services are free or offered on a pay-per-use pricing model. A private cloud offers a proprietary environment dedicated to a single business or organization. The hybrid cloud model combines cloud solutions so that the subscriber can use whichever is best for any situation. In this video, you learned: Basic information about technical topics such as coding, languages, networking, object-oriented programming, SQL, and cloud computing. And that it’s important to review and strengthen this knowledge to be a stronger candidate in the technical job market.