Che anno sei? Questo è davvero importante. È sempre più difficile ottenere uno stage se sei una matricola/seconda rispetto a un junior/senior. Il ragionamento è che saprai meno di CS (e quindi, meno prezioso). Tienilo a mente.
In che tipo di posto ti piacerebbe fare uno stage? Una piccola azienda? Una grande azienda? Questo determinerà come studiare. Google/Facebook può avere il maggior numero di stage disponibili a NYC, ma per ottenerli, dovrai studiare un sacco di algoritmi. Se non hai ancora avuto il tuo corso di algoritmi, allora potrebbe essere un po' difficile. Se l'avete fatto, allora tirate fuori il vostro libro di Cormen sugli algoritmi e leggetelo da cima a fondo.
Se state andando per una piccola azienda, allora concentratevi meno sugli algoritmi e più su come programmare. Quali linguaggi conosci? Fai domanda per aziende che usano questi linguaggi. Sei abile con Rails/Python? Allora cercate aziende che usano questi linguaggi. Allo stesso modo se hai familiarità con Java o JS.
Dovresti fare domanda in molti posti. Aspettatevi di non ricevere risposta dalla maggior parte di loro. C'è un sacco di gente a NYC e alcuni di loro ne sapranno più di te. Alcuni avranno studiato Cormens da cima a fondo e saranno pazzi per gli algoritmi. Altri avranno hackerato progetti insieme e avranno un Github impressionante.
Infine, vi esorterei ad iniziare a costruire un portfolio di progetti collaterali e metterli su Github. Quando un'azienda vi dà uno stage, sanno che perderanno soldi su di voi (che sia non pagato o pagato). Devono dedicarvi risorse (finanziariamente e altri sviluppatori) per aiutarvi a crescere. Non rischieranno su qualcuno che è troppo pigro per fare il lavoro secondario da solo. Vogliono qualcuno motivato che pensano voglia lavorare con loro dopo la laurea. Se vuoi distinguerti, inizia a costruire cose. Non deve essere bello o vincere il premio Nobel. Devi solo costruire qualcosa.