Ask Slashdot: Transitioning From 'Hacker' To 'Engineer'?
antifoidulus writes "I'm about to get my masters in Computer Science and start out (again) in the 'real world.' I already have a job lined up, but there is one thing that is really nagging me. Since my academic work has focused almost solely on computer science and not software engineering per se, I'm really still a 'hacker,' meaning I take a problem, sketch together a rough solution using the appropriate CS algorithms, and then code something up (using a lot of prints to debug). I do some basic testing and then go with it. Obviously, something like that works quite well in the academic environment, but not in the 'real world.' Even at my previous job, which was sort of a jack-of-all-trades (sysadmin, security, support, and programming), the testing procedures were not particularly rigorous, and as a result I don't think I'm really mature as an 'engineer.' So my question to the community is: how do you make the transition from hacker (in the positive sense) to a real engineer. Obviously the 'Mythical Man Month' is on the reading list, but would you recommend anything else? How do you get out of the 'hacker' mindset?"
Learn to bullshit about development methods like agile, waterfall, etc. Learn to estimate project costs before a project starts. Expect to spend lots of time making these estimates without getting paid for them only to be told that your estimate is too expensive and you've been beat out by some 'hacker' from Asia or Eastern Europe where the cost of living is a fraction of yours.
If you play your cards right, you will graduate from programmer of the line to 'system architect' or something like that where you tell other programmers what to do.
Sorry, but we reserve the GUI design jobs for Monkeys and typewriters.
Huh? What do the MCSEs do then?
"I've got more toys than Teruhisa Kitahara."
So you don't get confused with a real, actual engineer.
I would add that the big difference between "hacking" and an engineering approach is a structured understanding of the problem.
I may assume that the CS masters study has taken care of that "structured understanding" part. In other words: hacker + CS degree = software engineer.
LOL
The big difference with house vs. software is that when you nail some boards together it's quite permanent, and hard to remove and redo. I admit to do programming mainly alone the second line, but usually with something like a plan, and working quite targeted to it. More like:
1. Nail boards together.
2.Step back.
3. Location correct, all straight up and aligned with the rest? goto 6.
4. Redo latest board, and/or adjust previous boards.
5. goto 3.
6. Looks like a livable house? end.
7. goto 1.
But then without the goto statements :-)
MCSE: Minsweeper Consultant and Solitaire Expert
At least that's what I was always told.
"Total destruction the only solution" - Bob Marley