I neofiti dovrebbero usare il completamento automatico IDE (Intellisense)? [chiuso]


35

Lo incontro spesso quando aiuto una persona nuova nella programmazione e la apprendo per la prima volta. Sto parlando di neofiti davvero nuovi, sto ancora imparando su OOness, costruendo oggetti, chiamate a metodi e cose del genere. Di solito, hanno la tastiera e sto solo offrendo una guida.

Da un lato, la funzione di completamento automatico degli IDE aiuta a dare loro feedback sul fatto che lo stanno facendo nel modo giusto e possono rapidamente apprezzare e fare affidamento su di esso.

D'altra parte, temo che la dipendenza precoce dal completamento automatico dell'IDE avrebbe fatto sì che non capissero davvero i concetti o sarebbero in grado di funzionare se un giorno si trovassero solo con un semplice editor.

Qualcuno con più esperienza al riguardo può condividere la propria opinione? Quale è meglio per un principiante, il completamento automatico o la digitazione manuale?

Aggiornare

Grazie per l'input a tutti!

Molte risposte sembrano concentrarsi sull'uso principale del completamento automatico, come il completamento di metodi, la ricerca di metodi e la documentazione, ecc. Ma oggi gli IDE fanno molto di più.

  • Quando si crea un oggetto di tipo Elenco, un IDE si completa automaticamente nella nuova ArrayList sul lato destro. Potrebbe non essere immediatamente chiaro a un principiante perché non può essere un nuovo elenco, ma hey funziona, quindi vanno avanti.
  • Parametri del metodo di riempimento basati su variabili locali nel contesto.
  • Esecuzione di lanci di oggetti
  • Aggiunta automatica di istruzioni "import" o "using"

e altro ancora. Questi sono i tipi di cose che intendo. Ricorda che sto parlando di persone che stanno programmando 101, proprio all'inizio. Ho visto l'IDE fare queste cose di cui non hanno idea, ma continuano.

Si potrebbe obiettare che li aiuta a concentrarsi sul flusso del programma e ottenere il blocco delle cose prima di approfondire e comprendere le sfumature del linguaggio, ma non sono sicuro.


1
Penso che questo rientri in un'ingiunzione generale: utilizzare uno strumento. Non essere abbastanza pigro da usarlo alla cieca.
Alex Feinman,

Penso che dovrebbero usare "l' editor di testo standard " ... gnu.org/fun/jokes/ed.msg
JoelFan,

Ho riassunto ciò che ho imparato qui in un post sul blog: codinguser.com/2011/01/abstraction-is-good-magic-is-bad
codinguser

Risposte:


11

Penso che l'utilizzo dell'IDE aiuti nel processo di apprendimento. Metodi, proprietà, parametri, sovraccarichi e simili sono rilevabili. Con le librerie straordinariamente grandi, Intellisense aiuta a diffondere la conoscenza della JIT. Nell'odierno ambiente di programmazione, è impossibile apprendere tutto in anticipo e l'apprendimento JIT è spesso l'unico modo pratico per diventare rapidamente produttivi.

Capisco che l'uso di un IDE può essere una stampella se lo usi ciecamente, ma penso che i benefici superino di gran lunga i negativi.

L'utilizzo dei modelli senza comprendere ciò che è stato creato per te, d'altra parte, è più un problema. Penso che possano essere usati come strumento di apprendimento se lo sviluppatore impiega il tempo a leggere il codice basato sul modello. Ma la maggior parte delle persone non si preoccupa. Potrebbe essere un ottimo strumento di apprendimento, però.


JIT? Non intendi .NET FCL? =) Sì, sono d'accordo ... Nel corso degli anni intellisense ha dimostrato uno strumento di apprendimento per me, ho imparato a conoscere tonnellate di nuove classi, metodi e proprietà con esso.
Gideon,

1
Intendevo apprendimento JIT - non compilazione JIT;) C'è così tanto da imparare, cercare di imparare tutto in anticipo è irrealistico, quindi finché capisci i concetti, l'apprendimento delle specifiche di implementazione può essere fatto "appena in tempo".
Mark Freedman,

