Like a few other commenters have mentioned, I had a great time trying to work through these problems having seen them in ads on the Red Line in the mid to late 2000s.
For me, these puzzles were what got me to change careers; at that point I was in a non-technical job and didn't have any CS training. Still, I saw these puzzles and was hooked. Figuring out how to even set up a basic coding environment was part of the puzzle for me.
I spent a few weeks on "Strawberry Fields", eventually getting to a brute force solution that passed all the tests. I was about to send it in, and happened to meet one of the ITA folks at a social event. After a few minutes of talking to this gentleman, I realized he was in a completely different intellectual class from me, and that I had to do a lot better than hacking together a solution to a single optimization problem if I really wanted to work in this industry.
I persisted. I kept solving whatever coding problems I could find and rung by rung, climbed my way into some interesting and challenging software and data roles. I bombed plenty of whiteboard interviews along the way.
It sounds funny to write down, but it is not an understatement to say that those ads on the T changed my life!
the post office used humans for many years to train OCR models, e.g. zip code readers.
I visited a postal routing facility once in the 90s and saw a long row of metal stationed by about 20 people, 10 to each side. Envelopes passed through on a sort of pneumatic tube-like conveyor, paused in front of a human operator who read a single digit of a zip code, keyed it in and sent the envelope to be read by the next person.
I would agree. For most things, I don't find it very useful. Maybe if you're trying to learn how to use a tool, it can be worth sitting in, but for the plain mechanical tasks of coding, it's a waste of at least one person's time. If you're debugging something, you have to work at quarter speed or less - worse, if you've actually invested the effort to learn how to use your tools efficiently - as you'll be bouncing around too fast for anybody without a telepathic link to keep up with.
Bull sessions waiting for those slow-as-death Keurig machines everybody has replaced their good old drip pots with to finish making a tiny cup of coffee are just as good a use of your time, really.
It depends on the type of candidate you hope to attract.
If someone is applying for a lot of positions at once, an up front homework problem can be seen as unreasonable before even a basic semblance of role compatibility is established.
Why not offer it as a HW problem after a resume and phone screen?
Don't do an internship: you already have years of professional experience doing similar work.
In spite of what I call the so-called shortage for data scientists, getting a data science job is a pretty tough challenge. Read this post for a good description: http://treycausey.com/data_science_interviews.html
Keep interviewing and applying for jobs. You will learn a lot about what exactly you want to do and eventually land on something.
If you are in or near one of the tech hubs in the US, I might recommend a data science bootcamp like those offered by Metis, or even an evening course like that offered by General Assembly. Such programs typically have connections with local industry and can help network.
I am responding from the perspective that this is in the US. If you are in a different country the customs may be different.
In my opinion, never, ever tell your manager or colleagues you are leaving until you are actually giving notice. It is an unfortunate nature of the modern working world that you have to sneak around to interview, etc, but that is the way it is.
It is bad for morale to tell your colleagues, and telling your manager you are planning to leave comes across as a vague and non-direct way to ask for improvements.
You may choose to give more than the customary two weeks, but surprisingly two weeks is always enough time to transfer crucial responsibilities. Shorter than two weeks comes across as unprofessional, and longer than that always seems to be too much time.
Based on tips here and other feedback I've gotten, I think it is worthwhile to discuss my side work if I think it's relevant to a potential role, but emphasize that it doesn't conflict with my main job.
The reality is that I am doing this side work both because it's really fun and it's the type of experience I am looking to gain (that my regular job doesn't provide). I'd be glad to put it aside when I start a new role.
To put it another way, if I weren't doing this side work, I'd be doing similar personal projects.
For me, these puzzles were what got me to change careers; at that point I was in a non-technical job and didn't have any CS training. Still, I saw these puzzles and was hooked. Figuring out how to even set up a basic coding environment was part of the puzzle for me.
I spent a few weeks on "Strawberry Fields", eventually getting to a brute force solution that passed all the tests. I was about to send it in, and happened to meet one of the ITA folks at a social event. After a few minutes of talking to this gentleman, I realized he was in a completely different intellectual class from me, and that I had to do a lot better than hacking together a solution to a single optimization problem if I really wanted to work in this industry.
I persisted. I kept solving whatever coding problems I could find and rung by rung, climbed my way into some interesting and challenging software and data roles. I bombed plenty of whiteboard interviews along the way.
It sounds funny to write down, but it is not an understatement to say that those ads on the T changed my life!