Есть две версии происхождения слова «гопник». По одной оно происходит от жаргонного обозначения грабителя. В словаре Даля упоминается слово «Гоп»
Так как уличные грабители имели обыкновение внезапно нападать («прыгать, наскакивать») на свою жертву, нередко при этом ударяя её, чтобы ошеломить и лишить возможности убежать/сопротвиляться, то их преступление и стали в криминальной среде называть гоп, гопстоп или гоп-скок, а их самих — гопники или гопстопники. Неудивительно, что со временем так стали называть представителей криминализированной части советской, а затем и постсоветской молодёжи, для которых гоп-стоп, т.е. внезапные нападения на случайных прохожих с целью ограбления, был обычной практикой.
Есть и другая версия. Ещё в XIX веке в России существовали «Городские общества призора» (ГОП), т.е. заботы, попечения, при которых имелись приюты для бездомных, калек, сирот и т.д. Тех кто содержался в этих приютах стали называть гопники. Контингент ГОПов был склонен к совершению преступлений, т.ч. слова «гоп» и «гопник» быстро обрели негативный оттенок. Гопами стали называть ночлежки или нахождение в ночлежке, а под гопниками имели в виду опустившихся людей из социальных низов, склонных к бродяжничеству и совершению преступлений. Среди содержавшихся в ГОПах было немало подростков и молодых людей. Особенно много детей среди гопников стало после Революции 1917 года и последовавшей за ней Гражданской войны. Следующие волны детской преступности и бродяжничества были вызваны коллективизацией и Великой Отечественной войной. Неудивительно, что постепенно слово гопник стало ассоциироваться с криминальной частью молодёжи.
В принципе, обе версии друг другу не противоречат. Так что, возможно, они обе правильны.