Courses
Discover thousands of courses from top institutions and platforms worldwide
Level
Course Type
Duration

YouTube
Explore the journey of becoming an effective software engineering manager in this insightful GOTO Book Club interview. Gain valuable insights from James Stanier, Director of Engineering at Shopify, and Gergely Orosz, author of The Pragmatic Engineer, as they discuss the challenges and opportunities of transitioning into management roles. Learn about the real stories behind Stanier's book, the differences between prescriptive advice and practical tools, and how to navigate the path to management. Discover current trends in engineering management, essential tools for success, and receive book recommendations to further your leadership skills. Whether you're considering a move into management or looking to enhance your existing leadership abilities, this talk offers practical guidance for thriving in the dynamic world of software engineering management.

YouTube
Explore the concept of "doneness" in software engineering through this conference talk that examines what it truly means to complete software development tasks beyond simply checking code into a repository. Learn how primitive approaches to marking work as complete can lead to technical debt and unwieldy codebases, while discovering a comprehensive framework for software engineering completeness. Understand the difference between tactical fixes and strategic direction in achieving various levels of completion, including crucial aspects like code quality improvement, technical debt management, legacy code decommissioning, and refactoring practices. Examine a Software Engineering Completeness pyramid modeled after Maslow's Hierarchy of Needs, which illustrates different levels of change completion from unsustainable code hacking at the bottom to mature engineering practices that future-proof applications at higher tiers. Discover how these pyramid levels directly correlate to engineering competence and maturity, helping you assess and aspire to different levels of software expertise. Gain insights into how properly defined and executed "doneness" drives superior software engineering outcomes, promotes flexible software architecture, creates satisfied end users, and enables clear communication about project completion status, ultimately revealing the true cost of software ownership and maintenance.

YouTube
Explore open source development and the Rust programming language in this insightful talk by Nicholas Matsakis and Aaron Turon from June 2018. Gain valuable insights into the collaborative processes and decision-making behind Rust's development, understanding how the community's input shapes the language's evolution. Discover the unique approach Rust takes to open source software (OSS) development and learn about the challenges and successes encountered along the way.

Udemy
Best Course for software engineer / developer and team lead for best practices in programming, application security etc What you'll learn: What is Excellence in Software DevelopmentWho are the best companies in software developmentWhat do these Excellent Companies do to develop softwaresBest Practices from Excellent Software Development Companies like Google, Microsoft, Amazon, GitHub, Netflix and SpotifyHow can you also adapt these best practices and become Excellent in Software Development Want to become Excellent in Software Development but don’t know what to do and how?Take a look at this course where you willNot only learn what to do to become Excellent in Software Development but also learnHow to adopt the Software Development Excellence Practices from Global Software Leaders.Preview many lectures for free to see the content for yourself·Get Udemy’s 30 days Money Back GuaranteeGet 4 bonus lectures of my new courses every month through educational announcements in your emailEnroll for free in my any other course using the coupon link in my YouTube channel videos from time to time subject to availabilityMy exposure to Software Development Excellence started when I came in contact with great software development companies like CISCO etc who came to IIM Udaipur to recruit management students to help them maintain and build on their excellenceI came to know about their requirements from the management students to drive excellence in Software DevelopmentI went on a journey to discover the best practices following by researching not only the companies visiting IIM Udaipur but also the Best Software Development Companies globally like GitHub, Netflix, Amazon Web Services, Spotify, Google and MicrosoftI bring in this course my learnings from this journey and sharing with you how can you also become Excellent in Software DevelopmentLook at what other students like you are saying about this course"Comprehensive and Insightful Guide to Mastering Software Development. Thank you for creating this excellent online tutorial on mastering software development. The lessons are well-structured, clear, and very informative""GREAT""Awesome""great content""Excellent and brief explanation about the topics in the industry""Super""It was very helpful, hatsoff to our mentor sir"It has too much good experience for me""verry good""Very Useful knowledge""Very good course to learn""Very good""My first time and the lesson are clearly explained. Looking forward to further in the course of study""Good""It is a good match and easy to understand"Preview for yourself many lectures free. If you like the content, enroll for the course, enjoy and skill yourself to Become Excellent in Software Development! If don't like the content, please message about how can we modify it to meet your expectations.Please remember that this course comes with Udemy’s 30 days Money Back Guarantee

YouTube
Explore key concepts in software engineering, including development cycles, requirements analysis, UML diagrams, test-driven design, and object-oriented principles in this comprehensive 90-minute lecture. Gain practical insights into creating activity diagrams, use cases, state diagrams, and class diagrams using UML. Learn how to apply object-oriented design techniques and implement them effectively in software development projects.

Swayam
Large scale software development poses special challenges. This course targets to expose the students to the challenges of large scale software development and would expose the students as to how to overcome those. Starting with basic life cycle model concepts, it would discuss requirements specification, design, and testing issues. The concepts will be illustrated with appropriate examples.INTENDED AUDIENCE: CSE, ITPREREQUISITES: C Programming, Java or C++ programming

XuetangX
Software Engineering (SE) is the essential course of majors Computer/ Software/ Electronic Science and Technique. The objectives are to have students to memorize the basic concept of object-oriented software engineering, to understand the SE Body of Knowledge and the SE standards, and to recognize SE’s effect to the real world and the society. After studying, students should understand the idea and theories of SE and software project management, and the tasks of each phase of the software lifecycle. The students are supposed to be able to use the theory and methods of object-oriented software engineering to determine the requirements and to analyze, to design and to implement the target software system. And the students should also be able to evaluate and improve the software system. The course will lay the foundation for the following SE-series courses.

YouTube
COURSE OUTLINE: Large-scale software development poses special challenges. This course targets to expose the students to the challenges of large scale software development and would expose the students as to how to overcome those. Starting with basic life cycle model concepts, it would discuss requirements, specification, design, and testing issues. The concepts will be illustrated with appropriate examples.

Coursera
Software development is not just about coding, it also involves the application of scientific knowledge and well-defined engineering techniques to produce maintainable, scalable, cost-effective and on-schedule software products. This specialization covers software engineering methodologies, techniques, and tools for planning, capturing requirements, designing, implementing, testing, and maintaining large-scale software systems. It combines scientific and technological knowledge with many hands-on examples and real-life case studies for students to apply software engineering skills in a realistic development environment. This specialization is intented for programmers who want to deepen their understanding of the methodologies and techniques involved in software development. Basic object-oriented programming (OOP) concepts are required to attempt the series of courses. It is recommended to take the courses in the order they are listed, as they progressively develop teachniques and concepts about software engineering, it is not a hard requirement.

Udemy
Everything you need to know about software requirements: elicitation, analysis, documentation, validation and management What you'll learn: Understand the need for requirements for software systems.Learn different types of requirements: functional, non-functional, system and process requirementsUnderstand the requirements engineering processes.Learn different techniques to derived and elicit requirementsDiscuss requirements analyses and conceptual modelingExplain how requirements are classifiedExplain various techniques to document the requirementsOverview software requirements verification and validationProvide an overview of requirements change management "Requirements Engineering" Is the first course in our "Software Engineering" series.If you are involved in software projects, especially large ones, you know that dealing with software requirements is the biggest problem the software practitioner faces in almost every project.Not working effectively with software requirements could be the number one reason for many software projects' failures.The course will discuss concepts for systematically establishing, defining, and managing the requirements for large, complex, changing, and software-intensive systems from technical, organizational, and management perspectives.The course will consider the past, present, and future paradigms and methodologies in requirements engineering.The course will cover informal, semi-formal, and formal approaches while balancing theory and practice.The course will involve building models of both the requirements engineering process and the requirements engineering product, concerning both functional and non-functional goals/requirements/specifications, using a systematic decision-making process.This course will help you manage the requirements aspect of software projects across various domains, sizes, technologies, platforms, and diverse practitioner and customer experiences. We need to acquire a set of tools, techniques, and best practices and learn when to use them to handle software requirements effectively and efficiently.In this course, you will learn various techniques to capture requirements, analyze and validate requirements, control and manage requirements change requests, and deliver a solid requirements document.You will understand the role of a requirements analyst in a software project, which will help you know what you need from them and what they need from you.The course is based on the Software Engineering Body of Knowledge (the SWEBOK) from IEEE. This course can also help you pass various software engineering exams provided by the IEEE. I will teach you everything you need to know, and I will answer any of your questions 24 x 7.

YouTube
Explore how artificial intelligence is revolutionizing software development in this 21-minute conference talk from Conf42 Python 2025. Discover the transformative impact of AI coding assistants on development workflows, learn about smart package management and security enhancements, and understand how AI is improving quality assurance and deployment processes. The presentation covers essential DevOps automation techniques, critical skills needed for AI integration, and advanced concepts like code embeddings and Retrieval Augmented Generation (RAG). Gain insights into maximizing AI tool efficiency, understand the broader industrial impacts of AI adoption, and examine important ethical considerations in AI development. The talk concludes with a forward-looking discussion on how the role of developers is evolving alongside AI technologies, providing a comprehensive overview of AI's current and future influence on development practices.

