HN user

hydandata

364 karma

https://chkhd.net

[ my public key: https://keybase.io/chkhd; my proof: https://keybase.io/chkhd/sigs/45ofWcV9a5YlGuOUrVOvjfYC_PT93HeTSVumn9gC9Jg ]

Note: No longer in use, new identity: https://keybase.io/chkhd

Posts5
Comments69
View on HN

Without any doubt The Art of Doing Science and Engineering by Richard Hamming. I have accomplished more in 5 years after reading it than I did in 15 years before. Much of it I attribute to the change of perspective the book brought about for me and to the fact that I have a vision of my future now. It also helped develop my own style.

Second would be The Language of Mathematics by Baber. As someone who did not do well with math in school or uni but was always good with languages and programming, I have benefited greatly from it by finally “getting” math.

I remember feeling like that when I did not have clearer goals, it felt like I was drowning in the middle of a vast ocean and it did not matter which way I swam. What I needed was a glimpse of land to swim towards, that made all the difference.

I can recommend Richard Hamming's book Art of Doing Science and Engineering [0], that is what helped me put things in perspective. To quote a famous passage from it:

"It is well known the drunken sailor who staggers to the left or right with n independent random steps will, on the average, end up about sqrt(n) steps from the origin. But if there is a pretty girl in one direction, then his steps will tend to go in that direction and he will go a distance proportional to n. In a lifetime of many, many independent choices, small and large, a career with a vision will get you a distance proportional to n, while no vision will get you only the distance sqrt(n). In a sense, the main difference between those who go far and those who do not is some people have a vision and the others do not and therefore can only react to the current events as they happen.

...

You will probably object that if you try to get a vision now it is likely to be wrong—and my reply is from observation I have seen the accuracy of the vision matters less than you might suppose, getting anywhere is better than drifting, there are potentially many paths to greatness for you, and just which path you go on, so long as it takes you to greatness, is none of my business. You must, as in the case of forging your personal style, find your vision of your future career, and then follow it as best you can.

No vision, not much of a future."

0 - http://worrydream.com/refs/Hamming-TheArtOfDoingScienceAndEn...

In no particular order:

Sunburst and Luminary: an Apollo Memoir https://www.sunburstandluminary.com/SLhome.html

The Brain Makers https://www.amazon.com/Brain-Makers-HP-Newquist/dp/067230412...

Strategic Computing: DARPA and the Quest for Machine Intelligence https://www.amazon.com/Strategic-Computing-Machine-Intellige...

The Soul of a New Machine https://www.amazon.com/Soul-New-Machine/dp/B01FCTJCR0

Hackers: Heroes of the Computer Revolution https://www.amazon.com/Hackers-Heroes-Computer-Revolution-An...

Where Wizards Stay Up Late: The Origins of the Internet https://www.amazon.com/Where-Wizards-Stay-Up-Late/dp/B00AQU7...

Art of Doing Science and Engineering: Learning to Learn http://worrydream.com/refs/Hamming-TheArtOfDoingScienceAndEn... Not a dedicated history book, but Hamming talks a lot about personal experiences and observations

UNIX: A History and a Memoir https://www.amazon.com/UNIX-History-Memoir-Brian-Kernighan-e...

Masters of Doom https://www.amazon.com/Masters-Doom-Created-Transformed-Cult... linking to audiobook because it is read by Wil Wheaton :)

Ghost in the Wires: My Adventures as the World’s Most Wanted Hacker https://www.amazon.com/Ghost-Wires-Adventures-Worlds-Wanted/...

It might be just me, but I really enjoy reading biographies of people important to the science, for example here is one for John Tukey https://royalsocietypublishing.org/doi/pdf/10.1098/rsbm.2003...

Writing a book on how to set up a simple but flexible tech stack that will scale without issues.

Backend, frontend, testing, team comms, CI/CD, cloud stuff etc. Mostly FOSS.

Friends and colleagues have been bugging me to get it done for a while, guess now is the time..

When using it for work, did you ever get stuck because of a lack of libraries..?

Nope, I did find some to be less well documented than ideal, but pretty much everything had tests and/or examples making up for it. Have a look at Quicklisp[0] and explore yourself.

CL has many implementations[1], including the one targeting the JVM, so you can make use of Java ecosystem from it too.

CL has been around a long, long time. First edition of CLTL[2] was released in 1984! and at that point Lisp had already been in heavy use for almost three decades. The standard has not been altered since 1994, and likely never will, but due to its nature innovation continues in the individual implementations and in the community, and there is a well established culture of portability libraries.

[0] https://www.quicklisp.org/beta/

[1] https://common-lisp.net/implementations - Not an exhaustive list

[2] https://en.wikipedia.org/wiki/Common_Lisp_the_Language

I used it at work[0] for a few years and it was great, but I did not scale that project to large number of people, mainly because it did not need to.

Folks at Grammarly have a writeup about how they are using it, it might have more relevant information for you[1].

I would definitely consider using it again, but proper buy-in takes time, and I have simply been moving too fast since then.

I am still not a big fan of Clojure myself, but it is definitely seems easier to sell than CL. In my humble opinion, if you are already a convert the benefits of going from Clojure to CL will not be as great as the ones for going from Java to Clojure.

[0] https://news.ycombinator.com/item?id=13979002

[1] http://tech.grammarly.com/blog/posts/Running-Lisp-in-Product...

I love Common Lisp, which is definitely on the other end of the spectrum, but still enjoy Go a lot too.

For me it is a perfect fit for writing automation, services and command line tools. It is stable, it is simple to use/write/read, it is easy to deploy, it has great IDE support and tooling, it just makes sense in the enterprise, as author himself notes.

I like Rust too, but compared to Go it has the feel of a research project. I think Rust has great future, I definitely see using it, but for now I will stick with CL/TS/Go.

This is great!

I do something similar in the evening to relax before sleep, albeit more freestyle and I write it down on paper, but doing it at the start of day sounds like a great way to set the mood, going to adopt it.

Location: Prague, Czech Republic

Remote: Preferably no, but might consider for the right team

Willing to relocate: No, but can travel infrequently

Technologies: Go, Python, JavaScript, Common Lisp, SQL, Linux, AWS, Ansible, Docker.. whatever-you-like except Java/C++/C#, maybe even that for the right price

Resume/CV: https://www.linkedin.com/in/chkhd/

GitHub: https://github.com/chkhd but most of my stuff is not on GitHub, it is locked behind corporate doors :/

Email: hydan@me.com

I have changed my job title many, many times but have been coding and mentoring/teaching since minus infinity. Very flexible with both roles and technology, can get up and running with any tech in matter of days/weeks.

Currently looking for senior dev or other leadership oriented full-time roles in Prague, will consider remote for the right team, have 7+ years of experience working fully remotely as dev && team lead.

Can also help you set up shop in Prague. Tech scene is nice, and there are awesome devs around, plus people from all over Eastern Europe are likely to be fine with relocating here.

YMMV, but I learned these the hard way:

- Asking a question can be humiliating, especially if you are expected to know its answer. When a junior asks me something, I keep that in mind.

- Things that are obvious to me are not obvious for juniors. They might know X and Y but have no clue how to draw a line between them. They might not even know an alternative exists.

- If the junior does not come to me with a question, he might spend 20x actually needed time on the problem. Helping juniors is one of the best ways to meet deadlines.

- Regularly helping someone establishes trust and makes it easier to delegate to them later. More of my time saved.

- The main thing that I am teaching them is patience, I lead by example.

- I focus on explaining how to them more than what, even if I spend an hour, or have to do a pair programming session. If the lesson gets ingrained I just helped save a heck of a lot more time.

- If the same kind of questions get asked a lot, I create a doc or a recording and reply with a link.

- Different people need a different approach. It is quite likely that I am doing something wrong in how I provide help. If the person trusts me with questions but does not seem to adopt the advice, I sit down and have a "crucial conversation" with them to figure out if this is the case and adapt my behaviour.

- Some people are just stupid.. "Against stupidity the gods themselves contend in vain". Knowing when things are out of my control helps me avoid stress. That said, this is the very last resort, and rarely true. I usually try everything else before I start brushing people off and saving time for others.

I cannot notice any delay at 100+ wpm, but one thing I had to get used to is typing key combinations faster/holding the key for the right duration, I still lift a bit too fast a few times per week, f.e. getting 'a instead of A, but it is definitely becoming second nature, and even if I cannot eliminate it completely the ergonomics of home row shift, and other handy dual function keys, makes it still totally worth it for me.

I have Ergodox EZ and absolutely love it as well.

IMHO Dampened Cherry Red switches configuration is almost as good as Topre if not better.

The ability to program it has been the killer feature for me, I have a layout that works absolutely perfectly for me! f.e. dual function keys! I have ' set as dual function key so if I hold it is Shift, if I just tap it is ', in place of usual Caps Lock location I also have Shift, having moved both Cmd/Win keys to usual Shift location. Home row Shift has improved the typing comfort so much! I also remapped function keys and made many other tweaks.

Also have alt/ctrl mapped with dual key feature to z/ctrl x/alt and ./alt //ctrl, this way all modifier keys are clustered together and easily accessible. I don't think I can ever go back! the mind did get used to switching between the two layouts though, so thankfully I can still use the laptop keyboard on the go :)

For anybody interested you can have a look at their configurator https://configure.ergodox-ez.com/keyboard_layouts/new

Honestly? WebStorm with Emacs key bindings and several plugins. I use Emacs for pretty much everything but web development is not where it truly outshines other tools :(