We may earn an affiliate commission when you visit our partners.
Course image
Kamil Kulik • Software Engineer

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.

Read more

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

Enroll now

Here's a deal for you

We found an offer that may be relevant to this course.
Save money when you learn. All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

What's inside

Learning objectives

  • Get an overview over key concepts of modern, professional software engineering and development
  • Learn what an api is, how websites and other apps are using apis and how an api is built
  • Find out what is a web app and how it is built, what are its components and how they interact
  • Learn what are the basic programming concepts like programming language, framework, library, database, cloud and much more
  • Understand the hottest trend in software development - containers with docker and kubernetes
  • Understand basic metrics to measure application performance and reliability
  • Learn how to scale production applications using different app architectural patterns
  • See how developers collaborate with one another and understand the industry standard for codebase storage
  • Learn what are some of the popular technologies used by different engineering roles
  • Develop an intuition about the basics of software development process (sdlc)

Syllabus

Course Overview
Course Agenda
Let's connect!
Programming basics
Read more
Interpreted vs Compiled programming languages
Interpreted vs Compiled programming languages - demo
Hello World
Programming - terminology
What is a programming language?
Domain-specific languages
Tell me what you think!
Working with programming languages
Popular programming languages
Choosing programming language for a project
Framework vs library
Framework vs library - terminology
Application components and communication between them
Components of a web application
Web app components - terminology
Communication between components
Request and response
Component communication - terminology
APIs
Exploring SpaceX website and API
JSON data interchange format
JSON in practice
What is and how does REST API work?
Exploring a real REST API
Prerequisites for coding challenges going forward.
Make your first real API request in Python!
REST API under the hood
Data. Types of data and databases
Data types
Storage on server disk
Relational Database
A little SQL challange
Cloud storage
Cloud. Biggest providers and their offering
Cloud - what problem does it solve?
Cloud offering
Cloud vs on-premises infrastructure
Using cloud - demo
Cloud offering - terminology
Cloud
Application deployment
What is application deployment?
Deployment methods
Deployment pipeline - demo
Challange. Setup a deployment pipeline!
Benefits of setting up and using deployment pipelines in software development
Deployment - terminology
Testing and test types
Introduction to testing
Basic testing
Coding challange. Write your first unit test in Python!
Types of tests
Application Environments
Application environments - demo
Coding challange. Setup environments for a Python application
Environments - terminology
Application Tech Stack and Architecture
Tech stack
Application architecture
Architecture example pt. 1 requirements
Architecture example pt 2: design
Application Performance Attributes
Application performance
Application scalability
Application availability
MTBF & MTTR
Fault tolerance: prevention
Fault tolerance: detection
Fault tolerance: recovery
Other application quality attributes
Architecture patterns
Monolith
Explore a simple, monolithic codebase!
Multi-Tier | Client-Server architecture
Microservices
Event-driven microservices
Api gateway in event-driven microservices
Error handling in event-driven microservices and summary
Serverless
Application Lifecycle
Application lifecycle
Getting to MVP
Migration
Application tech stack and lifecycle - terminology
Collaboration introduction
Can 9 developers deliver a project in a month?

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Builds a foundational knowledge of software engineering and development
Covers basic programming concepts, web application components, databases, cloud computing, and deployment
Provides a comprehensive overview of modern software development practices, including Agile and DevOps
Introduces popular technologies and tools used in software development, including Python, Docker, and Kubernetes
Offers practical exercises and quizzes to reinforce learning
Designed for individuals with little to no technical background

Save this course

Save Software Development and IT - Complete Guide To Key Concepts to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Software Development and IT - Complete Guide To Key Concepts with these activities:
Refresh your understanding of programming fundamentals
Strengthen your programming foundation by reviewing basic concepts, ensuring a solid understanding before diving deeper into the course content.
Browse courses on Programming Fundamentals
Show steps
  • Revisit key programming concepts such as variables, data types, and control flow.
  • Practice writing simple programs to reinforce your understanding.
Review "Clean Architecture"
Gain a deeper understanding of software architecture principles by reviewing Robert C. Martin's "Clean Architecture", enriching your theoretical knowledge.
Show steps
  • Read through the book, focusing on the key principles of Clean Architecture.
  • Reflect on how these principles can be applied to your own software development projects.
