Com treure el màxim profit d'una formació en informàtica

La majoria dels programadors moderns van rebre la seva educació a les universitats. Amb el temps, això canviarà, però ara les coses són tals que el bon personal de les empreses de TI encara prové de les universitats. En aquesta publicació, Stanislav Protasov, director de Relacions Universitàries d'Acronis, parla de la seva visió de les característiques de la formació universitària per als futurs programadors. Els professors, els estudiants i els que els contracten fins i tot poden trobar alguns consells útils sota el tall.

Com treure el màxim profit d'una formació en informàtica

Durant els últims 10 anys he estat ensenyant matemàtiques, algorismes, llenguatges de programació i aprenentatge automàtic a diverses universitats. Avui, a més del meu càrrec a Acronis, també sóc el cap adjunt del departament d'informàtica teòrica i aplicada del MIPT. A partir de la meva experiència treballant en bones universitats russes (i no només) vaig fer algunes observacions sobre la preparació dels estudiants en disciplines d'informàtica.

La regla dels 30 segons ja no funciona

Estic segur que us heu trobat amb la regla dels 30 segons, que estableix que un programador ha d'entendre el propòsit d'una funció després d'una mirada ràpida al seu codi. Es va inventar fa molt de temps, i des de llavors han aparegut molts sistemes operatius, llenguatges, maquinari i algorismes. He estat escrivint codi durant 12 anys, però fa relativament poc vaig veure el codi font d'un producte, que a primera vista em va semblar encanteris màgics. Avui, si no esteu immersos en l'àrea temàtica, la regla dels 30 segons deixa de funcionar. En cas contrari, no només 30, sinó també 300 segons no seran suficients perquè esbrineu què és què.

Per exemple, si voleu escriure controladors, haureu de submergir-vos en aquesta àrea i llegir milers de línies de codi específic. Amb aquest enfocament per estudiar una assignatura, un especialista desenvolupa una "sensació de flux". Com en el rap, quan apareix la sensació d'una bona rima i el ritme correcte sense una racionalització especial. De la mateixa manera, un programador ben entrenat pot reconèixer fàcilment un codi ineficaç o simplement dolent sense entrar en un estudi detallat d'on s'ha produït una violació d'estil o s'ha utilitzat un enfocament subòptim (però aquesta sensació pot ser molt difícil d'explicar).

L'especialització i la creixent complexitat porten al fet que la formació de grau ja no ofereix l'oportunitat d'estudiar totes les àrees amb prou profunditat. Però és precisament en aquest nivell d'educació on cal adquirir una visió. Després, a l'escola de postgrau o a la feina, hauràs de dedicar una estona a submergir-te en els problemes i especificitats de l'àrea temàtica, estudiant argot, llenguatges de programació i codi de companys, llegint articles i llibres. Em sembla que aquesta és l'única manera, amb l'ajuda de la universitat, de "bombar el travesser" per al futur. Especialistes en forma de T.

Quin llenguatge de programació és millor ensenyar a la universitat?

Com treure el màxim profit d'una formació en informàtica
Per a la meva alegria, els professors universitaris ja han deixat de buscar la resposta correcta a la pregunta: "Quin és el millor llenguatge per programar?" El debat sobre què és millor -C# o Java, Delphi o C++- pràcticament ha desaparegut. L'aparició de molts nous llenguatges de programació i l'acumulació d'experiència pedagògica han donat lloc a una comprensió establerta en l'entorn acadèmic: cada llenguatge té el seu nínxol.

El problema de l'ensenyament amb un o altre llenguatge de programació ha deixat de ser una prioritat. No importa en quin idioma s'imparteix el curs. El més important és l'expressivitat suficient de la llengua. Llibre "L'art de la programació multiprocessador” és una bona il·lustració d'aquesta observació. En aquesta edició ja clàssica, tots els exemples es presenten en Java, un llenguatge sense punters, però amb Garbage Collector. Gairebé ningú podria argumentar que Java està lluny de ser l'opció òptima per escriure codi paral·lel d'alt rendiment. Però el llenguatge era adequat per explicar els conceptes presentats al llibre. Un altre exemple - curs clàssic d'aprenentatge automàtic Andrew Nna, impartit a Matlab a l'entorn Octave. Avui podeu triar un llenguatge de programació diferent, però quina diferència hi ha realment si les idees i els enfocaments són importants?

Més pràctic i més proper a la realitat

