JavaRush /Java Blog /Random-IT /Pausa caffè #49. Esempi di codice che ogni sviluppatore d...

Pausa caffè #49. Esempi di codice che ogni sviluppatore dovrebbe vedere. Come prepararsi per un colloquio

Pubblicato nel gruppo Random-IT

Esempi di codice che ogni sviluppatore dovrebbe vedere

Fonte: Medium A volte nel tempo libero vago tra i repository GitHub. Quando inizio a imparare nuovi programmi, strumenti o utilità, cerco di vederli in azione. Per fare questo, guardo il loro codice: aiuta a capire come funziona il tutto, quali moduli e dipendenze esterne ci sono. L'immersione nella tecnologia regala sensazioni incredibili e permette di acquisire nuove conoscenze. Pausa caffè #49.  Esempi di codice che ogni sviluppatore dovrebbe vedere.  Come prepararsi per un colloquio - 1Nel mio articolo, vorrei condividere gli esempi di codice più impressionanti in cui mi sono imbattuto vagando tra i repository.

Programma di controllo dell'Apollo 11

L'Apollo 11 è la navicella spaziale che ha portato l'uomo sulla Luna. Il computer di controllo di bordo (AGC) controllava le operazioni di volo con solo 4 kilobyte di memoria fisica. Il software AGC, scritto in linguaggio assembly, era memorizzato in una speciale memoria di sola lettura (rope memory). Diversi anni fa, copie cartacee scannerizzate di questo codice sorgente furono pubblicate su Internet . Quindi qualcuno ha scritto diversi moduli in file di testo e li ha caricati nel repository GitHub . Pausa caffè #49.  Esempi di codice che ogni sviluppatore dovrebbe vedere.  Come prepararsi per un colloquio - 2Il team di ingegneri dell'Apollo 11 ha lavorato duramente per ottenere questo straordinario risultato. Hanno scritto molte righe di codice in linguaggio assembly, anche se la programmazione era molto più difficile negli anni '60 di quanto non lo sia oggi. A quel tempo i linguaggi di programmazione avevano un livello di astrazione inferiore. Inoltre, a causa dell'hardware a basso consumo, gli sviluppatori hanno dovuto scrivere codice altamente ottimizzato.

Arena di Quake III

Quake III Arena è un videogioco sparatutto in prima persona creato da id Software. Il gioco è apparso negli anni '90, quando l'industria dei giochi 3D era appena agli inizi. Per lo sviluppo è stato utilizzato il motore di gioco id Tech 3. Come nel caso del programma lunare Apollo 11, a causa delle limitazioni delle risorse hardware, il codice per il rendering della grafica è stato fortemente ottimizzato. Molti calcoli di programmazione dei giochi richiedono il concetto di normalizzazione vettoriale, che richiede il calcolo della radice quadrata inversa. Poiché gli sviluppatori dovevano scegliere gli algoritmi più efficienti per la grafica computerizzata, Quake III Arena ha adottato un approccio intelligente per calcolare rapidamente la radice quadrata inversa utilizzando calcoli a livello di bit. Pausa caffè #49.  Esempi di codice che ogni sviluppatore dovrebbe vedere.  Come prepararsi per un colloquio - 3Il livello di ottimizzazione di parte del codice che vedi, e di fatto di tutto il codice utilizzato per creare giochi negli anni '90, è semplicemente sorprendente. Oggi, gli sviluppatori di videogiochi in genere non eseguono calcoli a questo livello perché molte funzioni vengono eseguite a livello del motore di gioco.

Raccolta del compilatore GNU

Il linguaggio di programmazione C può essere definito il padre della programmazione moderna perché è molto vicino all'hardware, ma allo stesso tempo offre un buon livello di astrazione comprensibile per l'uomo. Il compilatore GNU C è un compilatore bootstrap. Cioè, è scritto in C utilizzando il concetto di svolgimento del compilatore. Nel codice della GNU Compiler Collection su GitHub, ho trovato il file sorgente C più lungo che abbia mai visto (potrebbero esserci file più lunghi, ma questo è quello che ho trovato).Pausa caffè #49.  Esempi di codice che ogni sviluppatore dovrebbe vedere.  Come prepararsi per un colloquio - 4

Cromo

I browser più diffusi come Google Chrome, Microsoft Edge e Opera si basano sul progetto open source Chromium. Questo progetto ha due dipendenze principali: il motore Blink (un fork della libreria WebCore del team Webkit) e il motore JavaScript V8 sviluppato dal team di progetto Chromium. Naturalmente, il codice di Chromium è piuttosto esteso e contiene molti moduli di terze parti come gRPC e Skia . Ma gli sviluppatori di Chromium sono riusciti a strutturare perfettamente tutti questi componenti. La codebase separa abilmente la logica delle funzioni interne dalla logica dell'interfaccia utente. Ciò garantisce un buon supporto per l'intero progetto. Pausa caffè #49.  Esempi di codice che ogni sviluppatore dovrebbe vedere.  Come prepararsi per un colloquio - 5Inoltre, il codice del progetto contiene il codice sorgente per le applicazioni Chromium Android e iOS. Strutturare applicazioni multipiattaforma altamente scalabili può essere impegnativo. Tuttavia, Chromium ha una separazione del codice davvero impressionante su Linux, Windows e Mac.

Gik