75

Comprendere i concetti e memorizzare dozzine di centinaia di stupide classi e metodi di biblioteca sono due cose completamente diverse. Intellisense ti aiuta a liberare completamente tutta quella conoscenza inutile dalla tua mente, e prima lo fai, meglio è. Lascia più spazio ai concetti utili, non sprecare le tue risorse limitate sulle API.

Per rispondere a una parte aggiornata di una domanda: piccoli dettagli di sintassi, layout dei file, invocazione del compilatore e del linker sono anch'essi irrilevanti rispetto ai concetti di programmazione generici. Una volta capito, un neofita non può più capire meglio come funzionano effettivamente le cose di basso livello. È meglio farlo quando conosci già le basi, altrimenti è probabile che prenderai un numero di pericolose superstizioni magiche.

Ad esempio, DrScheme IDE ha una notevole esperienza nell'insegnamento della programmazione e il suo successo è dovuto principalmente alla sua capacità di aiutare a concentrarsi su ciò che è veramente importante.


30
+1. All'epoca avevo interviste in cui mi chiedevano di citare l'elenco dei parametri per alcune funzioni dell'API Win32. Non ho mai potuto capire quale rilevanza potesse essere quella conoscenza.

4
@codinguser: e anche questo non è un problema. Spesso non ricordo nemmeno la sintassi di una lingua che sto attualmente usando (anche se l'ho progettata da solo). Ci sono cose molto più importanti da ricordare delle dichiarazioni di importazione o come scrivere una coppia getter / setter. E gli IDE stanno facendo cose più utili - mostrando tipi nei tooltip, per esempio.
SK-logic,

4
@Josh K, hai mai sentito la parola "astrazione"? Sai perché ci sono diversi livelli di astrazione? Prestare attenzione a qualsiasi cosa al di sotto del livello di astrazione del tuo attuale dominio problematico è stupido e controproducente. E raccogliere questa abitudine distruttiva all'inizio di una carriera è un disastro. Ci sono voluti più di dieci anni per recuperare parzialmente.
SK-logic,

3
@Josh K, insisti a capire cosa sta succedendo fino in fondo e oltre? Non c'è valore aggiunto in questa comprensione. Naturalmente un buon programmatore deve essere in grado di operare a tutti i livelli, compresi i codici macchina, ma un buon programmatore dovrebbe anche essere in grado di estrarre completamente da cose irrilevanti.
SK-logic,

3
@ SK-logic: sono d'accordo, e le importazioni e le chiamate di funzione che stai utilizzando direttamente non sono qualcosa da cui astrarre.
Josh K,

16

L'uso del completamento automatico non è affatto una cosa negativa.

È semplicemente per la velocità, e per me sarebbe un segno di qualcuno che inizia a capire l'IDE e lo usa bene.

Non capisco come NON utilizzarlo possa aiutarli ad imparare OO per esempio.


1
Sono tutto per il completamento automatico quando hai imparato le basi. La velocità è buona quando sai cosa stai accelerando. Ma quando un IDE riempie automaticamente un parametro basato su una variabile locale dello stesso tipo o aggiunge un'istruzione di importazione, funziona e alcuni neofiti non lo capiscono davvero.
codinguser

Ho letto la tua modifica, ma mi piacerebbe pensare che i nomi che assumiamo siano persone intelligenti che guarderanno ciò che è compilato, le interrogheranno e le capiranno. Se ciò accade nella pratica ovviamente è un'altra domanda.
ozz,

13

Avendo insegnato e tutorato gli studenti che sono nuovi nella programmazione, trovo che il completamento automatico / intellisense a volte causi più danni che benefici. Sì, possono scrivere un programma utilizzandolo. Sì, si compila e funziona e potrebbe persino fare la cosa che abbiamo chiesto loro di fare. Ma non capiscono cosa stanno facendo.

Quando non capiscono cosa sta succedendo, diventa meno programmazione e più hackerare una soluzione insieme per ottenere voti. Ho scoperto che è successo molto con gli studenti quando quello che abbiamo chiesto loro di fare è diventato più difficile, hanno appena hackerato fino a quando qualcosa non ha funzionato. Questo è sempre stato chiaro quando si è verificato l'intervallo e agli studenti è stato chiesto di scrivere metodi semplici a mano ... non potevano.

Sì, il completamento automatico / intellisense ci aiuta (sviluppatori professionisti) molto b / c che ci velocizza. Non dobbiamo memorizzare tutti i diversi metodi ed elenchi di parametri, ma allo stesso tempo possiamo anche rischiare di indovinare quali parametri un metodo prenderà in b / c, abbiamo l'esperienza con la programmazione da conoscere.

I neofiti no. Aspetteranno che il loro IDE visualizzi un elenco di metodi, scorreranno l'elenco fino a quando non ne troveranno uno che forse è quello di cui hanno bisogno, guarderanno i parametri di cui hanno bisogno e vedranno se li devono passare. ..e alla fine avranno hackerato qualcosa insieme da poter consegnare.

E, alla fine del corso, quando avessero ottenuto il loro passaggio, si sarebbero allontanati dalla loro classe di programmazione con una vittoria superficiale, molti non avrebbero mai più preso un'altra classe CS, non capivano nulla di ciò che facevano o perché lo facessero esso.


2
Sarò cinico e dirò che c'è sempre stato quel tipo di studente in CS. Se vogliono imparare Intellisense li aiuta a fare le cose più velocemente, piuttosto che passare il tempo a cercare ogni nome di funzione in Google o in un libro
user151019,

4
@Mark, sono d'accordo. Immagino di aver reso la mia risposta troppo ampia nell'ambito implicando tutti gli studenti. Ma dirò questo, dopo aver introdotto e IDE con il completamento automatico nell'ambiente di sviluppo del corso il numero di studenti che non hanno capito quando è aumentato, così come il numero di fallimenti nel primo semestre. Il numero di domande che ho ricevuto è diminuito di molto, ma ho imparato che non erano gli studenti in b / c a capire meglio, ma in b / c potevano far funzionare i programmi senza prendersi il tempo di capire.
Tyanna,

students were asked to write simple methods by hand...they couldn't.Dipende da cosa stai cercando di insegnare loro. Concetti generali di programmazione o sintassi specifica del linguaggio?
Gingerbreadboy,

9

Il problema con gli IDE e gli ambienti di sviluppo in generale non è tanto quanto il completamento automatico quanto l'uso di soluzioni basate su modelli (file | nuovo | progetto) in cui molte cose "interessanti" sono già state fatte per te e sono, a vari livelli, nascoste .

Per qualcuno che, in generale, capisce cosa sta succedendo sotto il cofano questo è utile - ma per qualcuno che impara ciò di cui ha bisogno è piuttosto meno.

C'è anche la questione del tempo impiegato per accendere un IDE dei pesi massimi ...

Penso quindi che usare qualcosa di più leggero e essere in grado di eseguire applicazioni in cui hai scritto tu stesso ogni riga di codice abbia un notevole merito - soprattutto perché l'uso di un editor di testo e un compilatore dimostra il punto importante che non hai bisogno di un IDE ecc. Per scrivere software, ma ciò non significa che voglio usare un editor di testo a lungo e che presenta sfide in termini di debug: vuoi essere in grado di fare punti di interruzione e vuoi essere in grado di passare da un codice all'altro poiché ciò renderà più facile capire cosa sta succedendo.

Ovviamente possiamo confondere ulteriormente il problema considerando cose come Python in cui hai una riga di comando "live" ...

Buona domanda, nessuna singola buona risposta - tranne per il fatto che si desidera rendere l'apprendimento una progressione e iniziare con un editor di testo e un compilatore (o un interprete della riga di comando) ti consentirà di concentrarti sulle basi della sintassi e della logica prima di procedere ad altro cose complesse che saranno più facili da fare con un ambiente di sviluppo più potente.


2
Onestamente, vedo il tempo impiegato per accendere l'IDE come trascurabile. Trascorro dozzine di ore usando il mio IDE tra l'accensione. Certamente risparmia più del tempo extra di 30-45 secondi necessario per iniziare solo nel completamento del codice da solo durante quell'intervallo.
EricBoersma,

@Eric - nel tuo contesto? Sì, al 100%. Nel contesto della domanda cioè principianti completi? Ho il sospetto che l'IDE verrà aperto e chiuso più spesso per sessioni più brevi e in genere tutto ciò che si frappone è uno scoraggiamento.
Murph,

Mi sento così riguardo agli ORM, ai principianti del database non dovrebbe essere permesso di usarli perché non capiscono abbastanza sullo sviluppo del database per usarli bene. Grandi strumenti per le persone che sanno cosa stanno facendo, disastri per i neofiti.
HLGEM,

@HLGEM Stavo per suggerire che è un po 'più complicato di così ... ma non credo di essere nemmeno lontanamente qualificato per commentare più i principianti e i database) -: (E, per chiarezza, perché ancora impara nuovi linguaggi e framework penso di poter commentare il problema IDE - ho ricordi specifici di problemi iniziali con .NET e Visual Studio che fanno troppo)
Murph,

4

Imparare nel modo più duro di solito rimane con te.

Come principiante, NON utilizzare IDE. Usa la riga di comando, impara dai tuoi errori. Ciò ti aiuterebbe anche a comprendere più da vicino le opzioni del compilatore e del linker.

Quindi, quando usi IDE? Quando stai progettando qualcosa di enorme o stai lavorando su una base di codice enorme con un sacco di classi, metodi e variabili.


7
Qual è lo scopo della comprensione delle opzioni del compilatore e del linker se non sai ancora cos'è un compilatore? Normalmente finisce in un pasticcio. Ho trascorso più di un decennio a chiarire il mio disordine creato da un'esposizione troppo profonda e di livello troppo basso all'inizio (MACRO32, Fortran, DCL ...).
SK-logic,

2
Concordato. Non ha senso imparare l'assemblaggio prima di apprendere Python o C #, per esempio: ti frustra di più. Generalmente, impari concetti di alto livello e poi filtri in concetti di livello inferiore o altre cose nitide.
DMan,

4

Vorrei essere il primo a dire che gli IDE sono un vantaggio per la produttività, anche se mi lamento spesso delle loro stranezze. Tuttavia, ho imparato BASIC, C, C ++, Java, Python, Perl, PHP e molte altre lingue senza nient'altro che un editor di evidenziazione del testo e il compilatore / interprete per la lingua. In realtà ho imparato Java in Blocco note!

L'apprendimento di un IDE promuove "la magia" - l'idea che "funziona; non importa come". L'astrazione è buona; la magia è cattiva. Un programmatore dovrebbe conoscere o essere in grado di scoprire tutto ciò che accade in un progetto. Un buon IDE è progettato per prendersi cura della contabilità, non controllando il progetto. Usato correttamente è un ottimo strumento. Ma quale artigiano inizia usando un router CNC?

Penso che il modo in cui ho imparato (dover scrivere tutto e conoscere bene il compilatore per costruire un progetto) mi abbia aiutato incommensurabilmente quando ho finalmente iniziato a usare gli IDE. Ad esempio, un progetto Java non è una piccola cartella nel progetto Eclipse, ma una raccolta di classi in una struttura di pacchetto con alcuni file XML per percorsi, configurazione e distribuzione. Non vorrei creare un'applicazione enterprise di grandi dimensioni senza un IDE, ma posso crearne di piccole. Ciò rende più semplice la comprensione della struttura di quelli di grandi dimensioni e, quando voglio un comportamento specifico nella build, diciamo, so come funziona javac, quindi posso modificare il prompt di build effettivo piuttosto che cercare di trovare quella combinazione magica che non esiste nella configurazione della build. Credo anche di avere una comprensione più profonda dei messaggi di errore e di come trovarli e risolverli.

Non insegnerei usando un IDE. Penso che i progetti di partenza siano abbastanza piccoli da giustificare gli argomenti per la gestione della complessità. Se stai insegnando Java, ad esempio, puoi mettere tutte le tue classi nella stessa cartella e javac *.java. Non hai bisogno di un IDE per questo! Ciò sostiene che i progetti siano piccoli, poco più che prove di concetti. Riduci al minimo le spese generali e concentrati sull'insegnamento del concetto di cui gli studenti hanno bisogno. I progetti più grandi in cui un IDE sarebbe utile appartengono a classi SE più avanzate oa progetti dedicati.

Per quanto riguarda l'aiuto nella ricerca di lezioni e ricerche API, ritengo che ciò sia controverso se i progetti vengono mantenuti piccoli. Sempre in Java, javadoc è molto facile da leggere. Nessuno può comunque tenere testa all'intera API, e ci sarà un momento in cui dovrai cercare un'API senza il beneficio di un IDE. Ad esempio, in altre lingue o se si esegue il remoting in un server in cui non è possibile aprire l'IDE. Insegnare come trovare la documentazione, non "premere". e puoi vedere quali sono i metodi di un oggetto. "

Qualsiasi programmatore può imparare un IDE, ma conoscere un IDE non ti rende un buon programmatore. Humor nero a parte, "magia" non è mai una buona parola da usare per un programmatore.


Imparato con l'evidenziazione del testo ... punk fortunato. Alcuni di noi hanno solo un elenco di parole chiave e un prompt.
Matthew Whited,

@Matthew: Java ho iniziato con il blocco note ... :)
Michael K,

