10 razões para questionar se uma faculdade em Ciência da Computação é o que você precisa

10 razões para questionar se uma faculdade em Ciência da Computação é o que você precisa

Con­sidere as palavras: com­puta­dor e ciên­cia. O primeiro con­ceito é imen­so e abrange des­de a onipresença vitalí­cia dos reg­istros médi­cos eletrôni­cos até a opor­tu­nidade de par­tic­i­par de uma briga de bar vir­tu­al a qual­quer hora do dia no Twit­ter. A segun­da palavra, ciên­cia, rep­re­sen­ta um movi­men­to int­elec­tu­al que pro­duz­iu grandes avanços como a vaci­na con­tra a poliomielite, algu­mas via­gens à lua e muitas out­ras para lis­tar. Então, por que a com­bi­nação das duas palavras é tão cur­ta, espe­cial­mente quan­do procu­ramos for­mar nos­sas equipes de pro­gra­mação?

Não é que o cam­po não ten­ha sido entregue. Há petabytes de arquiv­os LaTeX por aí reple­tos de ideias bril­hantes, como novas lin­gua­gens de pro­gra­mação, algo­rit­mos de bus­ca inteligentes, algo­rit­mos de visão de máquina e uma infinidade de noções inter­mediárias. Muitos dess­es são mar­avil­hosos.

O prob­le­ma é que poucos real­mente pre­cisam de muito dis­so. Exis­tem casos, por exem­p­lo, onde a equipe de desen­volvi­men­to flo­rescer ao pas­sar por grad­u­a­dos em Ciên­cia da Com­putação e con­tratar ape­nas físi­cos, con­ta­dores ou algum out­ro tipo de pes­soa com con­hec­i­men­tos de matemáti­ca. Ess­es novos fun­cionários são mais práti­cos e foca­dos em entre­gar as máquinas, o que é prati­ca­mente o que quase todas as empre­sas querem faz­er.

Não é que as grad­u­ações de ciên­cia da com­putação sejam ruins; é só que elas não vão falar dos prob­le­mas que a maio­r­ia dos profis­sion­ais pre­cisa resolver. Então, aqui está uma lista do porquê seria mel­hor ignorá-las:

Teoria distrai e confunde

Muitos cien­tis­tas da com­putação são matemáti­cos e a men­tal­i­dade obceca­da por teo­re­mas per­me­ia a dis­ci­plina. As provas matemáti­cas são ape­nas pro­gra­mas e vice-ver­sa, pelo menos em sua mente. O teóri­co não está real­mente inter­es­sa­do em entre­gar códi­go que faz o tra­bal­ho, tan­to quan­to provar que seu códi­go está cor­re­to.

É raro que um aluno de grad­u­ação se forme sem obter uma boa dose de máquinas NP-com­ple­tude e Tur­ing, duas belas áreas da teo­ria que seri­am agradáveis se não cri­assem maus instin­tos. Um biól­o­go pediu para um espe­cial­ista resolver um prob­le­ma na cor­re­spondên­cia de sequên­cias de DNA e ele voltou com a ale­gação de que era NP-com­ple­to, uma classe de prob­le­mas que pode levar muito tem­po para ser resolvi­da. Ele não se impor­tou. Ele pre­cisa­va resolvê-lo de qual­quer maneira. E acon­tece que a maio­r­ia dos prob­le­mas NP-com­ple­tos é muito fácil de resolver. Exis­tem ape­nas alguns exem­p­los patológi­cos que atra­pal­ham nos­sos algo­rit­mos. Mas os teóri­cos estão obceca­dos com o con­jun­to que con­funde os algo­rit­mos sim­ples, ape­sar de rara­mente serem obser­va­dos na vida cotid­i­ana.