Al mateix temps, en els darrers anys hi ha hagut molts més professionals a les universitats. Si els programes universitaris russos anteriors eren criticats activament per estar divorciats de la realitat, avui no es pot dir el mateix de l'educació informàtica. Fa 10 anys gairebé no hi havia professors a les universitats amb experiència real en el sector. Avui en dia, cada cop més sovint, les classes en un departament especialitzat no són impartides per professors d'informàtica a temps complet, sinó per especialistes informàtics en exercici que només imparteixen 1-2 cursos en el seu temps lliure de la seva feina principal. Aquest plantejament es justifica des del punt de vista de la formació del personal de gran qualitat, l'actualització dels cursos i, per descomptat, la recerca de potencials empleats a l'empresa. No crec que desvetllaré el secret dient que donem suport a un departament bàsic al MIPT i establim relacions amb altres universitats, fins i tot per tal de preparar estudiants que puguin començar la seva carrera a Acronis.

Matemàtic o programador?

Com treure el màxim profit d'una formació en informàtica
Les guerres santes, que abans giraven al voltant dels llenguatges de programació, han anat cap a una direcció filosòfica. Ara els anomenats "programadors" i "matemàtics" estan discutint entre ells. En principi, aquestes escoles es podrien separar en dos programes educatius, però la indústria encara és pobre a l'hora de separar aquestes subtileses, i d'universitat a universitat tenim una educació similar amb un enfocament lleugerament diferent. Això vol dir que tant l'estudiant com l'empresa en la qual continuarà treballant hauran de complementar el trencaclosques del coneixement amb les peces que falten.

L'aparició de professionals a les universitats que escriuen codi industrial en diferents idiomes ofereix als estudiants millors habilitats de desenvolupament. Estar ben familiaritzat amb les implementacions de biblioteques estàndard, marcs i tècniques de programació, els programadors practicants inculquen als estudiants el desig d'escriure un bon codi, de fer-ho de manera ràpida i eficient.

Aquesta habilitat útil, però, de vegades porta a l'aparició d'aquells a qui els agrada reinventar la roda. Els estudiants de programació pensen així: "Hauria d'escriure 200 línies més de bon codi que resolguin el problema directament?"

Els professors que han rebut una formació matemàtica clàssica (per exemple, de la Facultat de Matemàtiques o Matemàtiques Aplicades) treballen sovint en un entorn pseudocientífic, o en l'àmbit de la modelització i l'anàlisi de dades. Els "matemàtics" veuen els problemes en l'àmbit de la informàtica de manera diferent. Funcionen principalment no amb codi, sinó amb algorismes, teoremes i models formals. Un avantatge important de l'enfocament matemàtic és una clara comprensió fonamental del que es pot i no es pot resoldre. I com solucionar-ho.

En conseqüència, els professors de matemàtiques parlen de programació amb un biaix cap a la teoria. Els estudiants que provenen de "formacions matemàtiques" són més propensos a trobar solucions ben pensades i teòricament superiors, però normalment subòptimes des del punt de vista lingüístic i sovint simplement escrites de forma descuidada. Aquest estudiant creu que el seu objectiu principal és demostrar la capacitat de resoldre aquests problemes en principi. Però la implementació pot ser coixa.

Els nens que es van criar com a programadors a l'escola o en els seus primers anys porten amb ells una “bicicleta molt bonica”, que, però, normalment no funciona de manera molt eficient i asimptòtica. Al contrari, no es plantegen la tasca de teoritzar profundament i recórrer als llibres de text a la recerca de solucions òptimes, preferint un codi bonic.

A diferents universitats, durant les entrevistes als estudiants, acostumo a veure quina “escola” és la base de la seva formació. I gairebé mai no he trobat un equilibri perfecte en l'educació bàsica. De petit, a la meva ciutat et podies preparar per a les olimpíades de matemàtiques, però no hi havia clubs de programació. Ara, als clubs, els nens aprenen a programar en Go i Python “de moda”. Per tant, fins i tot a nivell d'admissió a les universitats, hi ha diferències en els plantejaments. Crec que és important mantenir ambdues competències a la universitat, en cas contrari vindrà a treballar a l'empresa un especialista amb una base teòrica insuficient, o una persona que no ha après i no vol escriure un bon codi.

Com "bombar el travesser" per al futur Especialistes en forma de T?

