Original post

I’m working through Aluffi’s Algebra: Chapter Zero, which covers abstract algebra (groups, fields, vector spaces, etc.) with category theoretic foundations. I took undergraduate algebra several years ago, and I’m really interested in category theory from a compositionality perspective, so this is a good opportunity to brush up on both topics.

Aluffi is really well-written. It assumes some degree of mathematical maturity (so it’s well-positioned for a second pass of the material), but has a generally conversational tone without being imprecise. The exercises are excellent, too, if occasionally difficult using only the machinery introduced up to that point. (Again, well-suited to readers taking a second pass at algebra.)

Why am I doing this? Leonard Susskind puts it well in this video [1]. To put it in my own words: our senses evolved for the physical world around us, and some of the most technical activities we do today are wildly underserved by our natural senses. That’s why we build things like microscopes and telescopes and whatnot — to extend our senses into new domains. Mathematical intuition is almost another sense in its own right: you gain the ability to perceive abstractions and relationships in ways that are just not well-described by sight or touch. I both enjoy this sense and find it valuable, so of course I’m going to continue honing it 🙂

[1] https://www.youtube.com/watch?v=2bgZmBAnhdg

This really reminds me, it’s been two decades now since I’ve taken _any_ Algebra. I’d really love to go re-learn it from the basics on up. I mean, I still remember a lot of it here and there but some sort of refresher course up to doing more advanced would be awesome.

Any recommendations?

Hell yes! I love hearing about people interested in abstract algebra and wholly support your endeavor! Here is a pretty decent resource on relevant texts:


That page in general is pretty gold for math texts in general.

Also, #math on freenode has lots of algebra-strong users on it, though depending on your luck some can be less helpful than others. I love chatting about this kind of thing with people, so if you would like an ad hoc mentor/study-buddy I would be more than happy to help. Feel free to email me at the address in my profile.

Good luck!

Hi there, the email field doesn’t show up – you need to put it in your about section for people to see it 🙂

I think Linear Algebra is traditionally recommended, since you can readily apply a lot of geometric intuitions while picking up the mathematical ones. The drawback is that you have to make sure you’re not cheating yourself of the mathematics by over-relying on the geometry.

Sheldon Axler’s acclaimed “Linear Algebra Done Right” is freely available as a download [1] through July due to the pandemic. I’ve not read it (yet!), but I’ve heard so many good things about it I feel comfortable recommending it off the cuff. 🙂

(Recommendation: try not to focus too hard on the matrices! They’re just convenient representations (syntax!) for the actual things we care about: linear transformations. It’s less geometrically intuitive, but it lays a much better foundation for algebraic widgets other than vector spaces. Use the wealth of geometric intuitions to jump-start your mathematical sense.)

I don’t have a lot of recommendations for other algebra topics, unfortunately. My class textbook for abstract algebra was Dummit & Foote, which I found very dry and lacking in intuition. Aluffi is perfectly servicable if you feel good about your linear algebra; just don’t feel like you have to complete every exercise.

Also, I’m a sucker for order theory, so if you’re up for something a little less algebraic, pick up Munkres’ Topology. I’m consistently surprised at how often topological and order-theoretic intuitions come up in software development. There’s a close connection between topology and logic, so perhaps I shouldn’t be so surprised — but I haven’t studied Stone duality at all, so it shall remain surprising for now.

[1] https://link.springer.com/book/10.1007/978-3-319-11080-6

You know something? I know a little abstract algebra: groups, subgroups, quotient groups, and the relvent theorems behind them. It’s been disappointingly useless to me though. Maybe someday I will take the quotient group of two matrix groups… I’m not sure though.

I certainly haven’t applied any of those examples either. ^_^ Abstract algebra, topology, etc. are all studies of problems that already have mental frameworks. People already did an incredible amount of legwork building the apparati for understanding these fields (no pun intended). The value of learning these frameworks, if you’re not going to work in those fields directly, is to understand how to build your own framework.

What kind of tools are in your toolbox for breaking problems down? Where is my problem different from others, and where is my problem fundamentally the same? How can we isolate these parts and handle them on their own terms? This is fundamentally mathematics, however it’s ultimately expressed.

Here’s a small selection of those ideas I’ve picked up from mathematics that have absolutely paid dividends in my day-to-day:

* The idea of a “homomorphism”, a structure-perserving map between two different domains of discourse. The more I learn about category theory, the more I realize that homomorphisms are conceptually everywhere in software. The more I learn about domain-driven design, the more I realize the role functors (a particular kind of homomorphism) really play in software design.

* The idea of a “fixed point”, for limiting behavior of processes. Fixed points are especially pleasant in domains where processes have some sense in which they “grow monotonically”. When I can model a system as a series of operations that “add knowledge” and don’t invalidate prior results, I know I have a wealth of analytical tools at my disposal.

* The idea of products (pairing) and sums (choice) in type theory, for modeling interactions between components. I feel like I’m in a straitjacket when using a language without sum types; I have to encode what I really mean using tools that don’t let me get there directly.

What I got to think recently about the value of knowing more about stuff whose usage isn’t imminently obvious is that when you expand your knwoledge, the ‘range’ of your world changes. So yes, almost by its nature, you would not use the stuff that you don’t know much of, but you would be hemmed in by your own ignorance. On the other hand, by expanding your knowledge, you would also expand your range of experience (your world) thus find it more useful.

I studied vector mathematics in high school; matrix operations, dot product, cross product etc. All through these lessons I thought; “what a stupid thing to learn, who would ever use this?”. Then after school I became a CAD/CAM developer and spent most of my time working with vector mathematics. It was with the help of OpenGL so I technically didn’t need to understand how these operations worked under the hood but yep… what a stupid thing to learn indeed.

Category theory

Quantum Entanglement (lectures by Leonard Susskind at Stanford)

creative building in Minecraft 🙂

(I already knew how to make sourdough from before)

I have lost my contract as a developer and am helping a non-profit [1] streamline their operations. The organization aims to provide food and heath kits to the marginalized. We have already distributed over 600 kits and are on track to reach a 1000 in this week. Each kit is designed to support a family of 4 for 1 month.

I was introduced to them by a friend who was helping them build an open platform [2], open in the sense that all processes, donations, procurement and guides are public.

Although my core competency is building and managing Saas, I took up the task of setting up their operations. I find a striking similarity b/w managing Saas and not-for-profit distribution.

We are relying heavily on Airtable.

Despite of being jobless, I feel less worried. The situation on ground is much worse than mine.

— [1] https://karuna2020.org [2] https://open-data.karuna2020.org

I’m learning how to level up my more fundamental life skills: nutrition, exercise, and character. Character I’m learning through the study of The 7 Habits of Highly Effective People which I’m working through with a friend. For exercise, I’m enjoying learning a safe kettlebell program with the book Simple and Sinister. With nutrition, I’m just trying to cook/prepare all my own meals while keeping the ingredients healthy.

I’ve spent so much time studying skills more directly related to my work as a software engineer, or hobbies like photography, that this shift is both challenging and refreshing. I think it’ll make a huge difference in the long run.

> I’ve spent so much time studying skills more directly related to my work as a software engineer, or hobbies like photography, that this shift is both challenging and refreshing. I think it’ll make a huge difference in the long run.

It did for me. My path seems to be flipped. I did this stuff in my late teens and early twenties and after that I decided to get into software.

I have been pursuing similar goals. Except for exercise I’ve been learning rope dart and also have the goal of being more clean and being better at organizing my spaces. I have also found that focusing on the fundamentals has done wonders for my health, energy levels, and mood. I wish I had taken time to figure this stuff out better years ago.

I’ve been clearing land all day and bought 50lbs of buckwheat. I intend to try sowing/harvesting by hand. I will use this mostly for breads and pastries. This is something of an experiment.

