De ce recomand cursul online Harvard's CS50x fiecărui dezvoltator autodidact

introducerea CS50 în informatică este un curs online gratuit bazat pe unul dintre cele mai populare cursuri din campus de la Universitatea Harvard. În acest curs, puteți afla despre conceptele de bază ale informaticii, cum ar fi:

  • algoritmi-Căutare binară, sortare cu bule, sortare îmbinare etc.
  • structuri de date – liste legate, tabele hash etc.
  • Memory – stack și heap

limbile utilizate sunt C, Python, SQL, plus altele bazate pe ceea ce alegeți pentru piesa finală. Există o multitudine de cursuri gratuite CS disponibile online, dar acesta este cel mai plăcut și mai interesant pe care l-am găsit până acum.

am scris „autodidact dezvoltator” în titlu pentru că m-am gândit că cei cu nici o educație formală CS sunt mai puțin susceptibile de a fi avut o șansă de a fi expuse la aceste subiecte în profunzime. Dar, desigur, aș recomanda-o oricui este interesat de aceste subiecte.

aici sunt trei puncte pe care le iubesc despre acest curs, și două contra potențiale.

Pro

  1. filozofia lor
  2. prelegerile sunt o bucurie de urmărit
  3. sarcinile sunt creative

(potențial) contra

  1. poate să nu fie util pentru munca de zi cu zi
  2. nu veți vedea soluții implementate de personal pentru sarcini

Pro

1. Filozofia lor

acest curs este orientat către oameni de toate nivelurile de programare. Ei vă spun în prima săptămână:

ceea ce contează în cele din urmă în acest curs nu este atât de mult în cazul în care ajunge în raport cu colegii de clasă, dar în cazul în care ajunge în raport cu tine când ai început.

doar pentru referință, am 1 an de experiență profesională, deși nici unul în C sau Python. Unele dintre sarcinile au fost încă foarte greu pentru mine, și în valoare de o săptămână de cursuri mi-ar lua despre 10 ore pentru a finaliza, în funcție de materialul (ca un Ruby dev, chestii Python a fost mult mai intuitiv decât c!).

cursul face o treabă excelentă de a fi prietenos cu începătorii și provocator în același timp, deoarece prelegerile vă parcurg bine conținutul, dar sarcinile necesită să gândiți cu adevărat și să faceți mai multe cercetări. De asemenea, de multe ori vă oferă posibilitatea de a alege dintre două sarcini, în funcție de faptul dacă sunteți „mai confortabil” sau „mai puțin confortabil”.

2. Prelegerile sunt o bucurie de urmărit

pe lângă faptul că sunt informative, prelegerile profesorului David Malan sunt bine ritmate, animate și creative. Urmăriți oricare dintre ele și probabil că veți fi de acord (disponibil și pe Youtube).

3. Sarcinile sunt creative

mai degrabă decât sarcini plictisitoare precum „iterați peste această matrice în C”, veți implementa programe precum filtre foto, verificatoare ortografice, sisteme de vot și baze de date pentru studenți Hogwarts, folosind concepte pe care le-ați învățat pe parcurs.

un alt lucru care îmi place este sistemul lor de testare numit Check50, care vă oferă feedback instantaneu atunci când trimiteți codul. Este îmbucurător când veți obține în cele din urmă toate testele pentru a returna o față zâmbitoare verde 🙂

exemplu:

(potențial) contra

1. Este posibil să nu fie util pentru munca dvs. de zi cu zi

în bine sau în rău, acesta nu este un curs intensiv. Dacă doriți să învățați rapid un anumit subiect, cum ar fi React, de exemplu, există tutoriale mai bune online (digresiune completă, dar recomand foarte mult Scrimba pentru învățarea limbilor/cadrelor front-end, inclusiv React).

acestea fiind spuse, cred că învățarea acestor concepte de bază ale informaticii va fi benefică pentru orice dezvoltator într-un fel.
de exemplu, folosisem hashuri Ruby (dicționare) de mult timp și știam că găsirea unei valori dintr-un hash prin cheia sa era mult mai rapidă decât găsirea unei valori dintr-o matrice. Dar înainte de a lua acest curs, nu am înțeles cum au fost implementate hash-urile sub capotă. Învățarea despre tabelele hash și implementarea efectivă a unuia mi-a permis să înțeleg mai bine hashurile Ruby.

2. Nu veți vedea soluții implementate de personal pentru sarcini

după cum am menționat, atunci când trimiteți o sarcină online, codul dvs. este testat printr-un sistem numit Check50. Nu ajungi să vezi soluția pe care personalul a avut-o în minte sau să faci o comparație side-by-side cu a ta.

aceasta nu a fost întotdeauna o problemă și le înțeleg motivele, dar a existat o ocazie specială când mi-am dorit să pot vedea soluții implementate de personal: când scriam interogări SQL. Interogările mele au funcționat și au trecut testele Check50, dar nu a existat nicio modalitate de a spune dacă ar fi putut fi optimizate în continuare. Văzând răspunsurile implementate de personal ar fi ajutat acolo.

dacă acest curs vi se pare interesant, vă recomand să îl verificați pe edX. Și dacă vă decideți să-l ia, cel mai bun de noroc pentru tine.

sunt, de asemenea, încă înscriși, pe cale de a începe piesa iOS. Urează-mi noroc!

Update-2020-12-28

proiectul final mi-a luat ceva timp, dar am terminat cursul 🙂

Lasă un răspuns

Adresa ta de email nu va fi publicată.