Al giorno d'oggi, ogni team utilizza Git per gestire le versioni del codice. Questo sistema di controllo della versione è stato sviluppato da Linus Torvalds (creatore del kernel del sistema operativo GNU/Linux). La codebase Git include il codice sorgente Gitk. Gitk è un'applicazione GUI che fornisce la navigazione visiva attraverso i commit. Per vedere come differiscono due commit, puoi utilizzare il seguente comando:
$ git diff <commit hash> <commit hash>
Ma poiché Gitk è uno strumento visivo, con esso possiamo vedere la differenza molto più velocemente. Pausa caffè #49.  Esempi di codice che ogni sviluppatore dovrebbe vedere.  Come prepararsi per un colloquio - 6Tutto il codice sorgente Gitk rientra in uno solo . Il codice è scritto nel linguaggio di scripting Tcl utilizzando il toolkit Tk UI, un'estensione Tcl. Condensare un'intera applicazione GUI in un unico file è un compito difficile.

Come può uno sviluppatore prepararsi per un colloquio?

Fonte: Hackernoon Ricordo la mia prima intervista. Avevo appena terminato la laurea e stavo facendo domanda per uno stage presso una società finanziaria a Madrid. Ero molto nervoso perché non sapevo come sarebbe andato il colloquio e non ero a conoscenza delle tendenze attuali nello sviluppo del software. Era dopo Pasqua, avevo solo 21 anni, e sarebbe stato più piacevole per me passare del tempo con gli amici in spiaggia. Ma invece di divertirmi, ho dovuto prepararmi per un colloquio. Pausa caffè #49.  Esempi di codice che ogni sviluppatore dovrebbe vedere.  Come prepararsi per un colloquio - 7Il primo passo prima di ogni colloquio è conoscersi. Ti chiedono il tuo nome, indirizzo, specialità e così via. Successivamente, sarai sottoposto a un colloquio personale, che può essere faccia a faccia o tramite collegamento video. In ogni caso, questo colloquio metterà alla prova la tua esperienza, conoscenza e abilità per la posizione per la quale ti stai candidando. Probabilmente ti verrà quindi chiesto di scrivere codice in cui dimostrerai la tua capacità di risolvere problemi o problemi. Inoltre, potresti aspettarti un colloquio con un project manager o un direttore dell'azienda. Questo dipende dalla posizione per la quale ti stai candidando. Il processo di intervista può richiedere molto tempo. Pertanto, è necessario essere pazienti e mantenere la calma. Ho preparato per te alcuni suggerimenti e trucchi su questo argomento.

Ricerca la posizione per assicurarti che sia adatta a te.

A volte, quando cerchiamo un lavoro, ci presentiamo a un colloquio senza leggere tutte le informazioni sulla posizione. È meglio chiarire in anticipo l’elenco delle tue responsabilità e il programma di lavoro. Controlla anche se l'azienda e la posizione corrispondono alle tue esigenze

Cerca di rimanere aggiornato sulle tendenze della tua carriera.

Un grosso errore è non seguire le tendenze e le nuove tecnologie nel proprio lavoro. Probabilmente sei uno sviluppatore o un project manager, hai il tuo modo di lavorare nel tuo ruolo attuale e la stessa tecnologia per tutti i tuoi progetti. Ma prova a dedicare un po' di tempo ogni giorno all'apprendimento delle nuove tecnologie. Questo è molto importante nella nostra carriera. Devi rimanere aggiornato con nuovi framework, nuove metodologie e altro ancora. Questo farà una grande differenza nel tuo colloquio.

Durante un colloquio di persona o una videochiamata: cerca di avere un bell'aspetto e rilassarti

Il tuo aspetto è importante quanto il design della tua app. Potresti avere un backend perfetto, ma se la tua app ha un frontend scadente, avrai difficoltà a vendere il tuo prodotto. Lo stesso vale per il tuo aspetto: al colloquio dovresti apparire, se non formale, almeno dignitoso. Ciò dimostrerà la tua volontà di seguire le regole aziendali. So che alcune persone qui penseranno: "Ehi, sono un genio, perché dovrei preoccuparmi del mio aspetto?" Beh, se sei un genio e hai un bell'aspetto , allora farai sicuramente impressione!

Prenditi il ​​​​tuo tempo

Prima del colloquio è necessario prepararsi, studiare gli argomenti, praticare algoritmi e problem solving e preparare un discorso. Alcuni di questi processi sono lunghi e richiedono tempo. Quindi assicurati di avere un vantaggio qui.

Pratica

Dipende dalla tua esperienza, ma la mia raccomandazione qui è che se devi scrivere il codice in un'intervista, scrivilo correttamente. Per fare ciò, devi imparare come pulire e rivedere il codice. Questo ti aiuterà a riorganizzare o migliorare alcune delle sue funzioni.

Dimostra la tua esperienza in un colloquio faccia a faccia o in codice

Prova a mostrare l'esperienza. Un colloquio è il luogo perfetto per spiegare all'intervistatore perché l'azienda dovrebbe assumerti. Prima del colloquio, familiarizza con i concetti di base, le metodologie e le migliori pratiche di programmazione.

Dormi abbastanza il giorno prima del colloquio.

Cerca di dormire abbastanza. Questo ti aiuterà a rimanere concentrato il giorno successivo. Se non conosci le risposte alle domande del colloquio, per favore non mentire : sii onesto, aiuterà a evitare molte complicazioni in futuro. E questo ti aiuterà a vedere i tuoi punti deboli che devi migliorare.

Fidati delle tue risposte

Non dubitare di te stesso. Mai.

Durante il colloquio, devi trasmettere sicurezza e fiducia a tutti.

Se non hai questa abilità, probabilmente dovrai lavorarci sopra. La fiducia è quando rispondi: "Non conosco la risposta, ma posso cercarla e rispondere più tardi". Questa opzione di risposta mostra sicurezza e fiducia.

Analizza l'intervista

Ogni intervista è diversa, ma condividono tutte alcune caratteristiche simili. Pertanto, dopo il colloquio, dovresti riflettere su cosa è andato bene o male per te. Un colloquio è un buon momento per guardarti dall'esterno, i tuoi punti di forza e di debolezza.
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION