The right Tools for the right job
Last week I did a bit of programming for Game Of Codes in my "free" time which lead me to a couple of interesting observations.
1. Number of passing tests is more important then compute time
This makes sense right? If you pass more tests then someone else then the speed with which you did it is kind of irrelevant. This is a decidedly startup mentality. That getting things done is better then how well they are done. And I agree with it.
2. node’s startup time is great for servers and terrible for CLI tools
With the caveat of when those tools need to be really fast to win a prize. JS is my sketching language and I typically solve first there and then convert to something faster, like Rust.
The reason is that the startup for node includes compilation which is costly. Not a problem when you are a server that starts up once and stays up for a long time. More of a problem when you have to pay that cost as part of your run time.
node does some great stuff in that startup but it is expensive.
3. I wish I was better at algorithms
These sort of things always make me feel this way.
Which is part of why I like doing them. It forces me to think about computational complexity. I just wish I had picked up enough algorithms knowledge already to be able to fly through some of these. Someday... maybe soon... hopefully.
4. These things are probably terrible as recruiting tools... but dang fun
Most people who have the chops to do well at these things already have jobs they love. They’re just in it to snag some $$$ and a shirt. But man it is fun to have quick computationally intense problems to work every once in a while.
5. I really like Rust’s syntax
It’s really nice. Fighting the compiler on types is something I am not used to... but it’s errors are usually pretty sane and understandable. Plus it’s fast. I don’t know how to performance tune it really... but it’s still really fast and it’s compile times aren’t bad either.
Last thing on Rust... cargo is pretty rad. Love it.
Coding contests are fun. You should do them. Great way to push yourself and force yourself to try new things and new languages. Plus they are really good practice for interviews.