Bene, esattamente ciò di cui avrai bisogno dipenderà dalla classe, anche se probabilmente ci saranno alcune generalità. Suggerirei di ottenere un libro C destinato ai programmatori Java. È probabile che indichi le principali insidie e ti aiuti a passare.
Gli elementi più importanti di cui ti preoccuperai in C di cui non ti preoccupi veramente in Java sono i puntatori e la gestione della memoria. I riferimenti Java sono tecnicamente dei puntatori, ma sono dei veri e propri puntatori senza soluzione di continuità, e da quello che ho visto, i programmatori Java non li vedono realmente come i puntatori che sono e spesso hanno qualche problema a gestire i puntatori inizialmente. Andare di pari passo con questo è il fatto che non si ha un garbage collector, quindi tutto ciò che viene allocato nell'heap non solo deve essere allocato manualmente, ma sarà necessario ridistribuirlo manualmente quando si ' fatto con esso. Quindi, dovrai familiarizzare con malloc
e free
. Inoltre non si avranno classi e le strutture in C non possono avere funzioni in esse, quindi generalmente non si programma in C in modo orientato agli oggetti. Potrebbe essere o non essere un grosso problema per te. Significa, tuttavia, che ciò che imparerai nel tuo corso di programmazione dei sistemi e il tuo corso di progettazione orientato agli oggetti probabilmente sarà molto diverso.
L'OOD dovrebbe essere più un'estensione di ciò che sai, insegnandoti come programmare meglio in un modo orientato agli oggetti. La programmazione dei sistemi, d'altra parte, è molto più relativa alla discesa e alla sporcizia e sarà molto più di basso livello in ciò che riguarda. Entrambi sono davvero importanti per essere un buon programmatore però.
Senza conoscere le tue esatte competenze ed esperienze e senza conoscere i corsi esatti, dare consigli più dettagliati sarebbe difficile, ma in primo luogo, è probabile che il problema riguardi il modo in cui C non gestisce le cose per te e non cerca di tenerti al sicuro da te stesso. Dovrai essere più attenta a programmare in C di quanto tu possa essere in Java o Python. Ci sono molte cose che sono perfettamente legali C che sarebbero illegali in molte altre lingue e potrebbero sorprenderti. Le cose principali di cui preoccuparsi sono i puntatori e la gestione manuale della memoria.