Review deploying web applications
Examine how web applications are deployed to better grasp the process discussed in this course.
Browse courses on Deployment
Show steps
  • Revisit key terminology and concepts related to web application deployment.
  • Explore various cloud platforms and their deployment features.
  • Practice setting up a deployment pipeline for a simple web application.
Six other activities
Expand to see all activities and additional details
Show all nine activities
Practice writing unit tests in Python
Enhance your testing skills by practicing writing unit tests in Python, reinforcing the importance of software testing.
Browse courses on Unit Testing
Show steps
  • Learn the basics of unit testing and the Python testing framework.
  • Write unit tests for simple functions and classes.
  • Use assertions and other testing methods to verify the correctness of your code.
Build a RESTful API using Flask or Django
Solidify your understanding of RESTful APIs by building one using Flask or Django, gaining hands-on experience in API development.
Browse courses on RESTful APIs
Show steps
  • Choose a project idea and design the API.
  • Implement the API using Flask or Django.
  • Test and deploy the API.
Attend a workshop on Agile development
Enhance your understanding of Agile development by attending a workshop, gaining practical insights and hands-on experience.
Browse courses on Agile Development
Show steps
  • Find a reputable workshop on Agile development.
  • Actively participate in the workshop activities and discussions.
  • Apply the learned concepts to your own software development projects.
Practice writing REST API requests in Python
Strengthen your understanding of REST APIs by practicing writing requests in Python, enhancing your hands-on experience.
Browse courses on REST API
Show steps
  • Understand the syntax and structure of REST API requests.
  • Use Python libraries to send GET and POST requests.
  • Handle JSON responses and parse the data accordingly.
Explore Docker and Kubernetes tutorials
Deepen your knowledge of Docker and Kubernetes through guided tutorials, gaining practical experience in containerization.
Browse courses on Docker
Show steps
  • Find reputable tutorials on Docker and Kubernetes.
  • Follow the tutorials step-by-step, building your own containerized applications.
  • Experiment with different containerization techniques and configurations.
Mentor junior engineers on software development
Sharpen your understanding of software development principles by mentoring junior engineers, providing guidance and support.
Browse courses on Mentoring
Show steps
  • Identify opportunities to mentor junior engineers.
  • Share your knowledge and experience in software development.
  • Provide constructive feedback and support to help them grow.

Career center

