5 ms·
Zed Shaw already solved this problem: http://programming-motherfucker.com http://programming-motherfucker.com . What made programming great (before the Doucheb
by michaelochurch 14y ago
Zed Shaw already solved this problem: http://programming-motherfucker.com http://programming-motherfucker.com .
What made programming great (before the Douchebag Invasion came in and we were divided into these stupid warring camps) is now what makes "data science" attractive: the generalist flair and the ability to pick your projects and move around the economy by your own sail.
By the way, I personally hate the term "software engineer", at least as commonly used. It sounds Corporate and I feel like I need a shower after I say it. Genuine software engineering (like, what people who build rockets do, where attention to code quality is critical and people actually consider proving code) is actually very important, but you're only an engineer if you have professional autonomy. If you answer to managers and build CRUD apps to support their careers rather than your own, then you're not a professional.
Right now, most of us live under a worst-of-both-worlds regime where it's not clear whether we're genuine professionals, entre- or "intra"preneurs, or glorified labor. Of course, this allows management to frame-change freely among all of the possibilities depending on the specific negotiation, leaving us with the bottom of each possibility.
- tocomment 14y agoAs an aside about CRUD apps. I've been kicking around the idea of building and selling a universal CRUD app. Do you think there would be a market for that? How would I sell it?
- woah 14y agoHhhhhmmmm... I would develop it in an interesting language from Japan...
- tocomment 14y agoSorry, I don't follow.
- stcredzero 14y agoRoR
- tocomment 14y agoThere's still a lot of coding for that. I'm thinking a drop-in app that looks at a database and creates list and record level editors for each table automatically. Users could still customize it from there but they'd have a good start.
- stcredzero 14y agoI think it's a cool idea. So have lots of others over the decades. (From the 70's I'd bet.) In a way, RoR is just the latest wrinkle in this quest. If you can do it, you might well have something. (BTW, are you familiar with SQLAlchemy?) If you are serious, I invented a graphical interface for dynamically exploring reporting information from such an app.
- tocomment 14y agoThe SQLAlchemy thing sounds cool. I was thinking more about CRUD than reporting but that might be a useful product too. The only issue with the universal CRUD tool is I have no idea how to market it?
- stcredzero 14y agoYou can use the ORM infrastructure that enables CRUD to also produce dynamic reporting. > The only issue with the universal CRUD tool is I have no idea how to market it? The dynamic reporting thing can be sexy. It would be a great way to sell such a tool. It's like pivot tables, but entirely graphical. It was based on a Smalltalk web plugin when I wrote it. I was going revive this project and make it an iPad app.
- deleted 14y ago[deleted]
- dreamfactory 14y ago
- bruceboughton 14y ago>> Genuine software engineering (like, what people who build rockets do, where attention to code quality is critical and people actually consider proving code) is actually very important, but you're only an engineer if you have professional autonomy. If you answer to managers and build CRUD apps to support their careers rather than your own, then you're not a professional. Because people who build rockets don't have to answer to middle management... Read Mike Mullane's book [1] if you genuinely believe that [1] http://mikemullane.com/riding-rockets/ http://mikemullane.com/riding-rockets/
- edw519 14y agoIf you answer to managers and build CRUD apps to support their careers rather than your own, then you're not a professional. Pretty amazing statement from someone whose comments are otherwise among the best here on Hacker News. 1. CRUD apps run the world. They were here long before all this sexy unnecssary stuff and will be here long after these fads pass. 2. Whether you want to admit it or not, everyone answers to someone. 3. Make no mistake about it: if you build anything, you benefit, often more than those you built it for. In fact, to become an excellent programmer, there is no better way. It doesn't matter who you built it for, it just matters that you built it. 4. Literal definition of "professional": earns money. There's probably no better way to be a professional programmer than to build corporate CRUD apps. Looser definition of "professional": someone I would want to march into digital battle with. I would most certainly pick someone who has written many corporate CRUD apps over someone who has recently embraced some sexy new technology from the conference and community du jour.
- michaelochurch 14y ago1. CRUD apps run the world. They were here long before all this sexy unnecssary stuff and will be here long after these fads pass. Fair point. "CRUD" is a straw man. Actually, most apps should be simple. That's just good design. If CRUD is enough to solve the problem, then one shouldn't do more if it compromises simplicity or conceptual integrity. 2. Whether you want to admit it or not, everyone answers to someone. Sure. What I like about Valve's model is that, yes, employees answer to the company. What isn't there is the middle-management extortion of "since I can fire you, you invest in my career, and you're lucky if I give you a 2-week 'plum' project". Everyone answers to someone, but the terms are widely variable. We're a lucky set, being programmers. We have skills whereby, if we can solve the leverage problem (as a group, we're poor negotiators) we can deliver so much value to society as never to be poor. Unfortunately, because we are so critical to operations, and because we're terrible negotiators, there's a class of people (VCs, tech managers) who spends as much time devising ways to hack us as we spend coming up with ways to hack computers. It's the fact of answering to a careerist middleman-- often for little in return, resulting in long-term career stagnation-- not the abstract "answering to someone" of having to deliver value, that makes corporate engineering so humiliating. 3. Make no mistake about it: if you build anything, you benefit, often more than those you built it for. In fact, to become an excellent programmer, there is no better way. It doesn't matter who you built it for, it just matters that you built it. I agree, but at least in my experience, programmers are lucky if they get to spend 10-20% of their working time on building, and it's rare that we actually get to own and to finish a project. Most of us get staffed on fourth-quadrant ( http://michaelochurch.wordpress.com/2013/01/01/fourth-quadrant-work/ http://michaelochurch.wordpress.com/2013/01/01/fourth-quadra... ) maintenance work that's largely evaluative in purpose, while the company decides whether it trusts us enough to give us real work. Of course, the managerial gatekeepers who proctor and grade this years-long dues-paying/testing period use it for hard-core extortion. I think this problem (of long slogs on evaluative make-work, and projects never getting to be finished) might be the visceral appeal of game development. Sure, it's a horrible industry if you look at the conditions, but unlike much of software, you actually finish and ship a product. I'm 29 years old and I'm starting to have the experience of getting genuinely rejected for jobs that a top-talent person of my age should be able to get (and that I would be able to get, with better work experience). This is not a case "they're idiots" rejection (a pathetic defense mechanism) or "lost in the shuffle" bad luck, although that happens too. It's genuine rejection that occurs because the quality of my work experience is mediocre. There are a lot of jobs that I would be able to get at this point, had I not drawn a string of bad bosses and shit projects. Now, some of that's my fault: I should have shown initiative and started open-source hacking five years ago. Some of it is not my fault. If I had landed on a machine learning project when I joined Google, I'd be spending a lot less time ranting on HN and more time building awesome stuff. 4. Literal definition of "professional": earns money. There's probably no better way to be a professional programmer than to build corporate CRUD apps. Looser definition of "professional": someone I would want to march into digital battle with. I would most certainly pick someone who has written many corporate CRUD apps that someone who has recently embraced some sexy new technology from the conference and community du jour. Disagree. The defining trait of a profession is a set of ethics (that one professes) and processes to which one subordinates. For programmers, "don't build logic-bombs and back-doors" would be an obvious first commandment. "Never compromise on quality to gain rapid career progress", i.e. "don't launch and flee", would be a more controversial second one. When you're a professional, there are ethical principles which you have the right and obligation to place above managerial authority. To make sure this works, the profession controls the economy (a controversial process, for sure) in order to make sure you always have work and your boss never has you by the balls. Professionals can't use the "just following orders" defense. If a doctor's boss tells him to kill a patient, insubordination (against that boss, subordinate to the higher authority of the profession) is a requirement. He loses his license and possibly goes to jail if he fails it. We don't have the right to tell our bosses, "I won't do that, because it's unethical". Nor do we have the right to expect our bosses to invest in our careers-- and, most often, they don't. Ergo, I'd say that we're not professionals.
- potatolicious 14y agoI feel that you're over-romanticizing traditional engineering. I'm a mechanical engineer by education (who knows how I ended up here, oops) and went to school with many civil, chemical, and electrical engineers. Their jobs have as much corporate-ism and debilitating big management as ours. Perhaps more, since there's a distinct lack of startups in those arenas. Sure, what they do has a boatload of ethics and standards that apply to it (unlike software, which is still very much fly by the seat of your pants), but they sure as hell don't have a lot of autonomy. Most traditional engineers also answer to managers, and build the equivalent of CRUD apps to pay the bills and get promoted. I suppose by your sentiment no one is a professional.
- codegeek 14y ago"If you answer to managers.." I know you usually have good comments on HN, but is it just me or you really have something against "management". Anyway, the fact is that everyone answers to someone in some ways when it comes to money which we need to make to survive in this world unless you have family inheritance. Having said that, I am not saying that managers are necessarily the best thing in this world but i don't understand how you can get away without answering to someone. Even if you are a superstar entrepreneur who is his own boss, I have one word for you: customers. "people who build rockets do, where attention to code quality is critical " So are you saying that code quality is not critical elsewhere ? I agree in general that many companies have shitty code but there are many places which actually do care about code quality and code reviews are actually important. "build CRUD apps to support their careers rather than your own, then you're not a professional." Just think about what you said here.
- michaelochurch 14y agoI wrote about my views on management, here: http://michaelochurch.wordpress.com/2013/04/30/gervais-macleod-23-managers-mentors-executives-cops-and-thugs/ http://michaelochurch.wordpress.com/2013/04/30/gervais-macle... Essentially, "manager" is a conflation of several corporate needs: (a) mentoring junior hires, (b) protecting the company from bad-faith employees, (c) protecting good employees from bad ones, (d) setting project priorities, and (e) putting a public face on the company (e.g. CEOs). Some of these jobs are more fun than others. There are huge conflicts of interest within what is called a "manager" and ultimately, employees get shafted. Managers ultimately end up as the internal police force, because they're the ones who make firing and promotion decisions. However, there are a huge number of dirty cops. Most of them, in fact, are dirty. There are a few sadists who enjoy using the badge-and-gun just to fuck with people. There are others (much more common) who go full-on extortionist and use their power to build an image of outsized performance so they can hop out of cop work and into an executive or high-level strategic position. Rare is what police are supposed to be: principled public servants. I don't have a problem with police. Society needs them. However, if the police started acting like the mob (with them making most of their income "on the economy") then I would. Corporate management is mostly dirty cops.
- bguthrie 14y agoI worked for one of the places Zed is describing. Like many of Zed's rants, it has a pleasant, self-righteous ring to it, but the problem is misdiagnosed and its solution is no help at all. I'll say no more.
- Shorel 14y agoGoing by definitions, if you get paid for something, then you are a professional. You may not be a real engineer, but a professional you are.
- adregan 14y agoWhat is "the Douchebag Invasion"?
- michaelochurch 14y agoDouchebag Invasion: when we as a tribe lost the high-autonomy blue-sky R&D environment and it became the reality for most of us to answer to clueless douchebags who lack any respect for what we do.
- stcredzero 14y ago> Douchebag Invasion: when we as a tribe lost the high-autonomy blue-sky R&D environment and it became the reality for most of us to answer to clueless douchebags who lack any respect for what we do. This has always been. There is no single Douchebag Invasion. It's just when it hit your particular part of the programming world.