Building skills, I’m almost finished a chicken coop. I made a dry stone arch bridge but it failed because the frame sank, I will try again. I am learning carving to make wooden animal toys for my child, who will be born in July (I have made a bear and a fox, soon an elephant, but they still need to be sanded). I would like to learn timber framing and make a small cabin on the land but it may be too expensive, now.

I’m trying to make an animated village for my site background with HTML Canvas, and originally I was making it procedurally, but its too ugly, so I will have to learn some digital illustration until it’s beautiful.

If you have any pictures available (especially of this bridge) I’d be curious to see.

Are you tilling? Doing raised beds? We’re planting a bit this year and dealing with weeds, etc. has been a hassle (also, most of the no-dig crowd seem to basically advocate using many tons of compost, which is great but not something you can assume a steady supply of)

I grew up in Nashua, and when I looked at your posts about restoring your home it made me nostalgic for New Hampshire. I live in Alaska now and hope to spend the rest of my life here, but NH has the feeling of home that you can only get from having a childhood there. I found your posts a while back, and I always enjoy looking at what you’ve been up to when I haven’t seen it for a while.

I used to run and bike past so many houses that look like this, and some part of me always wanted to do what you’re doing. So thank you for sharing your journey!

Out of curiosity How’s life in Alaska. It has always been a dream for me to move to Alaska since its a beautiful state and last thing what about the jobs there

You should look into Fabric.js, it makes working with an html canvas much easier, especially if you are animating it.

Hey, I’m doing that too, learning DirectX to build megaman-clone and learn more about game development. I planned to learn Godot after that. shall you create a discord chanel? I’d love to join

you seem like a very avid learner! can you recommend a couple of courses you’ve enjoyed going through, or the ones that were most interesting and challenging?

Wow I want to do that too! Are there any existing godot based quest games so I can get an idea what the final product would look like?

I’m trying to learn to draw.

I feel comfortable enough with my technical skills where I feel like I can pick up a new language or framework with relative ease, so I want to switch gears and improve my drawing and visual communication skills. I believe that any project can benefit from a compelling visual component.

For now, I’ve been trying to start slow and just have fun; for example, telling myself to do three quick sketches of my dog every day and keep up a habit. Eventually I’d like to follow some more structured exercises and resources, like https://drawabox.com/.

Learning to draw is something anyone can do and is incredibly rewarding. It activates a huge part of your brain (visual) that starts firing when you see all sorts of scenes, faces, patterns, colors in real life. Try the book “drawing on the right side of the brain”. Another good one is the Bargue sculpture drawing course.

I actually started Drawabox for the same reason, and I must say that I like that change of mindset. It’s feels good to start digging into something that is not directly related to software.

How to raise a good human, be a good dad and husband.

Relationships take a lot of commitment and effort. It took me a while to learn how to communicate effectively with my wife so we’re fighting problems and not each other.

Babies really test your patience. They are hard to reason with so I have to keep my emotions in check and always be calm even if she is throwing a massive fit. But sometimes they really get your nerves when they cry non-stop for half an hour.

It’s been both great and terrible to be cooked up in a small flat with my wife and child. I’m always happy to see comments like this. I wonder if there’s a community for the M(o|u|a)ms/Dads of HN

Any tips for communications with partners?

> But sometimes they really get your nerves when they cry non-stop for half an hour.

For no apparent reason … sigh

Are you using any resources that you’d care to share?

Stanford’s CS143 Compilers course: https://courses.edx.org/courses/course-v1:StanfordOnline+SOE…

I’ve always been interested in making things that make other things, and compilers definitely fall into that category.

In the middle of the second assignment, the parser. It’s a lot to consume, but I feel like the theory isn’t particularly difficult, about half my learning has been getting to know the tools (so far: flex, bison). I’ve also spent an annoying amount of time on updating and configuring the VM, I guess that’s a bonus lesson in Linux sysadmin-ing. It’s also my first experience with C++, which seems useful to know.

I also started this course on web security: https://web.stanford.edu/class/cs253/. The first assignment was a lot of fun, the material is fresh, and it definitely seems like very useful information for anyone in the web stack.

I’m also learning a bunch of new cooking recipes, but who isn’t nowadays.

TA’d this class! It’s a great intro, if a little dated. The best assignment, in my opinion, is the last (code generation). It’s also the easiest to do independently, since you can just see if your compiled programs produce the same output as the ones compiled with the reference compiler.

The class assignments are missing a more thorough look at optimization. Might have to rely more on the lectures for that.

Thanks for your recommendation !I am pretty interested in web security partly because I want to start my own start up in two years, and I want to make sure my customer’s data is safe. I am also interested in compilers but just can’t bear C++, so I plan to take this course :https://www.coursera.org/learn/nand2tetris2. It doesn’t limit languages you can use .So I plan to write the compiler by Racket(which can also sharpen my functional programming skill).

Music edition/production with Reaper:


They’ve been so kind to issue a temporary free license to help with the isolation. Their license model is very liberal anyway, but the gesture was well appreciated.

I own a Yamaha E363 keyboard and a Stratocaster, now I’ve bought a Behringer U-Phoria UMC204HD soundcard and an Audio-Technica AT2020 mic to complete the budget home studio. Amazon.es is working faster actually. However I wish they kept orders bundled, instead of delivering them apiece.

There are many videos linked from Reaper website, but as a Spanish speaker I prefer this guy, that’s absolutely great:


I’m also going to learn to airbrush. I’ve had the gear for some time, but now I’m seriously putting the time.

A very cool, overlooked, and timely feature of Reaper is NinJam which is a way to “jam” with people remotely through a fixed time-delay.

It’s been around for at least 15 years, but looks like the author has recently started updating the feature again. Check it out!

Thanks for the heads up about Reaper! I’ve been meaning to get back into music production.

I’ve started to do yoga. Two weeks in and it’s going well actually. Also as a FE Developer, the inner workings of JavaScript

Currently I’m learning video editing on Davinci Resolve.


I collect examples of advanced C++. Noticed the lack of educational content at this subject, and planning a short course, something like “Exceptional C++” style, but on video.

In our distributed team we have a practice to make video presentations for colleagues, so I have experience of delivering visual content to tech audience. However, I see that particular course like a high-quality content, with diagrams, animations etc.

That’s how I found Davinci Resolve, and you know, it’s fun to learn it (even it crashes more than production-ready application supposed to). The only thing that buzz me, is not to forget about the initial goal:)

I am taking this course[1]: Programming Languages. It emphasizes on big ideas behind languages and functional programming which is very interesting and enlightening.You will implement a type checker and interpreter through this course(I am struggling ML’s pattern matching now but feel quite pleasant ).


Yes, the only course I ever finished and finished wiser of the scores I must have enrolled in so far.

Trying to figure out how to teach myself EE.

It looks like theres basically two suggestions:

A) Following the same sort of curriculum a university would teach. I’d have to manage to dredge through the math, but I suppose it’s possible but would lead to probably the most competence. Unfortunately however, I was hoping for the big MOOC sites to have more content. EdX has some decent introductory stuff but not much beyond that.

B) The other recommended way is the hobbyist way and what I suspect most other software people wouldnauggest which is just building shit that interests you, ignoring first principles. Unfortunately I’m not sure how this would work out, since my projects in any domain seem to be a bit, er, grand and you supposedly need a strong math background to build anything more than basic circuits.

I’d dread the math a lot less if it were more cut and dry. I wish I could just jump right to calc, differential equations, linear algebra, etc. But more realistically, it would involve me hunt and picking parts of algebra and embarrassingly even simpler stuff. I was looking at some Khan academy stuff and while it turns out I remember more than I thought, theres still plenty I had forgot even existed.

Another alternative that seems good, but not realistic is that there are some community colleges that have professional certificates that teach electronic circuits pretty quickly. Unfortunately this is prohibited by the absolutely fucked “residency requirements” for this state whereby I wont be a resident of my current state for years (at least for tuition purposes, I’m a resident for just about everything in a few months). Also those courses are all in person which, for some unique reasons dont fit my life situation.

