Legacy Code Practical courses

Legacy Code À LA CARTE!

Tailor-made Legacy Code practice courses for your team

(company exclusive trainings from 3 employees)


Legacy codes unfortunately have a bad reputation. We show you the most effective way to work with this old code base. Take advantage of this opportunity and gain a competitive advantage.

Question for you and your team:

  • Do you need to understand a complex code base without a test suite, which creates challenges for you on a daily basis?
  • Do you dare not change existing code because of side effects that may affect other modules, causing errors?
  • Do you want to be able to work with your existing legacy code and learn the best strategies and techniques?

Then we have designed just the right training course for you!

What are typical objectives of courses focused on legacy code

Coding Academy seminars focused on legacy code are ideal for developers with a basic knowledge of any of the Python, C#, C++, or Java programming languages who are working with legacy code in an ongoing project. Or for anyone who is maintaining an existing project without a test suite or unit test. In the context of these courses, we shed light on legacy code, which is generally more difficult to test. After all, the reasons for this are usually hidden. Either there is no unit test for this code or the existing unit tests are not sufficient and do not cover all relevant cases. This makes some programmers think about reprogramming the whole project, but this is only necessary in very few cases. Because often the projects are very large, complex and the resulting software is already marketed. This makes it impossible to set up the code completely new and clean.

This is exactly where we come in with our Legacy Code Seminars. During the three days you write step by step specific tests for different parts of the workshop code. This secures the project and lets you change and adapt the code in peace and bring it into a much better state with clean code rules. Software you work on with these techniques gets better day by day as a result. The code quality increases. Changes and adjustments become easier. And you don't rewrite the original code, which guarantees smooth and safe operation of the application.

Of course, you write the tests and code under the guidance of proven subject matter experts and renowned trainers who lecture at the best universities in the country. This safeguards you and lets you understand the tricks of legacy code in a fun way. Also responsible for this good feeling is the pleasant environment in our modern training center in Munich, which is easily accessible by car or public transport. Once you are there, you can look forward to state-of-the-art computers - as well as delicious snacks and drinks waiting for you during your seminar.

The following is an example of a course on working with legacy code. As with all of our courses, you can, of course, tailor the topics and focus to the individual needs of your team.

We don't preach theory, we solve problems! Get the maximum knowledge for your team. Compile the topics according to your previous knowledge and needs, depending on the project. Because individual learning brings the desired success! Topics you click here will be automatically referred to us as soon as you send a request form!

Working with Legacy Code Techniken

What might a course with a focus on working with legacy code look like?

A course with this focus typically covers a selection of the following topics:

Introduction to Unit Test

Depending on the language, an introduction to the corresponding unit test and mocking framework is introduced. For example, JUnit 5 for Java, Pytst for Python, NUnit for C#, Catch2 for C++, and Jasmine/Jest and Mocha for JavaScript.

Clean Code Basics

The most important clean code concepts are covered in a language-independent manner, as well as best practices in the respective programming language are deepened with many examples and tasks.

Refactoring Patterns Basics

The most important refactoring patterns are explained in a practical way using several examples and workshops.

Working effectively as a team

These modules cover techniques that help make teamwork more productive and improve the quality of the resulting software.

The Working effectively as a team module includes the following focus areas:

COURSE EXAMPLES

What might a course focusing on working with legacy code look like?

The following is an example of such a course. As with all of our courses, you can of course tailor the topics and focus to your team's individual needs

What do you learn on the first day?

On the first day we make sure that all participants have the necessary basics for the rest of the seminar. Therefore, we start with a quick introduction to Unit Test as well as the very important Clean Code rules. Then we turn to the techniques you can use to build a safety net, such as Golden Master.

What will you learn on the second day?