Learners who complete Software Development and IT - Complete Guide To Key Concepts will develop knowledge and skills that may be useful to these careers:
Cloud Engineer
A Cloud Engineer is a professional who designs and manages cloud computing systems. This course can be particularly useful for this role, as it provides an overview of cloud computing concepts, including cloud storage, deployment, and scaling. The course also covers the basics of software development and architecture, which is essential knowledge for any Cloud Engineer.
Web Developer
A Web Developer is a professional who designs and develops websites and web applications. This course can be particularly useful for this role, as it covers the basics of web application development, including the components of a web application, request and response handling, and REST APIs. The course also provides an overview of cloud hosting and deployment, which is essential knowledge for any Web Developer.
Software Architect
A Software Architect is a professional who designs and builds the architecture of software applications. This course can help build a foundation for this role by providing an overview of key concepts in software engineering, such as programming fundamentals, application architecture, and testing. The course also covers Agile development and deployment, which is essential knowledge for any Software Architect.
Computer Science Researcher
A Computer Science Researcher is a professional who conducts research in the field of computer science. This course can be particularly useful for this role, as it provides an overview of key concepts in software engineering, such as programming fundamentals, software architecture, and testing. The course also covers Agile development and cloud computing, which is essential knowledge for any Computer Science Researcher.
Software Engineer
A Software Engineer is a professional who designs, develops, and maintains software applications. This course can help build a foundation for this role by providing an overview of key concepts in software engineering, such as programming fundamentals, application architecture, and testing. The course also covers the Agile development methodology, which is widely used in the software industry.
Technical Writer
A Technical Writer is a professional who writes documentation for software and other technical products. This course can help build a foundation for this role by providing an overview of key concepts in software development, such as programming fundamentals and software architecture. The course also covers Agile development and deployment, which is essential knowledge for any Technical Writer.
DevOps Engineer
A DevOps Engineer is a professional who combines software development and operations roles to improve the efficiency and reliability of software delivery. This course can help build a foundation for this role by providing an overview of key concepts in software development, such as programming fundamentals, application architecture, and testing. The course also covers Agile development and deployment, which is essential knowledge for any DevOps Engineer.
Quality Assurance Analyst
A Quality Assurance Analyst is a professional who tests and evaluates software applications to ensure they meet quality standards. This course can help build a foundation for this role by providing an overview of software testing concepts and practices. The course also covers the basics of programming and software architecture, which is essential knowledge for any Quality Assurance Analyst.
IT Project Manager
An IT Project Manager is a professional who plans, executes, and monitors IT projects. This course can be particularly useful for this role, as it provides an overview of key concepts in software development, such as programming fundamentals, software architecture, and testing. The course also covers Agile development and deployment, which is essential knowledge for any IT Project Manager.
Product Manager
A Product Manager is a professional who manages the development and launch of software products. This course can be particularly useful for this role, as it provides an overview of key concepts in software development, such as programming fundamentals, software architecture, and testing. The course also covers Agile development and deployment, which is essential knowledge for any Product Manager.
Business Analyst
A Business Analyst is a professional who analyzes business requirements and translates them into technical specifications for software development. This course can be useful for this role, as it provides an overview of key concepts in software development, such as programming fundamentals, software architecture, and testing. The course also covers Agile development and deployment, which is essential knowledge for any Business Analyst.
Information Security Analyst
An Information Security Analyst is a professional who protects computer systems and networks from cyber threats. This course can be useful for this role, as it provides an overview of cloud security concepts. The course also covers the basics of software development and deployment, which is essential knowledge for any Information Security Analyst.
Mobile Developer
A Mobile Developer is a professional who designs and develops mobile applications for smartphones and tablets. This course may be helpful for this role, as it provides an overview of the basics of software development, including programming fundamentals and software architecture. The course also covers cloud storage and deployment, which is relevant to mobile app development.
Data Engineer
A Data Engineer is a professional who designs and builds data pipelines and systems. This course may be useful for this role, as it provides an overview of data storage and processing concepts. The course also covers cloud storage and deployment, which is essential knowledge for any Data Engineer.
IT Consultant
An IT Consultant is a professional who provides consulting services to businesses on IT-related matters. This course can be useful for this role, as it provides an overview of key concepts in software development, such as programming fundamentals, software architecture, and testing. The course also covers Agile development and cloud computing, which is essential knowledge for any IT Consultant.

Reading list

We've selected 13 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Software Development and IT - Complete Guide To Key Concepts.
Classic for a reason. It practical guide to writing clean code that is easy to read, maintain, and extend. It great resource for both beginners and experienced developers.
Classic for a reason. It collection of essays on software engineering that are still relevant today. It great resource for both beginners and experienced developers.
Comprehensive guide to domain-driven design. It covers everything from the basics to advanced topics, and it great resource for both beginners and experienced developers.
Comprehensive guide to agile software development. It covers everything from the basics to advanced topics, and it great resource for both beginners and experienced developers.
Comprehensive guide to designing and building data-intensive applications. It covers everything from the basics to advanced topics, and it great resource for both beginners and experienced developers.
Comprehensive guide to cloud computing. It covers everything from the basics to advanced topics, and it great resource for both beginners and experienced developers.
Classic for a reason. It comprehensive guide to Java that covers everything from the basics to advanced topics. It great resource for both beginners and experienced Java developers.
Comprehensive guide to DevOps. It covers everything from the basics to advanced topics, and it great resource for both beginners and experienced developers.
Practical guide to designing and building microservices. It covers everything from the basics to advanced topics, and it great resource for both beginners and experienced developers.
Comprehensive reference for the Java language. It covers everything from the basics to advanced topics, and it great resource for both beginners and experienced Java developers.
Practical guide to building RESTful web services. It covers everything from the basics to advanced topics, and it great resource for both beginners and experienced developers.
Is perfect for people who are new to Java. It covers the basics of the language in a clear and concise way, and it is full of helpful illustrations and examples.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Software Development and IT - Complete Guide To Key Concepts.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser