We may earn an affiliate commission when you visit our partners.
Pluralsight LIVE

Join Dylan Beattie for an enlightening discussion about the problem of managing legacy code, the role of education in the world of modern software development – and the very nature of what it means to be a software engineer.

Read more

Join Dylan Beattie for an enlightening discussion about the problem of managing legacy code, the role of education in the world of modern software development – and the very nature of what it means to be a software engineer.

The world runs on code. Here in 2020, you can't watch a movie, book a train ticket, or see a doctor without your details passing through all sorts of programs and services. From websites, to email, to cloud databases and mobile apps, code has become a vital part of the infrastructure that runs our society. Maintaining and managing these vast, complex codebases is a huge challenge for our industry - but whenever we talk about innovation in the field of software development, we talk about writing new code, new platforms, new frameworks. Courses, exams, and interviews are all about writing code - about writing small, standalone programs to demonstrate a particular algorithm or pattern - and then developers land their first professional role and suddenly they're expected to maintain a few hundred thousand lines of code they've never seen before. Join Dylan Beattie for an enlightening discussion about the problem of managing legacy code, the role of education in the world of modern software development – and the very nature of what it means to be a software engineer.

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

Syllabus

The Problem with Little Programs

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Suitable for software developers at any career stage who want to deepen their understanding of legacy code management
Focuses on the unique challenges and responsibilities of modern software engineers
Led by Dylan Beattie, an experienced software engineer and educator

Save this course

Save The Problem with Little Programs 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 The Problem with Little Programs with these activities:
Review basic programming concepts
Recall basic programming concepts like data types, variables, and control flow to enhance understanding of legacy code.
Browse courses on Programming Fundamentals
Show steps
  • Revisit textbooks or online resources on programming fundamentals
  • Solve coding challenges related to basic syntax and data structures
Read 'Working Effectively with Legacy Code' by Michael Feathers
Gain insights from an industry expert on practical techniques for managing and evolving legacy code.
View Brutal Refactoring on Amazon
Show steps
  • Obtain a copy of the book
  • Read and understand the key concepts and strategies
  • Apply the learnings to personal or professional projects
Explore best practices for managing legacy code
Gain practical insights into techniques for refactoring and maintaining legacy code effectively.
Show steps
  • Identify relevant tutorials on legacy code management
  • Follow step-by-step instructions and apply best practices to legacy code examples
  • Document key takeaways and lessons learned
Three other activities
Expand to see all activities and additional details
Show all six activities
Write a blog post or article on the challenges of legacy code management
Solidify understanding of legacy code management by sharing knowledge and insights through written content.
Show steps
  • Research and gather information on legacy code management
  • Identify key challenges and best practices
  • Develop an outline and write the blog post or article
  • Publish and share the content with the community
Attend a workshop on legacy code modernization
Gain exposure to industry best practices and learn from experts in legacy code modernization through interactive workshops.
Show steps
  • Research and identify relevant workshops
  • Attend the workshop and actively engage with instructors and peers
  • Apply workshop learnings to personal or professional projects
Participate in a legacy code refactoring challenge
Enhance problem-solving skills and gain recognition for legacy code refactoring abilities by participating in challenges.
Browse courses on Coding Challenges
Show steps
  • Identify and register for relevant challenges
  • Analyze legacy code examples and develop refactoring solutions
  • Submit solutions and receive feedback from peers or judges

Career center

