Diving into Other People's Code
lihaoyi.com
lihaoyi.com
Problem is, every (build/config/packaging) tool brought in to 'solve' this problem only adds another point of failure and confusion.
http://davidvgalbraith.com/how-i-fixed-atom/
HN discussion:
One of the mistakes I see more junior programmers make is underestimating how much time they need to understand a piece of code. They rush through it, neglecting to build a solid base for their understanding.
On the opposite side, RMS's timeless advice about debugging is very important: don't debug code that isn't broken. You need to narrow your scope or you will be reading code forever. One of the best points about this article is pointing out that you need to have a well defined goal when you are reading the code. You should then restrict yourself to understanding the code around that goal, ignoring the rest.
This seems like a great example of how to build that mental model, from strategy to 'in the weeds' step by step instructions.
(The most important skill is building a mental model of the workings of reality.)
Sorry, that's just too funny. It has a "in order to make an apple pie from scratch, you must first create the universe" kind of attitude. It kind of makes sense, computer science is just applied physics and logic.
That's why I started building Coati, an interactive source explorer for C/C++. Coati allows you to see the relationships of classes and functions and thereby makes it easier to get an overview of your codebase. This makes the familiarization step of the process much easier.
It's worth noting that this experience in a dynamically typed language like Python or Javascript can be a lot more pronounced than a strongly typed language.
This must have been a ton of work to put together. Thank you for this!
Actually, I guess I can still use this. Perhaps I might tell our GSoC students about it.
http://randomtechnicalstuff.blogspot.com.au/2016/03/tips-for...