Come programmatore, dovrei conoscere i linguaggi di programmazione di basso e alto livello? [chiuso]

18

Sono stato contattato per eseguire alcuni controlli a LED di controllo remoto su TCP / IP, ma la mia esperienza e preparazione riguardano principalmente il linguaggio di programmazione di alto livello. L'ho detto alla persona che mi contatta per il lavoro e mi ha detto che:

"if you call yourself a programmer you should know all these things"

Un programmatore dovrebbe conoscere davvero i dettagli della programmazione di basso livello? Oppure posso considerarlo come un concetto di scatola nera, come conoscenza teorica ma non necessariamente farlo o implementare soluzioni linguistiche di basso livello, avendo in mente che la programmazione di basso livello non è la mia esperienza?

    
posta job 29.06.2011 - 17:08
fonte

10 risposte

37

Il tuo contatto non sa di cosa sta parlando. Esistono molte lingue, metodologie, tecnologie e così via che una singola persona non può conoscere molto bene tutti i dettagli necessari. Quello che devi sapere come programmatore è come apprendere ciò di cui hai bisogno per portare a termine il lavoro e avere un approccio alla risoluzione dei problemi che puoi applicare per arrivare a una soluzione, indipendentemente dal linguaggio di programmazione che devi usare.

Ammettere ciò che non sai è ok, ma puoi anche dimostrare di essere in grado di imparare abbastanza per ottenere il risultato desiderato, indipendentemente da cosa ti trovi davanti. I buoni programmatori sono semplicemente dei buoni risolutori di problemi che possono implementare le loro soluzioni in vari linguaggi di programmazione.

Non lavorerei per qualcuno che ha l'atteggiamento del tuo contatto.

    
risposta data 29.06.2011 - 17:19
fonte
22

"if you call yourself a programmer you should know all these things"

Non sono assolutamente d'accordo con questa affermazione. Sarebbe come chiedere a uno chef di cucinare qualsiasi cosa, un autista per azionare qualsiasi tipo di veicolo a motore o un medico per conoscere tutte le malattie, il che è un'ipotesi ridicola.

Per essere un programmatore, si deve sapere come fornire software di scrittura in alcune lingue per svolgere alcune attività in modo automatico. Le lingue e le mansioni variano da programmatore a programmatore, proprio come i piatti che uno chef sa come fare, un autista sa come operare, o un dottore sa come diagnosticare può variare a seconda di quanto uno vuole essere specializzato in ogni professione. / p>     

risposta data 29.06.2011 - 17:21
fonte
8

Parlato come una persona che non ha mai scritto una riga di codice nella sua vita. Questa sarà la stessa persona che sentirà che dovresti essere in grado di farlo in metà del tempo che hai citato. Non discutere con un idiota.

Hai mostrato molta più conoscenza e carattere conoscendo i tuoi limiti. Questa persona parla di cose che non sa nulla.

Credo che ogni falegname debba sapere come intagliare un pezzo di arredamento ricercato. Se un pilota può pilotare un aereo, può farli volare tutti.

    
risposta data 29.06.2011 - 17:32
fonte
6

