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

Reading notes
#

  • The suggested starting point is to learn data structures, algorithms, and lambda calculus, because these topics help choose data models, evaluate solution costs, and think about inputs, outputs, and composition.
  • Data structures appear as the basis for representing data in a program and for comparing advantages and disadvantages in reading, writing, and memory usage.
  • Algorithms are treated as the place where complexity, approach choice, and the difference between tractable problems and problems that do not fit in reasonable time come in.
  • Big O notation is mentioned several times as something that helps understand when an algorithm becomes expensive and what that means at scale.
  • Lambda calculus is described as a simple model of computation that improves code reading and writing and helps with functional thinking.
  • Some comments broaden the focus to useful mathematics, such as calculus, linear algebra, number theory, probability, and statistics, as well as networking and cryptography.
  • Some highlight databases as central knowledge for web developers, including database design, SQL, ACID, transactions, and the difference between SQL and no-SQL.
  • One comment argues for clean code as a skill that makes it easier to fix performance and bugs later.
  • Another comment draws attention to concurrency and to structuring systems with less shared state.
  • There is also the idea that self-taught devs often know isolated techniques, but lack software engineering skills, such as making code run outside their own machine and in different environments.