Udemy
Build great Software and Understand Software engineering in C# What you'll learn: Understand Core Concepts of Software EngineeringUnderstand Sorting AlgorithmsUnderstand Data StructuresUnderstand Software Engineering In order to create Efficient Algorithms, you must start from bottom. Learn the important concepts of problem solving and Software engineering. And then use the knowledge you gain to create your own algorithms. Algorithms are essential part of computer science and programing. Every program is executing some Algorithm. So it is important to know how to create efficient algorithms.I think every programmerexpierienced null pointer exceptionor something like that. These errors are not created by "not knowing the programming language" but they are created because the algorithmis incorrect. So what do you think is more important, Algorithms or programming language ?By learning Software engineering concepts. You will be able to create algorithms. Ofcourse it takes also practice, but learning software engineering is first stepto better algorithms and better analythic thinking.In this course I will go through Software engineering( algorithms and data structures, problem solving)In Sorting Algorithms section you will learn:Selection SortBubble SortRecursionMerge SortQuick SortIn Data Structures section you will learn:What is Data StructureBinary Search TreeAVL treeLinked ListTrieHash TableIn Problem Solving section you will learn:Divide and ConquerDynamic programmingGreedy AproachBacktrackingAnd I will explin these techniques on:0-1 Knapsack problemKruskal's algorithmsSo do you want to learn software engineering ?

YouTube
Learn about the six crucial developmental stages every software engineer experiences in this insightful 37-minute video presentation. Explore the journey from initially understanding a technology to articulating its workings, recognizing limitations, attempting improvements, acknowledging the constraints of new solutions, and finally reaching a mature appreciation for existing technologies. Gain practical insights through real-world examples using TCP/IP, backend development, and connection handling, while discovering how to avoid common pitfalls like using jargon to mask understanding. Master the delicate balance between innovation and appreciation of existing solutions, learning when to build around technologies versus attempting to replace them entirely.

YouTube
Learn about essential tools that every software engineer needs to master in this 12-minute video guide. Explore the fundamentals of development environments including IDE and text editor selection, version control systems for code management, and crucial Linux terminal commands. Discover best practices for environment management, testing frameworks implementation, and continuous integration/deployment (CI/CD) pipelines. Gain insights into additional bonus tools that can enhance development workflow and productivity. Master these foundational tools to improve efficiency and effectiveness as a software engineer.

YouTube
Join this interview from the GOTO Book Club featuring Steve Pereira and Andrew Davis, co-authors of "Flow Engineering," as they discuss their innovative approach to improving workflow visibility in software development and knowledge work. Discover how they've adapted value stream mapping for modern digital environments where work is largely invisible compared to traditional manufacturing settings. Learn about their five-map framework designed to help teams establish clarity, improve collaboration, and enhance productivity despite busy schedules and constant firefighting. The authors explain the importance of visual collaboration in creating shared mental models and discuss how these practices remain relevant in an AI-driven future. The 44-minute talk covers the complexity of modern software development, techniques for visualizing invisible work, details of the Five Maps Framework, and perspectives on how Flow Engineering will evolve alongside artificial intelligence.

LinkedIn Learning
Learn how to manage your manager. In this course, adapted from the podcast How to Be Awesome at Your Job, Mary Abbajay explains how to build a good relationship with your boss.

LinkedIn Learning
Learn how to create and manage apps with SCCM and prepare for Microsoft certification exam 70-703. See how to deploy apps using PowerShell scripts, and deploy App-V virtual apps.

YouTube
Explore the differences between software engineering and software craftsmanship in this insightful conference talk by Dave Farley, author of "Continuous Delivery" and "Modern Software Engineering." Delve into the evolution of software development practices, examining how software craftsmanship improved upon traditional methods but falls short of the engineering approach. Learn why engineering principles are crucial for creating effective software solutions and how they can enhance and extend the craft of software development. Gain valuable insights into the characteristics of successful software engineering practices and understand their importance in today's rapidly evolving tech landscape.

YouTube
Explore career development across different disciplines in software engineering through this 48-minute video featuring Stephen Toub, a Partner Architect on Microsoft's .NET team. Gain insights into successful remote work strategies, lessons from management experiences, and how roles in program management and technical assistance can enhance your career trajectory. Discover the importance of technical writing, communication skills, and staying close to core missions. Learn about navigating organizational changes, transitioning to open-source development, and mastering performance optimization. Benefit from Toub's experiences in consulting, full-time development, and working as a technical assistant for executives. Understand the value of networking, self-promotion, and mentorship in big tech companies. Ideal for software professionals seeking to broaden their skill set and advance their careers in the .NET ecosystem.

YouTube
Explore a conference talk on revolutionizing software development through feature flags and chaos engineering. Delve into open-source solutions, business impacts, and cost considerations of implementing these practices. Examine the limitations of traditional CI/CD pipelines and learn how integrating chaos engineering with feature flags can enhance reliability, resilience, and velocity in software development. Discover tools and strategies for adapting to changing technologies and standards while improving overall software quality and responsiveness to business needs.