mmartinson
Joined 11 years ago
Joined 11 years ago
I've experienced this exactly. I have a philosophy degree. I floundered a bit career-wise post undergrad, self-studied for a practical entry vector into a programming job, and 8 years later have a super rewarding career as a software engineer. I felt my humanities undergrad, especially the critical thinking and writing skills I developed, have helped me advance much more quickly.
If I were to change anything, I would have liked to do a CS minor.
This is very, very far from my experience, having worked extensively with both of these particular examples.
At my current job I deep dive into a lot of years old, kinda sketchy Elixir code, and it's almost always less effort to learn/fix something than I've found in other languages, especially other dynamic languages. Except when macros are overused.
I'm not sure becoming a high paying/good software engineer are necessarily relevant to the stated goals of the OP's question. There can be inherent reward in working with a set of less popular, well crafted tools. Yes you might grow faster as a professional by working with a group of industry best JS programmers, but working with a small team building in Elixir and moving fast without ever hitting a NaN can be a pretty rewarding experience.
That said, Canadian politics and crony capitalism are a grind sometimes, but looking over the fence it’s not totally obvious that other systems aren’t trading one set of intractable problems for another.
There are a number of powerful tools for BEAM runtime tracing. I prefer this one because the API is simple enough to commit to memory, and it protects against some common foot guns.
I actually prefer when the candidate has some sort of uncontrollable distraction that comes up during the interview. It provides a good opportunity to see how they handle the real world challenges of remote work. For anyone not sure how to handle this, interrupting with "excuse me, I'm going to mute for 20 seconds while garbage truck passes" is completely reasonable, even in a fairly formal situation.
If anyone is curios and wants to get a high level overview, this conference talk by Darin Wilson provides a helpful intro to the patterns Ecto uses that differ from other popular ORMs.