Dipende caso per caso. Alcuni sono online. Altri in sedi fisiche, anche in Italia. Ma comunque è specificato.
Praticamente tutti fanno una combinazione di queste quattro cose:
1. partecipare a piattaforme di programmazione competitiva ( ma non è per neofiti ) tipo Codechef, Codewars, Hackerrank, Leetcode
2. spulciare su github sia per leggere codice altrui per trarne ispirazione ed imparare, sia per trovare problemi da risolvere
3. partecipare a progetti opensource, scelti in base alle proprie abilità ovviamente
4. risolvere esercizi proposti su varie piattaforme tipo
https://projecteuler.net/archives o
https://exercism.io/
E' utile pure guardarsi attorno, nel primo ambiente anche lavorativo, per vedere se ci sono problemi che potrebbero essere risolti usando un programma o un dispositivo elettronico.
Imperi sono stati costruiti per caso. Pensa a Facebook che nasce come piattaforma per dare voti alle ragazze del college. Cioè, spesso c'imbattiamo in problemi mentre camminiamo per strada e nemmeno ce ne rendiamo conto. Ed è questo che invece gli hacker sono bravi a fare. Non se ne lasciano sfuggire nemmeno uno.
Aggiungere a tutti questo pippone, che i settori più hot sono: mobile, web ( non solo frontend ma soprattutto frontend in termini di cloud, SaaS, web services ), IoT, machine learning, blockchain. Non voglio dire che non si facciano più soldi coi PC, ma è molto difficile. Il settore gaming pure è sempre verde, ma lì si lavora duro e spesso c'è bisogno di un minimo di un lavoro di squadra, varie competenze oltre alla programmazione e un certo budget.