Ask HN: What are things a programmer should do at least once?
Share things which any programmer ought to do at least once in the course of their career.
For e.g read book X or build Y from scratch, but also anything else that was very worthwhile / satisfying or like a rite of passage.
15 comments
[ 3.1 ms ] story [ 43.8 ms ] thread1. Use your application. (Not the same as testing.)
2. Adopt an apprentice programmer, teach them your seat, pass on the seat. Leave the seat.
3. Program something for fun that is your own idea.
4. Program something for someone else that is their idea.
5. Sort the books/library.
6. No books/library? Build books/library.
7. Re-write the code from scratch, for the hell of it.
8. Take over someone elses' project, finish it to the end users satisfaction.
9. Give your project to someone else, in a state that they can do #8 easily.
10. Build a list of positive observations over a period of X, where X is how long you think it might be fun to do so.
The accomplishment of a number of these actions have, in my opinion, resulted in some really great programmers and some really great software.
One thing notably absent from those talks (and Clojure itself) is the power of a good type system. I think Elm is a good introduction to that, as well as a solid FP language with good docs and a helpful compiler, and putting the "transformation over stream of inputs" at the forefront of your program design. Looking into other FRP talks (specifically I think Netflix has one or more good ones) is a good idea as well.
This will reveal the inevitability of verbal interfaces in computing devices (esp. mobile) and the difficulties therein.
It's then worth extending the effort another step, to introduce yourself to the statistical and numerical techniques used by natural language processing pros to keep up with the explosion in language in modern media: personal, social, and mass.
Its one of the few books I keep buying and giving away.
Wasn't my cup of tea but at least I know what it is like on the dark side.
Only danger is after doing it for a year it was harder to ace the technical questions at interviews.
Then change how the feature works, or eliminate it, or address the business reasons using a completely different implementation and sell it to the same person in a way that has them enthusiastically agree and sign off on it.