3 ms·
The best way to learn anything is to do it, fail, learn from it, and do it again. You’ll never achieve perfection, but each iteration should get better. Do s
by skinner927 6y ago
The best way to learn anything is to do it, fail,
learn from it, and do it again. You’ll never achieve perfection, but each iteration should get better.
Do something simple. Create a terminal weather app. Separate the “client” and “backend” into separate processes simply for the complexity of it.
Have the client end process commands, send requests to the backend, and render results.
The backend should receive commands from the client app and send back responses.
I’d suggest staying away from HTTP and try to use a pipe between the two processes and come up with your own protocol.
Bonus points if you make the api non-blocking and the client has to query the backend for results.
Add artificial delays. Add artificial failures. Add logging. Switch to protobufs. Create a distributed backend. Send messages over a queueing/task system instead of a bare pipe. Dockerize it. Simulate hundreds of clients. Go nuts.
Taking a silly simple application and making it overly complex is a good way to learn because you’re not burdened by the complexity of the problem, but instead the burden is on the thing you’re tying to learn.
Practice practice practice.
- mettamage 6y agoThanks, for the advice. I really appreciate the examples as well!