📎 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.