What should be the difference between a university course and developer training? I teach university students and would like to start teaching prospective developers. As such, I have been thinking about the core differences between these two audiences.

I find that students are sometimes less motivated and less prepared, while developers are more experienced and sometimes really enthusiastic.

Is this correct? And if so, how should this difference impact my methods of instruction?
I teach and develop curriculum at a training-oriented nonprofit, and have taught in an academic setting as well. Here are some of the ways that I try to approach trainings for professional developers:


Remembering that trainings are for practitioners, and as such, the lessons should be oriented toward objectives that will be immediately useful in their work. So, for example, with entry-level developers we de-emphasize (and sometimes leave out completely) topics such as concurrency and algorithm analysis.
In general, relate the presentation of topics as much as possible to how they will be used on the job. With assignments, this can be essentially a linguistic slight-of-hand: state assignment tasks as user stories, provide a narrative for the assignment that aligns with workplace practices ("The client has asked for feature X, and your team lead has tasked you with this feature"), etc.
Using current, professional-grade tools: Git+GitHub, widely-used IDEs, professional-grade databases (e.g. not DBs like SQLite).
Using as supplemental (and sometimes primary) resources that professional developers use. In particular, we emphasize use of official documentation and references.


These approaches often are employed in an academic setting, but they are essential (in my view) in a training setting, where developers will highly optimize their own learning toward direct, practical application. As the instructor, it's my job to make clear the connection between the material and their day-to-day work.