3 ms·
Well, understanding what source code means and how it works is definitely a big part of it. Because for many people, they learn via looking at other people's wo
by CM30 8y ago
Well, understanding what source code means and how it works is definitely a big part of it. Because for many people, they learn via looking at other people's work, and where programming is concerned, that often feels overwhelming.
Which probably comes down to one thing really:
When you look at an existing codebase, you have no idea about the logic behind any of its design decisions. You think it's all a confusing mess or that a smarter person would 'just get it', without realising that most of the complexity comes down to:
1. Bug fixes that cropped up along the way. Usually extreme edge cases.
2. Code being refactored piece by piece, since throwing out the whole codebase and starting over is often not economically viable.
3. Backwards compatibility in general
4. Multiple people working on it, often without much of a style guide (or a non enforced one)
5. Or one or more people having no idea what they're doing, getting help from other people who have no idea what they're doing, and using code from donkeys years ago also by people who may or may not have known what they were doing that sort of fixes the issue if you hammer at it a bit.
There's often a huge jump between 'what the average tutorial teaches you' and the source for a major project/commercial product, and for some guy going from say, learning basic PHP to reading the Magento source code, it can just feel completely overwhelming.
Relatedly, the whole jump from 'intermediate' to 'expert' is probably one of the hardest parts too. As people said before, there are loads of tutorials for absolute beginners, a fair few for experts, and a lot less for people in between.