L'università insegna C ++ in stile DOS, come gestirlo [chiuso]


19

Ho programmato per molti anni ma volevo un diploma per rendermi più occupabile. Avendo già frequentato l'università una volta, non ho scelto un corso di informatica di 5 anni, ma un programma di ingegneria del software più breve e orientato alla pratica .

Mi aspettavo che potesse concentrarsi più sulle competenze concrete che sulla teoria, ma avevo ancora l'idea che università e professori preferissero che le cose fossero corrette, formali, accademiche. È ancora scienza, vero? Sbagliato: sono rimasto sorpreso da quanto erano scarsi molti corsi IT.

In un corso introduttivo sul C ++ siamo stati testati su luoghi comuni come "perché i globi sono cattivi" e "perché le costanti sono buoni", dopo aver appena scritto 1-2 programmi. Aneddoti casuali senza contesto adeguato. Dispense contenevano system(pause/cls), getche le intestazioni piace conio.he iodos.h. Uno dei compiti era quello di stampare "caratteri ASCII" da 32 a 255 , con uno screenshot che mostrava una tabella simile stampata usando la codepage di Windows-1252, ma senza menzionare affatto la codifica.

Domanda : quando un'università / professore sembra utilizzare strumenti e metodi inferiori e / o obsoleti e il contenuto che viene insegnato è al limite errato, come lo si fa in modo costruttivo e rispettoso, se non del tutto?

Alcune risposte sottolineano che dovresti guardare oltre la programmazione poiché è solo uno strumento per apprendere argomenti come strutture dati e algoritmi. Sono d'accordo con questa idea, ma in questo caso non c'era davvero alcun piano simile dietro lo stile povero. La maggior parte dei corsi insegnerebbe semplicemente un altro "strumento" senza molta teoria di base o "quadro generale". Spesso sembrava che fossero rapidamente messi insieme solo per offrire un corso del genere.


Mi sono bloccato e alla fine mi sono laureato. La qualità è rimasta piuttosto bassa in tutto (con alcune eccezionali eccezioni), e molti altri studenti si sono lamentati. Come previsto, ho imparato molto di più da progetti personali e lavori part-time che da scuola, tuttavia il processo di fine scuola e l'etichetta "studente di software" sembrano misteriosamente utili in se stessi!


2
Sulla base della mia esperienza, imparerai meglio, più veloce ed economico studiando la programmazione da solo e ottenendo aiuto dai forum. Non è raro che il programma universitario sia superato. In Russia, Pascal è ancora insegnato in alcune università (anche se mi piace la lingua, e non la considero una cosa del tutto negativa).
WKS,

@WKS: Penso che Pascal sia un ottimo linguaggio di insegnamento per l'apprendimento di principi (di programmazione procedurale) che non sono affatto obsoleti. I corsi universitari non devono perdere tempo a insegnare un particolare linguaggio di programmazione, ma piuttosto a insegnare paradigmi (procedurali, orientati agli oggetti, funzionali, logici e così via).
Giorgio,

Sì, certo @Giorgio, il linguaggio di programmazione scelto come strumento didattico non ha importanza, tuttavia, ci si deve aspettare che le pratiche di programmazione presentate siano valide e aggiornate.
glampert

La maggior parte delle università insegna agli studenti universitari con l'obiettivo di consentire loro di avere successo nell'ottenimento di un master. La maggior parte dei programmi di master insegna agli studenti master con l'obiettivo di consentire loro di avere successo nell'ottenimento di un dottorato di ricerca. La maggior parte dei programmi di dottorato hanno lo scopo di aiutarti a diventare un ricercatore di successo.
Rob P.

@glampert: la programmazione procedurale non è cambiata dopo l'introduzione di Pascal. Ancora meglio, Pascal è stato progettato come un linguaggio di insegnamento, quindi non ha molti hack che possono essere utili nella pratica, ma sono una grande distrazione quando apprendono nuove cose. Quindi Pascal è aggiornato per quanto riguarda l'insegnamento della programmazione imperativa. Certo, si potrebbe desiderare di insegnare altri paradigmi come logici, funzionali, orientati agli oggetti: quindi bisogna cercare altre lingue, ad esempio Python, Java, Haskell, Scheme, Prolog, ...
Giorgio

