Original Post
I recently started working for a company that makes 3D sesimic intepretation software in C++. I was amazed at my opportunity. I felt like all those years I spent on my living room studying by myself had finally payed off. I was tasked with developing a highly reusable library for 2D visualization of well data in GDI+. It felt pretty easy for me. I thought everything was going ok. But a few days ago I was told they were letting me go. I couldn't believe it. I was dumbfounded. They said my knowledge was greater than that of most programmers there, but my ability to interact with others was extremely poor. They said my approach was to prove my point to others stubbornly and repeatedly, causing rewrites and thus delays. That work that had been done in three months could have been finished in one by any of them. Which was what has left me confused lately. I was never aware of the problem. They never talked to me about it. Until the very end. I thought I was doing my best at following orders. I asked several people whenever I was unsure of what to do, to make sure I did the right thing, and the rewrites were caused by sudden and unexpected brick walls, which to me is a natural thing. For instance. In on case we had agreed to use standard coordinates (0 to 1) to insert several objects into containers and know in advance where they would be placed, and another set of "real coordinates" that represented the space where real data would be shown (say Gamma Rays). So I used three coordinate systems (standard, "real" or "data" and client or "absolute"). One of my supervisors noticed I had been using these three coordinate systems and quicly berated me, saying it was beside the point to use client coordinates, that in that case we could have gotten rid of the standard coordinates. I argued that nevertheless the interface and the behavior remained the same, but he insisted. So I rewrote it. At a later point, I was faced with font transformations. Since we were using standard coordinates, and they were transformed by the dimensions of the container, the size of the text was transformed too and became unmanageable, and it was impractical to predict where the text would be shown. So I told one of the senior programmers that I needed somehow to factorize the scaling and keep it from blowing up the text. He told me he needed to use the three coordinate systems to figure out the rotation. THERE. What I had been doing all along. I needed to figure out the rotation from the final coordinates in order to factorize the scaling. So I told my supervisor what the programmer had suggested, and he said "do it". I remarked that it was what I had been doing at the beginning, using the final client coordinates, but he nevertheless shrugged it off. This incident was among many similar ones which were used against me. As though I had been wasting other people's time and being "stubborn". I said I didn't know what I could have done otherwise. I don't want to make any wild speculations as to why I was really fired. I suppose I should believe what they told me without any ulterior interpretations. But nevertheless, I should point out that I never made friends with any of them. I was always an outsider, though not by choice, and my few attampts at socializing with them were met with serious bumps and awkward moments. I appreciate any observations any of you would like to make.