O mes­mo prob­le­ma acon­tece com as máquinas de Tur­ing. Alunos de com­putação grá­fi­ca com­pe­tentes apren­dem resul­ta­dos niilis­tas como o Teo­re­ma de Rice, que mostra que real­mente não podemos anal­is­ar algo­rit­mos de com­puta­dor. Mas as máquinas de Tur­ing são um mod­e­lo muito ruim para o fun­ciona­men­to de nos­sas máquinas comuns, e geral­mente é muito fácil cri­ar soft­wares que façam coisas inteligentes com nos­so códi­go. Qual­quer grad­u­ação em Ciên­cia da Com­putação que não tome ess­es resul­ta­dos teóri­cos com uma boa dose de sal arrisca desi­s­tir quan­do uma respos­ta per­feita­mente uti­lizáv­el está à mão.

Idiomas acadêmicos são raramente usados

Não é sur­preen­dente que a acad­e­mia crie esno­bis­mo e amor por soluções arcanas. Isso acon­tece em todos os cam­pos. Há muitas grandes ideias por aí, daque­las obcecadas por idiomas, mas às vezes essas ideias acabam crian­do bagunça e con­fusão. Se um mem­bro da equipe ado­ra algum recur­so estran­ho e começa a incluí-lo na base de códi­go, todo mun­do vai ter que apren­der. Se todos fiz­erem o mes­mo, a hora de se atu­alizar tor­na-se muito mais difí­cil.

É por isso que o Google escol­heu um cam­in­ho mais fácil quan­do con­stru­iu o Go. Os cri­adores insi­s­ti­ram que a lin­guagem dev­e­ria ter pou­cas con­struções e ser sim­ples de apren­der no menor tem­po pos­sív­el. Essa sim­pli­ci­dade aju­dou a todos porque todos con­heci­am muito bem esse núcleo.

Muitos professores são matemáticos, não programadores

Um dos seg­re­dos sobre a maio­r­ia dos depar­ta­men­tos de ciên­cia da com­putação é que a maio­r­ia dos pro­fes­sores não pro­gra­mam com­puta­dores. Seu tra­bal­ho real é dar palestras e sub­venções. A últi­ma vez que muitos deles real­mente pro­gra­ma­ram um com­puta­dor foi quan­do eles próprios estavam na pós-grad­u­ação.

Muitos assuntos requeridos são raramente usados

Estru­turas de dados são fre­quente­mente o tópi­co prin­ci­pal para o cur­so que os alunos estu­dam em ciên­cia da com­putação. É muito ruim que poucos usem muitas estru­turas de dados. Eles colo­cam as coisas em tabelas de hash de obje­tos ou em um ban­co de dados que faz o pen­sa­men­to. Ain­da é muito útil para todos pen­sarem um pouco sobre a com­plex­i­dade algo­rít­mi­ca, mas muito poucos pre­cisam se pre­ocu­par com árvores B ou mes­mo com lis­tas vin­cu­ladas. Não ape­nas isso, mas muitos já perce­ber­am que é mel­hor con­fi­ar em uma bib­liote­ca padrão do que se envolver com estru­turas de dados.

Há muitos out­ros exem­p­los de assun­tos no cur­rícu­lo clás­si­co que não são mais tão impor­tantes. Os com­pi­ladores são com­plex­os e essen­ci­ais, mas as úni­cas pes­soas que os escrevem são os alunos que são obri­ga­dos a cri­ar ver­sões de brin­que­dos em um cur­so de um semes­tre. Até mes­mo a Apple usou fer­ra­men­tas de códi­go aber­to quan­do criou o com­pi­lador para o Swift.

Modelos matemáticos levam ao caminho errado

Qual­quer um que ten­ha apren­di­do a teo­ria do ban­co de dados desco­briu a inteligên­cia da For­ma Nor­mal de Boyce – Codd, a maneira como se divide uma elab­o­ra­da estru­tu­ra de dados em peque­nas tabelas. É tudo muito ele­gante e efi­ciente — até alguém ter que esper­ar para sem­pre uma respos­ta à sua con­sul­ta SQL preenchi­da com coman­dos JOIN.

A maio­r­ia das equipes de desen­volve­dores aprende rap­i­da­mente a “desnor­malizar” seus ban­cos de dados para mel­ho­rar o desem­pen­ho. Em out­ras palavras, eles elim­i­nam toda a esperteza e colam os dados em uma enorme mesa. É meio feio e um des­perdí­cio, mas geral­mente é muito rápi­do.

