
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Explore six chapters of software development concepts, from programming languages and code reuse to client-server architecture, data, cloud deployment, testing, and the app lifecycle.
Compare interpreted and compiled languages by explaining interpreters and compilers, machine code and binary execution on the CPU, and note platform and development-speed differences.
Demonstrate the difference between interpreted and compiled languages by running python and java examples in a terminal, showing line-by-line execution versus pre-built binaries and the related speed trade-offs.
Understand how programming languages translate text and graphics into machine code. Compare interpreters that execute code directly with compilers that convert high-level instructions into binary.
Determine what makes a programming language general purpose, capable of interacting with databases and cloud services, and supporting loops and conditionals, with a preview of Java, JavaScript, Python, and C++.
Explore domain-specific languages, a term for syntax to interact with computers that aren’t programming languages, including Markdown, XML, HTML, CSS, GraphQL, and SQL.
Explore why platform choice shapes language selection, balancing speed and ease of use. Compare Python, JavaScript, Java, C, C++, C#, and PHP in libraries, ease of learning, and applications.
Compare frameworks and libraries by showing how frameworks package startup, request handling, and responses for safer, faster apps, while libraries provide focused, reusable functionality.
Explore the difference between software frameworks and libraries, where frameworks provide generic, reusable functionality across applications so developers focus on business logic, while libraries deliver prebuilt, out-of-the-box capabilities.
Explore the architecture of a web application by examining Netflix's frontend, backend, API, database, cloud hosting on AWS, and a CDN, and learn how machine learning powers recommendations.
Understand frontend applications, the client-side UI that users interact with on websites and mobile apps. Learn how backend servers and APIs support frontends and how CDNs deliver content quickly.
Explore how a frontend app sends requests to backends via endpoints using a data contract, and how each unique request triggers backend processing to return a tailored response.
Explore how an API endpoint, a path like '/users' exposed by the server, accepts a concrete request and returns a specific type of response.
Explore the JSON data interchange format, a popular JavaScript object notation used to carry data between applications, with keys, values, and data types like strings, numbers, arrays, booleans, and null.
Explore how REST APIs work as a language-agnostic, resource-oriented architecture that uses JSON and http methods like get and post, with versioning and clear data contracts.
Explore how Swagger documents a rest api for a pet store, interact with endpoints using get, put, and delete, and observe 200 and 404 responses while updating a pet's name.
Explore how a rest api operates under the hood, from server and route handlers to controllers, services, and database interactions, using a blog post workflow.
Explore binary and text data types using real-world examples like photos and captions, and compare storage options from web servers to disk, databases, and cloud storage.
Explore how relational databases organize posts using a user foreign key, define a posts table schema, and perform CRUD operations with SQL.
Split post data between blob storage for photos and a relational database for text to improve efficiency, while cloud storage options include blob storage, relational databases, and non-relational databases.
Explore how cloud computing solves infrastructure challenges by shifting from in-house data centers to cloud providers like AWS, enabling scalable hosting, security, and focus on core business.
Explore cloud offerings such as IaaS, PaaS, and SaaS, with examples from AWS, Azure, and Google Cloud, and learn how global infrastructure and data replication enable scalable web apps.
Contrast cloud and on-prem infrastructure by noting instant cloud resource spin-up versus months to operate an on-prem data center; cloud offers high security and five nines availability with scalable infrastructure.
Interact with cloud services by creating a Google Cloud project, deploy a serverless function with Node.js, and test a live URL that responds with a name query parameter.
Demonstrate an automated deployment pipeline with GCP Cloud Build triggers, showing a multi-stage build from installation to deployment and tests that gate deployment.
Deploy assets to the hosting server and launch the application to complete the deployment efficiently.
Discover manual and automated testing of frontend and API validation, including unit and integration tests, and learn how quality assurance engineers ensure edge-case coverage.
Learn about types of tests by implementing a new Google login feature on a mock website, covering development, test cases, smoke tests, regression tests, and user acceptance testing.
Plan testing strategically by using private environments to catch issues before public release. Use development, staging, and production environments as separate infrastructure with dedicated resources and databases in the cloud.
Explore how to manage multiple environments with a deployment pipeline, using development and production environments, separate branches, and cloud build to validate changes before release.
Launching an application into memory creates its instance, while an environment provides the resources to deploy and publish it for testing.
Are you an intern in IT, junior IT engineer or have been an engineer for a while but worked in your own silo? Or maybe you're a non-technical professional working in IT like PM or BA that would like to better understand software development projects (and you are looking for IT for non-IT type of course)?
This course is for you!
But wait, what if you don't work in IT yet but would like to get into the industry as either technical or non-technical professional? This course is perfect for you too!
Sometimes the most important problem is WHAT You should learn. If you don't know the key problems and concepts, then how can You learn about them? More importantly, how can You effectively prepare for conversations about topics You have got no idea about? Time for some answers!
Some areas of knowledge in IT are quite complicated - not only for a non-technical person. For me personally some subjects do take A LOT of effort to explore and become productive in. IT is intellectually challenging for everyone including people who might seem to be comfortable with it on the surface. It just takes time and dedication to internalise some things. And that’s ok. As long as we have the right attitude and growth mindset. My objective with this course was to make all of the curriculum topics presented in digestible form, from ground up. Nonetheless, you might still find some sections more challenging than others.
This course is the one-stop-shop for learning about all the different areas of software development. It is packed with key concepts and knowledge. Everything is visualised with animations. No time is wasted for excessive details or talking too broadly. The information you'll find here is useful to understand different kinds of IT projects and what is going on around them. Not least, to understand who is doing what.
Based on student feedback the course has been updated with helpful activities! You will write and execute your first line of Python code. Not only that, detailed explanation of what is happening will give you an insight into how programming language syntax is constructed. On top of that, there are 30+ quiz questions to help you persist learned concepts. Actually, you might even learn something new from the quizzes, as even incorrect answers describe and explain actual, real-world concepts.
Here is a partial list of the topics that are covered in this course:
popular programming languages
difference between software frameworks and libraries and popular examples
basic components of web applications and applicable terminology
types of data and databases
what is cloud and why is it such a big deal
how are applications put on the internet or what is deployment
application testing and types of tests
application environments
most popular technologies for some of those basic application components
what is application architecture and how to design it
how are engineers collaborating on the same codebase and what is GIT
what is containerisation and how modern software development teams leverage it
why is agile practically the only methodology used to develop software
how does scrum come into this
engineering roles responsible for different components of applications
most popular technologies specific engineers work with
I've made this course after delivering such training offline internally in the company I work for to a group of non-technical PMs. Some of whom only recently had joined IT. It was received so wall that other departments started asking for it too.
One of the participants told me: "I learned more about IT during those 3 hours than during my 3 years in IT. This should be available online".
Consider signing up now!