Some of you might be interested to know what exactly I do in company C. Well, I am currently a Programmer Analyst Trainee. I'm being trained mainly on Java and J2EE.
When I was in school, I never thought that one day I would earn my living writing code. I was not a great fan of C++, the programming language taught to us in the 11'th and 12'th. I got along ok until the teacher got into the Data Structures bit. I got lost after that. I never understood Stacks, Linked Lists, Queue's and Binary Trees. Pointer's baffled me. I pretty much lost confidence in my programming skills after that.
Now as a trainee in a big MNC, I have learnt to write code in a much simpler manner (ie) the Cut Copy Paste method. Say I'm given a particular problem to work on.For example I have to write code to collect data from a user, query a database, process the collected data and return some meaningful information.
Given the fact that I have to learn a lot of stuff in a very short period of time, I really dont have the time to deeply understand each concept. Our trainers assured us that we'd learn everything on the job. For now just a passing familiarity is all that is needed. So how do I write my code?
Here's what I do : Open up an example given by the instructor where data is collected from a web page. Open up another example where a database is queried. Copy and paste sections of the second piece of code into the first. Adjust the brackets, make some minor adjustments to suit my needs and Voila! I have a perfectly functional piece of code. Please keep in mind though that I have absolutely no idea how it actually works. I keep adding or removing stuff until the code compiles and executes. Once it works, there is momentary feeling of accomplishment and then I move onto the next problem.
I must say though that I feel terribly guilty doing this. I'm merely manipulating what has already been created, not creating anything from scratch. This kind of work hardly brings any intellectual kind of satisfaction.
I've been told that no one writes code from scratch these days. Templates exist for practically every kind of problem. If your company has a done a number of projects for an insurance company and it gets new projects for another company, it merely adjusts the original code and gives it to the new client. No heavy thinking is required.
I must say what I learnt busted some myths about the software profession I had in mind. I always thought you needed highly intelligent people to write code. Now I have discovered that you just adjust the existing templates and get along. Templates exist so that it takes less time to develop the project and also so that testing the code becomes simpler.
I really dont know how I feel about that. I'm relieved that I wont be required to do any heavy thinking...also slightly dissapointed. I always thought software engineers were highly intellectual people :P.
Oh well, I guess I cant really pass comments now. I havent done any real work yet as I'm still a trainee. Another 20 days of training and then I'll be placed in a project (or put on bench, one never knows :P ). I'm looking forward to it. But for now, I'm just a JCCPP ( Java Certified Cut Paste Programmer :) )