TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Practicing Programming (2005)

62 pointsby sonabinuover 3 years ago

5 comments

davidruppover 3 years ago
Spoiler alert: This article is from 2005, written by Steve Yegge and typical of his trademark blend of perspicacity and prolixity.<p>At the time, &quot;people with 20 to 30 years of experience&quot; would have started their careers in the mid-70&#x27;s to mid-80&#x27;s, and might well have been entrenched in Cobol, Fortran, mainframes, and the like. As of today, when people would have started in the late-80&#x27;s &#x2F; early-90&#x27;s, it seems much more likely that they would have had opportunities at least for modern web development.<p>I myself started in the late 80&#x27;s, programming IBM&#x2F;370 mainframe assembler for System One, which was Eastern Airlines&#x27; computer reservation system. I have colleagues from my training class who will retire soon, having done nothing but that for their entire careers. I saw -- and rejected -- that possibility for myself, and instead actively sought opportunities to learn new technologies as they came along. I learned Java in 1997, and took a job at iXL, an early Java consultancy in Denver, just in time for the &quot;dot-bomb&quot; of the early 2000&#x27;s. I started paying attention to Ruby in 2005 and worked primarily as a Rails contractor in 2006 - 2007. I started paying attention to Clojure around 2010 and became the first technical hire at a Clojure-based startup in 2011. I currently work as a Senior SDE at Amazon (opinions my own, obvs), having been here for nearly seven years and having written code in Java, Ruby, Scala, Python, etc. for a number of Amazon-scale systems.<p>&quot;It&#x27;s not the years, honey; it&#x27;s the mileage.&quot; -- Indiana Jones
评论 #29694989 未加载
评论 #29693182 未加载
haho6over 3 years ago
He compares programming to the NFL and how practice is needed in both. This is horrible analogy. The NFL specifically sets aside more 80% of its time to practice so that they can play for a total of 20 minutes a week.<p>He then says programmers need to practice on their own time.<p>The analogy falls apart.
评论 #29696560 未加载
cpachover 3 years ago
Past discussion:<p><a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=8864176" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=8864176</a><p><a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=4434991" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=4434991</a><p><a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=2833" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=2833</a>
srvmshrover 3 years ago
&gt; <i>[..] I doubt we or any company is likely to set up organized daily practice for their engineers. In fact I personally don&#x27;t think it should be necessary.</i><p>Yes. Fortunately the only nail hit right on the head. Company is different from varsity. They aren&#x27;t here for your skill development. Companies pay you to work whereas you pay the colleges to work towards your academic development. You are your own responsibility anyway.<p>&gt; <i>[...] look for SDE resumes from people with 20 to 30 years of experience. Well hey looky, they&#x27;re mostly Fortran and Cobol experts, on IBM mainframes, and they&#x27;ve never done any web programming (or in fact anything you&#x27;ve even heard of before.) They don&#x27;t even know Unix, which is only like 100 years old now, in dog years anyway</i>.<p>People with 30 years experience are mostly doing C or C++, and some Java - if and only if they are still contributing. Most good ones are in technology leadership or owning their businesses &amp; consultancies. Some of the ones I know personally (and still employed in dev teams) are extremely talented kernel engineers or project architects running a whole division in FAANGM-ish company. My eldest uncle worked in COBOL. That was late 60s - early 70s. (Still more than 30 years by 2005 timeline). By 2000 nearing his retirement, he was not making cool webapps, but making compilers better. In no way, irrelevant or a archaeological specimen. They were working on different class of problems belonging to different times utilizing their knowledge. It is fair to similarly wonder: &quot;Why wasn&#x27;t Steve Yegge doing anything about AR&#x2F;VR in 2005 instead of writing this post&quot;. You had no idea AR&#x2F;VR will be big 10 years later. By his own argument he would be an archaeological specimen today, unless he is making cool Oculus headsets<p>&gt; <i>Those folks, alas, are obsolete dinosaurs, and their programming knowledge is formally classified under &quot;archaeology&quot;. They never pass our interviews, and they&#x27;re becoming less and less able to find jobs.</i><p>I cannot find a more ridiculous statement in this rant post. Ever wonder why senior developers are paid higher in general than a college grad? Experience. That comes with time &amp; handling scores of problems, over dozens of projects. You pay for their experience which they have accumulated over the years. If a process is filtering out well-rounded engineers, who have seen the contemporary shifts in computing, they aren&#x27;t the ones in the red. The selection process is then flawed in choosing only currently hot skills. What kind of mistakes have such companies made? Wonder no more &amp; read about internet companies that hired hotheaded college dropouts &amp; highschoolers in the dot-com bubble.<p>Parting shots: Solving Leetcode&#x2F;Hackerrank won&#x27;t solve real engineering challenges.
评论 #29692843 未加载
Zababaover 3 years ago
From the article that he quotes at the start:<p>&gt; But it&#x27;s not just team sports. Anywhere there&#x27;s competition, there&#x27;s practice. Musicians, golfers, skiiers, chess players, martial artists -- everyone who practices some difficult art or craft, practices it.<p>&gt; Even where there&#x27;s not overt competition, professionals still study and practice. Doctors and pharmacists have to continue their education throughout their careers. Writers, painters, composers and other artists practice their tools and techniques, and they keep abreast of the trends in their profession.<p>&gt; Virtually all professionals start by attending school to receive education in the theory, history, and practice of their profession. Many do an internship, apprenticeship, or residency as part of their education. In some professions, the education is required, and some even make you pass a test (e.g. the Bar exam, the CPA exams, etc.) in order to be a member of that profession.<p>&gt; I have trouble thinking of any modestly difficult profession in which continuous study and practice aren&#x27;t the norm. Fighter pilots train in simulators before getting into the latest jet. Actors and politicians practice their lines and their smiles. Opera troupes do mock performances before public appearances. Writers, poets, and artists attend workshops, and study the work of the Masters.<p>&gt; Everyone practices -- everyone, that is, except for us. We just grind stuff out, day in, day out. Are you as embarrassed about the state of our profession as I am?<p>This is mixing lots of things together to say &quot;everyone practice, except programmers&quot;, which I think is wrong. First, what is meant by practice? For doctors and pharmacists, it&#x27;s &quot;have to continue their education throughout their careers&quot;. I, and most programmers I know, do this at least every week. Not in a formal way, but it&#x27;s built into my and our workflow. For example, I do a bit of work with JavaScript promises. I struggle a bit, more than I think I should, because my mental model isn&#x27;t good enough. I&#x27;ll spend some time learning more about promises. Another example: someone at work writes some code that accesses a property that might be undefined (still in JS). There&#x27;s a comment on the PR that it might throw an exception (the way it works in many other language). I&#x27;ll take a bit of time to correct that, and point people to documentation (usually MDN) and the Ecmascript standard. Doing this, I familiarize myself a bit more with the standard, and everyone learns something. We even learn a bit about how and where to look for information, which looks like meta-learning to me.<p>Then there&#x27;s another type of practice: &quot;Musicians, golfers, skiiers, chess players, martial artists -- everyone who practices some difficult art or craft, practices it.&quot;, &quot;Fighter pilots train in simulators before getting into the latest jet. Actors and politicians practice their lines and their smiles. Opera troupes do mock performances before public appearances. Writers, poets, and artists attend workshops, and study the work of the Masters.&quot;. That type of practice is close do the idea of &quot;plan to throw one away&quot;, from the Mythical Man Month. The thing here is that there is a big difference between what is considered a &quot;performance&quot; or a &quot;piece&quot; from a programmer and from professions with live performance. When you do a live performance, you have to do it all from the beginning. When you prepare something, you can cut and mix different parts. The original rails presentation is an example of live performance, talks in general are. Programmers often practice their talks so that they will be smooth. Demos are another example of live performance. They&#x27;re often practiced too. But this practice is not the same as a doctor going to a conference to hear about the state of the art on treating X.<p>As for the first line of the essay:<p>&gt; Most programmers have only a vague notion of how competent they are at what they do for a living.<p>That seem to be true for most professions that don&#x27;t involve competition as in sports. In chess you have an elo, in golf you have championships. But who&#x27;s the best singer alive? The best bassist? How good is the drummer from your favorite band? In the top 10%? Top 50%? Top 1%? I have no idea how to evaluate that. How good is your doctor? How would you go about evaluating them? How would they go about evaluating themselves?<p>It&#x27;s also weird that the essay has &quot;This isn&#x27;t just true of programmers, of course.&quot; near the end, only for the other to start with &quot;Back in October I wrote an essay in which I compared programming to other professions. In it, I made the unsubstantiated claim that programming is unusual, in that most programmers don&#x27;t practice their craft -- at least, not in any disciplined or regular way.&quot;. The initial claim of &quot;Most programmers have only a vague notion of how competent they are at what they do for a living.&quot; seem true, but I think it applies to most of the population.