5 ms·
>It would be great if programming were a proper profession, but it isn’t. A profession has a structured model for advancing [...] We need some sort of apprentic
by zeteo 14y ago
>It would be great if programming were a proper profession, but it isn’t. A profession has a structured model for advancing [...] We need some sort of apprenticeship model, and a way to identify masters, both to apprentices and other masters.
Bullshit. It is precisely because programming is not straitjacketed in such medieval rigidities that it can create so much value these days. Forcing today's youngsters, who may be like Gates, Zuckerberg or the Collison brothers, into an X-years long "apprenticeship" program before anyone takes their code seriously is a spectacularly bad idea.
- michaelochurch 14y agoProposed compromise: 1. Anyone can write code. 14 years old? No school? Fine. Doesn't matter. If it's good, people will voluntarily use it. Absolutely anyone can write code, and if it's good, people will use and pay for it. 2. No manager can make me read your code as a requirement of my job unless you've proven (by certification) yourself to be at a level where less than 5% of professional programmers currently are. This would work for me.
- zeteo 14y ago>No manager can make me read your code as a requirement of my job unless you've proven (by certification) yourself to be at a level where less than 5% of professional programmers currently are You mean if you were hired by Facebook in '04 you'd have refused to read their source code?
- michaelochurch 14y agoWell, that certification that I'm talking about doesn't exist right now, so... we kind of have to guess. No one can get away with saying, "I won't read crap code" and remain employed, but that problem is exactly what I'd like to see some professionalism to fix. I am fucking sick of bad code. To answer more directly, I'm not good at picking startups (0 for 2) and I doubt I would have foreseen Facebook's success. I didn't, although maybe if I knew the company better I'd have been more of a believer. My general answer is: No, I wouldn't take a startup job where the bulk of my time would be spent reading other peoples' code, unless the code quality were extremely high.
- kyllo 14y agoI don't think a cert is the answer to your problem. Because then a large % of people would study and pay just to get the cert and continue to write crap code anyway. Meanwhile a certain % of other people who can't/don't want to get the cert will continue writing beautiful code. If you're concerned about filtering out people who write ugly, hard-to-maintain code, how about more portfolio-based hiring? Want a programming job? Show me an impressive piece of source code you've written, and explain what design patterns you employed and how it is an elegant and maintainable solution to the problem it was written to solve.
- randomdata 14y agoNo manager can make you read code as it is. There is said to be an unprecedented shortage of developers. It is easy to walk to another company who has code that aligns with your beliefs. I don't see anything wrong with companies that want to have bad code. They'll probably suffer for it, but that's not your or my problem.
- michaelochurch 14y agoI'm not talking about "me" here, except rhetorically. Yes, I can walk away from bad code (although I might be walking into worse code). I don't think a junior developer in Iowa City can. What I'd like is a world where as few people as possible deal with bad code, and no one is stuck with no other options, because bad code tends to beget more bad code, and because it's wasting time that could be spent writing a bunch of new good code. The evil of bad code isn't that unskillful code exists. The problem is that there are plenty of managers out there who don't know any better and will insist that people use it, and who never learned the processes that lead to good code (most important: keep program size small.) Also, my experience is that over 90% of corporate code is absolutely terrible-- unusably, mind-stoppingly awful. Rolling the dice doesn't have the best odds.
- randomdata 14y ago> Also, my experience is that over 90% of corporate code is absolutely terrible- Which is kind of funny because those are the businesses who rely most heavily on vetting done through colleges and universities. They have, on paper, the very best programers available. I guess that goes to show how poorly credentialing actually works in the real world.
- michaelochurch 14y ago+1. You win this one. At least, we haven't shown that we have the machinery to build a useful credentialing system for software quality. I think the pain of what we do in the software industry, from the low respect to the bad code, goes back to the fact that our work is extremely difficult to measure, although the importance of quality could not be higher. Corporations have traditionally responded with a 3-4 year bug-fixing evaluative spell, but that's now leading to adverse selection because people like us (as you noted) won't stand for it.
- tjr 14y agoIt really strongly depends on what you're writing. There's a world of difference between hacking together a social networking web app and building software for a flight guidance system. Professional accreditation and training may well be wasted on social web app coders, but I sure wouldn't want to fly in an airplane that was controlled by a weekend hacking project written by someone who just learned their first programming language the day before...
- kyllo 14y agoThis. Programming is one of the few fields left where measures of productivity, utility, and value have not yet been fully usurped by the more arbitrary measures of popularity and seniority. You can judge a programmer by the quality and quantity of the product he/she produces, so you don't need to do it by arbitrary social rank. In other professions where an individual's marginal product of labor is much more difficult to measure or is averaged together with that of everyone else in the organization, ranking people based on these extraneous social factors becomes necessary, but with programmers it is unnecessary and even harmful because the incentive structure becomes biased toward factors other than programming productivity.