Education
Teaching IT skills at scale with hands-on labs
Practical IT skills are learned by doing, not by watching. This guide sets out how to choose between virtual and physical labs, sandbox them safely, check work automatically and deliver them over limited bandwidth.
· 5 min read
Nobody learns to configure a firewall, recover a database or harden a server from slides. Technical skills are built by repeated, supervised practice on real systems, with room to make mistakes. For universities and training centres, the challenge is to provide that practice to many learners at once, with limited equipment, limited instructor time and connectivity that cannot be taken for granted. Hands-on labs are the answer, but only if they are designed for scale from the beginning. Physical labs, with real switches, routers and servers on a bench, remain valuable for skills that depend on hardware: cabling, console access, physical troubleshooting and the experience of a device that will not boot. They are also costly to equip, hard to reset between sessions and limited to the people in the room. Virtual labs, built from virtual machines, containers and emulated network devices, can be provisioned for every learner, reset in moments and reached from anywhere. Most programmes benefit from both: virtual labs for the bulk of practice and physical sessions for the skills that genuinely need hardware. The choice between virtual and physical labs is the first design decision, and it is rarely all one or the other.
- Use virtual labs for operating systems, scripting, cloud, security tooling and most networking configuration.
- Reserve physical labs for cabling, hardware faults, and devices whose emulation is incomplete.
- Consider a hybrid where learners practise virtually first and then complete a shorter physical assessment.
Sandbox everything
Lab environments are, by design, places where learners run tools that could cause harm elsewhere: scanners, password crackers, misconfigured services and deliberately vulnerable applications. Each learner’s environment must be isolated from other learners, from the institution’s production network and from the internet, except where a lab genuinely requires outbound access through a controlled proxy. Provision environments from templates, give them short lifetimes, and destroy them automatically at the end of a session. Never let a lab share credentials, storage or network segments with administrative systems. Isolation also protects learners from one another: in security courses especially, a learner who can reach a classmate’s environment can spoil their work or, worse, learn bad habits about what is acceptable. Make the rules of engagement explicit in every lab, so learners know which targets they may test and which they must not touch. Reinforce them in assessment as well, because professional conduct is part of what an IT course should teach, and it is far easier to learn in a sandbox than at work.
Check lab tasks automatically
The constraint on scale is rarely the infrastructure; it is the instructor’s time spent checking whether each learner completed each step. Automated checks remove that bottleneck. A check is a small script that inspects the state of the learner’s environment and reports whether a task was achieved: is the service running, does the firewall rule block the right port, is the user in the right group, does the backup restore. Good checks test outcomes rather than the exact commands typed, so that learners who reach the right result by a different route are not penalised.
- Write checks alongside the lab instructions, and test them against both correct and deliberately incorrect solutions.
- Give feedback that explains what is wrong without giving away the answer.
- Allow repeated attempts during practice and limit attempts only in assessed labs.
- Keep a record of check results so instructors can see where a cohort is struggling.
Good checks test outcomes rather than the exact commands typed.
Deliver over low bandwidth
A lab that requires a fast, stable connection excludes many of the learners it should serve. Design for the weakest likely connection. Text-based terminals in the browser use a fraction of the bandwidth of full remote desktops, so prefer them wherever the skill allows. Where a graphical desktop is necessary, tune the protocol for low colour depth and resolution. Make sure that a dropped connection does not destroy work: the environment should persist for a reasonable time so the learner can reconnect and continue. Provide downloadable instructions and offline reading so that connected time is spent on practice, not on reading. Where possible, host lab infrastructure close to learners, in-country or in a nearby region, to reduce latency on interactive sessions.
Map labs to certification objectives
Many learners and employers value industry certifications, and their published exam objectives are a useful, public framework for structuring a programme. Map each lab to the objectives it covers and keep the map current as objectives are revised. This shows learners why each exercise matters, reveals gaps in coverage and makes it straightforward to describe a programme as aligned to an objective set without implying any partnership with the certifying body. Alignment should never become teaching to the test; the labs should build competence that would be valuable even without the certificate. Keep the mapping in a simple table that both instructors and learners can see, and review it whenever a certifying body publishes new objectives.
Operating the lab platform
- Budget compute for peak demand, typically the evenings before assessments, and shut environments down when idle.
- Version lab templates so that a change for one cohort does not break another mid-course.
- Train instructors on the platform itself, including how to inspect and reset a learner’s environment.
- Collect learner feedback on each lab and revise the ones where most learners get stuck on the same step.
Common pitfalls
Several mistakes recur. Labs are written once and never maintained, so instructions drift away from the software versions the templates actually contain. Checks are written to match the instructor’s own solution and reject valid alternatives, which teaches learners to copy rather than to think. Environments are left running after sessions end, so compute costs grow until the programme is quietly cut back. And labs are designed only for the fastest learners, with no hints or intermediate checkpoints for those who need more support. Each of these is avoided by treating labs as maintained software, with an owner, a version history and a review before every cohort. Done well, a lab platform turns scarce instructor attention into something that scales: the routine checking is automated, and instructors spend their time on the learners and concepts that genuinely need a person.