1. 2

    https://teachyourselfcs.com/

    Found this site some time ago. It can be helpful for you.

    1. 6

      Not sure why this would be their first port of call when it essentially covers what they’ve just studied in their degree.

      1. 1

        Studying it once isn’t enough to act natural when pretending you didn’t memorize your whiteboard questions. Gotta hit that leetcode.com too.

        1. 2

          Cheers you’ve just reminded me why I have no inclination to throw myself into the big tech meat grinder when I graduate.

          1. 2

            OK, upon hearing you haven’t graduated yet, I’ll amend my first statement.

            I may be exaggerating. I’m a person who has A) done (and failed) at least 50 leetcode-style whiteboard interviews, B) had (so far in ~7 years) rewarding jobs without leetcode interviews, where I had good coworkers and learned lots.

            Maybe by the 20th time I had to draw a graph or binary tree in a Google doc (like actually typing out symbols like A—–B—–C to draw edges and vertices) to answer a network flow question in 30 min over a scratchy phone line while “vocalizing my thought process”, it got pretty old.

            I know a common feel-good statement around leetcode is that you’ll only get them when you’re trying to get into the best of the best. That’s a joke too, leetcode will surprise you anywhere and everywhere. I’ve had the most absurd questions for run of the mill “DevOps Engineer” jobs at companies that were most definitely not big tech (or even close).

            tl;dr: fuck leetcode, hate leetcode, but study leetcode. Just in case

            1. 1

              I’ve been working as a developer for six years, I’ve probably interviewed with 20 companies across a few job hunts. I only had to whiteboard a few times and it was always about architecture rather than algorithms.

              Granted I haven’t interviewed with any of the biggest name brand companies, but it’s definitely not a common phenomena for your average interview in my experience.

              Most interviewers are aware of the “invert a b-tree on a whiteboard” meme, those who persist don’t have many excuses.

      1. 4

        The Google SRE book might be interesting to get a teaser of the operations/infrastructure side of things (https://landing.google.com/sre/books/ - the rightmost one is the original).

        1. 13

          10% “love and cherish your loved ones”, 90% palpable insecurity.

          To us it is just a job, but we still do it well.

          If you do your job well, there’s no need to put down other devs.

          1. 3

            I’m a fan of Prometheus. It’s operationally simple and rock solid. It’s equally easy to set up Prometheus for a traditional bare metal server farm and containerized microservices. Compared to Graphite/Carbon, which despite its merits necessitates the operator to learn how to operate 38 different Python daemons.

            We have some big Epyc 512GB RAM regional primary pollers scraping tons of metrics, as well as customized/mini containerized Prometheus + Thanos shipping to Ceph. Versatile.

            1. 1

              I’d like to change my $workplace Prometheus pollers to Thanos for some additional feature. It’s very rare that I think about $work over the weekend but these days I find it helps keep my mind off the pandemic.

              1. 1

                How or why does one change the poller? I thought Prometheus only exposed the interval.

                1. 1

                  I just mean installing a separate set of Prometheus (+ Thanos) pollers. That way all the scrape targets will get double-scraped (one by the old poller, one by the new poller), and after a retention period goes by, I can shut down the old cluster.

                  The reason why is there are too many scrape targets (I use consul_sd exclusively). Our Consul catalogues have just grown too big for single Prometheus pollers. Using Thanos, I hope to set up N Prometheus pollers to shard the Consul catalog, and Thanos is that missing link which allows queries to be executed against all N Prometheus shards.

              1. 4

                I ordered a chainsaw online and it arrived this morning, so more yard work. I tested it after dinner and was able to cut down 2 trees in no time. I haven’t worked this hard in my yard in ages, and I have some work to catch up on.

                I was looking into really giving golang a try, but also discovered I have terraria on steam. Besides, I’m not sure I have the emotional strength left after these lockdown weeks to be productive on a computer after work. I’m not sure if people understand what I mean, but it sure upped my stress level and most days I just feel ‘meh’… I came up with a schedule to cope with most things, but still. It’s definitely more trying to cope, than actually coping.

                1. 3

                  I definitely have been there before. Be sure to rest, get outdoors, and connect with any loved ones you can. I have a decent number of side-projects of various shapes, but I definitely don’t do them every weekend.

                  Message me if you need some help, or someone to talk to.

                  1. 3

                    I came up with a schedule to cope with most things, but still. It’s definitely more trying to cope, than actually coping.

                    100%. The things that seem like it’s a good idea to tackle now - “wow, I’m locked at home, I can totally learn $difficult thing” - with the coronavirus stress levels, it’s unlikely.

                    What I’ve tried to do is rework my TODO list to get the “grindy” tasks out of the way, rather than feel upset that I can’t hit the good stuff (like fancy new open source projects, which require too much internal contentment/comfort to work on).

                    1. 2

                      Where I work, I gotta deal with all these crazy people in tight spaces for 8-16hrs a day. They’ve been more selfish and horrible to each other and workers than I’ve ever seen. They keep crowding around and touching us, too. After yesterday, there’s a state-wide shutdown of non-critical businesses that police will enforce. We were just given a letter to keep on us at all times that says U.S. President designated us as critical infrastructure. We’re required to go to work or [likely] get permanently fired without a reference. We’re supposed to show the letter to the police. I mean, I’m volunteering to keep people alive and healthy but still… I definitely feel you on being ‘meh’ after work.

                      I just managed to make a little progress on some apps and projects. Otherwise, I barely have the mental energy to do anything. The trick will probably be focusing and acting the few times I do have the energy. Then, recharge otherwise without feeling lazy about it. At least I’m not stressed or worried most of the time. The Lord helped me with that.

                      In general, though, a lot of people are stressing themselves beyond what they should be doing. They should detach their mind from it to keep their core well-being. This is a tough skill to develop with now being a hard time to try to learn it. I encourage people to try whether they use prayer, meditation, breathing, cognitive therapy, distraction… anything to keep them from being miserable. I use all except meditation, which I’ll add eventually. I also remind people here that stress is implicated in far more illnesses. On top of getting happier, combating stress will strengthen the immune system that protects them from all diseases.

                      1. 2

                        Absolutely. Find something soothing until the stress levels are back into a productive range.

                      1. 2

                        I phased out Google products starting around 2015. Most were pretty easy, YouTube and Gmail were not, so I’m still using them. Dropping Gmail would be too painful at this point. Best I can do is promote alternatives to future generations.

                        1. 5

                          Gmail can forward emails to your provider of choice, which you can put under your own domain. You can switch over gradually once you do that.

                          1. 1

                            That’s what I did, once you have the forward it doesn’t matter if the migration takes years.

                            1. 4

                              I’m about 8 years into the forward.

                              My (highly technical) parents are the only ones who still use the wrong address. I asked them about it, and they said it was because they have both one linked to my contact and sometimes their client autocompletes the old one without them noticing.

                              They can’t unlink the old address from the contact without breaking search, and there’s no supported standard to mark an address as old/unused.

                              1. 2

                                I have the same problem with some friends and family. Thinking about setting up an auto-reply message with a notice that the email address is no longer in use.

                          2. 2

                            What’s your difficulty with gmail? I have it on my todo list to switch away from gmail in the future but I wasn’t anticipating much work beyond:

                            1. switching my email on every single account I own (difficult)
                            2. getting everybody who knows my gmail to switch to the new one (difficult-to-impossible)

                            Mail forwarding would help with #2.

                            1. 1

                              #2 is the challenge. I would need many people to use the new address. Maybe I should just suck it up and do it though.

                              Mail forwarding doesn’t really help though. I need OTHERS to use the new address otherwise its still going through Google.

                              1. 2

                                If you do it today, in 5 years time you will have basically no real mail coming through your gmail account.

                                I trust google to still be running gmail in 5 years, but not in 15 years.

                          1. 4

                            In line with the other comments, GNU has recutils for text-based databases. https://www.gnu.org/software/recutils/

                            1. 2

                              I really like the philosophy/motivation for GNU recutils, but it’s unfortunate that there aren’t bindings for languages other than C/C++. The folks in the GNU Recutils IRC said the closest they’ve seen is a Python implementation, and even that one isn’t completely compliant with the specification; it implements just the core functions, but none of the advanced features (like distributed database support). I would love a Go implementation.

                              1. 3

                                Good opportunity to write one.

                                1. 2

                                  I’ve looked into it, and I have higher priorities at the moment. Not opposed to revisiting it

                                  1. 2

                                    There are several attempts both, bindings and translations

                                    https://github.com/search?q=recutils

                                    I recall vaguely using recutils from within Delphi of all things… I do not think it had (at least back then), anything like a merge function (which is why I thought the OP was looking for)

                            1. 3

                              Saturday: sneak out to get coffees and beans from a local roaster. Maybe double up on beans in case we enter full-on lockdown soon. Rest. Dream about some potential new projects. Buy a new propane, tank clean out the grill, do some meal prep for the coming week. Clean the house.

                              Sunday: Rest. Attend virtual church services (weird times). Finish Aurelius’ Meditations.

                              Buddy is interested in learning how to play Wrecking Ball in Overwatch. Excited about that since he’s my favorite character and he has very interesting gameplay. Whatever happens, I’m looking forward to not worrying about getting hours in for work while also being responsible for a three-year-old.

                              1. 1

                                Finish Aurelius’ Meditations.

                                Good choice for these weird pandemic times.

                                1. 1

                                  Finish Aurelius’ Meditations.

                                  I listened to this on Audible while riding a moped through the mountains in Thailand.

                                  It drove me crazy. It’s so repetitive and apathetic. Apparently it’s a fine line between emperor and moody teen. Here’s a choice quote:

                                  How good it is when you have roast meat or suchlike foods before you, to impress on your mind that this is the dead body of a fish, this is the dead body of a bird or pig; and again, that the Falernian wine is the mere juice of grapes, and your purple edged robe simply the hair of a sheep soaked in shell-fish blood! And in sexual intercourse that it is no more than the friction of a membrane and a spurt of mucus ejected. How good these perceptions are at getting to the heart of the real thing and penetrating through it, so you can see it for what it is!

                                  What a romantic that guy was.

                                  1. 1

                                    IMO, few people read this book for fun despite being a book that’s somewhat en vogue currently. I had multiple reasons. It certainly helped there.

                                    Now, I find his writing style repetitive, dry, and, and overly cynical. It’s about 50% too long. I read it one book a day on my subway ride home. It is too dense/slow to read big chunks at a time. It’d probably be really grating to listen to as an audio book, so I feel you there.

                                    However, the repetition on focusing what is/isn’t worth worrying about was good for me. Reminding me to be most concerned about those around me rather than on stupid crap like fame or relevance.

                                1. 5

                                  #1

                                  I don’t like when maintainers have higher standards for contributions than what they’ve already written.

                                  Backstory: I once tried to contribute a fix something incorrect in a popular Rust project. My PR turned into maintainers discussing how to come up with a perfect solution, which made me lose interest. Today, the code is still incorrect.

                                  What’s more important to you - fixing incorrectness, or applying more stringent requirements on contributions than you applied on yourself when writing something incorrect in the first place?

                                  #2

                                  Projects that have no contents. Take a gander at this: https://github.com/mdlayher/xdp

                                  According to the description:

                                  Package xdp provides access to Linux userspace XDP sockets (AF_XDP). MIT Licensed.

                                  Does it do this? Not even close. This thing has github badges, but no working code. It has a motherfucking travis CI file, but no working code. What the fuck?

                                  I’m most ashamed of the period of my life where I was sucked into a stupid vortex of README.mds and GitHub star/badge races instead of actually writing code that did the bare minimum of what it promised.

                                  Also, don’t take this as a personal attack. I’ve been (and still am) guilty for all of it.

                                  1. 3

                                    don’t like when maintainers have higher standards for contributions than what they’ve already written.

                                    This has happened to me a lot. Contribute a fix/feature, maintainer(s) bikeshed on things they didn’t even do in similar areas in the project. Great way to discourage contributors.

                                    1. 2

                                      I don’t like when maintainers have higher standards for contributions than what they’ve already written.

                                      I think that’s a difficult balance to strike. I find that my standard for the code that I write for a project often goes up over time. When a project starts, I may be willing to commit quick hacks that get something working with a note to refactor it later, but once it’s vaguely mature I want new contributions to come with tests, docs, and so on.

                                      That said, I find that it’s a good idea to apply the MVP model to PRs: what is the absolute minimum that you’re willing to accept, can you get this in and then let them work on the other improvements later? You can always back out a change later if you approve one PR and ask for other things in a follow-up and the original PR’s author loses interest and doesn’t get back to you for six months. Or you may find someone else wants to do it: open an issue for it and see if anyone else picks it up.

                                      1. 1

                                        I enjoy the contribution mechanism advocated by Pieter Hintjens, where you require a commit message format of Problem: Solution: and if the format is kept and the Problem: is a problem you want to solve, the commit is merged. That way all real contribtions are fast pathed in, and bad contribtions become a matter of record, and people can be blocked in the future for malicious contribtions.

                                        This talk is worth the thirty minutes: https://m.youtube.com/watch?v=xFVDNTXIC_Y

                                      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!

                                        1. 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

                                                                no

                                                                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.

                                                                                                1. 1

                                                                                                  These days things are almost entirely down to the routine tasks of changing our lists of Prometheus scrape targets as we add and remove machines, and keeping up with new versions of Prometheus, Grafana, and other components.

                                                                                                  You could using Consul or some other Prometheus-supported service discovery for dynamic scrape targets.

                                                                                                  Of course, this ignores the fact that operating a whole new service like Consul isn’t free. But might be useful regardless.

                                                                                                  1. 3

                                                                                                    The bits of my coding/technical content calendar/learning planner that I hope to wrap up in 2020.

                                                                                                    Focused projects (this is for self-teaching computer science, loosely based on a curriculum):

                                                                                                    1. 43

                                                                                                      If you want to heavily invest into GNUisms (bash, RECIPEPREFIX, …) and make your makefile less portable, go ahead and follow the advice in this article. If you don’t, be my guest, use sh(1) instead of bash(1), read the make-standard and test your makefiles with other make-implementations than GNU make.

                                                                                                      This helped me tremendously with writing good, concise and simple makefiles. We need to stop writing unportable makefiles, and especially stop relying on the bloated GNU ecosystem.

                                                                                                      1. 11

                                                                                                        Alternatively, name your makefile GNUmakefile to mark it as “only tested with GNU”.

                                                                                                        1. 10

                                                                                                          and especially stop relying on the bloated GNU ecosystem.

                                                                                                          I know this site likes to hate on GNU, but its make has more useful features than any other make. % rules make writing pattern rules so much easier. The text-manipulation functions make working with variables so much nicer. These are “killer” features of GNU make for me.

                                                                                                          1. 11

                                                                                                            I used to be pretty harsh on GNU stuff until I realized how decrepit pure POSIX implementations are. For better or for worse, GNU tools do what people actually want, instead of some religious interpretation of Unix or minimum specification compliance.

                                                                                                            1. 5

                                                                                                              Seconded. POSIX make is pretty sparse. GNU Make has a bunch of warts but it has some conveniences that are nice to work with. Reading what automake dumps out isn’t a good way to judge it, either.

                                                                                                            2. 2

                                                                                                              I agree. Writing a portable (POSIX compatible) works when you do “regular” stuff, like building .c -> .o -> binaries, but anything more complex ends up having to lash out to shell script, either in them or around.

                                                                                                            3. 6

                                                                                                              I don’t agree with the article as well, although for a different reason (that might be added up to yours, really).

                                                                                                              My standpoint is that shell scripting and makefiles are poorly understood by many people in the industry. Spicing up a makefile like this is likely to end up in wrong makefiles when a colleague having a shallow experience with these tools is going to change something.

                                                                                                              To give an example, it is expected that individual failures in the recipes will make the whole build rule fail, but setting ONESHELL will change this sematics dramatically, with no change in syntax! Unless you also set SHELLOPTS += -e, error checking will work in an often unexpected way!

                                                                                                            1. 3

                                                                                                              For rigorous/correct CI/CD at $work, Jenkins (which does need management - we have a team of dedicated Jenkins maintainers).

                                                                                                              For quick and dirty CI/CD (also at $work), I’ve been using Nomad batch jobs on our Nomad cluster. I have language-specific builder containers that build and upload artifacts (package Python wheels and upload them to our private pip repo with twine, build Go binaries and upload them to a ceph bucket, etc.).

                                                                                                              I started this movement to scratch my own itch (and not rely on the Jenkins team for when I needed some very specific new build containers, e.g. an Alpine Go container with static librdkafka to statically compile Go binaries with the confluent-kafka-go library), but it proliferated.

                                                                                                              For most usecases it’s sufficient (but with 0 sophistication around branches, snapshots, master builds, etc.). It even fits OK with Jenkins 2.0 - in my Jenkinsfile we can submit the Nomad job and periodically poll for its logs and exit status to display blue/red success/fail. I have a Python script to do that (nomad_submit_and_poll.py) which I can then invoke with an sh block in a Jenkins 2.0 file.

                                                                                                              1. 3

                                                                                                                Interesting way of using a crate to publish blog posts.

                                                                                                                1. 3

                                                                                                                  There’s been even more inventive things in the past. Docs.rs allows arbitrary JavaScript (which is fine because it doesn’t have any authentication) so you end up with pages like https://docs.rs/pwnies/0.0.13/pwnies/

                                                                                                                  1. 5

                                                                                                                    I’m not convinced it’s that harmless. E.g. the pwnies crate could overlay a convincing fake docs.rs UI, and get you to download compromised source code if you follow manipulated links.

                                                                                                                    1. 4

                                                                                                                      Unfortunately it’s pretty hard to prevent such cases.

                                                                                                                      Due to the nature of Rust builds (build scripts and proc macros can execute arbitrary code) all the HTML generated by rustdoc has to be treated as untrusted. Making things worse, rustdoc uses inline scripts and styles, so adding a CSP is probably not something we’ll be able to do. Even if rustdoc is tweaked to avoid emitting inline stuff, all the documentation generated in the past still uses those, and rebuilding everything from scratch is not really feasible anymore.

                                                                                                                      We’re still trying to think about ways to prevent the issue, but we didn’t think of anything good yet. In the meantime, if you find something malicious hosted on docs.rs just hit the security team and we’ll remove it ASAP.

                                                                                                                      1. 3

                                                                                                                        There are crates like ammonia that will parse and sanitize HTML. This could be used on included HTML files and output from the markdown formatter.

                                                                                                                        There are probably a few more holes in rustdoc from naive text-in-html concatenation, but these can be fixed by escaping.

                                                                                                                        1. 1

                                                                                                                          The problem is we can’t trust the output of rustdoc at all, as there are ways to bypass it completly if someone really wants.

                                                                                                                        2. 1

                                                                                                                          Put it in an iframe that’s (invisibly) hosted on a subdomain of a sandbox domain.. Crate-name.Sandbox-for-docs.rs

                                                                                                                          Or use stuff like ammonia, bleach (python), dompurify (js) to sanitize bad stuff but keep “normal” html.

                                                                                                                          1. 1

                                                                                                                            Put it in an iframe that’s (invisibly) hosted on a subdomain of a sandbox domain.. Crate-name.Sandbox-for-docs.rs

                                                                                                                            That was actually an idea I had a few weeks ago, but there are still a lot of open questions about UX and SEO we need to figure out before fully considering it.

                                                                                                                            Or use stuff like ammonia, bleach (python), dompurify (js) to sanitize bad stuff but keep “normal” html.

                                                                                                                            We can’t trust rustdoc to sanitize stuff.

                                                                                                                        3. 2

                                                                                                                          Well, downloading the source code from docs.rs is neither the easiest nor the safest way to get code … I’m not sure how likely that is in practice.

                                                                                                                    1. 2

                                                                                                                      hmm, the one thing that I think this could benefit from is letting me specify a requirements file, and to indicate directly what package manager to use.

                                                                                                                      I would love to provide a file and say “I want this from pip, that from renv, this other thing from the system default manager” and for it to do “the right thing” (along with allowing version pinning when possible)

                                                                                                                      1. 2

                                                                                                                        Sounds like something Ansible can do.

                                                                                                                      1. 1
                                                                                                                        • repos - for WIP code
                                                                                                                        • old-repos - for code I consider not under active development
                                                                                                                        • church - a farm for ideas. I’ll write lots of experimental code here that I then borrow in more cohesive/focused projects
                                                                                                                        • life - orgmode life planner files, symlinked from dotfiles
                                                                                                                        • books - epub files, pdfs, etc. I’ve accumulated
                                                                                                                        • bin - custom scripts/executables to put in PATH
                                                                                                                        • school
                                                                                                                        • dotfiles
                                                                                                                        1. 3

                                                                                                                          I had (have? it’s more under control lately) a bad habit of deleting code, deleting blog posts, etc., when I feel insecure about their quality. I actually just found a pretty reasonable backup of many decent things (scripts, blog posts, repositories) I’ve deleted over the years, so I’m going through them, reading them, and restoring them if I can.

                                                                                                                          Note: I’m starting to like gist.github.com for the small, single-file things.