4,033 karma · joined August 29, 2012
I can't help but feel that this may all be a new corporate structure where the financiers are still in charge, but instead of expectations for corporations to offer real benefits, career progression, R&D budgets, and training of entry level people, we have the perfect excuse to avoid all of that - "we're a startup, and we just can't afford it." I'm not sure it's as healthy as it sounds when you just romanticize entrepeneurship for it's own sake, especially when they make no qualms that taking investor money is part of the goal.
The reason I say this is that I was recently job interviewing and I had one company that acted like this, and even brought me into a Friday happy hour as part of the interview process, where a bunch of young males were playing beer pong. First of all, how is that not a hostile environment for a woman? Secondly, I didn't want to drink, so was I supposed to look like I was no fun or bend my principles? Finally, when I complained to the recruiter, I was told they _only_ did that for engineers, and it was clear to me that it was a general strategy of indoctrination to avoid paying market rate, because it was all fun and games until we started talking compensation. And the company I most recently worked with before was more or less the same, the startup industry is filled with companies exactly like this.
We have a culture of brogrammers because the VCs create it to avoid paying engineers. And if you think programmers are all men, take a look at the VC and senior management gender diversity sometime.
What you should do depends heavily on whether you have common or preferred shares. If you have the options to buy common shares, which you probably do, they're worthless so don't even bother exercising them, the people who are invited to the board meetings have all sorts of routes they can take so that your options will become meaningless, so to spend the money to exercise and pay the capital gains on them is madness.
My advice is to recognize that you have a sunk cost (look up sunk cost fallacy) and jump ship. Keep applying to companies like Google, Facebook, Amazon, Microsoft, and other larger companies until one makes you an offer, and those companies will give you real compensation packages and stock plans that you will be able to easily turn into American dollars in a year.
Founders still behave like VC money is scarce and engineering talent is plenty. I am seeing many of these companies struggle to ship competitive products due to lack of engineering talent, and so I am hoping we see these startups fail and lose to big tech companies that value their engineers, and force the VC funded startup scene to totally re-evaluate their 'standard' offers so that those of us who would prefer smaller teams can join one on fair terms.
The most obvious use case is when you have some sort of list of rules or constraint satisfaction problem.
Gerrit uses its for that use case: https://gerrit-review.googlesource.com/Documentation/prolog-...
One of my college professors has a language that's heavily influenced by Prolog and designed to solve NLP problems called Dyna (I think because many NLP parsing problems can be solved by dynamic programing approaches that logic programs can easily express and optimize for).
I actually think the real reason we don't see more Prolog or Prolog-like languages is not because they are bad approaches, but because it's relatively easy to make your own half-baked constraint satisfaction backtracking solver in a language like Python, and then write rules for it to evaluate, so smart people just write it that way rather than busting out Prolog.
I recently left an NYC ed-tech startup that would have 'hack days', but during the hack days there were games, distractions, and once even a live band. Now I like parties, but it indicated to me that the non-technical CEO was allowing the hack day because Facebook did it, and he viewed it more as a recruiting effort than something he took seriously. I won one of the categories once and received no followup whatsoever, and the impression that I got was that if I wanted to work on it nights and weekends after the fact, then maybe it would be considered. Lots of people did do 'real work' during hack day, and most of the projects were fluff or things that were obviously going to be on the product roadmap anyway. To me, the entire thing was a waste of time, which is unfortunate, because I really wish more companies looked for creativity out of their engineers. Many companies (especially NYC ones) will begrudgingly pay you for your coding skills, but then put you at the whim of a product manager with no experience building anything. I always say that if you think about why designers/coders learned these skillsets, it's often because they are extremely interested in the end-products and that's what motivated them to learn to build products in the first place, and so to totally ignore their input and put them in pure heads-down coding roles is really unfortunate. This blog post indicates to me that you're not that type of company.
As for external hackathons, to me they are a waste of time as a coder because nobody actually checks that your implementation works. And worse, they hire people like journalists to judge (looking at you Angelhack). What that means is that the 'hackathon' really turns into a 'pitchathon', and the winners go to the best designers (which I can at least respect), or slide decks and charismatic pitches (which I don't). Getting the judging right so that time spent actually coding is valued is really difficult, but something more hackathon organizers should consider.
I do agree that OOP approaches can be a bit overused (especially if someone's been coding too much Java), and I've always appreciate that Python doesn't shove it down your throat. I like that you can lean towards more functional code like this example, or towards simple imperative code. But when I do want some classes, I find the Python mechanism mostly ok.
And yes, skilled immigrants create wealth. But the same reasonable arguments that can be made for bringing in skilled tech immigigrants (NOT on indebtured servant visas) could be made for bringing in skilled healthcare immigrants. The reason the former happens a lot more than the latter is because of political representation. Doctors have the AMA carefully controlling the supply of doctors, tech workers have Google and Microsoft doing the opposite.
But on the other hand, this 'shortage' is being used as a political tool to depress engineering salaries, even though if you applied the same logic to other professions you would find there are worse shortages there. Clearly it would be useful from a healthcare cost perspective if we had more doctors but we aren't expanding visa quotas there. Salary is a huge issue and most jobs want to pay engineers as little as possible. Of course they will rant about how competitive their pay is but if it was so competitive they would probably advertise it, instead of trying to use information asymmetry so they can negotiate them down lower. Then of course, they only hire the best, but salary negotiations inevitably revert to 'market wages', then after all this they can't hire people so they need more immigrants who get deported if they fire them.
For some reason, if you can't afford an accountant, you don't get an accountant, if you can't afford a private lawyer, you don't get a private lawyer, but if you can't afford a programmer, there is a talent shortage and we need more skilled immigrants and to subsidize more STEM graduates.
There are all sorts of legal work and questions I would love to have done if I could get a top-notch lawyer for $10/hr. That doesn't mean there is a shortage of top-notch lawyers, it means that I am priced out by the rest of the market who are offering them better wages. Sounds like you are priced out of the market, if you offer market wages, you will find people by definition of market wage i.e. the price that it costs to successfully hire people, not the price off of salary.com.
To me it's similar to learning an instrument. Learning scales and doing finger exercises may be more useful practice than just playing songs you like all the time, but again, what's more important is that you consistently practice. As you learn more songs, you might struggle on parts or want to improvise and then you will be more engaged to learn technique or scales, and some people will be happy they can strum a few chords and never worry about more. In short, 1000 hours of mediocre practice will usually beat 10 hours of perfect practice, especially because the mediocre practice provides the motivation for the perfect practice.
As for legal work, the median starting salary for the top 14 schools (remember, there is a shortage of 'good' programmers) is still 160K+. How many good programmers start there? Sure lower-grade lawyers don't make much, but neither do lower-grade programmers. Facebook and Microsoft both have reasonably high hiring standards and are complaining about a shortage of people over their threshold. As for 'the rest of us', the average lawyer salary is higher than the average software engineer salary. There are a lot of low paid software engineers too, it's absurd to compare only the highest paid software engineers to all lawyers which it seems you tried to do.
The fact that you can see the average lawyer salary being higher than the average software engineer salary, and still claim there a meltdown in the former industry while the second is struggling for people, just shows how deeply ingrained our cultural perspective of what job markets and compensation for a given career 'should be', and how it skews our perspective away from the simple econ 101 supply and demand curves that tell the real story. Markets are a lot more honest than PR releases from billionare tech executives.
But on a side note I did like your blog post, I just think it's irrelevant to this conversation.
With all that said, I also lean towards "just learn what you want or need to know" train of thought. I think those of us who enjoy learning what's under the hood overestimate it's necessity for "getting things done". I don't think there's anything wrong with learning and using jQuery without diving into the messier details of vanilla Javascript unless necessary. Also, for many of us, those ugly situations when we are forced to figure out what's going on behind the scenes is when we actually understand it anyway.
The other thing I hate is the concept of "The" Bully. It's easy to imagine a sick, hateful person, most importantly someone else, and individual bullies certainly exist, but I think the far more common situation is where the bully is a group of people. I think one way to 'Stop Bullying' is to help people understand when they are bullying, instead of just imagining it's something someone else does. I doubt there that many people that never had an adolescent moment where they 'ganged up' on someone (verbally) to feel like they belonged more in a group, or just to give an outsider or a 'runt' of the group a hard time, because it's such an instinctive thing to do. So much so that it's a huge theme of Lord of the Flies, a book everybody reads in high school, but rarely views within the context of their own life.
The most ironic thing about these stop bullying campaigns is so very, very often they reflect the same group bullying mentality they purport to be fighting. All these people 'ganging up' on the prosecutors in this case are example of that. I'm not saying this wasn't a failure of our justice system that should be fixed, only that it at times this is seeming awfully like a witch hunt.