hnordt.dev

ūüáßūüá∑ Negligenciei a Ci√™ncia da Computa√ß√£o

March 05, 2019

Photo by Isaac Smith on Unsplash

Sempre acreditei que estudar da Ciência da Computação na faculdade é uma grande perda de tempo e dinheiro. Principalmente porque considero que cada pessoa aprende em diferentes velocidades e através de métodos variados. Tentar ensinar genericamente, ignorando o talento e individualidade de cada um, não me parece algo muito sensato.

Meu principal erro foi acreditar que os conceitos de Ci√™ncia da Computa√ß√£o ensinados na faculdade tamb√©m eram in√ļteis.

Desenvolvo software h√° 11 anos. Nunca estudei Ci√™ncia da Computa√ß√£o formalmente, mas acabei aprendendo indiretamente atrav√©s da leitura de documenta√ß√Ķes e livros. Aprendi linguagens como PHP, Ruby, Python, e JavaScript, como tamb√©m frameworks e bibliotecas como CodeIgniter, Laravel, Ruby on Rails, jQuery, Backbone.js, Angular, React, React Native e Redux.

Trabalho como freelancer, e mesmo sem conhecimento formal da teoria, consigo entregar bons resultados e sou remunerado de forma justa. Sempre busco melhorar a qualidade do meu código, e nessa busca acabei me apaixonando por programação funcional.

Quando comecei estudar programa√ß√£o funcional, me deparei com v√°rios conceitos que s√£o ‚Äútriviais‚ÄĚ para quem fez faculdade (ou pelo menos que estudou Ci√™ncia da Computa√ß√£o por conta pr√≥pria). Sempre ignorei esses conceitos, porque acreditava que eram puramente acad√™micos e n√£o tinham uso pr√°tico.

Depois de 11 anos adquiri maturidade para entender que coisas como sistemas de numera√ß√£o, estruturas alg√©bricas, complexidade de tempo, e algoritmos, s√£o vitais se voc√™ quiser ser mais que um digitador de c√≥digos. √Č necess√°rio conhecer esses conceitos para produzir resultados e/ou ganhar dinheiro? N√£o necessariamente. Tem muita gente ganhando dinheiro e entregando resultados sem dominar Ci√™ncia da Computa√ß√£o em geral. Sou prova disso.

Similarmente, voc√™ n√£o precisa aprender como o motor de um carro funciona para dirigi-lo. Por√©m, se voc√™ aprender, ser√° capaz de aproveitar seu carro com m√°xima efici√™ncia. Por exemplo, voc√™ poderia gastar menos combust√≠vel e talvez aumentar a vida √ļtil do carro. Se dirigir √© apenas algo que voc√™ faz por divers√£o, estudar algo como o funcionamento do motor pode ser considerado perda de tempo, por√©m se for sua profiss√£o, no longo prazo os benef√≠cios ser√£o sentidos, sem d√ļvidas.

Pra deixar de ser um motorista e se tornar um engenheiro, você precisa aprender a teoria.

Aprender teoria √© √ļtil pra todo mundo? Certamente n√£o. Depende do seu objetivo. Se voc√™ quiser desenvolver sistemas eficientemente e produzir c√≥digo de alta qualidade, aprender teoria √© essencial.

Nos próximos meses, vou aprender Ciência da Computação por conta própria. Pretendo escrever alguns posts para compartilhar o conhecimento adquirido e talvez ajudar outras pessoas.


Heliton Nordt

Personal blog by Heliton Nordt.
React, Redux, Statecharts, and Computer Science.