On the second day you will learn more techniques such as Seams and how you can also use Test Coverage to determine what you should still be writing tests for in the first place and why! After that, we'll look together at the most important refactoring patterns you need to work efficiently with legacy code. Because after you have created your first safety net in the form of a unit test suite, you can calmly and relaxedly change the existing complex code and start all tests after each change to be sure that you haven't broken anything. Now the question is, how do I change the code very efficiently and skillfully? This is where refactoring patterns come into their own. We will show you the most important refactoring patterns first without the support of a development environment and then also how to apply them faster with the help of an IDE.

On this day, you will also learn other important techniques, such as how to break a monster class or monster method and how to use refactoring patterns to extract one or more classes from a long method.

What will you learn on the third day?

On the third day, you will learn more advanced techniques for working with legacy code such as Mutation Testing or Dependency Breaking Techniques. With these techniques you can reduce the complexity of legacy code step by step. Legacy code gradually becomes understandable and enjoyable code that you can build on without fear of breaking anything. The legacy code slowly disappears and is replaced by clean code. As a result, code quality also increases tremendously, and with it, of course, your productivity.

programming language independent?

Are the courses programming language independent?

A majority of the topics discussed in courses on working with legacy code are basically independent of the programming language used. However, it is very difficult to understand the concepts if you have not applied them yourself on concrete examples. Therefore, our courses always include numerous workshops in which we actually implement the discussed concepts in a programming language. Therefore we offer the course in a concrete language, either Python, C#, C++ or Java. This allows us to try out the techniques discussed on a legacy code base prepared specifically for this course and thus understand them in depth.

You can also combine topics from "Working with Legacy Code" with other modules of the programming language of your choice if you wish. More detailed information on each language can be found here:

  • Python for enterprise
  • C# for enterprise
  • C++ for enterprise
  • Java for enterprise

Your Trainer

Dr. Matthias Hölzl
Dr. Matthias Hölzl

Expert: Python, C++, Clean Code, Unit Test, Clean Design

Dr. Stefan Behnel
Dr. Stefan Behnel

Expert: Python, Pytest, Clean Code, Fast Python, Cython

Prof. Dr. Peer Kröger
Prof. Dr. Peer Kröger

Expert: Artificial Intelligence, Data Science, Python, Java

Dr. Max Meier
Dr. Max Meier

Expert: .NET/C#, Software Architecture, Microservice

Dr. Matthias Ludwig
Dr. Matthias Ludwig

Expert: Optimize processes, Agile Methods, Java, Python

Allaithy Raed
Allaithy Raed

Expert: Java, Python, Clean Code, Unit Test, Clean Design

COURSE FORMATS