Risposte:


34

La matematica e la programmazione sono cose totalmente diverse. La matematica è scienza, la programmazione è tecnica. Nel mondo accademico, la programmazione è qualcosa che devi sapere per poter gestire le cose reali, quella che è realmente interessante e importante: gli algoritmi.

A chi importa se il compilatore è antico e usi le systemchiamate? A chi importa se hai Linux e non Windows? Bene, i professori no, questo è certo. E non dovrebbero, davvero. Non aspettarti di diventare un programmatore professionista dai corsi presso l'istituzione accademica. Non è per questo che ci vai.

È vero che il compilatore che si aspetta che tu usi è antico e il presupposto del sistema operativo è anacronistico e problematico. Puoi sollevarlo, e forse verrà risolto. Ma non perché il corso sia incompatibile con l'industria, ma piuttosto perché causa un'immediata difficoltà agli studenti. Vai a trovare quel vecchio compilatore ora e fallo funzionare sul tuo MacBook ...

In generale, gli studi accademici non dovrebbero essere sprecati nell'apprendimento di C ++ e Android, dovresti imparare le cose reali di informatica lì. Non avrai un'altra possibilità per quello. Android? Scarica Eclipse con ADT e inizia a lavorarci a casa, come faccio io. Non ho bisogno di scuola per quello.

Penso che non sia giusto aspettarsi lo sviluppo della tecnica dalle università. Soprattutto non nelle università di ricerca. Puoi dire che un posto che offre solo scapoli dovrebbe essere più mirato al settore, ma le università di ricerca - vogliono ricercatori. I professori sono alla ricerca di potenziali studenti laureati e dottorandi, non di eccellenti programmatori. Quindi penso che dovresti impostare il tuo livello di aspettative di conseguenza.


3
Ho un problema con la tua risposta: "In generale, gli studi accademici non dovrebbero essere sprecati nell'apprendimento di C ++ e Android, dovresti imparare le cose reali di informatica lì". - Senza conoscere almeno le basi di un linguaggio di programmazione, la roba CS non ha senso ed è fin troppo facile da applicare nel modo sbagliato.
Izkata,

4
@Martin e izkata - la programmazione sotto DOS in C ++ usando il compilatore del secolo precedente non significa che non conosci la programmazione. Significa solo che stai utilizzando strumenti obsoleti, ma se hai bisogno di implementare alberi RB, a chi importa? È obsoleto per l'industria, ma i programmi funzionano e fanno quello che dovrebbero fare - è abbastanza buono.
Littleadv,

3
@littleadv - l'OP ha scritto "che sembra antico secondo quello che ho letto." il che mi suggerisce che ha dovuto guardare altrove rispetto ai volantini pertinenti per scoprire che questo è obsoleto e non portatile. Certo, molti se non tutti i compilatori hanno librerie extra non standard, ma se ti viene insegnato che senza che ti viene detto che sono non standard penso che sia negativo - e che contenga sia cose nuove che vecchie, e anche per C ++ 11 cose dal momento che per il momento C ++ 03 è lo standard più recente e ampiamente supportato.
Steve314,

3
@littleadv - Beh, forse dovremo essere d'accordo a non essere d'accordo allora. Anche se avrei pensato che uno scienziato informatico debba essere un pedante per i dettagli, e i pochi secondi necessari per sottolineare che qualcosa di non standard sono entrambi coerenti con quello e in nessun modo una grande difficoltà. Come ti sentiresti se un professore di CS usasse le sue notazioni ad hoc mescolate con la matematica e non lo sottolineasse? Dopotutto, è un altro aspetto dello stesso problema: se gli altri informatici sono in grado di capirti. Il codice viene letto dalle persone e dai compilatori.
Steve314,

4
@littleadv - Non ho mai sostenuto che l'OP è stato detto conio.h è standard - Ho suggerito che potrebbe non essere stato detto che non era standard, e anche allora ho detto "Se chiariscono quali sono i trucchi non portatili, probabilmente è OK.". Il modo in cui mi è stato insegnato anche la scienza di base è che usi termini standard o, se devi usare termini non standard, definisci cosa significano. Nelle mie lezioni di scienze della scuola, anche usare i centimetri era contro le regole - non sono unità SI. L'uso di librerie non standard non mi sembra diverso. Il significato del codice nell'informatica dovrebbe essere inequivocabile.
Steve314,