Learners who complete The Problem with Little Programs will develop knowledge and skills that may be useful to these careers:
Software Development Manager
As a Software Development Manager, you will lead and manage teams of software developers throughout the software development lifecycle, including planning, design, coding, testing, and deployment. As a manager, you will ensure that the software development process is efficient and effective, and that the software products meet the requirements of the business. This course would be particularly helpful to you because its content on the problems associated with legacy code and the nature of software engineering will help you better understand the technical aspects of software development. This will enable you to make more informed decisions about the software development process and the management of your team.
Software Architect
Software Architects design, develop, and maintain the architecture of software systems. They work closely with software developers to ensure that the software system is scalable, reliable, and secure. This course may be helpful to you by informing you of some of the problems inherent to software engineering that you may wish to avoid.
Principal Software Engineer
As a Principal Software Engineer, you will provide technical leadership and guidance to software development teams. You will also work on complex software design and development projects. This course will be particularly helpful to you because its discussions on legacy code and modern software development are not typically covered in undergraduate programs. This will give you an advantage in the field, enabling you to lead your teams more effectively.
Software Development Engineer
Software Development Engineers design, develop, and maintain software systems. They work on all aspects of the software development lifecycle, from planning and design to coding, testing, and deployment. This course may be of interest to you because it can introduce you to modern software development thinking and help you to avoid some of the pitfalls of managing legacy code, which will bring value to your team.
Information Technology Director
Information Technology Directors plan, implement, and manage IT systems and services for organizations. They also oversee the IT staff and budget. This course will likely be of interest to you by providing you with an understanding of the problems inherent to managing legacy code, including its impact on staff and budget, as well as some modern software development thinking.
Software Quality Assurance Analyst
Software Quality Assurance Analysts test software to identify and fix bugs. They also work with software developers to improve the quality of the software. This course would be particularly helpful to you by providing you with an understanding of the problems inherent to legacy code, which will improve the quality of your testing.
Data Scientist
Data Scientists use data to solve business problems. They work with data to identify trends, patterns, and insights. This course may be of interest to you because its content on the role of education in modern software development can help you stay current with modern trends in data science.
Computer and Information Systems Manager
Computer and Information Systems Managers plan, implement, and manage computer and information systems for organizations. They also oversee the IT staff and budget. This course may be of interest to you by providing you with an understanding of the problems inherent to managing legacy code, including its impact on staff and budget, as well as some modern software development thinking.
Computer Programmer
Computer Programmers write and maintain computer programs. They work on all aspects of the software development lifecycle, from planning and design to coding, testing, and deployment. This course may be of interest to you because it can introduce you to modern software development thinking and help you to avoid some of the pitfalls of managing legacy code, which will bring value to your team.
Information Security Analyst
Information Security Analysts plan and implement security measures to protect an organization's computer systems and networks. They also investigate security breaches and make recommendations for improvement. This course may be of interest to you because its content on the nature of software engineering can help you stay current with security concerns in modern software development.
Computer Hardware Engineer
Computer Hardware Engineers design, develop, and maintain computer hardware. They work on all aspects of the computer hardware lifecycle, from planning and design to manufacturing and testing. This course may be of interest to you because its content on the nature of software engineering can help you stay current with the interaction of hardware and software.
Computer Network Architect
Computer Network Architects design, implement, and maintain computer networks. They work on all aspects of the computer network lifecycle, from planning and design to implementation and maintenance. This course may be of interest to you because its content on the nature of software engineering can help you stay current with modern network software development.
Database Administrator
Database Administrators plan, implement, and maintain databases. They work on all aspects of the database lifecycle, from planning and design to implementation and maintenance. This course may be of interest to you because its content on the nature of software engineering can help you stay current with modern database software development.
Web Developer
Web Developers design, develop, and maintain websites. They work on all aspects of the website lifecycle, from planning and design to implementation and maintenance. This course may be of interest to you because its content on the role of education in modern software development can help you stay current with modern trends in web development.
Software Tester
Software Testers test software to identify and fix bugs. They also work with software developers to improve the quality of the software. This course may be of interest to you because its content on the nature of software engineering can help you stay current with modern software development testing.

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 The Problem with Little Programs.
This practical guide to working with legacy code provides techniques and strategies for understanding, maintaining, and refactoring existing codebases.
This seminal work on design patterns provides a catalog of reusable design solutions that can be applied to a wide range of software development problems.
Provides a set of principles and best practices for writing clean, maintainable, and extensible code.
Provides a comprehensive guide to domain-driven design, a software development approach that focuses on modeling the business domain and its relationships.
Provides a detailed analysis of the architecture of several open source applications, including tips on how to design and maintain complex software systems.
Provides a concise overview of the key challenges and best practices in software architecture, including how to manage technical debt and legacy code.
Provides a visually engaging introduction to design patterns, including examples of how they can be used to solve common software development problems.
This classic book on software engineering provides timeless insights into the challenges and complexities of software development, including the importance of software architecture and design.
This comprehensive guide to software testing provides techniques and strategies for testing and debugging complex software systems, including legacy code.
Provides a set of ethical principles and best practices for software developers, including how to manage technical debt and legacy code.
This novel tells the story of a fictional IT team that must overcome technical and organizational challenges to deliver a critical software project.
Provides a comprehensive guide to DevOps, a set of practices and tools that enable teams to deliver software updates more frequently and with less risk.

Share

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

Similar courses

Here are nine courses similar to The Problem with Little Programs.
Unit Testing for C# Developers
Introduction to Generative AI for Software Development
Technical Writing: Documentation on Software Projects
CICS Application Programming Fundamentals (COBOL)
Domain-Driven Design: Working with Legacy Projects
Building R Packages
Basic Manual Software Testing +Agile+Bugzilla for...
Continuous Inspection and Configuration Management -...
Introduction to Test and Behavior Driven Development
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