We offer different course formats: 3-day programs, 4-week intensive programs, and online training videos.

    The 3-day program

    In 3 days (8 hours/day) you will be guided to the next level by an expert: Participate on-site at the Coding Academy Munich or online from anywhere in the world. With a practical exam for the certificate.

    3-Day Online Course

    The course takes place online. All you need is a computer with internet access. For some modules it is necessary to install specific Python packages or additional software. We will clarify details when compiling the course content. You will get access to the material on the first day of the course at the latest.

    3-Days on-site at the Coding Academy

    The course takes place in our modern and well-equipped training rooms. We provide each participant with a modern laptop free of charge during the training. Drinks are provided by the Coding Academy. Access to the material will be provided on the first day of the course at the latest.

    3-days on your premises

    If you wish, one of our experts will hold the course at your premises. Then you provide the technology, e.g. computers with the software needed for the course. With this format, there are additional costs for travel and accommodation.

    Online-Training Videos

    The videos pick up the topics from the live trainings and show real programming examples from practice.

    We also offer the courses as online-only training videos. You have access at any time and can access the modules at your pace. This way, you can benefit from our high-quality learning videos at a very affordable price. In our online forum you can discuss with other participants and get help from our Teaching Assistants in case of problems.

    Contact us about the availability of the course you want.

    The 4-week intensive program

    In 4 weeks to the next level: You get 2-3 hours of teaching and video material on Mondays and take part in our online live training for 2 hours on Fridays. Here, all open questions can be discussed and clarified with the trainer. With a practical exam for the certificate.

    This is a combination of online and offline training, sometimes referred to as "blended learning".

    Schedule

    • We always start on a Monday! You will get high quality learning videos, learning material and sample solutions on the first day. The videos are only available exclusively from us and were recorded by Coding Academy experts.
    • You will study for about 2 hours a day with the videos and study materials. Our courses include many workshops that you work on independently during this time. This engagement with the material and the exercises is essential for success! Because in the online sessions we answer questions about the material learned and discuss the solutions of the workshops, we do not re-explain what was covered in the Learning Video!
    • In the first week we meet online for 2 hours on Wednesday. You can ask questions here, we discuss your solutions to the tasks and explain further topics if necessary or solve additional tasks together.
    • On Friday we will meet again online for 2 hours. Just like Wednesday.
    • From the second week we repeat steps 1, 2 and 4, which means that on Monday you get learning videos and material, you deal with the topics offline and on Friday we meet for 2 hours.
    • We repeat the program for a total of 4 weeks.

    Great extra: Our online forum. All course participants can get help from our teaching assistants at any time.

    Questions and answers about Working with Legacy Code

    Which format is right for me?

    The content that is taught is the same whether you take the course online, on-site, in a 4-week program, or as a training video. We have had very good experiences with all formats.

    Online or on-site training?

    The online and on-site training courses teach the material in a compact, intensive form. You can reserve a block of time that is 100% dedicated to learning, which typically has a positive effect on the learning curve.

    On-site trainings are often a little easier to discuss in a group than online trainings, but online trainings eliminate the time spent traveling to the training and allow you to work in your familiar environment.

    4-week program and training videos?

    With the 4-week program and video-only courses, learning is spread out over a longer period of time. This allows you to flexibly divide your time, learn in a more relaxed way and offers more opportunities to try out the concepts you have learned in practice.

    Another advantage of these formats is that the team does not have to be completely removed from project work for several days. In addition, each participant can complete the video learning units and practice exercises at their own pace and does not have to wait for other participants or complete the assignments under time pressure.

    In the 4-week program, you are responsible for completing the designated learning units and exercises each week to stay on track with the material.

    What is formal process (order, training, invoice)?

    • If you are interested in training, it is best to contact us so that we can clarify the professional issues.
    • If you would like to complete the training with us, we will be happy to send you a non-binding offer.
    • If you like the offer, accept it (a short confirmation by e-mail is sufficient).
    • If you need an order confirmation, we will be happy to send it to you.
    • Then, together, we will find a date that works well for your team.
    • For online training, we will provide you with the link: MS Teams, BBBServer or Zoom.
    • A few days after the training you will receive an invoice with a payment term of two weeks.
    • In case of active participation in the training, participants will receive their certificates subsequently by e-mail.

    What distinguishes courses at the Coding Academy?

    • Individual: we specifically address you and take into account your previous knowledge, desired topics and focal points
    • Developed by experts according to the Raed Teaching Method®
    • Compact, lively and entertaining
    • Structured and easy to understand
    • Lots of practice: you can immediately apply the knowledge you learn in the course
    • Theory optimized to the essentials
    • Many examples and tasks whose level of difficulty increases linearly
    • Small groups: max. 8 participants in the 3-day course; max. 15 participants in online coaching
    • Highly qualified trainers with up to 30 years of experience in industry and teaching at German colleges and universities
    • For on-site training, we provide participants with modern laptops at no additional cost

    Do the participants of the Working with Legacy Code courses receive a certificate?

    Of course, as a participant in a Working with Legacy course you will receive a certificate. The prerequisite for this is the complete participation in all course units and programming tasks and the successful programming of a small final project. However, after an intensive Working with Legacy course, this will certainly give you more pleasure than stress.

    NO QUESTION REMAINS UNANSWERED HERE!

    We are very happy to take time for you. Use our contact form for a written contact. Our team will respond quickly and within 24 hours at the latest. In case of technical questions and to clarify the focal points, which are target-oriented for your team, please use the possibility of a non-binding consultation appointment.