19

L'informatica è programmare ciò che la fisica è alla carpenteria.

Se vuoi diventare un falegname, studiare fisica non lo farà accadere. Ti insegnerà molte cose interessanti, che potresti essere in grado di applicare al tuo lavoro, ma non ti insegnerà come essere un buon carpentiere. Per questo, dovrai imparare l'arte della carpenteria.

Allo stesso modo, se vuoi diventare un buon programmatore, dovrai imparare l' arte della programmazione . Sfortunatamente, non esiste un'istituzione che rilascia certificati di alcun tipo. Quindi, fondamentalmente, questo è qualcosa che dovrai fare da solo, con qualunque cosa aiuti le persone che potresti trovare. Per te questo significa ripetizione e riflessione. Scrivi molto codice e poi torna a guardarlo. Prenditi anche del tempo per leggere il codice di altre persone. Prendi in considerazione la possibilità di partecipare a progetti open source.

Le università non si preoccupano molto della programmazione e tanto meno dei dettagli che cambieranno nei prossimi anni. Quello che vedi nella tua scuola è che hanno scelto un ambiente di programmazione (un brutto, ma non è così importante) e ora te lo mostrano, così che avranno un quadro di riferimento in cui possono insegnarti varie tecniche di programmazione. Si può sostenere che il frame di riferimento sia scarso e che anche la lingua sia una scelta strana. Dal loro punto di vista probabilmente non importa, perché è scelto in modo abbastanza arbitrario.


2
Che ne dici di fisica all'ingegneria? I programmatori dovrebbero comprendere i principi CS per applicarli quando progettano i programmi secondo i quali un ingegnere deve comprendere la fisica per progettare edifici, aerei e processi chimici.
Jay Elston,

3
@JayElston: la fisica è ingegneria, ciò che l'informatica è ingegneria del software, che comprende analisi, progettazione, pianificazione, implementazione, QA, ecc. La programmazione stessa è davvero più l'arte di ottenere il materiale per fare ciò che vuoi che faccia, mentre l'ingegneria inizia a capire cosa vuoi veramente fare.
back2dos,

Mi piace ancora una delle citazioni dei miei professori "L'ingegneria è l'arte di applicare la scienza per risolvere i problemi".
Chris O,

1
@ Chris: Forse, quindi, la scienza è l'arte di creare nuovi problemi.
JasonTrue

@JasonTrue: Beh, si potrebbe sostenere che la scienza è l'arte di creare problemi migliori ;)
back2dos

9

Non c'è niente di sbagliato nell'apprendimento dello "stile DOS". Sono sicuro che molti dei vecchi timer qui sono iniziati su DOS, o anche con sistemi operativi precedenti, scrivendo programmi basati su linee e si sono adattati bene. Il mondo dell'informatica cambia così rapidamente che non mi impazzirei di particolari come la libreria utilizzata per cosa.

In realtà, sospetto che il motivo per cui abbiamo un mondo pieno di programmatori che possono dirti cos'è l' iniezione di dipendenza , ma fatica a rispondere a FizzBuzz , è perché molti programmatori non passano molto tempo a quel livello molto elementare.

Sembra che questa sia un'introduzione alla programmazione, quindi in sostanza, non preoccuparti. Impara le basi e farai bene. Se sei interessato ad altre piattaforme, esplorale da solo. Questo è il bello della programmazione.


5

Come puoi affrontarlo? Scarica e-book di programmazione o video in streaming, prova gli esempi da solo. Non dipendere dai tuoi professori. La programmazione è molto appresa da soli.


1
La programmazione è come suonare il piano. Hai bisogno di un maestro che ti insegni come fare le cose e molta pratica per farle bene. Credo che ci siano pochissimi pianisti di fama mondiale autodidatta.

7
Che strana analogia, ci sono sicuramente molti programmatori autodidatti altamente qualificati.
ocodo,

