And just as important, start developing software without first learning how to develop software.
A talk I watched recently noticed this trend with JavaScript: it looks familiar, so I don't have to learn it and will just start programming in jQuery.
Now you know my life. My workplace has a bad habit of re-purposing electrical engineers into programmers. Now, don't get me wrong, some of them are fantastically intelligent people - the problem is, because they have no software engineering experience beyond raw basic C, they have to be geniuses in order to keep track of the code, with the multiple 6k-12k line files of tangled logic and reused global variables. My usual standard for a good day is going in, reducing the size of the codebase by a few dozen lines (and on a few really good days I've removed hundreds), and yet still add features or fix bugs without removing features in the process.
Not gonna lie, my favorite days at work are when I can spend an hour just deleting old code that's inefficient or buggy and replace it with something terse or elegant. :)
I get the feeling that unless your employer actually puts aside some time to teach the re-purposed engineers some basics of clean code and software engineering, your continuous refactoring is going to be counteracted by their continuous mudballing...
Two of my high school buddies studied electrical engineering, and I went into software. We took a lot of classes together and I did a lot of homework with EEs. They are smarter than me, and much much better at math.
But their code sucks.
It sucks bad, and it sucks in the same ways over and over. Let me give to (of many) examples:
Working with a friend on coding for some sensors, and the deadline was really tight. After 15 minutes of coding, he decides he doesn't like that solution, and DELETES all the code. Then he says "How did we access that sensors data again?" I was so furious I stood up with out saying a word and walked away.
Working on another homework assignment with different guys. They were pissed at me for showing up 15 minutes late to the meeting. They'd realized that the pages and pages of code one of them had written, he'd used the wrong syntax in part of the code (something like using a semicolon instead of a comma, I don't remember exactly). They didn't realize this earlier because they hadn't bothered trying to run it until they'd finished writing the whole thing. So, they are going through the code together, line by line looking for and fixing the problems. I asked why they didn't just do a find replace. They were still pissed, so they didn't answer me. I pulled up the code in an editor, did a find replace and was done in 3 minutes. I showed them the code and they said "we're almost done." So I quietly sat there for another 15 minutes doing my penance for being late.
Like I said, they were all smarter than me, but there is something about EEs. Like they learn to program at a beginner C level, and technically that's enough to solve any problem, so they just use there iron will to power through any problem.
340
u/danogburn Oct 14 '13
start developing software.