Com treure el màxim profit d'una formació en informàtica
És evident que en aquestes condicions l'alumne simplement tria allò que més li agrada. El professor, simplement, transmet el punt de vista més proper a ell. Però tothom es beneficiarà si el codi està ben escrit i, des del punt de vista dels algorismes, tot és clar, raonable i efectiu.

  • horitzons informàtics. Un graduat d'un grau en Informàtica és un especialista ja fet amb una visió tècnica desenvolupada, que probablement ha escollit el seu perfil. Però al primer any, no sabem què farà. Pot dedicar-se a la ciència o l'anàlisi, o, per contra, pot escriure una gran quantitat de codi cada dia. Per tant, cal mostrar a l'estudiant tots els aspectes del treball en l'àmbit de la informàtica i conèixer totes les eines. L'ideal és que els professors dels cursos teòrics mostrin una connexió amb la pràctica (i viceversa).
  • Punt de creixement. És en interès del propi estudiant no deixar-se anar a l'extrem. Entendre si sou un "matemàtic" o un "programador" no és difícil. N'hi ha prou amb escoltar el primer impuls a l'hora de resoldre un problema: què voleu fer: mirar el llibre de text a la recerca de l'enfocament òptim o escriure un parell de funcions que definitivament seran útils més endavant? A partir d'això, podeu construir una trajectòria complementària més del vostre aprenentatge.
  • Fonts alternatives de coneixement. Passa que el programa està ben equilibrat, però "Programació del sistema" i "Algoritmes" són impartits per persones completament diferents, i alguns estudiants estan més a prop del primer professor i d'altres, del segon. Però encara que no t'agradi el professor, això no és un motiu per descuidar algunes assignatures en favor d'altres. Els mateixos batxillerats estan interessats a trobar la voluntat de treballar amb fonts de coneixement i en cap cas confien en opinions radicals com "les matemàtiques són la reina de les ciències, el més important és conèixer els algorismes" o "un bon codi compensa tota la resta".

Pots aprofundir en els teus coneixements teòrics recorrent a la literatura especialitzada i a cursos en línia. Pots millorar les teves habilitats en llenguatges de programació a Coursera, Udacity o Stepik, on es presenten molts cursos diferents. A més, els estudiants sovint comencen a veure cursos d'idiomes intensos si creuen que el professor d'algorismes coneix bé les matemàtiques, però no pot respondre preguntes complexes d'implementació. No tothom estarà d'acord amb mi, però a la meva pràctica s'ha demostrat bé especialització en C++ de Yandex, en què s'analitzen seqüencialment trets cada cop més complexos de la llengua. En general, trieu un curs amb valoracions altes d'empreses o universitats de renom.

Competències suaus

Com treure el màxim profit d'una formació en informàtica
Venint de la universitat a treballar en qualsevol empresa, des d'una startup fins a una gran corporació, els estudiants fins i tot de les millors universitats es troben mal adaptats a l'entorn laboral real. El fet és que avui les universitats "cuiden" molt els estudiants. Fins i tot després d'haver perdut moltes classes, de no preparar-se per a les proves i proves a temps, d'haver dormit massa o d'arribar tard a un examen, tothom pot aprovar-lo i tornar-lo a repetir, i al final encara reben un diploma.

