↓ Ir para o conteúdo principal

← todas as notas

📎 Webclip

What computer science concepts should devs without a CS background prioritize learning?

The discussion centers on a few CS topics that commenters think matter most for developers without a formal CS background. The strongest recommendations are data structures, algorithms, Big O notation, and lambda calculus. Several comments also broaden the list with databases, concurrency, clean code, and engineering skills for code that runs reliably on other machines.

Fichamento
#

  • O ponto de partida sugerido é aprender estruturas de dados, algoritmos e lambda calculus, porque esses temas ajudam a escolher modelos de dados, avaliar custo de soluções e pensar em entradas, saídas e composição.
  • As estruturas de dados aparecem como base para representar dados num programa e para comparar vantagens e desvantagens em leitura, escrita e uso de memória.
  • Os algoritmos são tratados como o lugar onde entram complexidade, escolha de abordagem e a diferença entre problemas tratáveis e problemas que não cabem em tempo razoável.
  • Big O notation é citada várias vezes como algo que ajuda a entender quando um algoritmo fica caro e o que isso significa em escala.
  • Lambda calculus é descrito como um modelo simples de computação que melhora leitura e escrita de código e ajuda a pensar de forma funcional.
  • Alguns comentários ampliam o foco para matemática útil, como cálculo, álgebra linear, teoria dos números, probabilidade e estatística, além de networking e cryptography.
  • Há quem destaque databases como conhecimento central para web developers, incluindo design de banco, SQL, ACID, transações e a diferença entre SQL e no-SQL.
  • Um comentário defende clean code como habilidade que facilita corrigir performance e bugs depois.
  • Outro comentário chama atenção para concurrency e para estruturar sistemas com menos estado compartilhado.
  • Também aparece a ideia de que self-taught devs muitas vezes conhecem técnicas isoladas, mas faltam skills de software engineering, como fazer o código rodar fora da própria máquina e em ambientes diferentes.