5
$\begingroup$

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?

$\endgroup$

closed as too broad by thesecretmaster, ItamarG3, Sean Houlihane, JonMark Perry, Nikita Jun 12 '17 at 23:47

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 3
    $\begingroup$ Welcome to cseducators! Could you add a little bit more context about the new coursework you are considering? It would help to make the answers you receive more targeted (and useful for future users) $\endgroup$ – Ben I. Jun 6 '17 at 16:04
  • 1
    $\begingroup$ On hold so I can't answer, but you've found the difference between teaching at a community college (or equivalent) and a university. $\endgroup$ – ivanivan Jun 14 '17 at 1:44
  • $\begingroup$ I wrote this procedural note as my feedback to the user(s) who flagged (who shall remain anonymous), but in case it's helpful for anyone else: "Debating scope is a major part of the early beta process, so I'm unwilling to mod-override this 'too broad' decision right now. If you feel strongly about it, I recommend starting a meta discussion." $\endgroup$ – Pops Jun 15 '17 at 14:31
  • 1
    $\begingroup$ (if you agree, let us know, so that we can vote to reopen) $\endgroup$ – Ben I. Jun 20 '17 at 13:12
  • 1
    $\begingroup$ Let the edit roll! $\endgroup$ – Gergely Jun 20 '17 at 13:13
5
$\begingroup$

Colleges and universities in the United States are required by our accreditors to have explicit learning goals and assess our effectiveness at meeting them. (I assume there are similar rules in other countries.) For example, here's how my upper-division Programming Languages course satisfies goals:

  • College-wide goals
    • Students will learn to think critically, which they will demonstrate by analyzing the behavior of programs in diverse languages without executing them.
    • Students will learn to develop and realize their own creative visions across the arts and sciences, which they will demonstrate by choosing the appropriate programming language or abstractions for a task
    • Students will learn to communicate responsibility and effectively, which they will demonstrate by justifying choices among and within programming languages.
  • Computer science department goals
    • Design and write a correct computer program, which they will demonstrate by writing programs both in and implementing new programming languages
    • Understand how computer systems (including architecture, operating systems, networks, and compilers) work, which they will demonstrate by adding languages features to an interpreter.
  • General education goals for quantitative and computational reasoning
    • Translate problems into the language of mathematics and computer science, and solve them by using mathematical and computational methods and tools, which they will demonstrate by writing and reasoning about programs in novel programming languages.
    • Understand the structure and development of logical arguments, which they will demonstrate by analyzing the behavior of programs in diverse languages without executing them.

If I were to teach a course in industry, I would be under no obligation to meet any goals other than those advertised for the course.

$\endgroup$
5
$\begingroup$

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.

$\endgroup$
  • $\begingroup$ Trainers: they are not just for running anymore. $\endgroup$ – user737 Jun 14 '17 at 20:43
4
$\begingroup$

Rather crudely you might see the differences as being:

A university - students engaged in study, where study is an end in itself.

Developer training - students engaged in study, where being job ready is the end goal.

What does this mean in practice? Developer training might be more inclined towards studying using the latest technologies (Javascript, Rust etc). Whilst University might tend more towards studying conceptual understanding (Matrices, Functional programming) and place less importance on the programming language (some unis teach with Fortran, Delphi etc.). You might also get courses at universities that don't appear so immediately applicable to job roles (courses on provability of programs, compiler creation), whilst developer training might be shorn of any course that isn't in high demand by the industry.

However. Working in the UK, the job readiness of a university degree is seen as a major indicator of the 'success' of a university course. We have the British Computer Society accrediting courses and universities are ranked on the employment rate of their students. So in reality, there might be no difference at all.

$\endgroup$
  • 1
    $\begingroup$ Developer training is more likely to be focused on a specific role than any university course though? $\endgroup$ – Sean Houlihane Jun 6 '17 at 16:59
  • 1
    $\begingroup$ That's also true, the fact that you are learning for a job might be learning for a very specific job $\endgroup$ – pluke Jun 6 '17 at 17:09
  • $\begingroup$ They are trying to force universities in to a job-training role, measured by success criteria? Exasperating. Why can't people just leave things alone? In the USA, part of the reason that so many 'jobs' now require 'degrees' is because of a 1971 Supreme Court decision which said that employers could not use any screening tests that "could be biased". So, the employers thought, "Fine, we will just require four years of college instead of a 3 hour test. Not our problem." I guess you have that kind of thing in the UK also? $\endgroup$ – user737 Jun 14 '17 at 20:40
  • 1
    $\begingroup$ I'm not sure that the UK model is so nefarious, just a slow creep of business thinking into academia. I was in a meeting the other day with trainee teachers, where one was quoted as saying "Event X didn't feel like value for money", they are now customers... $\endgroup$ – pluke Jun 15 '17 at 8:30
  • $\begingroup$ "Nothing succeeds like success." $\endgroup$ – user737 Jun 15 '17 at 13:23

Not the answer you're looking for? Browse other questions tagged or ask your own question.