3 ms·
The most valuable habit I've developed IMO is reinventing the wheel. When you face a new challenge with new concepts you're unfamiliar with, the best way to get
by zabana 9y ago
The most valuable habit I've developed IMO is reinventing the wheel. When you face a new challenge with new concepts you're unfamiliar with, the best way to get a good grasp of the environment/tools/techniques is to rebuild it (them) from scratch. Example: I was spending a lot of time interacting with external REST API's (foursquare, twitter and other services) but never really understood the inner workings, so I just decided to build my own RESTful API for fun. It doesn't really help anybody but now I know what the request / response cycle is and how it works, how to pass headers, what they're used for, the actual meaning of response codes etc.
Oh and also, NEVER make any assumptions about how people will use your software
- markeroon 9y agoAgree with this completely. Takes a bit longer to get spun up on a topic but it's so worth it.
- opportune 9y agoI think it's important to distinguish reinventing the wheel for practice or understanding, and reinventing the wheel out of stubbornness or "not built here". The first is important because, as you said, it really helps you understand some things that might be rather opaque initially. I didn't understand backpropagation until I implemented it myself. But what you don't want to do is reinvent the wheel just because you can. Don't write your own crypto, and use whatever FOSS software (with a license approved by your employer) and existing solutions that you can, unless you really need a feature that they don't have. Programming is awesome in part because we can build solutions on top of other pre-exsting solutions; it's 2017 and I can code Python in a web browser with interspersed markdown.