La maggior parte dei programmi di CS a scuola ti darà una certa conoscenza della programmazione di basso livello. Io, per esempio, avevo le classi di assemblatore che usavano il processore 8088 (OK ... quindi mi date un po 'di tempo). Penso, tuttavia, che un sacco di scuole di commercio in questi giorni ignorino questa conoscenza - rispondi con un commento se ciò non è vero.

In conclusione, è sempre bene sapere cosa succede a livello di chip - inoltre, i tuoi linguaggi di alto livello finiranno lì quando è in esecuzione.

Tuttavia, avere qualcuno che ti dice che non sei un programmatore perché al momento non sai che la programmazione di basso livello è ignorante. Se hai bisogno di avere quelle abilità per il progetto attuale, allora dovresti avere abbastanza intelligenza o motivazione per apprendere le competenze di cui hai bisogno e poi applicarle.

Dovrei considerare seriamente di non prendere quel progetto se il cliente ti sta già parlando in quel modo - non sai mai dove potrebbe andare.

    
risposta data 29.06.2011 - 17:25
fonte
6

Lo disprezzo davvero quando la gente dice "Devi sapere che X ti chiami programmatore." Veramente? Bene, alcune persone lavorano su COBOL tutto il giorno e AMANO IT. Potrebbero essere diventati così bravi e il loro dominio problematico che accanto a loro siamo tutti dei pretendenti.

Seriamente, dai alle persone il rispetto per risolvere i problemi che affrontano in modi interessanti e interessanti. Comprendi che l'ottima risoluzione dei problemi deriva da una varietà di sfondi. Non se hanno padroneggiato una presunta "lista di controllo" di abilità che tutti dovrebbero conoscere in modo che tutti possano pensare allo stesso modo. Questo è l'ESATTO OPPOSTO di ciò che vogliamo. La "lista di controllo" di tutti è e dovrebbe essere diversa. Più sono differenti e meglio è. La programmazione è problem solving in questi giorni. Rispetta quelli che lo fanno bene e capisci che tutti vengono al tavolo con diversi punti di forza. È l'unico modo in cui ci aiuteremo a vicenda a lavorare efficacemente come una squadra. Solo perché conoscere la "C" o qualcosa che davvero aiuta questo ragazzo a essere fantastico, non significa che, poiché non lo conosci, fallisci automaticamente.

    
risposta data 29.06.2011 - 17:22
fonte
3

Ti suggerisco di leggere questo:

link

Come spiegato, quando si utilizza un'astrazione, qual è il livello più basso ha sempre un'influenza su ciò che si sta facendo. Questo può essere positivo, causa di errore, motivi di sicurezza e così via.

Quindi in modo definitivo, dovresti ora su queste cose. Non essendo particolarmente specializzato in architettura asm o CPU. Ma sapere abbastanza per documentare te stesso quando hai bisogno di saperne di più è, certamente, un must.

    
risposta data 29.06.2011 - 17:18
fonte
2

Il suo argomento è un buon esempio della no True Scotsman errore logico.

Tuttavia, la differenza tra la programmazione bassa e alta non è la lingua, è il dominio della conoscenza dell'applicazione. Assegnare un valore a true potrebbe significare accendere un LED o attivare eventi di clic del mouse su un widget. La lingua non interessa.

Ad esempio, dai un'occhiata a questa libreria per lavorare con una matrice LED su un arduino. Non è una scienza missilistica qui, e in effetti qualsiasi programmatore sarebbe in grado di capirlo con un piccolo sforzo se non avesse messo su un "livello basso oh no!" blocco mentale.

    
risposta data 29.06.2011 - 19:02
fonte
1

Ogni linguaggio di programmazione ha i suoi pro e contro. Imparare alcuni, ti darebbe una grande percezione su cosa usare e come usarlo efficacemente quando viene dato un progetto.

Come programmatore, puoi specializzarti su un PL specifico, usandolo come unico strumento per risolvere qualsiasi problema, puoi anche conoscere un sacco di PL ma non specializzarti su niente e molto altro tra questi due estremi.

Forse la persona che ti ha detto che "Frase" è frustrata, forse non eri l'unica persona di contatto con cui ha parlato.

conoscere il problema e sapere quale set di abilità è necessario per essere in grado di risolvere efficacemente il problema è una buona caratteristica di un programmatore. Ahimè sul tuo caso, dal momento che non hai il set di abilità richiesto, puoi forse indirizzare la tua persona di contatto a un altro programmatore con le competenze necessarie.

applausi,

wardy

    
risposta data 29.06.2011 - 17:23
fonte
1

Avere la conoscenza teorica è buona. Essere in grado di imparare il linguaggio di basso livello quando necessario è molto importante.

Ma per quanto riguarda "se ti definisci un programmatore dovresti sapere tutte queste cose", chi può sapere tutto di tutto? Prima ancora che li facciano?

    
risposta data 29.06.2011 - 17:26
fonte
-2

Mi ripeterò

"if you call yourself a programmer you should know all these things"

a

"if you call yourself a programmer you should know enough that you can quickly learn all these things"

    
risposta data 25.07.2012 - 13:52
fonte

Leggi altre domande sui tag