tags:

views:

764

answers:

15

If I spend most of my time not writing code, but sifting through other peoples' code (mostly PHP) fixing it, what would I be called professionally? How I got to this point is a long story. Seems I am good at reverse-engineering things, but I never formally learned to write code. I want to break away from this and start writing my own code, hopefully better than what I end up debugging, and I want to move into something that encompasses desktop and the web. Any advisement would be grand. Thanks!

+15  A: 

Sounds like "maintenance programmer" to me.

If I were you, I'd begin cramming what you want to know. Buy a bunch of books. Cram it at home. Cram it during lunch. (I especially like to make notes on a legal pad whilst cramming.) Cram the knowledge of a hundred books into your cranium and dash this salt upon your resume. Then, try to move into a job that more closely matches your interests.

Rinse, repeat as necessary.

David Grant
How about, stop reading and just start programming.
Kibbee
I've been given 'software maintenance engineer' as a job title.
ChrisW
I find that there's a limit to what I can learn in a sitting, at least in a new field, before I _have_ to try coding what I'm reading about. Otherwise I don't retain the knowledge.
Adriano Varoli Piazza
I would certainly hire @David who reads over @Kibbee. "What books or articles have you read lately?" .... "What did you learn from it?" Take note, Laura.
kenny
@Kenny, I think both are really important. :)
Terry Donaghe
Ah, see, I work as an independent. I am outsourced by other companies as well as individuals - 100% online. So I can devote more time to learning, just spend less on actual work. :)
Laura
+1  A: 

Sounds like a cross between maintenance and QA.

Jon B
A: 

Developer

I have to write another word

Thomaschaaf
+3  A: 

that sounds akin to "code janitor"...

Laura
ah, we don't call them janitors anymore but maintenance engineers.
kenny
http://dilbert.com/strips/comic/2008-03-04/
roe
+5  A: 

Pick a project you'd like to develop in the time you have available and just go for it! If you need, grab some books on PHP (or whatever language you chose), study it and just go for something relatively simple.

The best way to learn to program is to program! :)

Terry Donaghe
Definitely. I've done a few minor things, but need to make that leap into the deep end...
Laura
Ya just gotta do it! :) It'll be rough going at first, but you'll learn so much! :) You can do it.
Terry Donaghe
A: 

A debugger? ;)

In seriousness though, it's still programming, and programmers take part in debugging code. There are testers, and there's usually two levels of testing. The first is testing that the bugs exist in the first place, then once tracked down the bug is passed to the programmer to be fixed. Once the bug is fixed it is then handed to another department who do (black box) regression testing against that fix to ensure the bug has definitely been fixed. There's quite a process, but you fit somewhere in all three.

Kezzer
See all the things I miss not working in an 'office' environment? I work mostly alone, by myself, so I would otherwise have no clue about these things.
Laura
+1  A: 

"Novice programmer". I don't mean that to be pejorative. There's a lot of smart people out there who call themselves programmers--I used to--who have not much more expertise than you.

That said, there should be another word here. We have separate words for "editor" and "author", right? But the person who knows where the comma should go isn't necessarily the person who should be writing novels, and vice versa. Funny that this division hasn't come up in coding, probably because most people who aren't formally trained don't ever have a choice. They learn by making, not by having access to a code base that they then operate on.

Rich Armstrong
+5  A: 

Laura,

The fact that you're concerned about the quality of the code that you're maintaining already speaks highly about where you're going next. Call yourself a programmer, start taking classes, read books and take part in open source projects. IMHO you should strongly consider other languages as well. PHP doesn't lend itself to a good learning platform because there are so many bad examples out there. Take a look at Ruby, or C# if you want to learn about compiled code.

Good luck!

matt_dev
Taking that advice!
Laura
A: 

hmm, some kind of "proof-reader"?

EDIT: I don't know what one can call the profession mentioned in the question but what I meant is something equivalent to a proof-reader present in other professions i.e someone going over/looking into the work produced by someone else.

moster67
Someone else alluded to an "author" and "publisher" sort of analogy, which makes me wonder how much 'editing' most writers need as compared to programmers.
Laura
+2  A: 

If I spend most of my time not writing code, but sifting through other peoples' code (mostly PHP) fixing it, what would I be called professionally?

A lot of programmers do this. Even if you are fully trained and a bigwig developer, you are going to spend a lot of time working with other peoples code, fixing it, adding features, refactoring. The percentage of time that a system is being written from scratch is tiny compared to the amount of time it is being fixed and improved.

I wouldn’t be too down on yourself about lack of formal training either, again a lot of programmers self taught before they had any formal training.

You also learn a lot by seeing the mistakes other people have made. And given enough time you will be able to write the code better than them.

Jeremy French
Writing better than them would be a definite goal!
Laura
Being able to read other people's code is a talent, especially when joining an existing team.
Andrei Krotkov
+2  A: 

Ah, academia, I think that school is not the best route for me, as I am better at teaching myself, hence the ability to reverse engineer things like other peoples' code. I'm still trying to shake the "doesn't play well with others" label. Ha ha.

I am going to keep up my PHP, but focus on C# 'cause I have the books and resources for it.
I would like to seriously try Ruby; I tried it once using Hackety-Hak (by whytheluckystiff) and it was great, but I ended up learning more from researching a couple of the examples that didn't work and got them working. I guess I want to fix my own mistakes once in awhile.

The support and encouragement here is great, thank you, everyone that put Stackoverflow together and also the users that make it such a great place!

Laura
+1  A: 

What you're doing is called 'refactoring' code. This typically is a job of someone in Quality Assurance and Control. Refactoring serves a number of purposes ranging from actual algorithm improvement to improving readability. Refactoring is not debugging though. The former assumes that the program works, but needs to be cleaned up, while the latter fixes code. So, whether you debug or refactor, whatever you're doing falls under QA&C. So, I would call you Software Quality Assurance and Control professional (sounds nice!)

Ahmed
Wow, that sounds impressive!Many times, I get clients that have been left high and dry with buggy code, and I make it work how it was mostly intended. Once in awhile I get in over my head, which is a challenge!
Laura
+2  A: 

Every (good) programmer reads more code than she writes. It is the only way to get any good at it. You might be interested to read some work of Richard P. Gabriel.

http://en.wikipedia.org/wiki/Richard_Gabriel

You do know about unit tests, do you? The perfect way to reduce a big ball of mud to a nicely-structured program

http://devzone.zend.com/article/2772-An-Introduction-to-the-Art-of-Unit-Testing-in-PHP

Stephan Eggermont
unit tests...nope.
Laura
A: 

Code plumber or ninja may be another couple of terms.

Plumber in the sense of applications and middleware and other pipes that need fixing.

Ninja in the sense of being able to do what others may see as magic tricks when it comes to fixing things.

JB King
I got a laugh out of ninja, because I do feel like I am the invisible (stealthy) part of the process.
Laura
+1  A: 

There've been a couple mentions of 'editor' -- do you work with the original programmer, helping them to write better? Then that'd be a good term for it (and I wish that were more of a recognized specialty among programmers -- it's a great part of what I do for my client). Otherwise plain old 'programmer' fits fine.

Re advice, besides what others have suggested, try working through CTM or SICP.

Darius Bacon
Most commonly, I am called in when a coder has mysteriously disappeared after deployment and/or won't fix bugs, or the code is good, but looks ugly on the front end, or the client wants to add additional functionality, etc. I jokingly refer to it as the "code aftermarket."
Laura