I seriously considered going back to school. It would have been a luxury to have someone teach me all this stuff rather than teach it to myself. Since I already had a Ph.D., though, it didn’t make sense to get another degree. I looked around, but there just wasn’t any program that seemed like a fit for someone in my situation. I can now finally consider myself to be an NLP professional. I’m working in that field, and I regularly do stuff with machine learning and other AI techniques. My current job is in the area of machine translation (e.g. French to English, or whatever language pairs the company needs). The long effort has paid off, because I’m in demand. It was an awful lot of work to get here, though.
Management knows more than I do about how to manage a business. I know more than they do about how to build technology.
Management is paying for the use of my brain. Good managers will give serious consideration to what their hired brains are telling them.
Of course, in any real-world situation, plenty of poor decisions come down, even if your management is pretty good. So when that happens, you have a few options:
1) You can follow orders, even though you know it's a bad judgment call; or
2) You can try to convince management differently (which sometimes works); or
3) You can do something rogue to mitigate the effects of bad decisions.
Anyone in a technical industry is regularly engaged in this balancing act.
I'd note that there is rarely a very clear dividing line between doing something rogue versus exercising judgment within the range of your own authority. There have been plenty of times when I've undertaken efforts which were neither authorized nor prohibited. I've never gotten in trouble for this. Of course some efforts get silently ignored, but others get adopted and praised.
At my last job, I spent three days coding up a solution which would save us days of work on every client-facing project. I had been thinking about the problem for a long time and saw a simple and elegant solution. It was ready to go, including testing and documentation. When I demoed it, folks were impressed.
Unfortunately, management had the idea that the way to contain costs was to have the Product division develop these kinds of tools. My division was supposed to focus on deploying Product’s solutions to clients, not build solutions ourselves. Management could see the value in my solution; they just didn’t like the fact that it had come from me, not from Product.
So I was told to write up a spec for the solution I had already implemented, and give it to Product to reimplement. I did that, but Product was notoriously slow and ineffective. They had way too many masters to serve, and they weren’t immersed in our day-to-day work to understand our needs.
Two and a half years later, the solution was still not rolled out. I was still trying to get Product to fix the fatal bugs in their crappy implementation. I had escalated it multiple times.
I ended up quitting that job in disgust. The case I just described was a symptom of a large and serious organizational problem; I kept running up against it. In my resignation letter, I did the math to show management how many hundreds of hours we would have saved by now if we had adopted my solution when I wrote it. I sent that letter around to a bunch of senior managers. There was a belated plea for me to stay, but I already had another job lined up.
I do think I know more about technology than management does. Management knows more than I do about how to run a business. Neither one of us has the entire picture. We have to inform each other as well as we can, so that our business decisions reflect good judgment across all of our areas of expertise.
Sometimes we have to explain things to each other, and sometimes those explanations need to go into depth. Some of my best moments in business have been when someone went to the whiteboard and effectively taught a little class.
There is a reason why management is asking for it.
The reason might be one of these two:
1. Management knows what they're talking about: there's some valid business reason why the information needs to be in the requested form; and the tech guy just isn't aware of that reason.
2. Management thinks they know what they want, but their request reflects an incomplete understanding as to what technical solutions are possible, and which one would really best serve the business.
I encounter both situations regularly. Sometimes I investigate and find out that management really does have good reasons. Sometimes I conclude that I'm dealing with case #2 above. It's not that I think management is stupid; it's just that their expertise is in a different area from mine. I often try to educate, depending on how important I think the issue is. Fairly often, my effort succeeds: managers generally want to do right for the business; they understand that the tech guy knows things and is worth listening to; and sometimes they agree that my proposal is better.
However, of course the effort doesn't always succeed. Unless you're writing software on your own without having to please clients or management (e.g. as a hobby, or in an academic setting), it's just a part of life as a paid tech guy that you sometimes have to implement decisions which were made without the benefit of as much tech expertise as you have yourself.
The article says that they're using a genetic algorithm. I'm no expert at AI, but my understanding is that an ordinary expert system doesn't use a genetic algorithm; an expert system just involves percolating propositions through a bunch of human-specified if/then statements.
I'd hazard a guess that the system described here is using the human-specified rules as part of the fitness function for the genetic algorithm. That's one way a system could use human-specified rules, but I think it's different from how an ordinary expert system uses them.
If you can call this an "expert system", then at a minimum, it looks like it's pushing the boundaries of the definition of "expert system".
True, but the null hypothesis is that men and women are equally capable at CS, however you measure that. Likewise with whites and blacks. Unless there's data to indicate otherwise, I'm assuming that knowing somebody's race or sex doesn't tell you anything about how likely they are to be good at CS.
The numbers might give the impression that Google and Yahoo are unfairly discriminating against blacks and women. To determine whether that's the case, I think you need to know two things:
--Among Google and Yahoo employees, what percentage are black? What percentage are women?
--Among CS graduates, what percentage are black? What percentage are women?
(I'm simplifying here by assuming that every hire at Google and Yahoo is a CS graduate.)
If the two sets of numbers differ significantly, then it could indicate discriminatory hiring practices. If the numbers are the same, then it would seem to indicate that Google and Yahoo are evenhandedly hiring from the pool of available candidates, and that the cause of the inequality is further upstream.
I don't think anyone claims that open-source software won't ever have security issues. The claim is that the open-source model tends to find and correct the flaws more effectively than the closed-source model, and that the soundness of the resulting product tends to be better on average.
One case does not disprove that. The key words there are "tends" and "on average".
There have been various alternative calendars proposed, and some of them have the property that there's a special day in the yearly calendar which doesn't count as part of the regular seven-day-per-week cycle (such as the "month zero" proposed here).
A significant objection is that some religions require that every seventh day be kept as a holy day. If the calendar contains a day which isn't part of the regular week, then there are sometimes more than seven days between one weekly holy day and the next.
It's not a consideration for me personally. However, I'm sure that this feature would lead to significant resistance to the adoption of such a calendar.
Part of the proposal here is to reduce the U.S. to two time zones. The Eastern time zone would be on the same time as what's now Central Standard Time.
I'm in Boston, MA. Under the proposed change, sunset in December would come at 3:11 p.m. Um, no, thanks.
I dropped out of high school in 1983. I was being heavily harassed for being openly gay. I could take it no longer.
I took my GED and passed it easily on the first try. Then I worked my ass off, largely financed my own education, and eventually got a PhD from one of the Ivy League universities. Now I have a successful career.
If the option of the GED hadn't been there for me, I would have been at a dead end.
In the 1990s, I wanted to get into developing GUI apps for Linux. The single biggest reason why I gave up on it was that the Linux GUI effort fractured into KDE and Gnome camps.
At the time, I figured that one of the two would win out over the other. There was no telling which might win, and I was reluctant to back what might be the losing horse. This was a serious demotivator. Of course, 15 years later, we've ended up with the worst of both worlds: many Linux installations take up the disk space for both, and we've got two unharmonized APIs continuing to fight for a following.
With MacOS, there is no question what API you should use. Apple offers a very clear path. For that reason, I feel more confident developing for that platform.
I work at a company of around 8000 people, and I regularly use software in all of these categories.
There's a whole WORLD in a mud puddle! -- Doug Clifford