LOL ... Ho iniziato con un Apple IIc con Applesoft BASIC integrato nella ROM. : o)
Matthew Whited il

Wow, mi sento fortunato ad avere QBasic!
Michael K,

4

Forse un principiante dovrebbe semplicemente lavorare prima su problemi più facili. E no, questi problemi non dovrebbero richiedere o incoraggiare l'uso di un IDE per completare l'attività. C'è molto da guadagnare a lungo termine attraverso la comprensione dei concetti di base. Gli strumenti dovrebbero venire dopo.

Nessun artigiano della lavorazione del legno potrebbe saltare direttamente all'utilizzo di una pialla a superficie ad alta potenza senza prima comprendere la complessità del tipo di legno e del piano manuale.

(Nota: il completamento automatico e l'intellisense sono due cose drasticamente diverse).

L'intellisense, di per sé, non è male. È male solo quando viene utilizzata una stampella per indovinare la funzionalità senza leggere o comprendere la documentazione o l'implementazione sottostante.

Punto laterale: se la lingua richiede un IDE per codificare per te, probabilmente la lingua è al livello sbagliato di astrazione per i problemi che stai cercando di risolvere.


2
+1 per il punto laterale. Sono un fan dell'apprendimento di più lingue, quindi sai quando una lingua non è adatta per un'attività.
Michael K,

3

Quando cresciamo da bambini, non ci viene detto che dobbiamo capire le regole intricate della lingua inglese prima di poter parlare. Non ci viene detto che dobbiamo comprendere appieno l'uso corretto di preposizioni, congiunzioni ed evitare frammenti di frase. Impariamo facendo. Impariamo attraverso il successo e il fallimento.

Un IDE con completamento automatico aiuta il nuovo programmatore ad acquisire sicurezza facilitando la creazione di programmi, senza però lottare per ricordare ogni miriade di funzioni di una vasta moltitudine di librerie.

Se uno dovesse veramente estrapolare la vista che il completamento automatico fa male al nuovo programmatore perché rende troppo facile per loro, allora potresti argomentare che i libri di riferimento non dovrebbero essere usati durante la programmazione, perché i concetti all'interno dovrebbero essere prima impegnati nella memoria, poiché non averli memorizzati li rallenta e non consente loro di comprendere prima i concetti.

Il completamento automatico è uno strumento, utilizzato per rendere il programmatore più produttivo. Proprio come con l'apprendimento di una lingua per la prima volta, dopo aver acquisito fiducia e un livello di successo con ciò che stiamo imparando, lavoriamo quindi per migliorare le nostre conoscenze.


Questo è un argomento eccellente per l'utilizzo degli IDE. Questo però sembra fallire in CS, perché sembra (per me) che molti non vadano oltre il semplice "imparare a parlare". Ciò richiederebbe il refactoring del curriculum per insegnare esplicitamente le cose nascoste da un IDE.
Michael K,

2

All'inizio, è abbastanza difficile costruire qualcosa che funzioni, quindi tutto ciò che aiuta il marchio noobie il meglio. Un nuovo programmatore avrà bisogno di qualcuno più anziano per indurlo a pensare se gli elenchi associati a array o gli elenchi collegati saranno la soluzione migliore per il problema in questione. Ognuno di essi ha i suoi punti di forza e di debolezza.

Che il principiante abbia un IDE o che stia consultando i documenti API online, non ci sarà alcuna reale differenza tra il codice che creano. Mentre affrontare il dolore della scrittura degli errori di sintassi può essere un'esperienza di apprendimento, c'è troppo da imparare a preoccuparsene all'inizio.

Non impari a camminare sul filo del rasoio andando dritto al filo alto senza rete. Inizi a camminare con una corda a pochi centimetri da terra. Mi azzarderei a dire che la maggior parte di noi lavora con un IDE e una sorta di script di compilazione (lo script di compilazione di Visual Studio è creato dall'IDE ma è lì). La maggior parte di noi non costruisce le proprie classi a mano con un editor di testo e quindi invoca il compilatore a mano. Perché dovremmo imporlo a un principiante che ha molto di più da imparare?


2

Non vedo alcun bisogno di soffrire il dolore di rinunciare agli strumenti, anche quando uno sviluppatore sta imparando. Credo che il tempo e gli sforzi aggiuntivi necessari per scrivere il codice senza gli strumenti sarebbero meglio spesi per imparare a scrivere unit test e debug. Una volta che un utente sa come testare il proprio codice e come eseguirlo durante l'esecuzione, imparerà molto su cosa sta realmente facendo.

Inoltre, non è come usare un IDE significa che il codice si scrive da solo. Uno sviluppatore inetto o principiante scriverà un codice che non funziona indipendentemente dal fatto che utilizzi o meno un IDE.

Vedo l'IDE come un altro livello di astrazione durante la codifica. Se sto scrivendo Java generalmente non ho bisogno di capire come funziona il bytecode che genera. Se un nuovo programmatore utilizza librerie Java non è necessario che sappiano in quale pacchetto si trovano se l'IDE può aggiungerlo automaticamente per loro. In entrambi i casi, se può insorgere un bug o un problema di livello inferiore (ad es. Scontro tra nomi di classe) che causa un errore, è tempo che lo sviluppatore lo guardi manualmente.


0

Molte altre buone risposte, quindi non considerare questa una risposta completa, ma è utile per i neofiti e per gli utenti esperti vedere un quadro completo di quali funzioni hanno a disposizione.

In Delphi posso premere ctrl-j e vedrò un elenco di ogni singola cosa possibile che io possa mai sintatticamente aspettarmi di lavorare.

Non sono necessariamente d'accordo, ma ho letto gli argomenti secondo cui i programmatori non dovrebbero nemmeno guardare ai membri della classe privata degli oggetti che usano e, in questo modo, il completamento automatico fornisce a ogni utente un riferimento istantaneo all'API.

Gli IDE più recenti consentono agli utenti e agli sviluppatori di linguaggi di inserire metadati nel loro intellisense, migliorando ulteriormente la capacità di leggere e comprendere ciò che fanno le funzioni, senza leggere la fonte (che è qualcosa che non dovrebbero comunque fare).

Forse, è meglio che i neofiti leggano e comprendano effettivamente tutto ciò che implementano. Ma forse sarebbe una domanda migliore se ai neofiti dovrebbe essere permesso o meno di includere o importare qualsiasi spazio dei nomi o unità desiderino senza documentare il motivo per cui lo stanno includendo.


0

Nella mia esperienza, usare un IDE per apprendere le basi di OO è fantastico perché nasconde una parte della complessità della scrittura del codice, consentendo al nuovo sviluppatore di concentrarsi sulla logica del programma. Tuttavia, subito dopo aver imparato a programmare e i principi di base di OO, durante i corsi sono stato costretto a capire più precisamente quali pezzi dovevano interagire tra loro nei file di origine (senza dimenticare le dichiarazioni di importazione, istanziando le classi corrette, ecc.) Tramite un corso di programmazione dove dovevamo usare terminali solo macchine Unix.

Questo è possibile a scuola perché qualcuno ha l '"autorità" per costringerti a usare strumenti lo-fi. Sarebbe molto più difficile da raggiungere in un ambiente aziendale o aziendale.


0

Ho due pensieri su questo. Il primo è che per imparare veramente qualcosa, credo che tu debba sapere cosa sta realmente succedendo. E con quanto è riuscito IntelliSense, può nasconderne un po 'a un nuovo sviluppatore. Ad esempio, ho tenuto un corso di ingegneria web al college in cui abbiamo effettivamente costruito i nostri framework Web per creare le nostre app finali. Sono uscito da quella classe con quella capacità di adattarmi a quasi tutti i framework web perché avevo la comprensione di ciò che era sotto tutto per cominciare. L'uso di un IDE non è abbastanza a quel livello, ma credo che il punto sia ancora lì.

Tuttavia, l'utilizzo di un IDE può anche fare cose come l'apertura di API a nuovi sviluppatori. Quando ho iniziato a scrivere codice seriamente, l'IDE che ho usato mi ha aiutato moltissimo perché avrei fatto cose come digitare un oggetto, usare il completamento automatico per vedere quali metodi aveva e quindi ricercarli usando i documenti disponibili. Tutto ciò è stato fatto all'interno dell'IDE ed è stato un ottimo strumento di apprendimento.

Quindi, sì, credo che sia OK usarne uno fintanto che ci si prende anche il tempo per capire cosa sta succedendo. Usare un cast di oggetti senza capire il motivo per cui è stato necessario è davvero un male, ma se un nuovo sviluppatore vede che puoi usare un cast di oggetti e poi cerca di capire perché non vedo nulla di male.


0

L'apprendimento richiede pratica. La programmazione può essere un compito molto frustrante quando non si ha idea di cosa si possa fare né di come funzionano le cose.

È poco pratico, per esempio, leggere molti libri sui principi di programmazione senza scrivere una sola riga di codice; non si impara nulla in questo modo.

Intellisense è molto utile nel fornire ai nuovi programmatori l'aiuto di cui hanno bisogno per continuare a programmare, continuare a praticare e quindi imparare.

Come già detto, l'apprendimento di API specifiche non equivale all'apprendimento dei principi di programmazione. Ciò che accadrà senza dubbio è che i nuovi programmatori faranno errori (indipendentemente da Intellisense), e il modo in cui scelgono di correggere tali errori è ciò che li porterà a diventare buoni programmatori o poveri.

Se stai cercando di insegnare a qualcuno come programmare, farei in modo che usino Intellisense e giochino fino a quando non si bloccano. È allora che proverei a costruire una fondazione insegnando loro il motivo per cui sono rimasti bloccati.


0

IMO, Gli IDE ti renderanno più produttivo. Ma per i principianti non è generalmente una buona idea iniziare a programmare con IDE. Gli editor di testo come notepad ++, notepad, ecc. Sarebbero sufficienti.

Inoltre, non è generalmente considerata una buona idea iniziare a imparare la programmazione con un linguaggio di alto livello. Vorrei suggerire di iniziare con il linguaggio assembly. Questo ti insegnerà le basi e la pazienza.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.