4 ms·
For some, reading a body of source code without any guidence about what path to walk or where to focus your attention is really quite a hard way to learn.
by afarrell 8y ago
For some, reading a body of source code without any guidence about what path to walk or where to focus your attention is really quite a hard way to learn.
- fgonzag 8y agoIt is an essential skill for our job though, being able to dive into a new code base, form a mental model of it, and modify it either because of new feature requirements or simply bug fixing. And it is a skill, I also had a lot of trouble with it initially, but diving into several open source projects was the perfect way to practice it, and it helped me tremendously in my professional development.
- rnnr 8y agoAgreed. A good tip for this is to try to find the earliest version/commit of the project you are interested into.
- PretzelFisch 8y agoReading the source doesn't tell you why they chose that route or what the tradeoffs are.
- ldng 8y agoWell, depends on the quality of the documentation I guess.
- dokem 8y agoMost code bases are business logic and not nearly as complex or formal as a db. DBs, OSs and compilers are systems that should be studied to be effective in the code.
- notafrog 8y agoI agree with you, in that it's an essential skill for our job. However, from my experience at least, I've found that going head first into the source code of something you don't really understand how it works, is not the best course of action. For example, I would make sure to read about B+ trees first, before reading the implementation of indexes in SQLite or PostgreSQL.
- afarrell 8y agoThe thing about it that I find hard is knowing how to judge the important bits to read and knowing where to direct my attention as I read. Any tips on learning that? I find that without knowing where to direct my attention, it is really hard to avoid getting distracted.
- tluyben2 8y agoSQLite is quite easy to read; MySQL on the other hand I find very annoying. I used to run a very large (millions of accounts) shared hosting service for which I did a lot of MySQL customizing to remove limitations or remove features that would compromise our systems if abused etc and it was a nightmare to work with that codebase. I had to and learned a lot, but I would not do that again if possible.