Tanmateix, avui dia hi ha totes les condicions perquè els estudiants estiguin preparats per a la vida adulta i l'activitat professional independent. No només hauran de programar, sinó també comunicar-se. I això també s'ha d'ensenyar. Les universitats tenen diferents formats per desenvolupar aquestes competències, però, per desgràcia, sovint no se'ls presta prou atenció. Tanmateix, tenim moltes oportunitats per adquirir habilitats efectives de treball en equip.

  • Comunicació empresarial escrita. Malauradament, la majoria dels graduats que abandonen la universitat no tenen ni idea de l'etiqueta de la correspondència. L'especificitat de la comunicació en missatgeria instantània està en l'intercanvi de missatges nit i dia i l'ús d'estil conversacional i vocabulari informal. Tanmateix, seria possible entrenar la parla escrita quan l'estudiant es comuniqui amb el departament i la universitat.

    A la pràctica, els directius sovint s'enfronten a la necessitat de descompondre un gran projecte en petites tasques. Per fer-ho, heu de descriure clarament cada tasca i els seus components perquè els desenvolupadors júniors entenguin què se'ls requereix. Una tasca mal definida sovint comporta la necessitat de refer alguna cosa, per això l'experiència en comunicació escrita ajuda els graduats a treballar en equips distribuïts.

  • Presentació escrita dels resultats del vostre treball. Per presentar els seus projectes educatius, els estudiants grans poden escriure publicacions a Habr, articles científics i també només informes. Hi ha moltes oportunitats per a això: el treball del curs comença el segon any en algunes universitats. També podeu utilitzar els assaigs com a forma de control: normalment s'acosten més a un article periodístic. Aquest enfocament ja s'ha implementat a la National Research University Higher School of Economics.

    Si una empresa practica un enfocament flexible del desenvolupament, ha de presentar els resultats del seu treball en porcions més petites, però amb més freqüència. Per fer-ho, és important poder transmetre breument els resultats del treball d'un especialista o de tot l'equip. A més, moltes empreses avui fan "revisions": anuals o semestrals. Els empleats discuteixen els resultats i les perspectives laborals. La revisió amb èxit és el motiu principal del creixement de la carrera, les bonificacions, per exemple, a Microsoft, Acronis o Yandex. Sí, podeu programar bé, però "assegut a la cantonada" fins i tot un especialista genial sempre perdrà davant algú que sàpiga presentar bé el seu èxit.

  • Redacció acadèmica. Menció especial mereix la redacció acadèmica. És útil que l'alumnat es familiaritzi amb les normes d'escriptura de textos científics, utilitzant arguments, cercant informació en diverses fonts i formatant referències a aquestes fonts. És aconsellable fer-ho en anglès, ja que hi ha molts més bons textos a la comunitat acadèmica internacional, i per a diverses disciplines ja hi ha plantilles establertes per presentar resultats científics. Per descomptat, també es necessiten habilitats acadèmiques d'escriptura a l'hora de preparar publicacions en rus, però hi ha molts menys exemples de bons articles moderns en anglès. Aquestes habilitats es poden adquirir mitjançant un curs adequat, que ara s'inclou en molts programes educatius.
  • Dirigir reunions. La majoria dels estudiants no saben com preparar-se per a les reunions, prendre actes i processar dades. Però si desenvolupem aquesta habilitat a la universitat, per exemple, participant en projectes en equip, podem evitar perdre el temps en el lloc de treball. Això requereix la supervisió del treball del projecte dels estudiants per ensenyar-los a dur a terme reunions de manera eficaç. A la pràctica, això costa molts diners a cada corporació; al cap i a la fi, si diverses persones que reben un gran sou dediquen una hora de treball en un míting, voleu que hi hagi un rendiment corresponent.
  • Parlar en públic. Molts estudiants s'enfronten a la necessitat de parlar en públic només mentre defensen la seva tesi. I no tothom està preparat per a això. He vist molts estudiants que:
    • posar-se d'esquena al públic,
    • balancejant-se, intentant introduir la comissió al trànsit,
    • trencar bolígrafs, llapis i punters,
    • caminant en cercles
    • mira el terra.

    Això és normal quan una persona actua per primera vegada. Però has de començar a treballar amb aquest estrès abans, defensant el teu treball en un ambient agradable, entre els teus companys.

    A més, la pràctica estàndard a les corporacions és donar a un empleat l'oportunitat de proposar una idea i rebre finançament, una posició o un projecte dedicat. Però, si hi penseu bé, aquesta és la mateixa protecció dels cursos, només a un nivell superior. Per què no practicar habilitats professionals tan útils mentre estudies?

Què em vaig perdre?

Un dels motius per escriure aquesta entrada va ser l'article, publicat al lloc web de la Universitat Estatal de Tyumen. L'autor de l'article se centra només en les deficiències dels estudiants russos observades pels professors estrangers. La pràctica de la meva docència a diferents universitats suggereix que l'escola russa i l'educació superior ofereixen una bona base. Els estudiants russos són experts en matemàtiques i algorismes, i és més fàcil establir una comunicació professional amb ells.

En el cas dels estudiants estrangers, per contra, les expectatives d'un professor rus de vegades poden ser massa altes. Per exemple, a nivell de formació bàsica en matèria de matemàtiques, els alumnes indis que vaig conèixer són semblants als russos. Tanmateix, de vegades no tenen coneixements especialitzats quan es graduen dels seus estudis de grau. És probable que els bons estudiants europeus tinguin una formació en matemàtiques menys sòlida a nivell escolar.

I si estudies o treballes a una universitat, ara pots treballar les habilitats comunicatives (propies o les dels teus estudiants), ampliar la teva base fonamental i practicar la programació. Amb aquest propòsit, el sistema educatiu rus ofereix totes les oportunitats: només cal que les feu servir correctament.

M'alegrarà que en els comentaris de la publicació compartiu els vostres enllaços a cursos i mètodes que ajudin a igualar l'equilibri en l'educació, així com altres maneres de millorar les habilitats interdisciplinàries mentre estudieu a la universitat.

Font: www.habr.com

Afegeix comentari