3 years unemployed. Got my first job as a programmer. Lacking skills and doing a very disappointing performance. My first job became a nightmare.

A few years back, I joined a project in which I had similar issues, except that I had prior experience working on other projects with other teams in the same company and I had always excellent performance. It turned out that the project was the problem:

It was already quite an old project (going on about 10 years) Java enterprise application that was used in hundreds of other projects in the company, but it had fallen into a complete state of disrepair (though it didn't look like it was very good to begin with). It made use of a huge number of external frameworks, libraries and systems with lots of "magic" under the hood. Any Java enterprise framework you could think of was probably thrown in there, and the whole thing hung together via hundreds of Maven XML files! There was an Eclipse project for it, but trying to actually open it in Eclipse (even with all of the required plugins installed) resulted in literally thousands of errors, so the only way to build it was from the command line. The build took over 3 hours to complete, and even an incremental build took over 20 minutes even if nothing had changed. There was almost no documentation, and what little there was was horribly out of date or just wrong.

Over the years, it had lots of different people working on it for short periods of time; the current turn-over rate was very bad. The current team was mostly made up of external contractors from an outsourcing company in Bangladesh, who had only been working on it for a few months. The current manager of the project had only just been reassigned to it at the same time as I joined the project, so he didn't really know much about it, or what he had just gotten himself into by agreeing to manage the project. He was in a different country from me.

So, I turned up for the first day of work on that project, all by myself. The rest of the team in Bangladesh had all finished up and gone home since they were in a completely different timezone and my manager, as mentioned above, was in a different country entirely. I was given some very basic information on how to obtain and build the source code. I was horrified; it was just a huge tangle of over-engineering mixed with outstanding incompetence (there were things like storing properties of an object inside a delimited string and then parsing and reconstructing the string whenever properties were read or changed... for no apparent reason). My manager gave me my first assignment, what should have been a very simple change that should have taken no more than a few days. A month later, I still hadn't figured out how to do it and had to explain to him that I just had no idea what to do. There were so many magic frameworks that I had to try to learn, mixed with some of the worst code I've ever seen, and literally thousands of XML configuration files (yes, literally), many of which needed to be hand edited (and I'd only find out if something was wrong when the system crashed at runtime with a huge Java stack trace). All he could suggest was that I come into the office early, get on a call with the team in Bangladesh and ask for their help, so I did, and they had about as much of a clue as I did.

I spent a miserable year on that project doing literally nothing but browse Reddit all day before I left. My manager was despairing, as I think the realization sunk in quite quickly that he'd inherited a project that had long been on its death march (or it would be, if it wasn't required by so many other projects in the company), and the contractors just ploughed on making it worse.

/r/learnprogramming Thread