1. 54

  2. 54

    So, now, here’s the question: if you’re picking out a doctor, which one do you want to go to? The one who reads medical journals for fun, hones their craft constantly, and who volunteers at the free clinic sometimes…or the doctor who doesn’t do anything medicine-related after 5?

    Some people really like what they do for a living, and would do it even if they weren’t getting paid. I would venture to guess that those people, having both passion and more hours under their belt, are generally better at the activity in question.

    1. 88

      The one who is rested.

      I’ve been around the block often enough that I am not sure there is much correlation between number of hours someone put in programming and the quality of their output. I think it is far more important how you spend those hours while you are actually doing it.

      1. 27

        I’m not necessarily talking about someone who stays up til 2 every morning. I’m talking about the person who, when they have free time, decides to spend much of it honing their skills.

        1. 12

          Exactly. What’s favoring your statement is simply experience. They’re acquiring more experience. That might make them better at the job.

          Doesn’t necessarily make them the best hire if considering many factors. For instance, the ones coding all the time might be more likely to jump ship than the person that wants work-life balance to spend time with kids.

          1. 10

            What if they spend their time honing their skills at work?

            1. 9

              I don’t know about the realities of the medical profession so I can’t extend the metaphor, but in the tech industry as it is, the amount of experience someone has programming and their value to a company have nothing to do with each other after a point. Learning new skills and keeping up with the industry is good and necessary of course, which is why many professions mandate it for certification (law comes to mind). I’d love to see part of each work month go towards time that can be spent doing just that.

              But to be honest? I don’t care if my doctor spends 2 hours a night researching new diseases unless that’s what I’m going to them for. I care about the quality of care, bedside manner, etc. Not sure that’s correlated to hours worked.

              1. 4

                If you’re treating a common cold, it’s likely that the extra hours sunk into study don’t affect the outcomes. You might just end up with a very unrelatable doctor, which could affect bedside manners, patient trust, and compliance. It really depends on the problem space - something that I would venture is true for programmers, too.

                1. 3

                  Why do you assume that reading medical journals out of interest leads to unrelatability?

                  1. 3

                    How many patients read medical journals? It’s more likely that someone is more relatable to the average person if they do things that an average person also does.

                    1. 5

                      How many average people go to medical school? :)

                      1. 0

                        Doctors are people, even if slightly superior in a few ways. They should be doing roughly the same things as people do.

                        1. 2

                          even if slightly superior in a few ways


                          1. 1

                            And reading interesting things isn’t something that people do?

                  2. 2

                    I don’t really care what my doctor does in her free time because in my experience this has no bearing on the care I receive.

                    1. 5

                      How can you rely on your experience in this area? How many doctors do you know well enough to know what they do in their spare time and how effective they are as a doctor?

                      For me, that’s really small and I don’t think it’s useful enough to generalize or predict anything.

                      Maybe your experience is really different. If so, you may want to describe it so your statement has credibility and usefulness.

                      1. 6

                        If my anecdote is too small to predict anything than why is the assumption implicit in the generalization at all reliable for you? Why the double standard? I personally just don’t care or worry about it. Same is true of the people who write my software. If the software’s good, it’s good. I could care less if in your free time you prefer doing drugs and making wicker baskets to having arguments on hacker news and writing IRC bots. And vise versa, if your software isn’t good, that’s that, and I don’t start asking if the person writing it just isn’t dedicated enough.

                        1. 1

                          I think for me, it’s the different between a logical thought experiment about general guesses vs a real statement of value.

                          I like pondering hypotheticals but would have reacted poorly if GP had said “doctors who volunteer are better” without rationale or reasoning. I like an invitation to provide evidence or data but get put off by a likely baseless statement (“My experience is that all doctors are secretly purple inside their skin even though I only know two doctors and have never looked under their skin”).

                          1. 0

                            My anecdote is at least based in reality. I can’t say the same for the generalization, whose assumption lacks evidence of any sort.

                  3. 9

                    The one who is rested.

                    This is misdirection and does not address the original comment.

                    As a separate point, it is of course valid and true.

                    But there is an implied “all others things being equal” in the original claim. So now…

                    [Assuming they’re both equally rested], if you’re picking out a doctor, which one do you want to go to? The one who reads medical journals for fun, hones their craft constantly, ….

                    That is the question you’re on the hook for answering. Imo the answer is clear.

                    1. 1

                      I don’t believe that finishing at 5pm means you don’t “reads medical journals for fun, hones their craft constantly”. It just means you are not doing it after 5pm. My point is that how much effort someone puts into it does not really tell me anything by itself because I cannot tell what kind of effort it is. I’ve seen enough passionate idiots and occasionally was one, who constantly busied themselves with their craft without advancing much because it really matters what and how you do it. It is very easy to become stupider by not resting enough and not giving time to your mind to process everything.

                      So if the only thing I know is that one doctor is very busy and the other one isn’t, I WILL go with the rested one because if nothing else I expect them to make fewer errors.

                      P.S: I know doctors were here only for illustration purposes, but as it happens, I actually just recently experienced a local medical expert screwing up my mother’s examination exactly because he is too busy.

                      1. -1

                        The answer to that question is clear to everybody. I think it’s fine to treat it as a rhetorical question (therefore not answer it) and respond by (implicitly) pointing out that it’s unlikely that both are equally rested.

                      2. 5

                        The one who is rested and loves medicine. These aren’t exclusive options.

                        Here’s my preference:

                        1. rested and loves medicine
                        2. rested or loves medicine
                        3. neutral
                        4. tired
                        5. hates medicine

                        Of course there are many more factors that may be more important so my rank assumes everything else being equal.

                        1. 8

                          I work on multiple side projects and get more than enough sleep. If doing things outside of work cuts into your sleep, perhaps the problem is your job.

                          1. 11

                            Do you have children? In my experience they’re a great time sink…

                            1. 7

                              I don’t. Many friends do. But I feel the same way, at least beyond infancy: If your work forces you to choose between sleeping and spending time with your children, maybe the problem is your job.

                              It should be possible to work, do things that you care about, and be well rested. The choice at the start of this thread should be a false one at a healthy workplace.

                              1. 4

                                But, you see, even if you have a good job, you still have to choose between children and side projects…

                                1. 6

                                  That’s not strictly true. Source: got 4 kids, soon 5.

                          2. 1

                            Ironically doctors work long shifts and crazy hours… always felt kinda bizarre to me, and you wonder if you’re really receiving the best care. But that’s the way it is.

                          3. 13

                            Perhaps it’s true that a programmer who codes in their spare time will be better than one who doesn’t. Let’s assume that’s true. It doesn’t answer whether it’s “OK” to only code at work.

                            Is it OK to say “I could be a better programmer if I coded 4 more hours a week, but then I’d be a worse parent, so I won’t”? Is it OK to choose to spend those hours volunteering, playing music, teaching English, being a foster parent, caring for elderly relatives, hiking, or whatever you think is fun or important?

                            Yes, absolutely it’s OK. And if anyone tells you it isn’t, they probably don’t have your best interests in mind.

                            1. 5

                              I think I didn’t phrase my argument well.

                              If someone codes/does whatever in their spare time – that is, in the time that is not dedicated to parenting or family obligations or whatever – then I would argue that they will often be better at that activity.

                              In other words “if, by choice, your casual hobby is also what you do at work, you will often be better at your job than someone who isn’t as interested.”

                              1. 2

                                You forget that programming is a social activity, where code must almost always be reviewed and shared as a responsibility. And you forget that those who do nothing but spend all their time at their desk hacking at who cares what are usually not especially worldly and pleasant. Those who instead do things like

                                • Go outside
                                • Spend time with other people
                                • Experience their life

                                will often, for some reason, become more rounded individuals, who will usually handle the social element of coding better; and we all know that social element is a big one.

                              2. 7

                                It’s absolutely ok to be competent but not outstanding. But if you look for outstanding people in their fields, I strongly you will find that they don’t settle for doing just what is required by their jobs.

                                Are you looking for competence or excellence?

                                1. 3

                                  Are you looking for competence or excellence?

                                  I think in the context of this conversation the question is “do you aspire to be competent or excellent?”

                                  Both are valid aspirations when you consider the trade offs with the other parts of your life. And it’s fine to make different choices at different stages of your life.

                                  Are you looking for competence or excellence?

                                  Circling back, I think one reason I react strongly here is that my first full-time development job was at a place with a culture of constant overtime. They had a local reputation for burning people out. And to this day, their job postings ask for “passionate” developers - a code word, in their case, for “willing to be exploited”.

                                  So I’m resistant to a programmer culture that says you have to work all the time or you’re not good. I’ve been avoiding that mentality at every job since then (10 years) and am doing fine.

                                  Finally, I think become excellent during work hours is an underrated strategy. You probably work 40 hours a week. I seriously doubt you can spend 40 additional hours of free time programming. So a developer who spends the work week building interesting stuff with smart people, then chills out, is going to grow faster than one who spends the work week doing boring stuff and attending meetings, then crams in 4 extra hours of fun coding.

                                  1. 3

                                    IMO excellence is mostly diminished by the pace of work, not the degree of experience. less experienced coders/doctors may take more time to do a thing properly, and they should have the time to do that. they should not be expected to learn things off the job so they can churn out more commits or patients.

                                    1. 2

                                      I’m not sure I understand the response. First: Why would you expect world class work from someone less experienced in any circumstances?

                                      Second: I think you misunderstood the argument. If someone is self motivated enough to choose to spend time playing with code outside of work, I would expect that to correlate strongly with excellence.

                                      Most jobs don’t need excellence, just competence.

                                      1. 1

                                        yeah i think i misunderstood: you were talking about the excellence of the worker, i was talking about the excellence of the product.

                                2. 27

                                  I would venture to guess that those people, having both passion and more hours under their belt, are generally better at the activity in question.

                                  I’m actually not so sure about this.

                                  First, I’ve seen plenty of “passionate” people with many “hours under their belt” who were terrible people to work with. Some (not all) are extremely opinionated, arrogant, blind to the possibility there are other ways than $my_favourite_way, and generally just complete twats and impossible to work with.

                                  Second, I’ve worked with plenty of “I program only at my job”-programmers who are actually pretty good at their jobs.

                                  Most people would like to be better at their jobs, but not uses the same approach. Focusing just on “has open source contributions” or “spends evenings programming in $hip_new_language” seems rather short-sighted to me. In spite of having plenty of OSS contributions, I’m not so sure it actually made me a significantly better programmer (but perhaps it did? Hard to tell for sure).

                                  Either way, I think things are a lot more nuanced than you comment.

                                  1. 3

                                    Indeed not all practice is productive. Some of the worst artists I’ve ever seen have put in an ungodly amount of hours practicing with no mind in their head.

                                    1. 2

                                      The problem here is that I believe to be able to generate quality hours of practise, you still need an accumulation of many hours.

                                      Now, it’s possible to be stuck in a “spending many hours mindlessly with no good progress” rut - entirely possible. Honest self-evaluation, modifying one’s goals, fixing one’s learning methods, are all difficult challenges. But who can go from beginner/amateur to “efficient, high-quality practise” without many, many hours of junk practise? You need repetitions to even be able to recognize the difference between low quality and high quality practise.

                                      I can do certain activities in moderation now - I know that 2 effective sessions where I apply a strong effort serves me more than phoning it in 14 times a week, for example. But I needed to go beyond moderation, into obsession, to learn that.

                                      The strange thing is that I’m still not sure whether this is universal. People who are competent don’t really like admitting, or selectively forget their history of obsession - or they truly never had one. Can one get good something by having their very first practise sessions be high quality, and sustain that indefinitely? How can you start off spending high quality practise time if you’re new to something?

                                    2. 4

                                      First, I’ve seen plenty of “passionate” people with many “hours under their belt” who were terrible people to work with.

                                      Sure, but I have seen people who punch out on time that were terrible to work with. Sturgeons law applies here.

                                      1. 2

                                        The question is if there is a correlation or even causation between after-work-work and skill or productivity. Lorddimwit is essentially asking if you believe that there is a correlation.

                                      2. 8

                                        I had a doctor that would do things like volunteer for Doctors without Borders. You could get him on the phone for a quick sense of if it’s serious enough to come in. But you know what, he is so good he isn’t taking patients and likely won’t be for a long time. He doesn’t want to rushed, hurried, or be unable to give each patient the time and attention they deserve.

                                        It’s important not do more than you have time to do. Burnout and spreading yourself too thin is how mistakes and lower quality care happens.

                                        1. 4

                                          You’re missing the point. What your doctor does on the weekend is none of your business, and you have no right to know what that even is, let along use it to help your doctor-shopping.

                                          1. 2

                                            I always hire the one with the home lab, the one with the open source hobby, etc.

                                            1. 2

                                              If we were to do a more fair analogy here, it would be.

                                              If you’re picking out a doctor to take care of a sick child, which one do you want to go to? The one who reads about cutting edge research and will try to test the child over all the sickness du jour that he saw on medical journals so he can brag with his fellow doctors in his doctor meet-ups about all the cool stuff he does OR the kind family doctor you know and love and treats your kid well.

                                              When we talk about “coding outside of work” we’re not usually talking about people who reads articles every now and then, we’re talking about the typical tech obsessed developer, which doesn’t correlate with a higher productivity developer from a business standpoint unless yous business is to write prototypes in new languages.

                                              Besides, for more noble that volunteering for a free clinic sometimes might be, this won’t give a real cutting edge for the professional, they will spend most of the time treating the same diseases they would treat on their normal working hours.

                                              LASTLY a dr. job is VERY different from an engineer job, and if an engineer isn’t already learning and honing their craft at work, they have a shitty job and should quit.

                                              1. 2

                                                There’s a false implication that what a software engineer does is as difficult as what a doctor does which is quite far from the truth.

                                                Becoming a doctor requires a doctorates degree whereas some software engineers don’t have any degree at all. There’s a much higher bar for who becomes a doctor, and the work they do impacts other humans in more profound ways more directly.

                                                1. 7

                                                  There’s a much higher bar for who becomes a doctor

                                                  How much of this is because of professional license requirements being used to deflate the number of doctors and keep salaries high?

                                                  While I don’t disagree that doctors require advanced education, it seems like a streak of protectionism runs through the field.

                                                  1. 1

                                                    Not sure TBH. What I can say is that my A&P class was harder than anything I’ve ever done in Tech. And that’s year 1 or 2 for a med student.

                                                  2. 1

                                                    Becoming a doctor requires a doctorates degree

                                                    That’s not what a doctorate means at all. A doctorate is a research degree. Becoming a medical doctor requires an MB/BCh (Bachelor of Medicine/Bachelor of Surgery) or equivalent, not a doctoral degree.

                                                    1. 1

                                                      In America you need a Professional Doctorates in Medicine. You’re right though that it is not the same thing a Research Doctorate. Also TIL it’s a Bachelor’s of Medicine or a Bachelor’s of Surgery in (seemingly most) other countries.

                                                      1. 2

                                                        Oh really? That’s so weird, I never knew that. But I guess it fits with America also requiring a professional doctorate to study law as well. America seems (from my very non-American perspective) to have a bit of an issue with degree inflation.

                                                        1. 1

                                                          School in America is basically a scam you’re required to participate in if you want money, so you’re not wrong :)

                                                  3. 1

                                                    Why would I ‘pick out’ a doctor? I go to my local GP and if they refer me to a specialist I’ll go to the specialist they refer me to.

                                                    1. 1

                                                      Well, programming is not brain surgery. I’d argue that programming is more like tying shoelaces.

                                                      1. 1

                                                        This question might be a wrong one to ask as the comparison to software engineering.

                                                        First, you don’t know which doctors read medical journals for fun, nor hone their craft constantly. If you would ask them that, remember what Dr House said: “All people lie” :) The effect you’re trying to measure (passion and more hours under their belt) is something observable (at least for doctors) through recommendation – most of the people would visit a doctor they got good recommendations for.

                                                        Second, medical profession is a lone wolf profession, which in SE translates to a “hero developer” mentality, something that is quite devastating. We work in teams (at least, huge majority of software engineers), and the major strength doesn’t come from a single persons excellence, but from the ability to work in a team, offer understanding, and deliver maintainable system.

                                                        Finally, the question is posed in a black-white fashion, assuming the situation is either/or. I agree that passion and experience are important factors for excellence, but it is not an implication that after work time spent on coding means more passion or experience, as there are so many other factors that influence our daily routines and our wants (kids, taking care of ill family members, doing community work, having a second job, …).

                                                        1. 1

                                                          The doctor question actually is pretty relevant. One would think mortality rates would be lower for experienced doctors, but the opposite is true: you’re better off (statistically) going to a younger doctor, because even those older doctors who try to keep up with the literature do not manage to update their understanding of the whole of medicine. Young doctors just recently had about a decade of the collectively-understood current best understanding of medicine crammed into their head – plus some more about their particular specialty – and they are generally both up to date and well-balanced. Once out of school, doctors get more selective about their favorite subjects, and the subjects they don’t like so much become blind spots.

                                                          Software developers who study on their own rarely have a well-rounded view of the domain, but neither do devs who just graduated from school. Where I went, we at least had required courses in project management, digital logic, and a handful of distinct languages (so somebody with a degree could draw out a gate-wise 4-bit CPU with microcode and write a straightforward compiler for it), but our language survey course (despite best efforts) was sort of a joke because it was only a single semester, and students graduated writing passable code in only java, c, and sql. A lot of schools stick closer to the standardized curriculum and are basically just java bootcamps, despite being regular degree programs at ordinary liberal arts universities. Self-study, if done well, can fill in some of the gaps left by necessity in a four year curriculum.

                                                          1. 1

                                                            Experienced surgeons get the more difficult cases, which would also explain worse survival stats.

                                                            1. 1

                                                              I had the impression that this particular statistic was about GPs but I might be misremembering. (I can’t even remember where I heard it, so it might even have been debunked!)

                                                              1. 1

                                                                For GPs it does sound plausible; outside hospitals, most work long hours without a second opinion to keep their mind straight. That’s a hard situation to maintain skills in.

                                                          2. 1

                                                            Hmm all else being equal the one who has more experience. However in practice all else is not equal…

                                                            1. 0

                                                              And experience in what? The doctor who explains what is happening in terms that I, a layperson, can understand, is far more valuable to me than someone who writes me a prescription and dismisses me, regardless of how many studies they’ve read or even conducted.

                                                          3. 18

                                                            In short, it is perfectly OK to have a life outside of work.

                                                            If I believed a lot of Linked In posts, I’m supposed to have at least two different side hustles and make up for my lack of personal life with the greatness of my company’s work culture.

                                                            People often feel peer pressure to code outside of hours, to stay competitive and to be the best

                                                            The typical developer is being crushed by a thousand things during the workday which kill their productivity. Professional software development became so ineffectual due to dithering management who can’t make product decisions, ridiculous methodologies, knowledge loss from average employee turnovers of 2.5 years, and myopic approaches to chase technological “flavors of the month” with poor tooling that businesses no longer trusts what people learn and can do during the work day.

                                                            1. 8

                                                              the crux is that workers are competing with each other for the approval of an ineffective management structure. a blog post certainly isn’t enough to overcome that. we need to develop solidarity between workers and organizations to create a hiring process that doesn’t demand unpaid labor, and to give workers a say in management.

                                                              1. 4

                                                                Management knows corporate software development is crumbling in general and so pushes recruiters to emphasize side project work, and workers are desperate to stay relevant and (older folks especially) employed. The real solution to improving software long term is minimizing hiring by reducing turnover, which requires companies to pay raises to keep institutional knowledge and training and mentoring developers in-house.

                                                                Software is In one of the most ageist industries–it constantly emphasizes hiring young cheap disposable unmentored and inexperienced 20-somethings to throw at complex problems and wonders why software quality is melting.

                                                                1. 0

                                                                  The real solution to improving software long term is minimizing hiring by reducing turnover, which requires companies to pay raises to keep institutional knowledge and training and mentoring developers in-house.

                                                                  yeah that makes sense, and there is the question of how to make that happen, which would require some collective action by the workers IMO.

                                                              2. 3

                                                                The typical developer is being crushed by a thousand things during the workday which kill their productivity.

                                                                I feel like that is the main reason I like to program outside of work: to get a sense of freedom and efficacy. It never seems like I end up working on the things that I want to during my work hours.

                                                              3. 15

                                                                I’m a bit annoyed that the article is suggesting that if you do code outside of work, you don’t have a life?

                                                                But otherwise, it seems like a truism. Just because someone codes in their free time, doesn’t mean they are good at it, that they have the experiences for whatever they have to do professionally, or even if, that this enthusiasm if perfectly transferable to whatever their job ends up being.

                                                                1. 10

                                                                  This is the type of article that gets responses from people supporting or denying it based on which camp they are in.

                                                                  There are happy exceptions to both camps. It probably doesn’t matter all that much in the end😄

                                                                  1. 6

                                                                    We learn through pressure, stress. People who learn a lot tend to exert self-pressure on themselves for various reasons, sometimes good, sometimes bad. But there’s always some form of stress associated with learning, whether it’s a baby trying to communicate that it’s hungry or a neurosurgeon trying to perfect a new technique so he will be respected by his peers.

                                                                    So really in any career there’s only two questions. One, are you continuing to learn new things? Two, if so, what and why?

                                                                    We have computer science figured out. That is, programming in a computer language is a skill you can learn and walk away from, using it the rest of your life. We do not have making technology for others figured out at all. What makes a good team, what makes a good working environment, what kinds of things work well under which conditions and what do not. That means you can be continually learning these things for the rest of your life.

                                                                    Since it’s unsolved, it also means there are no right or wrong things to learn.

                                                                    Having a life should come first, above working, above coding, above all else. But having a life should have some form of learning involved with it. People who are professionally curious tend to continue to learn in various fashions and places, using what they learn in trying new things at work. If you’ve got 14 side hustles and are putting in 60 hours at work a week simply because it’s what you think you should be doing, you’re probably more part of the problem than part of the solution. If, on the other hand, you’re in the same spot for five years doing the same things and haven’t grown, you’re also part of the problem. It’s more complicated than that.

                                                                    1. 6

                                                                      It’s perfectly reasonable for anyone to punch in, do work, and go do other things. It’s also perfectly reasonable for some people to form a band that practises only at specific times.

                                                                      It’s also perfectly reasonable for some people to only want a drummer for their band who is as obsessed about music as they are. So if they jam all the time, hang out all the time, and play every gig they can, and they want a drummer like that, they have a right to self-select such a drummer.

                                                                      Honestly, none of this is a real problem, people easily self-sort into these groups. You have the guys who like living the Masters of Doom life and they enjoy working with other characters like them and you have the people working the 9-5 life and they prefer working with other characters like them.

                                                                      It’s easy enough to just find your group. So there’s no reason to go to the other clubhouse and ask them to do things the way you want them.

                                                                      1. 4

                                                                        This is true, however; I think these kind of posts need to come with a warning that you still need to invest in professional development. Some workplaces are structured such that you can spend a little time every day learning skills, techniques, or information that would be equally applicable to another job. Some workplaces don’t give time for this, especially if you are working at a large company with a proprietary ecosystem.

                                                                        At the end of the day individual developers are responsible for their own careers. I’ve meet plenty of ex-software engineers who coasted for 5-10 years only to be laid-off and realize they didn’t have marketable skills.

                                                                        1. 4

                                                                          I allocate time to learn new technologies–on the job. I haven’t contributed to open source, but in my experience hiring hasn’t relied on looking at what open source work I’ve done/not done. Hiring wants to know what kind of projects I’ve built on the job and whether or not there is a progression of taking on (and succeeding at) more complex projects. I spend my free time relaxing and recovering from work. So far no complaints.

                                                                          I also wonder if this is a bit of a split between the Javascript/web dev/dev ops/mobile development and other types of programming? For example, I haven’t encountered this aggressive push to do open source on the side in embedded software, where hardware costs can quickly outpace the hobbyist. And certainly the explosion of open source Javascript frameworks and node packages seems to point at this hyper competitiveness being focused on that arena, where there are more developers competing against each other for work.

                                                                          1. 2

                                                                            I allocate time to learn new technologies–on the job.

                                                                            Is this just something you personally work on over the course of a regular workday, or do you have/negotiate any specific “20% time” with your manager?

                                                                            I’ve always thought of having that conversation with my manager - several hours a week where I get to do whatever I want. Otherwise my learning ends up feeling like skunkworks.

                                                                            1. 4

                                                                              Honestly, even at places that “support” individual development, I have rarely seen people able to negotiate learning time successfully. There’s often a lipservice yes, but the expectation that project X will still be done on Friday, regardless of you spending Thursday learning new stuff. I’ve met maybe two such unicorn managers that actually allow the time and don’t book over it.

                                                                              What does work for me is adding research and learning time into my estimates on how long it will take to do stuff. Corporate, above all else, cares about good estimates so they can actually plan business launches. The dev that adds 4 hours of learning time into their sprint but finishes their tasks on time is seen as more competent than the dev that doesn’t and misses whatever they committed to. And the first dev is continually adding value to themselves, while the second has to work outside of working hours to get the same benefit.

                                                                              • Contrived examples are contrived, but it’s held up for my experience.
                                                                              1. 3

                                                                                I do this too - I like to prototype my new projects with technology I’m learning and experimenting with, then implement with the standard approach.

                                                                                I get to learn new things, map out the problem space a bit better, and with luck I get ideas around solving the problem.

                                                                                And worse case I just throw away my throwaway prototype, oh well!

                                                                          2. 3

                                                                            I’ve been saying this for years! I remember when it was a small group of really excited people did code in their spare time (it was a larger lift back then) and others had different hobbies.

                                                                            Everyone did fine, and often those people who took breaks did better at work because they had time to retain what they learned, and also had ways to relate to non-technical people (a thing you frequently need to do as you level up) or even network internally and externally with other tech. people to learn and improve.

                                                                            1. 2

                                                                              completely agreed, coding in spare time and being good at writing code are orthogonal properties (you can do one without getting any close to the other).

                                                                            2. 2

                                                                              It seems to me like people want a bulleted list of things they need to do to become something. Whether it’s getting a promotion, learning a new thing, being better at work, or even other things like how to arrange their living room. So we get really highly opinionated blog entries about what you MUST do. Then people try to follow it and realize there isn’t a one-size-fits-all solution for .. really anything.

                                                                              Maybe I’m jaded after doing this professionally for nearly 20 years, but when I hack around outside of work, it’s purely for my own entertainment. I don’t think it is doing a ton to help me learn new skills. Most of that comes on the clock, and I challenge myself to keep learning things while at work rather than spending my own “free time” on work-related stuff. I don’t think it makes me better or worse than people who do it other ways.

                                                                              1. 2

                                                                                The world view that coding on the job is what constitutes “work” is just wrong for a lot of us. Work is everything we do on the job that’s not coding.

                                                                                1. 2

                                                                                  Bad article, good learnings.

                                                                                  1. 2

                                                                                    It’s OK not to do unpaid overtime, but if your only experience with working on complex projects is during work time then you will never become a competent developer. You can’t just do a four year degree and come out ready for an entry level position, either.

                                                                                    This doesn’t matter much if your aim is to get a job. Lots of incompetent developers stay employed and make lots of money in exchange for making life harder for both coworkers and end users. But if your goal is to write good code, experience matters a lot (although you may not be allowed to write good code for your day job).

                                                                                    It’s a lot easier to get the kind of experience necessary to be a good developer before you get employed than during your employment. When you’re not on the clock, it’s possible to justify learning things the hard way – using the wrong tool for the job (which teaches you a lot about both the tool and the job), biting off more than you can chew, diving deep into complex topics, and perfecting and polishing small projects. None of these things are a good use of an employer’s time, even though they are the most time-efficient ways to learn certain skills (and possibly the only way to learn certain skills), because an employer benefits almost as much from mediocre code than from good code in most cases, and can externalize all sorts of costs more easily than they can externalize overtime hours. As hard as your schooling may feel while you’re doing it, you nevertheless have many times more free time during it than you will when working full-time (and when you are young, you also generally have more energy and more tolerance for long hours and all-nighters).

                                                                                    Again, being a good developer doesn’t make you a good hire because writing good code is less important than other factors in a business, and being a good hire is also very different from being hireable (which is about looking like a good hire instead of being a good hire). Being a good developer won’t make you money in of itself, especially when it comes to hard-to-quantify skills. Being a good developer will only please you & possibly your other developer friends. If you don’t value that as its own end, then becoming a good developer isn’t worthwhile.

                                                                                    1. 1

                                                                                      This is just nonsense. Professional programming is not an artform. It’s not something that requires ‘passion’ or ‘talent’. It’s just work. You can learn how to do it perfectly competently through a combination of fundamental knowledge (from a degree or otherwise) and on-the-job training.

                                                                                      Of course experience is required. That’s true in all professions. Lawyers at big commercial law firms don’t immediately start working with clients when they’re hired. They are hired from university where they’ve learnt the fundamental principles of law (how to read and interpret case law, how to read and interpret statute law, important legal precedents, the principles of criminal, commercial, contract, tort and land law, etc.). But they learn on the job how to deal with clients, file documents with the courts, stay up to date with changes to the law, etc.

                                                                                      The same is (or should be) true of programmers. You learn the fundamental principles of computer science at university, much like an engineer learns physics. You learn more practical programming principles too, of course, just like an engineer learns engineering. But you aren’t expected to leave university and immediately be a productive professional programmer immediately any more than you’d give a graduate civil engineer with 1 year PQE the job of overseeing the design of a bridge.

                                                                                      By no means does any of that mean you should be learning this shit in your free time.

                                                                                      The most important point you’ve made that is wrong is this one:

                                                                                      None of these things are a good use of an employer’s time

                                                                                      Training is absolutely the responsibility of employers, and when programming is properly professionalised that will be one of the first things that is established and formalised.

                                                                                      1. 1

                                                                                        Programming is just work, sure. But it’s complex work, and it takes more than four years of serious experience before an employee isn’t a liability at the entry level. We get away with four year degree programs for software engineers only because good developers usually have been programming for six or eight years before they even get to university. An eight year degree program for software engineers, along with a functional professional society like other engineering professions have, would close this gap.

                                                                                        The kind of training that I’m emphasizing the importance of here (the kind that people who go into programming for the money don’t tend to get because they haven’t put themselves into the position of doing things that are obviously-too-hard) is the kind of training that doctors get during internship years: a direct collision with the parts of the job a more experienced professional will know how to avoid, with just enough structure to minimize the ramifications of screw-ups. Folks who start coding at age ten end up getting this kind of training: in the absence of teachers, they constantly run into problems they aren’t qualified to solve, and get used to ‘doing the impossible’.

                                                                                        Doing the impossible on a deadline is sometimes necessary but it is never something that a competent manager will force upon a junior employee on purpose. Developers who don’t learn how to jump into projects that they are completely unqualified for will have a hard time becoming well-rounded because incremental learning doesn’t work very well across domains. Developers who learn incrementally in this way end up sticking to the happy path (where there is clear documentation and prior art) and cannot properly imagine or deal with the mangled nastiness in the dark corners of every environment. But, dealing with the dark corners is exactly the most vital part of development, and those who can’t do it are at best code monkeys.

                                                                                        Occasionally, due to mistakes, mismanagement, lack of manpower, or strange declarations from on high about tech stacks, unprepared rookies will be sent into the kind of trial-by-fire that results in an ability to deal with truly nasty code and quickly understand truly tangled undocumented behaviors. But self-directed learners throw themselves into labyrinths all the time, and anybody who started coding early is liable to already have these skills. Meanwhile, universities are limited in how much they can train students in this (you can’t have a required class where you expect 90% of students to fail every semester & retake it), and because the results of this kind of training cannot be made truly production-grade and must be thrown away or substantially rewritten, it’s cheaper for businesspeople to hire self-directed learners (or simply stay on the happy path and externalize the cost of failures on the fringes).

                                                                                        1. 1

                                                                                          An eight year degree program for software engineers…

                                                                                          …would be a ridiculous waste of money. Programming is not hard at all. It requires experience like literally every skill.

                                                                                          University isn’t a training college for the shitty tech industry because the tech industry is too lazy to train people on the job.

                                                                                          1. 2

                                                                                            The world we live in is the one where we let code monkeys with bachelors degrees who barely know one language & have never encountered a difficult programming problem make important technical decisions – a world where most developers, regardless of their level of experience, spend most of their time dealing with the unnecessary ramifications of obvious mistakes made by other developers, locked into broken ecosystems because inexperienced programmers outnumber and outvote experienced ones & force potentially-valuable projects into the tar-pit of hype cycles around ‘new’ ideas that were done better sixty years ago. You might find that situation acceptable, but I don’t.

                                                                                            Employers certainly won’t foot the bill for making their employees competent, because their responsibility is to short-term profit, and it is almost always more profitable in the short term to make up for bad software with good advertising.

                                                                                            If we raised the bar for hiring and started considering only folks with masters degrees for entry level software engineering positions (as is common in many other professionalized industries), we could get twice as much done with a quarter of the number of software engineers and it’d be more reliable too. The cheap end of software engineering labor isn’t cheap enough to justify continuing to hire them for work that ought to be obviated by better design and the occasional piece of well-placed automation – and it never will be, because the glut of software engineers is the direct result of absurdly inflated wages.

                                                                                            Of course, no single organization will start that trend (and, being allergic to unionization in this industry, the workers can’t force any kind of minimum competence constraint on management either). We’re all on our own. HR can’t determine who’s capable of doing the work, and technical interviewers are only ever given folks who have passed the initial checks (who aren’t really qualified either – but you need the manpower, right? So you hire them, and then you carry them for years until they quit & go drag down a different company.)

                                                                                            So all we can do is ask the question: knowing that it doesn’t impact my career at all, do I choose to be good at my job?

                                                                                            Plenty of people will say “no”, because it’s not a good trade off in a material sense. It’ll take you years, and your employer won’t let you do it during work hours (during which you’re supposed to be performing whatever kind of glorified data entry work has been deemed least likely to cause the senior devs in your department to develop new heart conditions), and it will make your life worse in some ways (you will suddenly have strong opinions about technologies that you previously would have passively accepted working with, and if you voice those opinions, even if you are right and even if you are polite, you will get a reputation for being a troublemaker).

                                                                                            In the long run, I have more respect for the people who say “yes”, because sometimes what’s good for your paycheck is bad for the whole world.

                                                                                            Like – we have webapps now. A lot of them. Some popular applications exist only as webapps. There’s a generation of developers who think this is normal and OK. They don’t know that moore’s law is over. They think that cycles and bytes are going to continue to get cheaper at an accelerating rate forever & that the bloated thing that barely runs on their brand new workstation will be fast and smooth on a customer’s mid-range desktop in six months. But the customer’s desktop is actually never going to catch up with their workstation, and the software will never be fast unless they learn to optimize. It would have been easier for them if they had considered this from the beginning – if they hadn’t chosen a set of dependencies that barely fit in ram and perform network round trips on every redraw. It’s easier to write something with a sensible design than to maintain and optimize a kludge. But corporate isn’t going to let them throw away that unusable code without a fight, because three hundred engineer hours went into that O(n^3) list traversal and the three low bits of the CSS color setting of the tooltip. So the bad software gets shipped, and it competes with equally bad software, and the good software gets no PR so everybody just thinks the bad software is normal. Meanwhile, the wasted electricity from running the bad software is responsible for some entire Cretaceous forest worth of coal going into the atmosphere & nobody actually benefited from it or even had a good time.

                                                                                            1. 2

                                                                                              If you let ‘code monkeys’ make important technical decisions then that’s your choice. Nobody is forcing you to do so.

                                                                                              Decent employers that care about long-term sustainability absolutely do train their employees. Maybe that’s not true in Silicon Valley but for all the hype it gets online, Silicon Valley is an absolutely tiny proportion of the global technology industry.

                                                                                              It’s definitely not common in other professionalised industries to hire only people with postgraduate degrees. Lawyers only need an LLB. Engineers only need a BE. Accountants only need a BCom. They all have professionals they need to do of course, but professionals are a far cry from a masters degree. Expecting people to write a masters thesis to become an entry level application developer is pretty ridiculous.

                                                                                              Web apps aren’t a bad thing. What’s bad is web apps that have no reason to be web apps. Web apps are certainly a much better idea than writing the same very simple program three or four different times for many different platforms. They’re not a better idea when a simple website without Javascript (or with totally optional Javascript) will do fine.