3 ms·
I find the hardest things for new programmers to understand are variable scope, and execution order. One of the things I focus on when teaching is evaluating d
by nikisweeting 10y ago
I find the hardest things for new programmers to understand are variable scope, and execution order.
One of the things I focus on when teaching is evaluating different example code snippets manually, as a "human computer" to double check that their mental model of the interpreter/compiler is correct. Understanding why a variable is shared with a child scope, but not necessarily with a parent in different circumstances is not intuitive, and takes some practice even for intermediate-level programmers.
Here's an example:
Code snippet:
int result = addNumbers(1, 3)
int final_result = addNumbers(result, addNumbers(4, 5))
To evaluate it, these are the steps the computer takes:
1. int result = addNumbers(1, 3)
2. int result = 4
3. int final_result = addNumbers(result, addNumbers(4, 5))
4. int final_result = addNumbers(4, addNumbers(4, 5))
5. int final_result = addNumbers(4, 9)
6. int final_result = 13