1. 3

      Where Mathematics Comes From makes some similar arguments. I haven’t read much on the philosophy of mathematics, but this book changed my perspective greatly.

        1. 21

          @itamarst it’s not really clear to me what a resume looks like to you. My resume’s have never had paragraphs in them, although they might have a some sort of opening sentence that sums up my ambition.

          I would argue that you aren’t really emphasizing the right thing. My resume’s are target-specific but tend to be a list of work experience with the important things I did listed in there, like “Lead a team solving X”, or “Designed interview structure” (with more filler words).

          It’s also unclear to me if this blog post comes from your experience being a hiring manager for hundreds of candidates or if you are just pulling out of your butt what you think would make a good resume. This is another post which feels like you’re aiming for IT Guru status rather than dispensing useful evidence based information.

          1. 2

            In case you too aspire to guruhood—

            Cons of being IT Guru:

            Pros of being IT Guru:

            • Get to share what I’ve learned over 22+ years of working as a programmer.
            1. 17

              Not trying to sound harsh, but this is a low quality response. Setting aside the IT Guru stuff I think @apy had some good implied questions.

              What does a resume look like to you? Does it contain paragraphs with narrative description like a cover letter? My resume and most I’ve seen in the U.S. have sections with lots of short bullet points, not paragraphs per se.

              Are you drawing this advice from your experience on the hiring manager side or the applicant side or both? I’ve found that the Software Clown style posts which use concrete examples are much better at conveying your message. Are there times you’ve had direct feedback on your resume? What about times you’ve passed on a candidate because of their resume?

              1. 2
                • Paragraphs or bullet points is besides the point. You can have bullet points too, it doesn’t matter. It’s the content and location that matters, so long as it’s professional looking and readable.
                • This is based on decade plus of reading resumes and then interviewing people (as developer, usually, not manager) and seeing how much was missing from resume.
                • I’ll see if I can add a concrete example.
                1. 8

                  And most importantly, do you have any evidence that doing the change you suggest actually affects one’s success in the hiring pipeline rather than just being your preference of how resume’s should look? I could write an opposing article that says the most important aspect of a resume is that it uses exactly 3 distinct colors, how is a reader to judge the quality of such advice?

                  1. 1

                    Yes, I would like to see some evidence as well, basically where I live, hiring managers will ask you about technologies, usually with a programmer/developer/team member of sorts with them, to evaluate you. It will also be frowned upon if you at least don’t list something in your resume, and if you have phrases like the ones described in other comments in this thread, devs won’t particularly like your resume. Last guy we hired had a simple latex based resume, that was clean, listed his experiences, how he worked with others in the relevant projects, his known technologies, working projects (github/git repo), and today he is invaluable to the team. (edited for grammar and another point)

                    1. 3

                      Where are you from? Different places have different hiring cultures, yes, and what I’m writing is mostly broadly focused on US market. In the US approaching your skills as a list of technologies is asking to be treated as a commodity: easily replaceable if someone comes along with same list at lower pay. You can do it, but you don’t want to. If an interview involved a manager with a checklist of technologies I’d probably just walk out, because I’d be pretty sure pay would be vastly lower than what I can get elsewhere. And if developers were annoyed by focusing on solving problems, rather than churning out code, working with them would be unpleasant.

                      Notice, however, that your coworker mentioned how he worked with others, not just technologies.

                      Likewise, Apy’s resume starts by listing actual work he did not, not a list of technologies.

                      1. 1

                        Yes, things are different here, I’m from South America. I guess the difference here is that we rely more on the interviews that we perform, in my opinion anyone can write about how they did something, they may be lying or may not, and we want to feel that in the actual interview.

                        It seems to me now that here, we want to feel how you say things in an interview, we want to see you do it, explain how you’ve worked, which in my opinion you can easily spot who was trying to fake something. Obviously sometimes you get interviews in which the candidates were not who they said they were, and that’s disappointing, but when you get someone who knows what he’s doing, you feel it then and there by talking/coding/solving problems.

                        In my opinion anyway, writing something in a resume is easy, actual talking/coding whatever process you might wanna choose to evaluate them, is the real deal

          1. 5

            Go doesn’t have exceptions, so the common idiom is for the function to return multiple values, the last one being an error. And, of course, the caller should check that error, and react appropriately.

            I don’t use Go much - can someone explain to me why this is preferred over a rust-style Result enum? It seems like returning a separate error value make it more likely that it will be ignored - is there a feature in the language to prevent programmers from ignoring the error?

            1. 7

              If a Go function returns a value and an error (e.g., (T, error)), then in order to get your T, you would need to explicitly ignore the error with _ as other posters have described. However, if a Go function returns only an error, then you can call that function without acknowledging the error at all. Note that the comparison with unwrap in Rust isn’t quite the same, since an unwrap will panic if there is an error, where as using _ to ignore an error in Go just swallows it and the program continues.

              The trade offs between Rust-style error handling and Go-style error handling basically boil down to where you stand on the type safety spectrum. More ceremony in Rust, but less likely to drop errors on the floor. There is also the “the type signature of the function more accurately describes the behavior of the function” aspect of it. On the Go side of things, error handling is enforced basically by very strong convention: if err != nil { return err } and that’s that.

              1. 4

                Using nullable tuples for something that is semantically a disjoint union? Bleh. Just seems like a really awkward way to do it. :/

                1. 3

                  Yes and no. This argument has been litigated a billion times on the Internet already. You won’t drag me into it. :-)

              2. 3

                You will get a compilation error if you fail to ignore the returned error.

                You can experiment here: https://play.golang.org/p/9XSOZFGbzT

                I don’t know Rust, and I have only been using Go at work a little bit, so I can’t really compare and contrast their respective error handling methods.

                1. 6

                  Rust uses sum types, so you do not need a separate return value for errors. Instead, you use the Result type, which has two variants, Ok carries a successful computation, while Err communicates an error. You can then pattern match the result in the caller using a match or use the ? operator to let errors bubble up.

                  Also see: https://doc.rust-lang.org/book/second-edition/ch09-02-recoverable-errors-with-result.html

                2. 2

                  You have to explicitly ignore it, doing something like x, _ := getX()

                  1. 1

                    Cool, makes sense. I guess the part that seems weird to me is that you are able to return both an error and a value. I also suspect that it’s slightly more common to ignore the error using _ than match or unwrap, but I don’t know if that’s actually true or not. I should probably just use go and figure out which one I actually prefer :)

                    I am very glad that error handling is something that language designers are thinking about now though - this is far better than in languages like C and Python.

                1. 4

                  Fiction, this week: Ms. Marvel Omnibus Vol. 1

                  Recently:

                  • Black Panther: A Nation Under Our Feet
                  • Altered Carbon
                  • Mort, the first ever Terry Pratchett I read. I think I might continue down the Death sequence.

                  Non-fiction: I finished The Information a while ago. One of the best non-fiction books I have read. I’m taking a break from non-fiction for a while though.

                  @kai3x5 - what are some of your favorite fiction books? If you like sci-fi I highly recommend The Three Body Problem series.

                  1. 3

                    Mort is my favorite of the Pratchett I’ve read. I should go back and read more of that series.

                    1. 1

                      That Discworld map is fantastic ! I shall read Mort as well!

                      I loved reading Dune (original series, prequels, & sequels).

                      1. 3

                        The Ancillary Justice series is good. If you don’t want to bite of a series one of my favorites of stand alone sci-fi is The Stars My Destination by Alfred Bester.

                    1. 11

                      The Information: A History, a Theory, a Flood by James Gleick. It is the story of the genesis of the concept of information, information theory, and the effect on other areas of science beyond communications.

                      1. 3

                        What a crazy number of servers they (might!) have! If those numbers are correct or at least good ballpark figures it would be interesting to see utilization stats.

                        1. 2

                          I heard that generating video stories (the slide shows of your year for example) came from a hackathon project to keep utilization high.

                          1. 4

                            Anything that can be done as an offline batch process is great for utilization. That’s how most of the cool things in Google Photos are done too: automatic visual effects, movies, location inference, facial recognition, etc.

                        1. 3

                          Here’s one of the researcher’s youtube channels with some videos of the AI in action.

                            1. 2

                              i thought lobste.rs was deduplicating things already…?

                              1. 1

                                That’s a manual process. :) It’s really meant for when the two conversations are in close temporal proximity, but I’ve merged these ones anyway; we might as well keep discussion together.

                            1. 7

                              Today is the first day of my (willfully) being unemployed. I’ve decided that for the first two weeks I’m going to do whatever I feel like and not feel bad about switching between things as much as I want. Although today is probably going to be mostly cleaning and figuring what I need to do about health insurance.

                              With the rest of the week, I’m considering continuing with my exploration of containers which I dropped when I was getting serious about quitting. I’m also considering starting learning about this whole machine learning thing. I took a class on it in school, but didn’t really learn anything, so I want go back through things and actually understand some of it. And then there’s half a dozen other projects that I’ve started that I’m considering picking up again.

                              The goal with all that is to actually pick one of my projects and finish it. I’ve got a serious problem with not finishing projects and I’m pretty sure if I actually finish one of them the satisfaction of that will help me find the will finish more. We’ll see how well that works out.

                              1. 4

                                Oh, yeah, and I’m getting married tomorrow, I forgot that one.

                                1. 2

                                  I’m not sure what kind of machine learning you’re interested in, but this class on computer vision is pretty good so far: http://course.fast.ai/. It is very hands-on.

                                  1. 1

                                    I’m not sure what kind of machine learning I’m interested either, so thanks! I’ll check it out.

                                1. 5

                                  It varies by life season. Lately, doing a lot of prep before we have our first kid. (I swear I have baby brain!)

                                  Otherwise:

                                  • working through good TV shows with my wife
                                  • playing good video games with her (mostly adventure games of all types)
                                  • lifting
                                  • Heroes of the Storm
                                  • guitar
                                  • occasional OSS

                                  I’d like to get into more cooking, as it’ll really help out around the house the next few months.

                                  1. 3

                                    Slow cookers / crock pots are a good way to get delicious results without a lot of steps. Most recipes are: prep ingredients, sautee for added flavor, add to pot and cook for 2 to 4 hours.

                                    1. 3

                                      One thing that put me off cooking for a long time was recipes. The idea that you had to have a bookshelf full of books of recipes to get anything done. This isn’t how chefs cook, though; they learn techniques and flavors and chart their own course. I envied that.

                                      There are plenty of books that help with this approach, but the two I’ve gotten a lot of mileage out of are Ratio and Twenty, both by Michael Ruhlman, and to a lesser extent The Flavor Bible. The stuff in Ratio tends towards baking but has other stuff (stocks, vinaigrettes) and the stuff in Twenty is for the rest of cooking: how to use the fundamentals of water, eggs, onions, lemons and then how to do broad techniques like roast, braise, grill, etc. Ratio gets you looking at some ingredients and going “I could make a fritter with those vegetables”; The Flavor Bible will suggest how to season it.

                                      1. 2

                                        before we have our first kid

                                        congrats! enjoy all your me/free time now ;-)

                                        1. 4

                                          I know this is in jest but this is one of the primary things I’m working through. A friend noted that “kids teach you how selfish you are with your time.” And I’m extremely selfish with my time.

                                          I know plenty of accomplished people that have kids. Life doesn’t stop when you do; we may have more fragmented time but being productive/creative or not is a choice we make by how we prioritize things.

                                          1. 2

                                            of course! and it all depends on your kids and mostly in yourself. For me it was a big change but still fatherhood exposed me too so many new things and makes me think what’s really important each day. all the best! :-)

                                      1. 6

                                        I was also inspired by the thread OP mentioned and also picked up Peak. I’m about half-way through the book, and my gears have been turning about this exact question. I don’t really have a succinct answer to what a deliberate practice routine would look like, but here are a few of my thoughts on what might help:

                                        • Identify experts - read their code, do they describe their mental representations? Do they describe their own practice?
                                        • Find an open source program written by someone with more expertise - read and understand one chunk, and then try to rewrite that chunk from memory. Start small with single functions and work up to modules and eventually whole systems. (This would be similar to the game that Benjamin Franklin played with articles from The Strand)
                                        • Peak repeatedly highlights the importance of having a mentor - it would help to have someone who can give good feedback on code, push you to improve, and help motivate you by celebrating achievements.
                                        • Submit code to an open source project - you would want to work on something that is just out of your comfort zone. If your code is accepted with little to no review it is either below your comfort level or the project isn’t as demanding as you need. PR rejected once or twice is probably the sweetspot.
                                        • Pick an objective measure for a piece of code you are working on and try to continually improve that measure.

                                        One of the key distinctions that is made in the book is between knowledge and skill. Knowledge can only go so far toward improving your skill, and only practice can actually help eventually. I think because our field is mental we overvalue knowledge, and so repetitive (often boring!) practice is pushed aside. It is liberating and unsettling to read this book. Anyone can become an expert, but it’s going to take practice outside of your comfort zone.

                                        I think this is a really interesting topic, so I look forward to hearing more about how other Lobsters practice.

                                        1. [Comment removed by author]

                                          1. 1

                                            I think one of the problems is that we don’t have objective measurements of our success so far. This is probably one of the first problems to address.

                                          1. 8

                                            We are interested in being a more rigorous about evaluating our performance

                                            What do you hope/want to change? Evaluation is only useful if some action is taken as a result. Most (all?) performance review processes are useless because it’s mostly the system (the context) that drives performance.

                                            3 people

                                            Since you’re really small, and even if you triple in size, you’ll still be really small, I’d suggest a regular retrospective as a team. Take an hour or three every week (or two, at most) and talk about how things are going. Has anything been annoying that should be done differently? Did someone do something in a way that others could learn from?

                                            Ultimately your question is a bit backwards: first start with why you want to be more rigorous about performance evaluation, and then you might find that making it more rigorous is not at all the right solution, i.e., start with the problem then figure out three or four possible solutions.

                                            (Please, I beg of you, do not replicate the horror that is perf reviews.)

                                            1. 1

                                              Thanks for the response! I think doing retrospectives is a good idea. Right now we just do them ad hoc, but I think having a regular cadence would be good.

                                              I think there are a number of problems that we were thinking performance reviews would solve, but they are certainly solvable via other means. For example, having a clear direction for our team that can be regularly updated with the CEO as things shift. I will have to spend some more time getting to the root problems.

                                            1. 1

                                              Thanks for sharing this. Have you used this technique for reading papers as well?

                                              I received The Princeton Companion to Mathematics as a gift this past Christmas and began to read it cover to cover. After reading the initial introductory chapters which were mostly review from my university classes, and the history chapters, I stalled out when I got to the articles on specific topics that I had no experience with. Admittedly, this book was not designed to be read cover to cover in the first place so I feel less bad for stopping. I will have to try and approach it using the techniques in this post. There are just so many interesting topics it is hard to try and focus on really underdstanding one thing.

                                              1. 3

                                                Thanks for sharing this. Have you used this technique for reading papers as well?

                                                Sortof but not really. The techniques I use to read a paper loosely inspired this, but they’ve got a bit of a different focus and I’ve not explicitly reconciled the two yet. My paper reading technique doesn’t involve explicit lists but involves a lot more bike rides (really).

                                                On the face of it I’d expect good paper reading techniques to be at least somewhat different from good textbook reading techniques though: The prioritization matters less because papers are so much shorter, and papers are written for a different audience so can often be much harder reading.

                                                Admittedly, this book was not designed to be read cover to cover in the first place so I feel less bad for stopping.

                                                Honestly, the mathematics textbook that is designed to be read cover to cover is rare as hens teeth, and most of them are more like monographs than textbooks (I’ve a few I’d put i this category and they’re all in the region of 100 pages).

                                              1. [Comment removed by author]

                                                1. 6

                                                  Have you looked into evil-mode for vim keybindings inside Emacs?

                                                  1. 6

                                                    spacemacs integrates evil-mode beautifully, and has a great org-mode configuration set as well.

                                                    1. [Comment removed by author]

                                                      1. 1

                                                        Ah, understood. It does so much out of the box, and admittedly, I found it really confusing to use at first.

                                                        I did my own thing for awhile with evil-mode, before I made the switch. Essentially, I just used a Cask file to manage any packages and separated things into their .el files.

                                                    2. [Comment removed by author]

                                                      1. 2

                                                        The biggest advantage to learning emacs key bindings, imo, is that they are also the default keybindings for gnu readline. My coworkers are shocked when I’m typing in a shell command and I start using my emacs key bindings. You can:

                                                        • Go to begin/end of line
                                                        • Navigate by word
                                                        • kill/yank words
                                                        1. 1

                                                          I actually came at this from the other direction: I had learned the default readline bindings, and then that was my justification for switching to Emacs.

                                                    3. 2

                                                      For what it’s worth I’ve been using a combination of vimwiki and taskwiki (taskwarrior binding for vimiwiki) to achieve something roughly the same as Org Mode. Something I have been looking to set up but haven’t yet is hosting a taskwarrior server somewhere and syncing one of the android apps to it.

                                                      That being said, whether its vim, emacs or anything else I like the underlying message of keep things in plain text to keep the cost of switching or augmenting a setup low.

                                                    1. 0

                                                      Imagine if oil companies started to plant trees instead!

                                                      1. 2

                                                        I realize that my comment was a bit glib. Let me elaborate. This article raises a lot of valid points about feature sets that companies are building which are harmful and subtly manipulative. However, the author offers no effective remedy other than pleading with us to imagine a world where these companies just decide to build less manipulative products.

                                                        As long as these tactics bring in money they will be used. If we want to change the products we have to change the incentives.

                                                      1. 1

                                                        Facebook: You have to have an account in order to develop for Facebook.

                                                        Years ago I shut down my account for about 9 months and then I got a job that required me to do Facebook Developer stuff. I have thought about disabling it many times since then, but I keep it around because I don’t want to have to go through setting up a fake account, tying my phone number to it, 2FA etc for whatever next job may require it. (We actually might build FB integrations at my current job soon). I guess it is mostly inertia and laziness on my part, but I do find it annoying that the developer account isn’t a mostly separate thing.

                                                        I had a moment where I realized that I wasn’t actually enjoying Facebook at all, so I try not to use it.

                                                        Spotify: It has a decent catalog size and I listen to enough new / new to me music that buying and managing files would be expensive and tedious.

                                                        1. 6

                                                          Some one pointed out that it also spells out isn't all and just like that I’m thinking isntall could be a valid command that is not install. Not sure what isntall would do per se, but it could still be abstracted into something valid. I don’t like the idea of the codebase assuming I made a typo and going ahead with the command it thinks I want. I may have quick fingers but I’m not stupid.

                                                          1. 23

                                                            It drops npm into the existential-reflection shell, presumably.

                                                            1. 7

                                                              There’s a clickbait blog article waiting to be written titled npm isntall that

                                                              1. 3

                                                                And then be all about the this keyword and never touch the isntall part.

                                                              2. 3

                                                                Wait, I thought this was for checking the height of a dependency tree.