@Slomojo Vero, e ne ho incontrati alcuni. Sono una razza strana, eccellente in quello che sanno. La difficoltà risiede nell'ampiezza dei problemi che incontrano. Di tanto in tanto, un problema ha un percorso molto più breve per la soluzione quando si conosce qualche angolo di Informatica, eppure, quelle persone di talento tendono a continuare a martellare su di esso nell'unico modo che conoscono, che alla fine sembra una forza bruta. Un esempio, un problema "difficile da risolvere" per un autodidatta è stato risolto da un DFA in due giorni, con test (in TCL / TK per l'avvio!). Due settimane dopo, non lo capivano ancora, con una spiegazione.
Edwin Buck,

4

Molte università hanno professori di programmazione scadenti. Sono andato in una delle migliori scuole di specializzazione del mio paese e ho praticamente imparato a occuparmi di programmazione. Immagino che la maggior parte degli unis sia così perché i programmatori davvero bravi optano per lavori meglio retribuiti (non insegnando). Dovresti prendere un piccolo progetto e provare a codificarlo da solo. Puoi ricevere consigli da molti forum come questo. Questo potrebbe essere un modo migliore per imparare a lungo termine.


Un buon consiglio, ovviamente, sono totalmente d'accordo. È solo il diploma ... :)
Toerndev,

@gaidal: Sì! questo è quello che sono uscito dalla scuola di specializzazione - il nome del marchio: P (sebbene avessi sperato molto di più quando mi sarei iscritto)
Jan S

2
L'università non riguarda l'apprendimento della programmazione, ma l'apprendimento dei concetti di linguaggi di programmazione e, più in generale, di informatica. Quando ho dovuto realizzare il mio progetto per i sistemi operativi all'università, mi è stato detto: sarà in C, il libro è in biblioteca, vai a prendere il libro e imparalo. La programmazione riguarda la pratica e non è compito dell'università insegnartelo.
Giorgio,

1
A proposito di lavori meglio pagati è vero. Un mio amico che insegna all'università una volta si è lamentato: "Insegniamo loro come programmare e poi guadagnano più di noi, dovrebbe essere il contrario!"
Giorgio,

3

Penso che l'Università dovrebbe insegnare concetti astratti di linguaggi di programmazione, algoritmi, ecc. E non dovrebbe essere il luogo in cui apprendi la programmazione: la programmazione è un'attività molto pratica e puoi impararla solo facendo.

Durante il mio studio ho imparato le basi della programmazione in Pascal, poi ho avuto un progetto in C (dovevamo imparare il linguaggio da soli) e poi ho tenuto un corso sui concetti del linguaggio di programmazione (procedurale, orientato agli oggetti, funzionale, logico) . È stato folklore che su MSDOS si abbiano conio.h o puntatori lontani, che non si hanno su un sistema UNIX. Questa era la materia di cui discutevamo noi studenti davanti a una birra, non era qualcosa di cui discutevi durante le lezioni perché non era così importante. L'insegnamento universitario si concentra sull'astratto, conoscenza generale ed evita di entrare nei dettagli: esempi e dettagli sono presentati solo per illustrare le cose generali.

L'esempio che hai dato su ASCII contro Unicode e la libreria conio.h di MSDOS significa che ogni ambiente di programmazione ha il suo modo particolare di fare e organizzare cose. Se programmi in C ++ su Visual Studio dovrai usare altre librerie, alcune delle quali non si trovano, ad esempio, su Linux. Quindi, se il corso fosse in Windows 7 / Visual Studio alcune persone potrebbero lamentarsi del fatto che sarebbe meglio farlo su Linux / GCC. Ma, IMO, non è questo il punto.

Quindi, penso che dovresti cercare di non distrarti dai dettagli e concentrarti sui concetti generali che vengono trattati nel corso. Ad esempio, nella maggior parte dei linguaggi di programmazione avrai bisogno di alcune librerie per implementare l'I / O della console e che, dato un ambiente di programmazione, dovrai risolvere il tuo problema con gli strumenti che hai a portata di mano. Forse questo suona abbastanza ovvio per te e hai l'impressione che non stai davvero imparando qualcosa perché hai già qualche conoscenza precedente (questo può accadere) ma non ho avuto l'impressione che stai frequentando un brutto corso.


Grazie, terrò presente che non pensi che basti dire che è una brutta strada. Per inciso, non intendevo che dovesse essere in Linux, solo che poteva fare uno sforzo per informare gli studenti sulle differenze e che esiste uno standard.
Toerndev,

Sono d'accordo con te che sarebbe una buona idea informare su altri sistemi. Ciò dipende anche dall'esperienza dell'insegnante: potrebbero sentirsi a disagio a parlare di un ambiente con cui non hanno familiarità. Ad esempio, sono a casa con Windows e Linux, ma eviterei MacOS perché, anche se potrebbe essere un sistema operativo molto interessante, non l'ho mai usato. Forse potresti provare a chiedere se possono dare un breve confronto tra diversi ambienti C ++: solo alcuni esempi per avere un'idea di ciò che può essere diverso e ciò che rimane lo stesso. Ad esempio, potresti giocare con sizeof su MSDOS e Linux.
Giorgio,

2

Le università stanno dando le basi. Una volta che è forte, puoi costruire grattacieli sopra di esso. Ho imparato BASIC, C e C ++ durante i miei giorni di college. Più tardi, quando ho proiettato in Visual C ++, ho creduto che fosse un mondo completamente diverso. Più tardi ho capito la differenza tra Framework e Lingue.

Scegli una giusta università in cui dare lo sviluppo mirato del tuo campo di calcolo desiderato. Che può aiutarti più avanti nella tua carriera.


2

Le stampe piene system("");sono in realtà una cosa dannatamente buona! Sono scioccato dal fatto che al giorno d'oggi le persone non sappiano nulla di queste funzioni.

system("pause")e ti sbarazzi di tutti i trucchi delle funzioni getX. system("cls")e hai appena salvato una pagina di codice. system("mkdir foo")e hai appena salvato 2 pagine di allocazioni di buffer, suddivisioni di percorso, _makepath_ss, 256 limiti di percorso, tonnellate di uscite di errore e così via.

Inoltre il codice è così semplice che una scimmia lo capirà.

 if(!system("mkdir foo"))
     //booo and exit`

La scuola delle perversioni polimorfiche è ciò che dovrebbe essere vietato dalla legge.

PS: Inoltre, con tutto il rispetto, sto facendo fatica ad accettare che alle persone venga insegnato C ++ con eccezioni e tutto virtuale come una BUONA COSA, perché ha più gotchas e mine antiuomo di quanto tu possa immaginare, e persino Bjarne Stroustrup evangelizza le eccezioni come qualcosa di super facile e sicuro, mentre in realtà sono una mina nucleare.

Vedi analisi su Misra-C ++ e JSF-C ++. E http://blogs.msdn.com/b/oldnewthing/archive/2005/01/14/352949.aspx . Sono troppo pigro per trovare tutti gli articoli rimanenti oggi.

Detto questo, sono uno sviluppatore di c ++ e mi piacciono molte funzioni e il linguaggio nel suo insieme.


1
Non sono sicuro di essere d'accordo sul fatto che incoraggiare implicitamente gli sviluppatori inesperti a saltare direttamente al sistema senza alcuna reale idea dei gotcha è una buona idea ...
deworde

@deworde: è la stessa cosa che scrivi in ​​una console, non penso che tu possa rendere le cose meno soggette a errori e sicure.
Coder

Sì, ma quando lo scrivi in ​​una console, sai (per esempio) dove sei, con chi stai correndo, con quale tipo di macchina stai correndo e, soprattutto, PERCHÉ LO STAI FACENDO. Il programma non è necessariamente a conoscenza di nessuna di queste cose e qualcuno che esegue l'eseguibile non saprà che è necessario controllarlo prima di eseguirlo.
Deworde

@deworde: Non esattamente, il comando EraseFile erediterà comunque le autorizzazioni del processo, quindi è altrettanto facile confondere con entrambi i comandi.
Coder

1

Il mio suggerimento potrebbe risuonare là fuori, ma ascoltami ... Cambia maggiore.

Nella mia esperienza accademica, la specializzazione in Informatica ha dato uno sguardo di livello molto basso a ciò che fa battere i computer. Hai iniziato con un primer di base in C ++ per assicurarti di sapere cosa fosse un programma e le basi della memoria e del calcolo dietro il programma, e poi hai imparato assemblaggio, concetti di sistema operativo, ingegneria elettrica, progettazione digitale, ecc. Ecc. questo grado e cercare lavoro con NVidia o AMD o Lockheed; da qualche parte dove stanno realizzando un nuovo hardware, che ha bisogno di qualcuno che capisca quell'hardware a un livello abbastanza basso per scrivere i driver e controllare il software.

Sembra che quello che vuoi sia un corso di studi che, nella mia università, è stato chiamato Gestione dei sistemi di informazione. Questo è il corso che ho seguito; ha insegnato la programmazione in Java, VB.NET, C # e alcuni PHP e altri script web lungo la strada. Richiedeva anche calcolo (ma non nella stessa misura di CS), contabilità, finanza, statistiche, comunicazione aziendale, OO A&D, progettazione di database e analisi di sistemi. Ho ottenuto un BBA anziché un BS, e avevo gli strumenti di base per iniziare a lavorare come sviluppatore di software Web o Windows.

Ciò che il "Computer Science" ti prepara a fare dipende molto da quale università lo offre. Sembra che tu stia intraprendendo un percorso molto anacronistico e di basso livello sui computer che non sembrano quello che stai cercando dopo la tua istruzione. Ti esorto a guardarti intorno all'università e trovare un corso di studi più focalizzato sul tipo di lavoro al computer che vorresti intraprendere dopo la scuola.

Indipendentemente da ciò, il tuo corso di studi inizierà con una scrittura di base molto "a livello di console". La lingua non ha importanza; ciò che ti insegnano è la programmazione procedurale di base; come pensare in passi abbastanza piccoli che il computer può seguirti passo dopo passo (perché il computer non dà nulla per scontato e non può seguire la maggior parte dei salti di un essere umano nella logica). Da lì, passerai alla programmazione orientata agli oggetti (invece di avere una lunga funzione che fa tutto, è molto più mantenibile avere diversi "oggetti" di codice più piccoli, che rappresentano lo stato e la logica degli oggetti del mondo reale), quindi a programmazione guidata dagli eventi ("Non chiamarci, ti chiameremo"; il tuo programma sostanzialmente si avvia, dice al sistema operativo di impostare l'interfaccia utente grafica iniziale,


Grazie, sì, lo prenderò in considerazione. Se sento che sta andando nella direzione sbagliata che posso cambiare in seguito, i corsi di base dovrebbero essere compatibili tra gli universi.
Toerndev,

Attento a tale presupposto; Ho cambiato le major da CS a MIS, e nessuna delle matematiche che avevo già preso è stata trasferita perché la business school aveva una traccia matematica completamente separata. Inglese, scienze, scienze umane, sì, che trasferito.
KeithS

1

I corsi di informatica non ti insegneranno la programmazione. Questa è una passeggiata nel parco rispetto ad alcune delle programmazioni che ho fatto sul mio corso CS.

Il problema fondamentale con questo, nella mia esperienza, è che non c'è praticamente nessun posto che ti insegnerà la programmazione a un livello equivalente, quindi non hai altra scelta.


0

Penso che ci possa essere un po 'di confusione su cosa e perché stai studiando.

Sembra che tu stia studiando un programma introduttivo di informatica. Questo è rivolto a persone con un'esperienza minima che stanno imparando le basi su come i computer lavorano a basso livello.

Sembra anche che tu sia un programmatore semi-serio o professionista. Stai programmando da 10 anni e sei a tuo agio in 3 lingue. Sembra che tu sappia cosa stai facendo almeno abbastanza per lavorare come parte di una squadra. Ti senti fuori posto in questo corso? Gli altri studenti hanno un livello di esperienza o abilità simile a te?

Cosa hai intenzione di uscire da questo corso?

Stai cercando quel "pezzo di carta"? In questo caso, non smettere di cercare un lavoro mentre studi. Candidati per un lavoro, digli che sei un programmatore competente e che stai studiando perché hai bisogno del pezzo di carta per ottenere un lavoro. Se ti assumono, prendi in considerazione l'idea di abbandonare - una volta che hai un lavoro professionale, allora davvero non hai più bisogno di quel pezzo di carta. Accetta un salario inferiore al normale, perché è meglio essere pagati per imparare (sul posto di lavoro) piuttosto che pagare per imparare a scuola - e imparerai anche più velocemente. Dopo un anno o due sarai quasi sempre al passo con i tempi, quindi puoi chiedere un aumento salariale decente o puoi trovare un altro lavoro perché avrai esperienza.

O stai cercando di imparare qualcosa? Quindi smetti di giudicare il tuo professore. Come un insegnante di liceo memorabile soleva dire "SEDERE E ZITARE". È quasi garantito che il professore abbia incommensurabilmente più esperienza e conoscenza di te e che tu possa imparare molto da lui. Se sta andando troppo lentamente per te, cerca di ottenere credito per questi corsi introduttivi basati sul tuo precedente apprendimento ed esperienza.

Ma sei nel corso giusto? Potresti anche imparare molto dal professore di letteratura o da un professore di storia ... non particolarmente rilevante. Forse non vuoi "informatica" ma preferisci competenze più pratiche, "del mondo reale". Prova "ingegneria del software". Guarda le altre istituzioni per un corso più mirato.

Proprio come quando inizi un nuovo lavoro, una lezione o un corso di studio può essere molto difficile da rivedere dall'esterno. Sembra che tu stia seguendo un corso che non ti dà quello che ti aspetti. Riconsidera le tue opzioni.


Grazie, ci ho pensato e penso che tu abbia ragione su queste due opzioni. Il primo è più vero per me e cercherò lavoro in attesa di vedere se i corsi diventano più interessanti. In realtà è un'educazione all'ingegneria del software, che ho scelto rispetto all'informatica poiché voglio alzarmi presto e imparare lavorando. Forse questo spiega perché mi aspettavo un po 'più di "abilità nel mondo reale". :)
Toerndev,

Solo alcune osservazioni del mio passato universitario: ho studiato un corso in cui avevamo in programma la "programmazione 101", quella parte era fastidiosamente noiosa per me. Ma altri corsi erano interessanti (fisica, meccanica, ...) quindi anche se una lezione è noiosa che potrebbe non applicarsi all'intero programma e per le altre parti potrebbe valere la pena di soffrire. Ma ho abbandonato. Nel frattempo ho imparato che a volte quel foglio sarebbe stato utile anche se il documento non significa che sarei migliore nel mio lavoro (ho un buon lavoro, un buon stipendio, ... quindi non è male ;-))
johannes,

0

Ho pensato che molte delle risposte a questa domanda fossero deludenti. Sono tornati alla vecchia stanca discussione sulla CS vs la programmazione ecc. Potrebbe essere così, ma mi sembra che il corso su cui si sta svolgendo l'OP non stia insegnando.

Ero nella situazione di aver già lavorato come programmatore e ho studiato un po 'da solo, prima di studiare CS part-time al college. Mi sono guardato intorno attentamente, ma in genere ho trovato il curriculum una perdita di tempo. Inoltre non mi lascerebbero saltare i corsi nonostante abbia già esperienza professionale nella zona.

Nella mia esperienza, una percentuale significativa di professori è piuttosto pigra e utilizza un curriculum obsoleto. Onestamente sembra che tu stia perdendo tempo. Mi chiedo anche se il completamento del diploma ti aiuterà a trovare un lavoro.

Dubito che tu possa fare molto per cambiare le cose del tuo corso. Puoi completarlo con lo studio da solo. Oppure dimentica tutto, studia CS in modo indipendente e fai anche alcune certificazioni del settore.

Dovrei aggiungere che non ho idea del valore del diploma nel mercato del lavoro del tuo paese. Se il diploma stesso è prezioso nonostante il contenuto, allora potresti dover semplicemente tollerare un curriculum che è in qualche modo carente.


Non l'ho visto prima. Sono contento di vedere qualcuno dire esattamente quello che provavo per alcune risposte (il tuo primo paragrafo)! Sì, l'insegnamento è piuttosto inutile, non frequento più le lezioni ma consegno semplicemente i programmi che devo scrivere. Lo faccio a modo mio (che di solito è piuttosto male, proviene da CL a C ++), incontro molte cose che non sono nel curriculum e chiedo consigli agli amici del programmatore piuttosto che al professore. In questo modo è davvero divertente. Spero comunque di poter trovare un lavoro prima di diplomarmi.
Toerndev,

0

Devono soddisfare gli studenti. La maggior parte degli studenti non può programmare. Quindi non sono spinti ad andare tecnici lì.

Hanno anche le loro aree di ricerca specializzate, ma non lo insegnano. E comunque molti ricercatori non sono buoni insegnanti, quindi potresti considerarti fortunato se insegnano cose che già conosci!

Ad ogni modo, sembra che tu non sappia cos'è l'informatica. Non si tratta di ciò che è pratico per l'industria.


-6

Vorrei (e quindi insistere) di restituire i tuoi incarichi in c ++ standard. Ciò è del tutto ragionevole poiché non è possibile completare diversamente i compiti.

Per quanto riguarda lo stile cattivo; ci sarà inevitabilmente un po 'di tutto questo per cominciare. Imparare a usare correttamente la libreria io standard richiede alcune funzionalità c ++ avanzate, in particolare modelli e iteratori. Vedo perché un docente potrebbe iniziare a utilizzare funzioni io molto semplici. Non avrei paura di chiedere questo, tuttavia mostra entusiasmo e un po 'di luce nei tuoi occhi. Il tuo docente dovrebbe essere in grado di intrecciare la tua domanda in una lezione futura in cui (si spera) metterai a posto i tuoi esercizi iniziali.

Lo lascerei comunque. Anche se c ++ può essere un linguaggio indipendente dalla piattaforma, spesso non lo è. L'apprendimento di alcune funzioni del sistema Windows non è una cosa negativa, in particolare se ti alleni a farlo secondo lo standard. Ad un certo punto ti imbatterai nel conio.hguardare il codice di altre persone - ed è bene sapere cosa fa.


10
no, ti vengono dati gli strumenti per fare il lavoro ed è tuo compito usare quegli strumenti. Se hai un lavoro in cui tutto ciò che hai è un XT di 15 anni che esegue CP / M, chiedendo che accettino il tuo codice di Windows 7 a 64 bit non funzionerà, ti consigliamo di abituarti il ​​prima possibile.
jwenting

2
@Ramhound Un'università dovrebbe consentire di completare il corso senza dover acquistare attrezzature costose (come il sistema operativo Windows). È pregiudizievole.
Tom,

3
@Tom, se insegnassi Photoshop mi aspetterei che tu comprassi Photoshop (che è molto costoso) e mi aspetto che tu compri libri di testo che sono costosi, non vedo dove sia diverso. E scommetto che ci sono molti computer nel campus che potrebbe usare per l'attività senza acquistare Windows (che francamente chiunque studi CS dovrebbe probabilmente avere entrambi, non sai mai dove finirai, le persone programmano nello stack Microsoft dei prodotti non tendono ad usare Linux.)
HLGEM,

3
@Ramhound Anche se il professore non ha esplicitamente detto perché sta usando routine IO basate su dos semplificate, possiamo probabilmente fare un'ipotesi corretta. Come menzionato da Tom, le routine io del C ++ sono relativamente complesse, quindi nascondere i dettagli non è irragionevole in un corso di livello introduttivo. La decisione di utilizzare una libreria specifica per piattaforma basata su Windows invece di una basata su * nix dipende quasi sicuramente dalle ipotesi secondo cui la maggior parte degli studenti utilizza Windows non * nix e che più utenti di Windows avrebbero difficoltà a iniziare con * nix che viceversa.
Dan Neely,

5
@gaidal: le regole ci sono per una ragione. Se inizi a lavorare da qualche parte e decidi che invece di una libreria proprietaria utilizzerai lo standard perché "gli standard sono lì per una ragione", ti ritroverai disoccupato molto rapidamente. Segui questo corso come esercizio di conformità agli standard di codifica. Non ti piaceranno sempre quelli.
Littleadv,
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.