I think that "диванный" is a neologism, probably not more than 7-8 years old, and comes from the direct (admittedly, good) translation of "armchair".
It is used mainly to refer to self-styled military specialists ("диванный генерал", "диванный вояка", "диванные войска") and/or self-styled experts ("диванный эксперт", "диванный аналитик").
In contemporary Russian use, the use of "диванный" adj. actually voids the meaning of the noun to which it's applied (e.g., "диванный эксперт" = "not an expert actually") and has a ironic or sarcastic or even pejorative connotation.
The older Russian analogues to that would be "кухонный <>" ("showing off with one's knowledge in the parlour, that knowledge never being good for use in the world outside") or "<> кислых щей" (just pejorative and a tiny bit vulgar), like other guys pointed out already. Or "<> доморощенный" (liter. "home-grown", "self-taught and so (supposedly) to a not very good extent").
That's what your English examples seem to denote, anyway.
Note 1: note the inverse order of noun and adjective, this strengthens the expressiveness.
Note 2: there's even more pejorative and vulgar "<> недоделанный" (liter. that adj. means "uncompleted, unfinished", but, again, in this use case it's very pejorative and vulgar).
On the other hand, to denote a lack of practical knowledge in somebody admittedly (well enough) theoretically trained, there is no direct one-word analogue. There's an ironic expression "молодой боец" ("just from the boot camp") or an ironic use of "молодой специалист" ("just finished studying, never worked seriously in this field").
person whose knowledge is purely theoretical
- in casual speak it would be just "теоретик" pronounced with contemptuous slightly snobbish tone. Or, if you would like it really derogatory, then "теоретик кислых щей"