Come diventare un superutente (programmazione)? [chiuso]

0

Prova un nuovo strumento e non funziona. Il problema è google e, se sei fortunato, una risposta casuale dice che devi modificare qualche strano file di configurazione e metterlo in una directory specifica che non conosci. Ci provi, ma durante il processo le cose vanno male. O perché non comprendi i passaggi elencati nella risposta o perché la soluzione non è esattamente la stessa situazione della tua.

Non posso essere l'unico ad essere sconcertato / infastidito quando sono in questo tipo di situazioni. Trovo questi problemi molto più spaventosi di quando non capisco un algoritmo in particolare. Spesso riesco a utilizzare 10 ore cercando di far funzionare qualcosa senza ottenere nulla. Dopo di che mi arrendo.

Mi piace programmare ma odio davvero questi momenti in cui è necessario integrarsi con uno strumento e si finisce in situazioni come descritto. Spesso non voglio nemmeno provare nuovi strumenti perché temo che ciò accada.

La mia domanda è: c'è un modo per migliorare in questo? C'è un modo più veloce per imparare tutto questo senza solo esercitarsi? Ho pensato di ottenere libri su Unix e iniziare a utilizzare la shell per l'uso quotidiano ma non sono sicuro che ne valga la pena.

    
posta Mads Andersen 24.05.2012 - 23:57
fonte

5 risposte

10

Mentre superi i tuoi problemi, diventi più bravo a risolvere i problemi in generale, e alla fine potresti diventare davvero bravo.

Ad esempio, scambia nel tuo club una bella sega circolare.

Time Doing Something + Paying Attention = Experience

Ho programmato per 24 anni e sono diventato abbastanza abile nell'immergermi in nuove aree che all'inizio sono confuse o difficili. Siate incoraggiati e continuate a lavorarci!

    
risposta data 25.05.2012 - 00:01
fonte
2

Per diventare un superutente, devi abituarti a comprendere i problemi e i pezzi che non capisci. La chiave di questo è la comprensione delle differenze negli ambienti.

La pratica e l'esperienza sono le chiavi fondamentali per diventare sempre più abili, ma devono essere associati al desiderio di comprendere i problemi. Se hai modificato un file di configurazione e non si è comportato come te lo aspettavi, devi scavare in perché non ha funzionato. Semplicemente sparando al buio e modificandolo fino a quando non funziona magicamente, non migliorerai la tua capacità di comprendere le cose in futuro.

L'altra chiave è capire che i computer si comportano in modo diverso in base al loro ambiente. Ambiente in questo caso indica il sistema operativo, la versione del sistema operativo e anche le applicazioni installate su tale sistema operativo e le relative versioni.

Se ad esempio usi Ubuntu 12.04, allora dovrai cercare soluzioni al tuo problema su Ubuntu 12.04 . Se trovi una soluzione a un problema, ma viene descritto su Fedora 16, probabilmente ti imbatterai in problemi relativi alle differenze nell'ambiente. Trovare una soluzione descritta su una versione precedente di Ubuntu o anche su Debian (su cui Ubuntu era stata originariamente costruita) avrebbe dato maggiore fortuna.

La cosa bella del lavorare con i computer è che il 99,9% delle volte il problema, non importa quanto non abbia senso, in realtà ha una soluzione logica e ragionevole dietro (al contrario di capire gli umani, che a volte non ha senso).

I computer sono sistemi molto simili agli umani, meno tutte le cose emotive illogiche (anche se sono convinto che anche i computer occasionalmente possano provare problemi emotivi inspiegabili). Gli umani che parlano la stessa lingua lavorano bene insieme (sistemi operativi identici in esecuzione sulla stessa rete, applicazioni sviluppate per un sistema operativo specifico, ecc.). Gli amici che si conoscono bene possono funzionare bene insieme (le applicazioni mature create per un sistema operativo specifico generalmente funzionano in modo più fluido rispetto alle app con porting).

La chiave per diventare un superutente consiste nel comprendere tutte queste differenze e nell'essere in grado di identificare le differenze negli ambienti, conoscendo intuitivamente le aree che non capisci.

Quando qualcosa non funziona nel modo in cui ti aspetti, saprai quali aree indagare in base a ciò che non sai e risparmierai tempo ignorando le aree che già comprendi.

    
risposta data 25.05.2012 - 01:45
fonte
1

Ci sono alcune idee diverse che potresti esplorare qui:

Pratica deliberata sarebbe un'idea da esplorare in termini di quali abilità stai affinando quando impari qualcosa da zero.

In un modo simile, potresti voler considerare come tu impari a imparare qualcosa di nuovo. È eccitante fare ciò che non hai fatto in precedenza? Quale mentalità stai entrando in questo, in una mentalità fissa o in una mentalità di crescita?

Se guardi la lista "Related" puoi trovare domande simili che sono già state trattate qui alcune volte su come essere bravo a programmare.

Forse non mi riferisco bene alla sfida che hai, perché so che imparo parecchio quando ho qualcosa che non so come fare quando ho iniziato a lavorare. Mentre può esserci la sfida di quanta tenacia si debba gestire i vari ostacoli, questo mi sembra abbastanza normale.

