Re:If I were to invent a programming language for the 21st c...
by reificator on Saturday November 17, 2018 @04:51PM
(#18477560)
I'm going to take it one further. All of those are good but I think there are some "easier" and more fundamental things that are massive roadblocks for beginning programmers.
- Understanding the problem itself
- Determining how to actually solve that problem
- Expressing all the details of the solution you've chosen.
- Determining what has gone wrong and why
- Knowing when to step back and try another approach
- Reasoning about what the program should do in edge cases (e.g. if one write succeeds but the other fails)
- Designing data structures to represent complex information (e.g. deciding how to annotate an AST with type information)
- Determining if some functionality of a method is ever used
- Avoiding leaking data, even through side channels (like timing attacks)
- Making an interface that is hard to misuse
- Understanding how to use a poorly designed interface
- Understanding the performance implications of different designs