I’m currently working my way though a three part series of electronics classes offered by GeorgiaTech’s EE department on Coursera. Search for “Bonnie Ferri”. The recommended order is Linear Circuits 1 & 2, then Intro to Electronics.

What kind of “grand” circuits are we talking about here? As someone who entered EE through the hobbyist approach, there isn’t much I’m interested in that has me wishing I had formal EE education background. Do you want to do analog? Because there’s hardly any math involved in practical applications of digital electronics.

The last 2 ideas I had were a ISA SATA card (dont ask) and attempting to build a DOCSIS modem (because issues with my shitty ISP supplied one intrigued me.

I actually tried to build a Arduino based EPROM reader for a chip I extracted from an old electronic device, but ran into some issues and am kinda discouraged because that seems like it was pretty basic.

Building a guitar! It’s my first attempt at building an instrument. It’s going well so far, mostly using threads from TDPRI as guidance and a body template from there as well. I opted to buy a neck from Warmoth since building a neck seemed especially intimidating and requires more special tools. Today I finished soldering the electronics, bolted the neck on, strung it up and it actually works! Now to take it apart and work on the finish… lots of sanding ahead.

(I’m pretty sure it’s uncommon to put the whole thing together before finishing, and then take it all apart again, including the electronics… but I wanted to know nothing would be terribly wrong before I spend hours more on finishing!)

TDPRI’s Tele Home Depot is a great source of info- https://www.tdpri.com/forums/tele-home-depot.46/

My own build thread: https://www.tdpri.com/threads/first-build.1011061/

this is so cool, I’ve been meaning to get a bass guitar and start learning, but I’m always busy doing something else.

Pick one up! There’s no time like the present 🙂 It’s a long-term learning thing anyway, definitely one of those “best time to plant a tree is 20 years ago” things.

Morse code. Started today by learning the alphabet in half an hour using a Google creative project[0] and quickly realized the challenge will be thinking in the sound/rhythm of the letters (instantly hearing/deciphering them) so I found a video[1] and then watched another video[1] which confirmed my hunch that it’s better to focus on the sound than the notation.

Now I have GBoard w/ morse as my default keyboard on the mobile. Works well enough for short messages (and typing in URLs with autocomplete).

Edit: And I’ve been learning Spanish for months already so that’s still active.

[0] https://morse.withgoogle.com/learn/

[1] https://www.youtube.com/watch?v=2_qQZ92onhU

[2] https://www.youtube.com/watch?v=D8tPkb98Fkk

omg. This was AWESOME! Thank you for sharing this. I just finished that tutorial and it was great. Very well done- Never done Morse before and 1.5 hrs later Im writing this comment (including punctuation…very slowly…but musically) via morse!

I think my favorite moments were learning that v uses the motif from Beethovens Vth and `!` = Candy+mustache

Nonlinear optimization algorithms.

At work I’m working on anomaly detection using ML at the edge and want to move beyond bog-standard stochastic gradient descent to fit the model(s) in favor of methods that exploit the use of analytical Jacobians / Hessians. So I’m comparing and contrasting the various nonlinear (gradient-based) optimization methods for my use cases and trying to see how fast I can make them run.

I’ve learned a ton about the homeless population and shelter process.

I’ve been a volunteer leading health assessments and triage (via volunteer Telehealth nurses) at our local men’s shelter. The shelter has even experienced a complete move in the last week.

A few huge points, however:

* Homelessness isn’t always a choice – and especially in this situation it’s causing panic.

* Our shelter system needs much greater support, and many organizations need better communication and integration.

* Paper is alive and well some places, others are quite a bit better technologically. There is much room for process improvement.

* While I am selfishly getting out of my own house and interacting with people, none of them are in anywhere near an ideal situation – and it’s affected my mental health somewhat. I’m grateful for personal protective equipment, but reuse does concern me.

So much more I could go on about, but I can say during this period I’ve learned a ton more about homelessness, the process, and have kept people from entering the shelter thanks to our fantastic volunteer nurses who need to practice in a limited capacity for COVID-19 screening.

Volunteering is also something that has turned into quite a calling for me right now as well.

I’ve been working through the Abstract Algebra course at Harvard: http://matterhorn.dce.harvard.edu/engage/ui/index.html#/1999… as well as Bartoz’s Category Theory courses.

I’ve put that a temporary hold for the last couple of weeks to brush up on algorithms; I’m working through some select chapters of Concrete Mathematics, Programming in the 1990s, How to Solve It, and Algorithms. I find I’m not satisfactory at solving leetcode-style problems in what industry considers a sufficient amount of time so I’m working on improving my skills there.

And I’m making progress on my own side projects as well. I’m testing the waters with trying to record my work on video to see if streaming might be a thing I could do.

I’m trying to learn advanced Mandarin (while not living in PRC/Taiwan). I’ve bought some business Mandarin books whose content I wouldn’t have sought out: international trade, shipping, etc.; I come from a tech background.

Surprisingly, logistics (and the Mandarin around it) is interesting! Going through some of the “Incoterms” now. It’s fun to learn something new and a language at the same time.

What are some of the resources you used to get to your current competency? I took classes back in college so I have _some_ understanding, but I’d love to get to a conversational proficiency.

How to take care of a toddler from 5 AM – 8 PM while trying to manage work and phone calls. Then how to not fall asleep while I”m working on projects until 1 AM. So learning how to function on 4-6 hours of sleep.

I have a renewed appreciation of so much that we usually take for granted, chief among those are the contributions of our teachers and child care professionals.

>Then how to not fall asleep while I”m working on projects until 1 AM. So learning how to function on 4-6 hours of sleep.

Try to take a ~30 minute nap in the evening somewhere that is quiet and comfortable but not the bed you sleep in. 4 hours isn’t sustainable for long, but I’ve found a nap in the evening is sufficient to let me run effectively on 5-6 hours.

I say somewhere that isn’t your bed because I’ve found that if you settle in the bed it can be far more difficult to get moving again, and also you can start to associate the bed with naps and have more difficulty getting to sleep when you mean to later, and staying asleep.

Same here. Also trying to learn a new language without a dictionary: the toddler’s cry, and trying to learn to make myself fall asleep on command, but being awake in the same time.

I’m learning pentesting for fun. I’m mainly active on hackthebox.eu. I might get my OSCP one day, for fun as well. I do still think the certificate comes in handy despite the fact that I’m applying for web developer positions at the moment. I’m happy I’m learning this though, I’m already noticing that I develop differently, because the little I’ve learned about pentesting taught me that true cyber criminals are hungry to break into your systems, and they only need one shot, one small misconfiguration and they’re in. Or at least, that’s how it works on hackthebox ^^

I’m also doing some OSINT (open-source intelligence) by simply giving myself assignments. The assignments on hackthebox.eu were not all that great and OSINT is one of the few disciplines that you can do in the real world without permission, since it’s all about accessing public data.

I flip back and forth between the 2 disciplines. I don’t know why it attracts me. It just does. I also notice that learning this stuff is completely different from programming. And to an extent it’s one of the few ways that gives me the feeling that I’m “living and moving around” in cyberspace as opposed to “constructing” (i.e. programming) in cyberspace. I guess typing cd and ls on a lot of Linux and Windows practice boxes give that effect. And the cool thing is, you learn a lot quicker about all kinds of services. For example, I never knew about rsyslog, logger or the mqtt protocol (Linux boxes). I never knew about Kerberos, Active Directory and smb (Windows boxes).

I’m happy I did some master courses in cyber security beforehand. While I’m really new to a lot of things, I’ve gained a lot of what psychologist call crystalized intelligence in this area. So it’s all quite easy(ish) to understand. Things get harder when I have to reverse engineer binaries or debug in x64 assembly. It’s still doable though.

Anyone who’s up for doing hackthebox together, my email is in my profile. I think it’d be a ton of fun to team up!

I am also learning pentesting, for the cert and to have some methodology in my job ( somewhere between devops/compliance/security). First week into PWK course, I used hackthebox and thecybermentor’s practical pentesting course to build up confidence to attempt getting that long wanted OSCP title.


I’ve heard that OSCP is a lot more CVE based than hackthebox. It apparently also has a lot more rabbit holes compared to hackthebox. I haven’t checked out thecybermentor yet, but a friend of mine has and he seemed to like it as well.

It is more about identifying CVEs and exploits than HTB is, but there is still a good amount of finding misconfigurations, like HTB has. OSCP helps you build a methodology and a mindset for pentesting, and finding CVEs with existing exploits makes that a little easier than HTB, where you are not under time pressure. HTB would be my goto to prep for OSCP, I wish I’d found it before.


After reading about storytelling, I realized that I’m as fascinated to a well-crafted world as good plots and characters.

There’s not much to read about, as a fiction world can contain as much detail as the real world. I’m spending time looking at the fiction worlds that I like and taking them apart.

As an exercise, imagining places and races is also interesting. You’ll be amazed by the amount of details required to fill the gaps in order to “see” something in your head.

You would probably have fun building a hard magic system. Hard magic being a system that has strict rules for how things work. Soft magic being Gandalf style where how it works and how it’s limited is unknown.

One thing I’ve been thinking about recently is conservation rules. are there any popular fiction worlds that explore conservation of e.g. magic? The only example I presently know about is https://www.hpmor.com/chapter/78 (search for “conservation”).

Hard magic system sounds very interesting.

Although “unknown magic” and “ancient powers” are convenient, it bothers me to think there’s no consistent system underneath it.

In the setting of the world, people in the world can view it as unknown, but the author is the god and should have a decent idea of how everything works.

Would you be interested in doing that as a profession? Storytelling and world building is sorely underappreciated.

I don’t have much capital right now (I haven’t raised – just personal savings), but I’d like to hire some folks to do this for my startup.

Curious, why do you want to do that for your startup?

Is your startup a game studio?

If you speak French, there is a conference by one of Ubisoft’s creative directors about the Might and Magic world building techniques and choices on the BNF’s Fantasy podcast.

Yep! A recurring hobby of mine is writing about a not particularly deep universe I was fond of in my teenage years. World-building my own canon so to speak.

This sounds fun. Curious what you read about storytelling that sparked an added interest in world building?

Although you said there is not much literature around the subject, did you find anything? This has always been one of my favorite aspects of The Elder’s Scrolls and, of course, Tolkien.

As a reference book, the Planet Construction Kit is good and comprehensive.

Although reading reference books like this can be a bit dry, it helps you recognize the elements that an author makes up for his or her world when you see them.

This is awesome! thank you for sharing it. I was looking for something like this.

Right now, I’m learning math. I met a PhD via Discord who is giving me problems to work and checking my solutions. It’s been quite fun so far, working on Real Analysis and Abstract Algebra.

I’m also doing baking; baked my first loaf of bread yesterday. Really interested to learn (and eat!) more.

I’m tempted to pick up a cheap instrument and learn one as well, or delve back into Python some more. Or drawing. My main issue is focusing now, sadly. Any tips there would be appreciated.

Focus has been an issue for me too. I think it helps to view yourself as having a limited number of focus ‘slots’, but to view each focus as just a medium-term commitment (a few months or years). So e.g. you’re not choosing an instrument _instead_ of drawing, you’re just choosing to learn the instrument _first_.

Setting specific goals for each month, which I track on Trello, has helped me a lot. It encourages me to make concrete progress and not tackle too many things at once, but reduces FOMO since I know I can always go a totally different direction the next month if I want.

(I blogged a little about focus: https://brokensandals.net/three-books-on-focus/)

I have a similar problem. I do what interests me in the moment and I don’t make myself feel bad when I don’t make the progress I wanted on something else. I think I’m happiest that way.

My advice would be to define in multiple realms what you consider to be strongly focused, while both realizable and healthy in the long-term.

I’m curious, how could someone find a PhD/researcher on Discord, esp. for this kind of purpose?

Prolog. I think that genetic logic can largely be expressed in Prolog to enable doing some crazy stuff that hasn’t been explored yet. It’s crazy to me that synthetic biology hasn’t really used logical programming yet for gene design.

Logic programming is badly underapplied in general, I think. Most of the amazing work in this area never seems to have gotten far out of academia (if at all) — Prolog being the almost singular exception.

Would be awesome to see some motivating examples for this application. It sounds really cool!

In synthetic biology, the application is super clear.

Let’s say we want to make cocaine (or related compounds) in yeast (https://www.nature.com/articles/s41467-019-11588-w). Well, we know the biosynthetic pathway to get to that molecule (https://biocyc.org/META/new-image?type=PATHWAY&object=PWY-58…), and we know the biosynthetic pathways in yeast that intersect with that pathway.

In the tropane paper, they express 15 new genes and did 7 disruptions.

There should be a way to declare “I want this end product” and a system knowledgeable about the proteins associated with the reactions necessary to get there should be able to fit the puzzle of “ok, if you express these proteins you get that end product, and if you knock down these genes in the organism it should increase your production”.

This generalized system should be applicable to nearly any biosynthetic pathway, and I think there is definitely a profitable niche at being good at that.

I’d be interested in trying to recapitulate this work in mediKanren, if you are up for it.

Could you shed some more light on this amazing work you’re talking about?

I’m fascinated by what this might look like. Have you written anything on this concept?

Not yet, I was in the middle of building a script to convert metacyc (https://metacyc.org/) to a Prolog database when COVID-19 hit – now I’m distracted figuring out the logistics of doing local production of diagnostic enzymes.

I’ve written something for the biotech crowd (to get DNA synthesis from FreeGenes), so it uses some odd vernacular and definitely isn’t perfect for tech crowd – no actual code implementing it yet, but has some useful historical context of how this lands in with everything else.


Have you any thoughts on medikanren? I think they are generally _thinking_ as you do but in the short term that project is more about searching medical knowledge bases as opposed to logical programming of/with genes.

I can’t find that much information about it online, but it looks great from a outside perspective! Wish they had a paper or something.

Me too. We’ll write one soon. Right now we are hacking on mediKanren to do drug re-purposing for COVID-19.

I also work on miniKanren and am very interested in synthentic biology. We should talk! Please email me.


Model Thinking, from coursera. A funny coincidence; last week I reached the… SIS epidemiology model! Rarely so relevant.

It’s quite interesting. Two of the things that fascinated me most so far are emergent properties (such as in cellular automata models), and what he calls the models’ “fertility”.

As an example, with a few adjustments (ie the “recovery rate” becomes a “churn rate”, etc) the SIS model could be adapted in marketing, viral or not, to measure an existing campaign’s efficiency, or try to predict the means a future one might require based on different assumptions and goals.

Also acted as a nice statistics 101 refresher / intro

… Don’t laugh: C

I learnt programming mainly through various scripting languages, some of which had some relatively simple visual output available, which I personally found invaluable for learning and visualizing.

I realized that better visual output was the main thing holding me back from doing more in C since there are so many options, often complex, involving much boilerplate. So my mini project is essentially exploring the simplest, most minimal possible ways of drawing pixels on the screen in Linux.

So far tried fbdev (but doesn’t work well with X), now playing with XCB.

> So far tried fbdev (but doesn’t work well with X), now playing with XCB.

Another idea would be to use SDL which essentially provides functionality to make windows, draw pixels and handle input/output. If you do not want to use any library at all and do not mind low “resolution”, you could use your terminal as window and regard characters as pixels. Sure, there is the curses library to abstract away different terminals, but if you do not care about platform independence you can just directly write escape sequences to the terminal.

I was indeed trying to avoid the big libraries, since this is just for personal use I don’t care about cross platform which allows me to escape these potentially – I may well end up back at the SDL + OpenGL level later when features or performance are a concern.

My current goal is to find a balance of least dependencies and least boilerplate to draw a pixel buffer so i can play with C, nothing more. Once I can do that without lots of fluf then i may be attracted to more advanced or complex methods later on when performance is desirable.

I have done some visual things with the console and printf alone in the past which gave me a taste of C, but now I want some real pixels 🙂

You may want to try raylib. It’s written by a teacher who uses it in the classroom and geared for this kind of “let me code games in C but with only one dependency” goal. It does more than you need but that’s a common theme of useful libraries.

Have you tried A allegro5? Any take on which is better? I’ve tried both, but I’m too much of a newbie to have a reasonable opinion. Thinking of getting back on to one of the two.

My goal is to attain a balance of least dependencies and boilerplate. From what I’ve read so far it seems that implementing xclient protocols directly would require considerably more boilerplate than using XCB, (and my understanding is that XCB is just that: a generic xclient implementation and nothing more).

Please do elaborate if I’m wrong though! I would be delighted if it’s possible to implement a simple subset minimally purely for displaying a pixel buffer without XCB?

Out of interest, why would people laugh at someone learning C? I know plenty of people using C in all manner of domains, choosing it over C++ or Rust for fair and sensible reasons – I’m not a C person myself, but it certainly seems extremely useful to have in the toolkit!

I want to learn C not (only) because I think it’s useful, but because I think I might like it. I have a particular interpreted language that I like, enjoy and know inside out, now I want to know a compiled one in a similar way.

To answer your question: I get the impression from various tech news on “hot new languages” that C is the incumbent systems language that people put up with but don’t really love, and yet I want to try and love it. I’ve developed a taste for minimalism, simplicity and a degree of brevity in programming, I have a feeling I might find C more suited to me than C++, Rust, Go, Java etc for this reason despite the lack of “modern” features.

I’ve noticed this a lot on hackernews, there is an apprehesion to say certain things as though there is some sort of pedigree or gating when discussing topics, especially when it’s personal…there isn’t.

Case in point: The comment below mine…

I started coding 10 years ago (damn I just figured that…) learning C at my engineering school for 2 years. Never had to use it ever since (mostly working front-end and webAPIs) but I’m still glad I studied it to learn the programming foundations. I would probably choose Rust or Go today though.

>choosing it over C++ or Rust for fair and sensible reasons

I don’t think such reasons exist.

I don’t think C/C++ should be used when superior alternatives exist (Rust). It’s like smoking; you’re just hurting yourself.

Unless you’re being like the programming equivalent of a steam engine enthusiast or a historian. (In a world where most of the industry is still using steam engines cuz we’re in too deep and must ride the inertial tide for at least a few decades.)

There are plenty of reasons to still learn C even if better alternatives exist for most new projects. There’s so much important software out there in C (and C++), for example the Linux kernel.

This is incredible – Thanks for sharing. Kudos for using the latest goodies provided in spring-boot.

I had an older version but wasn’t using reactive. Definitely, this looks promising.

I’m writing a book at the moment[1], which means all my learning is focused on the table of content I made up a year ago.

But if I had time on my hand I would learn about:

* Adobe after effect not to only to edit videos but to animate!

* Illustrator, because it’s the basis of any graphics

* Blender, because I want to learn about 3D graphics and this seems to be the reference

* Unity, a gaming engine, because I’ve always wanted to make a FPS game

* Phaser, an HTML5 gaming engine, because I want to make a multiplayer game with websockets. I’m thinking of starting with an online board game though.

[1]: https://www.manning.com/books/real-world-cryptography?a_aid=…

I’m studying DS and Algorithms, I am a self taught developer and I’m trying to fill some gaps in my general CS knowledge.

There’s a project I want to work on but I feel a bit overwhelmed and don’t know where I should start, I’d appreciate some advice here.

I want to create shogi(Japanese chess) server, similar to lichess, the thing is that I’ve never done anything similar to this, I’ve been reading about web sockets, this seems like a good place to start. I plan to use elixir for the backend, is this a good choice? Lichess uses scala, should I use this instead?

My advice would be don’t bite off so much at once where you’ll risk getting discouraged. Part of the reason you may be feeling overwhelmed is that it sounds like you’re combining three projects: learning a new programming language, learning network programming, and writing an application server in a new (to you) domain. Any one of them is potentially enough to keep you quite busy.

Why not instead start with a language you already know, and figure out how you’d sketch out a standalone game engine (forget about networking for now) in that. Then once you think you’ve got the basic game engine (architecture, at least) down, then tackle turning it into a network server (again, still using a language you already know.) Finally, port the thing over to a language you want to learn (Elixir/Scala/whatever) and you’ll have an implementation you understand well to compare it against. Of course you can rearrange the sequence… but that’s the basic idea.

I think you’re definitely right, I’ll try to give it a try using javascript, and learn the basics of network server along the way. The reason I wanna do it in elixir is that I wanna learn another language, right now javascript is the only one I can say that I know kind of well, all my side projects are in js, so I guess I’m a bit bored of it.

Elixir / Phoenix is indeed very good in handling websockets. Probably that’s the easy part in your project.

I built kfchess.com (https://github.com/paladin8/kfchess), which might be a helpful reference. It’s by no means amazing code (I hacked it together quickly in my spare time), but it uses https://github.com/socketio/socket.io for real-time client-server communication. It’s a relatively simple library to build on top of.

As for the backend, I would recommend whatever you’re most familiar with. It doesn’t make that much of a difference and you’ll be way more productive in a language you know.

Love the idea of a Shogi site by the way!

Your project looks really cool, I’ll take a look at your repo, I’m sure I can learn a lot from it.

I am gladd you like my idea, there’s a few good platforms to play shogi already, like 81dojo on the web and shogiwars on mobile, but none of them are open source. So I wanna do an open source version similar to lichess.

It’s a basic one, but learning an instrument! Namely, the drums. I’ve tried guitar and bass before, but neither stuck. I’d been thinking of getting a e-drum kit for a while now, and the quarantine gave me a good excuse. I’m loving it so far, just playing along to songs I like, but since I’m self-learning I can already tell my technique and drum kit setup is off. I keep having to adjust the drums, the snare especially, and haven’t found the optimal position for everything yet. But it’s grabbed me more than any instrument before, and I’m having a blast.

The kit I got for those curious: https://www.guitarcenter.com/Alesis/Nitro-Mesh-8-Piece-Elect…

Throne: https://www.guitarcenter.com/ROC-N-SOC/Nitro-Throne-Tan-1500…

I’ve been working on my music production skills with a learn monthly class from Andrew Huang. It’s been good to push myself into production; I have many years of live music experience but haven’t spent a lot of time recording.

I’d classify my style as synth wave meets 80s arena rock for the current track I’ve been working on 🙂

My learning path is here [0] and I’ve also been uploading works in progress to my soundcloud [1]

[0] https://learnmonthly.com/u/dave-mosher-e2bc26/andrew-huang-m…

[1] https://m.soundcloud.com/dmosher

Been learning Elixir. I loved Erlang and Elixir smooths out a lot of the rough edges for me. Planning to use it for a web-based multiplayer RPG.

I’ll probably get a lot of shit for this, but LeetCode.

I’ve recently been furloughed, and I think that redundancies aren’t too far away. There aren’t many companies hiring in my area at the moment, and if I’m going to move it’s going to be for a big company, so I’m dusting off the CV and am applying to some Big N companies.

A recruiter recently reached out to me, and I’ve got an interview with one Big N company coming up soon, so am using my new-found free time to study and, at the very least, be a bit more employable at the end of this pandemic.

I don’t hate you I pity you. Applied for Big N jobs last year, had to study leetcode for 1 month and I hated my life. I was legit depressed. I was already so busy at work and coming home to do leetcode just killed all motivation and happiness in my life. Did well enough to get to on site interviews but didn’t get a full time offer from any of them. Such is life 🙁

I used to hate leetcode with passion because i associated it with being a failure in career.

I started leetcoding just for enjoyment and not for landing a FAANG job, when i had no interviews coming up. I started enjoying it a little bit and now i do it for “fun” and don’t have an anatagonist realationship to it.

Like someone said, once you overcome something you have keep overcoming it, so you can never be successful if your strategy is overcoming.

It feels like studying for the SAT for me (something I also struggled really investing in). At least it’s more valuable than the SAT in the skills you develop.

It can be really hard to motivate yourself to jump through hoops.

I use to hate the idea of studying leetCode and I still refuse to do it. But then I realized how hypocritical I was being considering all of the time I’ve spent “grinding architecture and infrastructure”, reading white papers and studying videos on TOGAF so I could talk the talk on an “Enterprise Architect” or a “Digital Transformation Consultant”. But if I have to play a game to get the next salary upgrade after I top out as an IC in my local market (not the West Coast), that’s what I had to do. Who knows? I might end up working in consulting at AWS or Azure.

But now, with the entire world economy screwed up, I don’t think now is the right time to make that kind of move. I’ll stick with being just a regular old Enterprise Developer/Architect/Team Lead/Single Responsible Individual depending on how the wind blows focusing on healthcare.

don’t need to do leetCode just for the salary game, there are some really fun algorithms

After programming in assembly for hobby for six years in middle and high school, 4 years in college, and professionally for almost 25, nothing about software development is “fun”. It’s just a way for money to appear in my bank account. Don’t get me wrong, I don’t dislike software development, but every hour of continuous learning I do is a combination of keeping me competitive at my current level or to make more money depending on where I am in life.

it can be a fun game, and it is a useful game. brushing up on fundamentals is useful in any human endeavor no matter how advanced you get.

Architecture is way easier than algorithms. I’m actually the opposite. I hate the idea that people are studying intensely for architecture because it just takes reading the wikipedia summary to get the main point.

Architects are usually just managers who are ex-engineers and have been out of the front lines for so long that they aren’t technical enough to get back into coding. This is fine, but the idea that “architecture” is some kind of talent is absurd. Anyone can study a blog article about the latest architecture buzzword and understand the concepts front to back. Not to mention that the more physical nature of architecture makes it less flexible than code itself so “architectural” patterns are, as a result, significantly less abstract and complex than coding patterns/algorithms.

The true difference in ability is measured by who can actually Build an architecture, and usually its developers who build it, while architects (mostly) just talk about it.

Not to mention that the more physical nature of architecture makes it less flexible than code itself so “architectural” patterns are, as a result, significantly less abstract and complex than coding patterns/algorithms.

This is the reason that software engineers need adult supervision. The fact that you think that modern infrastructure is physical and static displays a lack of experience. There is nothing static about modern cloud infrastructure.

I just had to deploy an API to ECS/Fargate (Docker). We had to determine the best combination of memory/cpu of the Fargate runtime environment and what hardware we wanted to give the ElasticSearch environment. I basically wrote a CloudFormation template (infrastructure as code) that defined the environment and then wrote a Node script that ran the CF template and passed in parameters to vary the hardware environment (cpu/memory). After the environment was created, the script then ran a series of Artillery load tests, recorded the results of the load tests, gathered metrics from CloudWatch and estimated the monthly cost compared to the performance.

We reported that to management to let them decide how much they were willing to spend for the throughout they needed.

I’ve created entire environments with databases, Redis Caches, ECS clusters (think AWS version of EKS), etc as a proof of concept by using CloudFormation deploying code to it, showing management as a demo, and then tearing it all down just by clicking delete until we can come back to it after the contract is signed and then spin it back up with one command.

>This is the reason that software engineers need adult supervision. The fact that you think that modern infrastructure is physical and static displays a lack of experience. There is nothing static about modern cloud infrastructure.

Note how I said “more physical nature,” meaning that it’s closer to physical but not completely physical. Either way, all abstractions suffer from leakage from the physical world. Data and processes, while seemingly abstract all occupy physical and temporal space and this fact leaks to all layers of the stack. Thus, technically, everything in the universe including computation is physical and nothing is ever purely a virtual entity.

Honestly, you think I don’t know about docker? You think I don’t know about the cloud? “Infrastructure as code” oooh buzzwords, you’re just using a shittier domain specific language to write something that you can also do with Regular code (such as python, no buzzwords needed).

Give me a break, what web developer doesn’t know about the above stuff? None.

>I just had to deploy an API to ECS/Fargate (Docker). We had to determine the best combination of memory/cpu of the Fargate runtime environment and what hardware we wanted to give the ElasticSearch environment. I basically wrote a CloudFormation template (infrastructure as code) that defined the environment and then wrote a Node script that ran the CF template and passed in parameters……………….

OK, the stuff you did isn’t even usually what a “architect” does. It’s devops. An architect just diagrams the boxes and lines and gives it to the devops guy to spit out working infrastructure or a POC. But that’s besides the point…

Can you write your own programming language? Can you write your own database? Can you write your own Operating System? These are actual specialties (none of which involve “architecture”), not some garbage made up specialty like “architect.” At the very least, if you want to be part of an actual specialty in the IT world you need to build shit and that shit needs to be HARD to build, you can’t just do some easy diagraming of a bunch of stuff while acting like you have some superior understanding of the latest architecture pattern you can look up on wikipedia.

Let’s stay on topic rather than make passive aggressive comments on my intelligence.

You’re implying that my comments are stupid and arrogant. Prove it if you can, let’s get to the bottom of whether or not “architects” is a worthless specialty or not. I think you know I’m right and the only thing you have left are personal comments on my intelligence.

Honestly, I also had a long reply but I thought why bother? You haven’t gotten past the first step to knowing what you don’t know.

We all thought we were the smartest people in the room at one point, you’ll grow out of it too one day.

>We all thought we were the smartest people in the room at one point, you’ll grow out of it too one day.

Again with the insults.

Why bother? Because you can learn and I can learn. I don’t come here to trade insults. I come here to lay down the actual reality of what I see unimpeded by social norms. Yeah I’m sure I touched nerve here, but it’s nothing personal, the internet allows me to talk about truths that are uncomfortable and forces me to face those truths as well.

I’ve been proven wrong tons of times on HN, so I’m hoping that if you disagree, you can prove me wrong and I can learn something and I’ll return the favor in turn if you’re the one that’s actually wrong.

I find that this isn’t the case with most people, they don’t want to face reality. The fact that you turn to personal insults and have this whole “why bother” attitude seems to me as a cover. You don’t bother because you got absolutely Nothing to offer.

Where I work, architects are responsible for disambiguating requirements and breaking down the implementation across teams into achievable milestones. It’s the intersection of technical chops and social skills. One of those is a lot easier to develop than the other.

A good architect makes it seem like their job is easy, but there’s nothing easy about taking a vague idea and leading a huge cross-team effort to solve it.

>Where I work, architects are responsible for disambiguating requirements and breaking down the implementation across teams into achievable milestones. It’s the intersection of technical chops and social skills. One of those is a lot easier to develop than the other.

Good thing we’re on the internet where we can talk about the actual reality and lay everything out as it is without worrying about the social and political bureaucracy that infests corporate culture.

That being said, isn’t what you described the role of the tech lead or manager? The best tech lead ultimately derives technical architecture by aggregating the expertise of the team and puts that plan into motion exactly as you said.

The term “architect” usually implies greater knowledge of “architecture” where the “architect” uses this “greater knowledge” to lay down a high level plan of the infrastructure. Additionally your initial post implied that this is what you think, because this is what you study for interviews.

Like I said, usually the architecture role is actually ends up in practice becoming an ex-engineer manager. That’s the only actual role they can fit while maintaining the respect of the engineers and without being completely useless. This is basically what you described about yourself.

Additionally your initial post implied that this is what you think, because this is what you study for interviews.

Thousands of people study about how to reverse a binary tree on a whiteboard and other needless leetCode to “work at a FAANG” even though they don’t do that everyday.

What you study for an interview is unfortunately often only vaguely correlated with what you do on a job.

Don’t listen to the downvoters. You’re telling people the cold hard truth that they don’t want to hear.

I hate to say it, but I got no discernible advantage from my non-trivial coding projects during my last job search. My time would have been far better spent just grinding leetcode, from a purely economic perspective. I wouldn’t have had nearly as much fun, but I probably would have gotten more offers.

100% percent my experience too. In the last 3 months I’ve been on-site at 3 of the FAANG companies. Not a single interviewer brought up the large personal projects I’ve done and which are given decent space on my resume; my weeks of leetcoding was definitely far far far more beneficial for getting a job.

sometimes feels very sad about this since one’s value should be reflected by the awesome projects he has done. I think it’s just laziness of the FAANG companies. If the interviewer is well prepared and keeps digging the resume, then he should know the candidate is good or not. But by leetcoding, it’s simpler for them, just keep asking the repeated questions.

From my personal experience, a company wants a “yes man”, someone who will do as they command. From their perspective, if you can’t pass (or refuse!) the coding challenge, you’re already in the red flag zone. That’s just how it is.

The funny thing is that a single fairly large personal project will develop your engineering skills 42 times that of the hundred something leetcode problems you solved for your FAANG interviews.

One teaches deep long term critical thinking. The other short term critical thinking. You won’t see any small short sighted systems out in the real world.

they look at your resume in any seriousness after you pass leetcode rounds,

Back when I was preparing to apply to a FAANG, I built a game engine as my vehicle for practice. From scratch. Well almost from scratch, if you consider bare nekkid OpenGL to still be “from scratch”.

There’s tons of opportunities in a game engine for exercising and honing your performance chops and your algorithm chops. It also gave me an opportunity to learn a new language and programming model – the GL shader language. Building it onto a game helps to keep it real.

Best of luck.

I’m not too sure about algorithms?

You can get away with making a working, performant (basic) engine with some neat functionality nowadays without delving too deep into algorithms or using any advanced data structures.

It is a good exercise in “real coding” though.

Can’t imagine getting shit for studying up on what’s likely to help you get a job. I’d be doing the same if I were in your situation (though if laid off I’m hoping to start my own thing).

I can’t hate you for doing what you need to do to get another job, I hate that this it what interviewing has come to and the companies capitalizing off it.

“I hate that this it what interviewing has come to and the companies capitalizing off it.”

I for one am extremely grateful, although I think it would be even more fair if it was more like the SAT. Traditional interviews depend too much on status signaling and social connections.

> I’ll probably get a lot of shit for this, but LeetCode.

Don’t hate the player; hate the game. gl

After 2 years of Leetcoding and jumping ships, I finally got a job in one of the big companies. Worth it.

On LeetCode, how would you estimate the split between slogging-enldlessly-at-things-I-already-know and I-actually-learned-something?

I had never heard of it until I read the thread under your comment so I apologize if this is obvious to people in the know. From the comments it sounds like more of the former and less of the latter.

I had a good experience with Project Euler back in the day (account long since lost). There was absolutely no focus on immediate employability but there were improvements in my “human capital”.

Leetcode problems can be solved by extrapolation from FizzBuzz programming. They can also be solved by engineering insight of algorithms and data structures that are applicable to processes that don’t fit in RAM. That’s what makes Leetcode plausibly useful for evaluating candidates. Bad engineering will get correct output and good engineering is possible. Neither requires significantly more effort writing code.

No sane person will hate on your studying, you are doing what you gotta do to survive, good luck out there friend.

I would be doing the same thing if I was in your situation. Even though LeetCode is a grind, there’s no way around it if you are targeting big companies.

Good Luck!

I’m also doing a data structures and algorithms course, likely followed by what will be HackerRank and LeetCode. I really don’t like it but what can you do?

Good luck! I’m doing the same thing, I actually enjoy some of it, I’ve learned a few things too.

Your comment will likely get killed so let me throw you a life-line

1. It’s likely you’re getting downvotes because it’s an easily google-able question: https://leetcode.com/

2. ” It’s not anything real since today is the first time it’s been mentioned here”. easily proven to be untrue: https://www.google.com/search?client=firefox-b-1-d&q=site%3A…

3. You immediately responded to the downvotes with anger and insults, ensuring that no one will bother to engage. You’re probably having a bad day but don’t forget other people also are having shitty days and no one is helped by your behavior.

3. You’ve been here for long enough to know the rules. Keep things civil and assume positive intent wherever possible.

Hope your day gets better ( call a friend, hotline, play a game, draw, whatever it is that you use as a healthy form of therapy)

You’re receiving downvotes instead of an answer because you’re coming off as a smug prick.

Dude, a Google search would have eliminated the need for you to have a fit, you’re not even close to correct, look it up.

Exploring Elixir & Phoenix. Solved some AOC & exercism problems with it, and wrote a BF compiler. So far, enjoying every bit of it. The language itself is beautiful! Codes are available on my Github[1] account :).

[1] https://github.com/wasi0013/

I’ve been doing the same in fact. I’ve always had a soft spot for Erlang (and now Elixir). I wrote a pretty large Erlang app back in college for a distributed system in a Biology research project.

I’ve been enjoying working with it – taking a little break but definitely enjoying Phoenix as well. It’s been refreshing to work through a “big” web framework that feels straightforward to reason about.

Clojure! I played around with common lisp a bit a some months ago, though I basically used none of the lisp specific features like macros. After reading a few blog posts on functional programming and “the lisp way” I have decided to buy a book on Clojure. My end goal (for now) is to build a basic website with a backend.

Decided to reverse my long-time TODO list and start from the bottom because I realised I’d never get there otherwise. It feels so good so I advise everyone to go and do the same.

For me it looks like this, I’m working on a bootstrapped simple SaaS tool for devops (docker container monitoring):

– Clojure so I’m learning FP and Lisp

– Clojurescript/Reagent so I’m learning SPA/react

– MongoDB so I’m learning NoSQL

– Vim so I’m learning editing like a boss

– SaaS so I’m learning marketing (SEO/Blogging to start with)

Writing my first library/cli in Rust. Never felt so productive in a systems level language but I still quite haven’t internalized the variable ownership system and will probably look back at my code in a few months with total disgust. I’m on Rust’s discord server (https://discord.gg/rust-lang) if any fellow learners want to chat.

I am learning Data Structure and Algorithm and I have also started a book club with a friend where we would be reading at least one chapter of a book every week.

Had similar intentions half a year ago, it really clicked for me after watching the linear dynamical systems lecture by Boyd. How rank of a matrix, matrix norm and singular values relate was an eye opener. Thereafter it was easy to connect singular values and the stability/robustness of a system intuitively. Great teacher, I can only recommend 🙂


I watched all but one of Lamport’s videos on formal specification with TLA+, though I yet have to tackle some project with it.

Right now I got my hands on Tufte’s “The Visual Display of Quantitative Information” as per some HNer recommendation (thank you!).

Yeah, I lose interest quickly, eh. There’s so much cool things to learn that in the end I learn nothing well. Bummer.

edit: grammar, spelling

I’m at about the same place with the TLA+ videos. I finished them a year ago and didn’t feel like I could start a project yet, I more feel like I should watch them a second time. I have an actor system project on the side that I’ve felt tempted to model using TLA+.

If you consider how knowledge decays, your strategy makes more sense. You get to something like Pareto proficiency in a subject and can then ‘reactivate’ that knowledge more easily in the future, should it be required.

You are also of course aware of that knowledge in the first place, which may be even more important. In the timeless Rumsfeldian: you have pushed back a bit at the unknown unknowns.

The alternative path of deeply learning something you may never apply (e.g. what happens to many PhDs) seems inherently less desirable, in my opinion.

Elixir and Phoenix!

It’s been a long time coming, but finally doing it now.

After coming to grips with functional programming concepts (introductory in Ruby, more advanced in JavaScript) I decided to explore Elixir and what I found really surprised me in the right way.

So I’ve decided to dedicate myself to become very fluent in it.

I am learning Vue.

I built a basic tool to help my wife track how much time she spends on Telehealth calls, you can see it here:


She is a family medicine doctor and now virtually 100% of her time now doing phone calls instead of clinic visits. She wants to do a QI project and needed to be able to track the amount of time her and her colleagues spend on various parts of the Telehealth visit.

I mostly just followed the tutorial on their website and read through their documentation.

I’m learning Flutter and Golang, hope to use it soon in a real life scenario; but I don’t have any projects to use it in yet.

D3 for work, and Russian out of pure (seemingly masochistic) interest.

I’m a native English speaker and Russian would be my fourth language. Perhaps I’m simply approaching the limits of my language ability, but the grammar rules with cases that I’ve learnt so far are doing my head in. It’s very discouraging. I don’t intend on becoming completely fluent, and so I’m trying to find shortcuts to be fuzzy about the volume of grammar rules to keep in mind.

I’m also learning Russian at the moment! I’m a native English speaker and am presently dealing with the current global events while cooped up in Siberia.

What have you found difficult? What resources are you using? For me, I tried memorizing the rules for cases, but it was a complete waste of time: it was trivia disconnected from any usage of the language. What is (slowly) working for me is focusing on a single phrase with common words (e.g. в сибири, два пива).

Aside from the obvious resources (a good app/textbook; Anki), I have really learned a lot of the fiddly bits from this YouTube channel: https://www.youtube.com/user/russiangrammar

Oh wow, stay safe!

Thank you for sharing your experiences and the YouTube channel recommendation.

I’ve been alternating between the interactive lessons on http://learnrussian.rt.com/ and “The New Penguin Russian Course”. I’ve been enjoying the former a lot more because there’s audio to accompany written content, which helps when I try to enunciate words. There are also tests, which helps me measure retention. The latter book feels more like dry reading to me, but coverage seems very comprehensive.

I haven’t been learning for all that long, but the two things that have been regularly catching me out are:

– Knowing which “o” letters in the word are stressed, in order to pronounce it correctly (I default to reading them as “o” when they should instead be “a”)

– Looking up new words in sentences is a bit harder because they often occur in conjugated forms (i.e. not only verbs, but nouns too)

In my experience, the unstressed “o” as “a” is only mostly true and varies by region. This is especially true for unstressed “o” preceding the stressed vowel.

For example, “молоко” is pronounced differently in different parts of the country. For me, the first “o” sounds more like a “ə” (think bOOk) around Moscow, and more like “a” further east.

So you actually find it difficult? I am a native Russian speaker and have also taken 3 quarters of Russian in college. Compared to English I found the grammar much easier to understand. A word is read exactly how you would sound out each letter (with a few exceptions). Ukrainian grammar is even more simple.

I have no difficulty pointing out the exceptions to strict “read-as-written” in Russian, but it is definitely much more consistent than English. The cases are totally foreign to an English speaker, though. I also find the variety of Russian motion verbs to be a hurdle.

Cantonese – it is an incredibly rich language with tons of regional differences, slang, and history spanning thousands of years, way more rich than modern Mandarin. The fact that it has fewer resources online to learn it has made me more resourceful at finding good books, academic grammar articles, and has gotten me deep into HK pop culture. I’m a native romance language speaker and Cantonese is so fundamentally different in its structure than my language it is a joy to learn. Unfortunately, the CCP is constantly cracking down on the language, with a very political campaign to dismiss it as a “dialect” despite it being mutually unintelligible with Mandarin and having its own independent history.

What is your background? By the time I lived in HK I found it more difficult to study compare to Mandarin in terms of speaking and listening. Though learning traditional characters seems more exciting. But now I live in Japan, Japanese has more intersections between Cantonese rather than Mandarin

I’m curious; are you studying Cantonese or Taishanese or some other variant? Asking simply because Cantonese is pretty mutually intelligible with Mandarin; I’m a native Mandarin and Cantonese speaker and barring some vocabulary (and pronunciation which is often just slightly “off-sounding” Mandarin), they’re almost identical.

Nim! There was thread here about its new release. I hadn’t given any time to looking at the syntax so I finally did because of that thread. Looks awesome. It doesn’t look like hackerrank or leetcode support nim so I’ll be trying out the different compiling outputs as well.

Reading: The General Theory of Employment, Interest, and Money by Keynes.

Studying: The Molecular Biology of the Cell by Alberts et al and Advanced Macroeconomics by Romer.

Systems Thinking, mainly through reading Russell Ackoff’s books. The Art of Problem Solving is good, Turning Learning Right Side Up is eye-opening (and definitely one of my favorite books lately) and currently reading Redesigning Society. Highly recommended.

I’m reading this subject too. Thinking in Systems: A Primer is a good book.

I’m learning the ins and outs of WebAssembly. I just picked back up writing my compiler to WASM for my toy programming language (think JS crossed with ML). Right now I’m getting a feel for writing stack based bytecode and implementing basic features like local variables and control flow. It’s not much, but I just got factorial to compile in my language which felt totally awesome.

Nice! FWIW I’ve been solving some wasm challenges in infosec Capture The Flag events and it’s a nice way to learn the bytecode.

I really like using Firefox’s debugger — you can step through bytecode as if it was JS.

This sounds really neat. Do you have an open source repo for this? Would love to check it out. What framework are you using to write the compiler itself? LLVM, or something else?

Here’s the repo: https://github.com/nicholaslyang/saber Fair warning, the code is quite gnarly.

I’m not using any frameworks. Took a bit to figure out code generating wasm, but once I got the basic emitter/IR working it got a little easier. Plus you start being able to read the binary format after a bit of practice.


I’m (re)learning OpenCV and OpenGL since I haven’t used them since college. Working on this is also forcing me to learn the FFI corners of Rust I was unfamiliar with.

I’m combining Kinect (k4a) depth sensor data to build real time 360 degree point clouds.

I’m a informatics student and am currently studying online. My focus is on embedded programming and I am currently working on a side-job, where I program an embedded device that is going to act as a wildlife deterrent to protect deer from ending up in wheat fields that are about to be harvested.

I have many hobby projects next to that and can never finish any of those, but they are also only motivated by ‘oh that might a cool thing’. I have not yet found a side project which solves a problem big enough to motivate me to actually finish it.

Trying to develop (ha) some web development skills and I was studying interview questions. I’ve never done anything web-related outside of making API calls, so I’m reading “The Little ASP.NET Core Book” by Nate Barbettini. I appreciate that the author is focusing on presenting the things one needs to know to do $”{foo}” so far, other materials are either too wordy or are really childish/tasteless.

I started doing Leetcode several months ago because I wanted to change jobs soon, but it’s really exposing what not having a traditional CS background is costing me. I feel guilty looking at the answers on there and in Cracking the Coding Interview but I genuinely don’t know how to make things faster. Seeing some of the answers in CTCI after attempting some of the string related questions made me ask myself “well, why wasn’t that talked about in the informational section preceding the questions?”

For ASP.NET Core check out Pluralsight. Got me up to speed in 2 weeks.

I am learning Data Structures and Algorithms, and solving problems on LeetCode. The goal is to get selected in FAANG.

Taking a math course that attempts to teach some of the ways mathematicians approach their profession, which I hear is quite different than learning math or doing math the way it is taught in schools or utilized by other types of professionals (e.g. engineers). The class is called “Introduction to Mathematical Thinking” by Keith Devlin, and it’s on coursera.org.

Interesting. how useful you think it is for regular techies or let’s say aspiring ML engineers ?

I spent a couple hours this afternoon trying to start a fire with a cheap magnifying glass. If I had a decent tinder bundle I would have succeeded. Amazing how easy it is to get something smoking. Burnt a whole bunch of stuff, just never managed to get to fire.

I used to draw on planks of wood with a magnifying glass when a I was a kid. Could add another thing for you to do!

May I suggest dryer lint as tinder. I keep all of mine in a bucket for just that purpose.