L'idea di una pratica deliberata potrebbe essere applicata esaminando problemi logici, studiando varie euristiche dietro algoritmi come l'avidità, la divisione e la conquista, o la programmazione dinamica, anche se immagino che per ciascuna persona possa essere difficile identificare quali competenze siano quelli chiave da usare. Un altro punto qui è considerare quali tipi di pratiche hai portato a questo punto? Parte del lavoro con la tecnologia è che tende a cambiare abbastanza regolarmente, almeno questa è la mia esperienza principalmente in una capacità di sviluppo web.

La mia comprensione della tua domanda è che hai frustrazione o fastidio nell'acquisire competenza con nuovi strumenti. Posso riferire di avere problemi a capire come usare qualcosa di nuovo e fare più di un paio di errori nel processo. La mia tenacia e il desiderio di vedere qualcosa fino al completamento è il punto in cui ottengo il mio impulso di continuare a giocare e alla fine superare i problemi che stavo affrontando.

    
risposta data 25.05.2012 - 00:09
fonte
1

La tua domanda specifica: "c'è un modo per migliorare questo "? Con 'questo' deduco, la metodologia random stab-in-the-dark che pretendi di usare quando approccher un nuovo problema.

Ti incoraggio in particolare a prendere appunti sui problemi che affronti ogni volta che inizi una nuova attività. Dopo aver salutato la tua seconda attività, controlla le tue note per vedere se hai già fatto una di queste cose prima. Se è così, usa quell'esperienza a tuo vantaggio. Hai dichiarato nei commenti "Non penso di imparare nulla quando cerco di far funzionare [le cose]". Potrebbe essere, e senza offesa, che tu abbia poca memoria di compito. che davvero non impari nulla e quindi abbia un momento eccessivamente difficile con un nuovo compito. Di nuovo consiglierei di prendere appunti meticolosi perché in questo modo, le tue capacità di problem solving saranno la migliore risorsa per te per prevenire "agitarsi".

Per quanto riguarda l'apprendimento più veloce, mi dispiace. Posso solo difendere l'apprendimento meglio. Mangia bene, riposati molto (una mente stanca è una mente lenta e cocciuta) e stai calmo.

Ho studiato informatica per 22 anni e anche io sono stato conosciuto per colorare l'aria intorno a me di blu con frustrazione. Faccio un respiro profondo e "controllo le mie impostazioni".

    
risposta data 25.05.2012 - 00:57
fonte
1

Sfortunatamente, è difficile dare la colpa a te. Parecchi strumenti sono abbastanza arbitrari su come fanno certe cose. In alcuni casi, è sufficiente raccogliere più punti dati per iniziare a vedere un modello, quindi alla fine non si hanno più difficoltà con questi tipi di problemi di configurazione. Sfortunatamente, non è necessariamente così: in molti casi hai a che fare con il risultato di persone che hanno una serie di possibilità ragionevoli, tra le quali scelgono almeno in qualche modo arbitrariamente. Stando così le cose, spesso non c'è molto da trovare in un modello - nella migliore delle ipotesi puoi sperare di trovare alcuni meta-pattern, come i modi migliori per cercare soluzioni.

Detto questo, direi che sì, se hai intenzione di (anche provare a) il programma su Unix (o qualcosa di simile), hai praticamente bisogno di imparare a usare la shell almeno in qualche modo . È stato uno strumento fondamentale nella programmazione Unix per un tempo abbastanza lungo che provare a programmare su Unix senza sapere come usare la shell almeno ragionevolmente ti lascerà senza problemi. Almeno secondo me, vale la pena di imparare almeno in parte anche da vi - anche se non ti piace o hai intenzione di usarlo, finirai quasi inevitabilmente per dover fare qualcosa su una macchina senza l'editor di testo di tua scelta, e se è simile a Unix, avrà quasi sicuramente vi, vim o qualcosa di simile disponibile.

Devo anche aggiungere che in alcuni casi, arrendersi è la reazione giusta. Non hai detto molto su come stai selezionando gli strumenti / le librerie che stai cercando di usare, ma in alcuni casi farli installare e lavorare non vale la pena. La cosa importante qui è guardarsi intorno con attenzione prima di saltare. Ho certamente avuto alcuni che ha avuto modo di lavorare solo perché ero troppo testardo per smettere - e il risultato era sicuramente non vale la pena.

Devi anche essere onesto riguardo alle tue capacità e all'attuale livello di esperienza. In alcuni casi, è necessario conoscere molto solo per far installare qualcosa che funzioni in un lasso di tempo ragionevole (o per essere completamente sicuri quando è installato e funziona correttamente). Se non hai ancora quel livello di esperienza, allora sì, tutto quello che puoi fare è dedicare il tempo e gli sforzi necessari per acquisire esperienza prima di poterlo fare.

Una domanda da tenere a mente è se questo sta accadendo tutto il tempo con tutto ciò che cerchi di usare, o una volta ogni tanto. Se è tutto il tempo, potrebbe indicare che ti stai arrendendo un po 'troppo facilmente. Se succede una volta ogni tanto, è probabile che sia perfettamente normale.

    
risposta data 25.05.2012 - 01:12
fonte

Leggi altre domande sui tag