Uma vez que eles começam a colo­car sua edu­cação em práti­ca, muitos desen­volve­dores gas­tam alguns anos desapren­den­do toda a inteligên­cia matemáti­ca de seus cur­sos de ciên­cias da com­putação.

Instituições criam arrogância

Todos pen­samos que esta­mos cer­tos, mas a própria natureza dos diplo­mas acadêmi­cos é pro­je­ta­da para dar aos for­man­dos a capaci­dade de argu­men­tar a supe­ri­or­i­dade com autori­dade. Isso pode ser ver­dade às vezes, mas mes­mo nos mel­hores dias, é difí­cil saber o que é real­mente cer­to, espe­cial­mente em um cam­po em movi­men­to rápi­do.

Muitas habilidades modernas são ignoradas

Muitas das habil­i­dades mod­er­nas não são abor­dadas em muitos depar­ta­men­tos. Quem quis­er enten­der o Node.js, o React, o design do jogo ou o cloud com­put­ing, encon­trará muito pouco no cur­rícu­lo médio. Uma lista de cur­sos de esco­las medi­anas con­cen­tra-se nos fun­da­men­tos — isto é, con­ceitos pro­fun­dos que farão parte da com­putação bem depois que palavras como Node.js ou React são esque­ci­das. Esse é um obje­ti­vo nobre, mas 99% do que a maio­r­ia dos pro­gra­madores faz é lidar com as tec­nolo­gias atu­ais.

É muito comum que os depar­ta­men­tos de ciên­cia da com­putação pro­duzam pen­sadores pro­fun­dos que enten­dem alguns dos desafios fun­da­men­tais sem qual­quer con­hec­i­men­to super­fi­cial dos detal­h­es que dom­i­nam o dia dos fun­cionários comuns. É por isso que as empre­sas acham que vale a pena con­tratar alguém de um lab­o­ratório de físi­ca que acabou de usar o Python para desen­volver alguns flux­os de dados de um instru­men­to.

O acadêmico de ponta é longo

Apren­diza­do de máquina e inteligên­cia arti­fi­cial são a prin­ci­pal tendên­cia e muitos estão cor­ren­do para exper­i­men­tá-los. Mas eles foram estu­da­dos por décadas pelos depar­ta­men­tos de ciên­cia da com­putação. Faz sen­ti­do inves­ti­gar todas as ideias que emanam das esco­las hoje — ou esper­ar pacien­te­mente até que este­jam final­mente prontas para uso ger­al?

Posse pode gerar complacência

Há muitas razões mar­avil­hosas por trás da insti­tu­ição da posse e a maio­r­ia dos pro­fes­sores que des­fru­tam de suas pro­teções mere­cem todos os bene­fí­cios por suas con­tribuições des­de quan­do. O prob­le­ma é que, em cam­pos de rápi­do movi­men­to, os alunos de hoje têm pou­ca neces­si­dade de insights até de uma déca­da ou mais. No entan­to, a esta­bil­i­dade garante que muitos dos pro­fes­sores estarão lá dez, vinte ou até trin­ta anos depois dos dias em que tiver­am os maiores insights.

O intelectualismo raramente produz resultados

Não há muitos alunos que pos­sam jus­ti­ficar gas­tar cer­ca de meio mil­hão de dólares imag­i­nan­do se anjos poli­no­mi­ais ou expo­nen­ci­ais podem dançar na cabeça de um alfinete. A tradição das artes lib­erais é uma coisa mar­avil­hosa, mas enco­ra­ja um des­dém pelo con­hec­i­men­to práti­co. É tudo sobre algu­mas ver­dades pro­fun­das e eter­nas. Mas quan­do a empre­sa pre­cisa enviar algo na próx­i­ma sem­ana até o pra­zo final, ninguém tem tem­po para olhar para o umbi­go e imag­i­nar as ver­dades eter­nas.

Posts Similares