Ask HN: What are you learning?

Refreshing Comments...

I'm learning how to make tacos starting with the tortilla. I'm originally from San Diego and have always missed Mexican food whenever I moved abroad. On a recent trip back to San Diego, I went to over a dozen Mexican shops to find particular flours to create tortillas from. I also went to Mexico twice just to find a specific brand of soft wheat flour. In total I think I experimented with atleast 5-6 different flours thus far. Since then I've made over 150 tortillas, learning things like the importance of the ratio of fat/water/flour, the proper heat, feel, and cook time. Rolling it with flour and without, hand patting vs mechanical tortilla presses. Simple mistakes are like the difference between making a cracker and a tortilla. There's also things like the elasticity of the dough the longer it sits so things like heated tortilla presses become important to help it keep its shape, since the heat slightly cooks the tortilla as it's being pressed into shape. Compared to pure mechanical ones where the tortilla will retract back due to no heat forcing it to sit in place. I'm still hoping to invest in a heated press once I return to the States since I can't find them in Amsterdam.

Overall I'm enjoying the craft of it all and will be soon moving towards learning the details that go into making sauces and carne asada.

One trick for those that are not as advanced as you are: For whatever wheat you are using, add boiling water instead of cool water.

I've found this trick worked (a few years ago now) for a couple of trials where I wanted to use just flour and water. I think the boiling water makes the flour more elastic.

U̶n̶l̶e̶s̶s̶ ̶b̶o̶i̶l̶i̶n̶g̶ ̶t̶h̶e̶ ̶w̶a̶t̶e̶r̶ ̶r̶e̶s̶u̶l̶t̶s̶ ̶i̶n̶ ̶p̶u̶r̶i̶f̶y̶i̶n̶g̶ ̶i̶t̶,̶ ̶b̶o̶i̶l̶i̶n̶g̶ ̶p̶r̶o̶b̶a̶b̶l̶y̶ ̶d̶o̶e̶s̶n̶'̶t̶ ̶d̶o̶ ̶a̶n̶y̶t̶h̶i̶n̶g̶ ̶b̶e̶s̶i̶d̶e̶s̶ ̶s̶l̶i̶g̶h̶t̶l̶y̶ ̶s̶p̶e̶e̶d̶ ̶u̶p̶ ̶a̶u̶t̶o̶l̶y̶z̶i̶n̶g̶ ̶t̶h̶e̶ ̶f̶l̶o̶u̶r̶ ̶a̶n̶d̶ ̶w̶a̶t̶e̶r̶.̶ *This is probably wrong--see edit. Didn't know about this process because you'd never want to do it with anything you're going to add yeast to.

I've done a fair amount of experimentation on on bread making, and a very important step in bread making is autolyzing[0] the flour and water (letting the flour and water rest for a period after combining them).

However, the only reason water temperature matters in autolyzing is because you want an optimal temperature for yeast at the end of the autolyzation process[1].

More likely, what matters more is not the temperature of the water (assuming distilled, pure water, not subject to local tap water differences), but the time you let it the flour and water autolyze. My suspicion is that even though tortillas don't involve yeast, autolyzation is still important for optimal results.


Interesting, after doing some more research, I discovered boiling water is actually used to gelatinize flour--resulting in much more elastic dough, as you specify[2].

[0] https://www.kingarthurflour.com/blog/2017/09/29/using-the-au...

[1] https://www.weekendbakery.com/posts/a-few-tips-on-dough-temp...

[2] http://thebreadmaiden.blogspot.com/2016/02/the-science-behin...

Hot water encourages hydration of the flour and gluten development, resulting in a more elastic/homogeneous dough. IMHO, the hottest water from the tap should be good enough for that purpose.
True, but hot tap water doesn't always taste very good. If you've ever had seen the inside of a water heater, you will never want to consume hot water again. It's often full of rust and scale.
You and the other commenter are correct. Just meant that temp ~120F as a reference. Have lived in a calcite water area, no fun.
I've seen a lot of custom made hotplate/pans made by a lot of my hispanic friends families for making tortillas, it's basically a slab of metal on a stove with a handle. I don't know anywhere that makes them since all of them are a kind of "I had a friend weld it for me" situation, but I found that those hotplates made making tortillas much easier.
You mean a comal? I got one I love off Amazon a couple years ago for about $10. It's handy for all sorts of things because it heats faster than a large cast-iron skillet with sides. It's great for reheating pizza and melting sandwiches (couple it with a metal cover for doing just that for a double bonus).
Oh man, this is a topic near and dear to my heart! I'm originally from California, but I lived in Mexico for several years.

I am dying for some good traditional tacos. (Currently abroad but far from Mexico)

The best tortillas I had were the handmade ones, made from organic blue maize.

I want to live in Mexico for a little bit one day. I imagine you came out of that with a taste for tacos that can't be matched anywhere. Were there any spots that you really enjoyed that had the organic blue maize that you liked or was it mostly abundant because Mexico hah? I'll definitely bookmark it :-)
I recommend it if possible. I had such an amazing experience living there. It's funny, I never miss the US but I always miss Mexico.

I mostly lived in Mexico City, but I've traveled a lot around the country and spent time living in a few other cities for shorter periods of time. I've probably seen more of Mexico than 90%+ of all Mexicans.

Some of the best food I've ever had was in a small Pueblo (town) called San Sebastián del Oeste in the state of Jalisco. [1] It's a small "magic town" in the mountains in Jalisco. [2]

Most of the best food I've had in Mexico was not in the big cities but in the small towns. Especially, the family-owned places where there's an older Mexican lady cooking up food. Cliché but true.

[1] https://en.wikipedia.org/wiki/San_Sebasti%C3%A1n_del_Oeste [2] https://en.wikipedia.org/wiki/Pueblos_M%C3%A1gicos

Would you mind sharing your tortilla recipe and/or pointers?
For sure, I mostly watched the Taco Chronicles Carne Asada episode on Netflix about 20x haha but here's a link to a similar recipe https://cooking.nytimes.com/recipes/1019621-sonoran-style-fl... however here's the gist of what's been working well for me so far since I love flour tortillas more so than corn:

Current recipe

130g flour

80g hot water (steaming)

35g lard

1g salt

Twice as much baking powder as what you see in salt (it weighs less so I don't see it registering on the scale)

Depending on your location, you may use 120-125g flour, 80g water because the water/environment is just different.

1. I typically place a pan on a scale and then put in 35g lard (pork and duck have worked well for me), then I put the pot on the lowest heat to melt. Fat is key, I tried using oil, butter, etc in the past and it didn't work well for me. It's also possible because I was butchering all the other steps too, this is what I call my cracker tortilla days :(.

2. Next I put on my kettle for hot water (80+ grams worth), it's fine if it boils but you mostly just want hot steaming water.

3. I put a bowl on the scale and pour in 130g of flour. Flour of course is another key element since not just any flour gets the job done, I've been experimenting and having some success with flours in Europe though that are more artisan bread friendly. Here are some Mexican ones https://allofeverythingblog.wordpress.com/2014/04/16/autheni... that you want to look for and you can also try to order some online (white sonoran wheat flour). Weirdly enough, there is a difference with El Rosal in America vs the ones from Mexico, the American ones are enriched and bleached which gives it a slightly diff dirt like smell and flavor. I recommend finding a way to get the flour from Mexico if possible.

4. I take the pot with fat off the fire, let it sit for a 1-2 mins.

5. I take the hot water off the fire, and pour it into a mug on my scale, looking for 80g of weight.

6. I put the baking soda and salt into the fat, along with the hot water from the mug, stir it up so it's all mixed.

7. Pour in the flour and mix it a bit with a fork, then knead it like you're folding the dough on itself for about 5 minutes. At first it may stick to your hands but after a minute or so that should go away, if it doesnt you need to add a tiny bit of flour, or water if its too dry. This is hard to explain since its more a feel. After 3 sessions or so you start to understand the consistency you're looking for.

8. After 5 minutes you should have a smooth dough that you can then pinch off into 8 tiny golf balls. If you let the dough sit here, which isn't necessary, (I've tried as long as 4 hours) it becomes quite elastic which makes it harder to press/roll the tortilla to a manilla folder thin thickness.

9. Roll them into a ball and then I recommend using a press with baking sheets so they dont stick, but you can also use a rolling pin.

10. If using a rolling pin, roll it up and down into a rounded button like shape, then turn that horizontal and do it again with equal pressure on both sides of the pin, this should result in a circular shape. I don't recommend adding flour since that will result in a more floury taste, but I'm still trying to figure out how to get around this without a press, since the tortilla will stick to your surface without baking paper. I don't recommend foil/plastic because the creases will reflect in your tortilla. At the end of rolling, they should be pretty thin (manila folder thin)

10. Make sure your pan is on medium high heat, takes about 5 minutes to get there, sometimes longer if using a cast iron. Then place your tortilla on the pan, it should bubble within 20 seconds, then you can flip it wait another 15-20, then flip again. This is pretty crucial, if the heat is too low its undercooked with no bubbles, if its too high it burns and the little brown spots will crack as you try to roll your tortilla. Heat's probably one of the most important parts which took us about 50 tortillas to learn.

11. After that you can place it on a plate or in a tortilla warmer.

Hope this helps! In the future I'll probably look into corn but that's definitely once I perfect an entire taco first.

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!

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

I wonder whether HN has heard of "Linear Algebra" by Hoffman and Kunze. I learned from it as an undergraduate and remember it being told that it was a classic. Another more abstract book is by the great Halmos: "Finite Dimensional Vector Spaces". Both books will stretch and entertain you.
Sheldon Axler book for some reason is hugely hyped in HN always when this topic comes up.

But I do wish for a more comprehensive book on Algebra covering the entire breath of the field.

Matrix Analysis by Roger A Horn, seems a good book with most of the knowledge of matrices covered. Could be helpful for people working with Graphics.

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.
Most people start abstract algebra with groups, which is not surprising since the underlying definition is very simple and the basic examples are easy to understand. But abstract algebra only really starts to come into its own when you start to learn about rings and modules, which ultimately turn out to be important in proving most of the significant theorems in group theory as well.

One example I've been toying with recently is the link between complex and split-complex numbers, and the latter are isomorphic to a direct product of two copies of R. Putting these analogies together leads to a slight improvement of Karatsuba's complex number multiplication algorithm:


The extra storage use does call into question whether this representation can be helpful in practice, but the fact that these abstractions can be unrolled into code is pretty cool.

If you don’t mind me asking, how long do you expect it will take you to go through that text?
I'm not sure! There's a good amount of material that I've never dealt with before, so I'm sure there will be parts where I go relatively slowly. I also have a day job, so I only spend time with the book when I feel up for it. It's kind of an open-ended thing for me right now.
I am curious about category theory? Do you have any resources on where it can be applied?
I'm no expert, so the best I can do is point you to the research community gathering around applied category theory.

* A conference series + workshop: https://www.appliedcategorytheory.org/

* A journal: https://compositionality-journal.org/

Check out some of the people involved in organizing these events. Names I've followed include John Baez, Pawel Sobocinski, and Tai-Danae Bradley (all of whom are amazing educators; check out their work!).

Tai-Danae Bradley wrote a pamphlet on applied category theory which is very approachable: https://arxiv.org/pdf/1809.05923.pdf . Also check out Jules Hedges' thoughts on the importance of compositionality: https://julesh.com/2017/04/22/on-compositionality/ .


To do io you need monads. There's come from category theory. Haskell is great fun to learn, very different, focus on abstractions and abstractions of abstractions. One the one hand i highly recommend it. On the other the vast majority of people learning it never do any useful work at all in haskell. (This last statement will probably excite the haskell zealots whom I would encourage to reply with evidence.)

There are about 5 programs i know if that you might use written in haskell for a purpose other than programming a computer.

Anyway category theory definitely comes up in lazy, pure functional programming. A lot.

As a great fan of Haskell myself, I would clarify that Haskell needs monads because of the (pure functional) restrictions it sets for itself, not because I/O itself fundamentally requires explicit monads. (Haskell itself supposedly used a lazy-list approach to input and output before monads caught on -- something like `main :: [Response] -> [Command]`, I think.)

That being said, when you explicitly model side effects, you invariably end up with some kind of monad in your model. Food for thought: in a logic programming setting, where your domain is some flavor of partially ordered set, monads are closure operators (a kind of monotone function). Closure operators give a cool foundation for the semantics of certain kinds of logic paradigms, such as concurrent constraint programming.

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

Wow! I think why most people don't donate in India because they think their money doesn't make any impact.

https://open-data.karuna2020.org this is game changer. I wish more NGOs in India would do it.

And good luck!

How can I contribute on the software side?
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.

When you get around to milling the buckwheat, see if you can get some coarse ground flour from both the kernel and husk. With it you can make inaka (country style) soba, which is really quite special. Buckwheat makgeoli is also easy and tasty.
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)

There are lots of photos in this thread for the stone: https://twitter.com/simonsarris/status/1234186085200207872?s...

We're making semi raised beds up the hill: https://twitter.com/simonsarris/status/1246544902193909769?s...

With house compost and composted manure from a local farmer. The lower garden is mostly no till with added compost. We're not really sure what we're doing! So I can't really give advice.

I usually document what I'm working on on Twitter as a micro blog

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!

Ah I grew up in Nashua too, at 37 Orange street, if you've ever seen the house (An 1840's house, just at the start of the downtown historic district)
Here's how I tell people how my experience of Nashua has changed: "When I was young, we used to tell people how to get to our house by saying at one point, 'Turn right where the cows are. You'll go over an old stone bridge and then through some narrow curves on a few hills. Then turn right at..."

Then it turned into "Turn right where the cows used to be."

Then it became "Turn right at the ____ subdivision."

When I was young I did a lot of bicycling and running. In early high school (1980s) a friend and I used to ride our bikes as far as we could in the morning, and then try to find our way back without asking for directions. We found all kinds of old back roads and small cemeteries and old stone walls and other remnants of old New England. Now when I go back and go for a run or a drive it's endless subdivisions. I don't resent that at all, I know things grow and change. But it's certainly part of why I don't miss Nashua much except for nostalgia.

That's funny. I was born in 1988, so that world was gone by the time I got here. And even then, when I was a kid there were abandoned buildings to explore like the old tannery, and those are demolished now.

For all the changes they can't get the downtown to "work" and they are really, really bad at trying. I tried too: the mayor appointed me to the downtown improvement committee where I got to watch nothing happen first hand.

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
I love Alaska. I live in Sitka, which is a small town on the side of an island. We have about 10k people, but our town is a 14-mile by 1/2 mile strip of land on a 100-mile long island that's almost entirely wilderness. I like that we're a big enough town to have a thriving community - good educational opportunities, a variety of work available, an impressive arts community. But you can walk into the woods anywhere at the edge of town and immediately find yourself in actual wilderness. Subsistence is also a way of life for most people - almost everyone has a freezer with fish and wild game that they caught themselves.

The virus is going to have a serious impact here, like so many places. So many people depend on the summer tourism season to make a living. There are charter fishing operations, tour operations, retail operations. Those people and businesses will make almost nothing this year. And when this is over, how long will it take people to be able to afford summer travel again?

I'm writing a movie script.

It's a horror movie about a guy who renovates foreclosed houses for banks. But one of the houses he goes into has a ghost in it. He has to solve the mystery of why the ghost is there before he can leave.

I call it: "Repossessed"

Working tagline: "This is for closure."

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.

For nutrition and diet I can highly recommend "How Not To Die" by Dr. Michael Gregger: https://nutritionfacts.org/book/
Isn't he completely anti-meat / pro-vegan? His research is cherry picked to a large part and he usually cites epidemiological studies. At least he did when I got into nutrition.

Reading multiple books and doing research yourself is to recommend, at least there's one book with a whole website about the research used in each topic. ---> Boundless by Ben Greenfield.

Both "How not to Die" and "How not to Diet" contain hundreds and even into the thousands of references. All meticulously fact-checked by a team of researchers.

If all the research points to "meat" being problematic, wouldn't a truthful book be considered "anti-meat"? I am a meat lover myself, but Greger seems to follow the scientific process to the letter.

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.
To me, kettlebells are a hipster trend.

Bw: push ups, pull ups, crunches, supermans, squats, calf-raises, planks, wallsits, HPUs or easier variations


Weights: bench, rows, deadlifts, squats, OHP (google 5x5), pull ups, calf raises


run, bike, or swim Just something to keep in mind as minimum.

I've been learning Korean, I recently found out that it is a language that was invented rather than evolving over time. It was created with the intention to be easy to learn. The entire alphabet is 24 characters, whereas Japanese has over 500 and Mandarin has a few thousand.

Each of the 24 characters follow very logical rules and build onto each other to build "blocks" of syllables. Each block must start with a consonant in the top-left, always followed by a vowel, and sometimes ends with a consonant. So the block always reads left-right, top-bottom and must always contain at least one consonant and vowel.

In addition, each syllable block has a phonetic sound. This means that it's really easy to read and pronounce, since there are no silent letters, with the one exception of single vowel syllable blocks. Which must start with a silent ㅇ(ng), for example the character ㅣ(i). So following the rule of a syllable block needing to start with a consonant you can't have a single ㅣ since it's a vowel, so you need to use ㅇ as a placeholder, thus creating ㅇㅣ(i).

Now if you want to create a word, like "child". You can put together the character ㅏ(a) and ㅣ(i). Since you can't have two vowels in the same block, we must use two blocks to create the word. This gives us ㅇㅏㅇㅣ (a-i).

The vowels consist entirely of horizontal and vertical lines, with a dash or double dash off to the left, right, top, or bottom. It's a very simple alphabet and an extremely interesting language. If anyone want's to learn more, feel free to checkout the Wiki page on Hangul for the full set of vowels, consonants, and double consonants. It's often said you can learn the Hangul alphabet in 90 minutes. If you want a solid intro course to Hangul, checkout this video https://www.youtube.com/watch?v=s5aobqyEaMQ

I am learning game development in Godot, specifically with the intention of making an Oculus Quest VR game. I just finished the initial tutorial yesterday: https://docs.godotengine.org/en/3.2/getting_started/step_by_...

Alongside that, I am also watching Disney's Imagineering-in-a-Box, which describes how they develop lands and rides for their theme parks: https://disneyparks.disney.go.com/blog/2020/03/enjoy-a-one-o...

I recently finished Stanford's CS231N Computer Vision course from 2017 (watching YouTube + 3 Jupyter Notebook assignments). Also highly recommended. http://cs231n.stanford.edu/syllabus.html

I am trying my hand at Defold. Though initially I found it very obscure and opaque, I am finally able to do small things on my own without constantly refering to the document.

Initially I found it difficult to grasp what exactly the game engine is making easy for you. Now I understand, the whole reactive message passing system simplifies game logic. Also the collision physics and handling too makes game logic simpler. And it takes care of animations like sliding, moving etc.

I'm also learning Godot, it's great fun! Although I'm making something less ambitious than you, I just more or less finished a 'brickbreaker' type game. (more or less, all logic is in place but just 2 levels).

Also, no one asked, but I went with Godot instead of Unity because it was the only one I could get running without _any_ issue on Debian.

I committed the cardinal sin of starting the Unity "Create with Code" course last week and not progressing beyond the first module. Hopefully you are better at sticking to things than I am.
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?
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
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 recommend John Ruskin's classic "The Elements of Drawing".

"Supposing then that you are ready to take a certain amount of pains, and to bear a little irksomeness and a few disappointments bravely, I can promise you that an hour's practice a day for six months, or an hour's practice every other day for twelve months, or, disposed in whatever way you find convenient, some hundred and fifty hours' practice, will give you sufficient power of drawing faithfully whatever you want to draw, and a good judgment, up to a certain point, of other people's work: of which hours if you have one to spare at present, we may as well begin at once."

I am trying to learn how to draw too and finding it very hard. I am using a Wacom tablet and man is hard to draw like that. I am learning face drawing at the moment and it seems impossible. More practice I guess.
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.
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.

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

I've 2 main things going right now. IRL I am working on my culinary skills. Cooking has always been my passion but doesn't pay bills hence I write code. Been mostly working basics, learning proper knife skills, focusing on doing recipes from scratch and experimenting a bit to gain intuition about how things like emulsification work.

On the code side I am building a logs database in Rust. I have previous experience building databases and in particular time series databases so most of the learning here is mostly about Rust which I have used before but not for this type of project. Also getting deeper into regular expressions, query languages (parsing/lexing/AST) and query optimisation than I have in the past.

Rust is growing on me more than it did in the past. I think a) because it's a much better language than it was when I used it previously and b) my experiences since I worked with it last have garnered me more respect for it's design decisions and type system.

Feeling like I am learning lots of stuff right now despite being trapped inside so that is good. :)

I've been dividing my life into different parts - fitness, technology, wisdom, food and love.

Fitness, I cannot hit the gym anymore so at home I'm doing body weight training goals. Current goal is 1k squats a day(done), 1k burpees day(70/day right now, It's 1 week in so progress is very fast right now), and a bodyweight program my gym is offering.

For tech, I'm learning machine learning applied to a environmental program I'm trying to build which I'm passionate about.

Wisdom, this is subjective but I'm going back into old philosophy books. Just finished some work by Stoics and will read the plague by Albert Camus.

food, Every other day I'm trying to learn how to cook something new. I tried baking which is awesome, today I will try to make a chilli on a pot(never did that before).

Love, this is the hardest but also the easiest in theory. I'm trying to connect to the things that I love but because life got busy, I didn't connect to as much. This included just having conversations with friends, training my dog, loving how my body can do complex movements(squats/burpees), the beauty of technology, or just observing nature.

First of all congrats of mental fortitude to do 1k squats/burpees. That's quite insane. May I offer an opinion here - doing 1k body-weight squats is like doing 'hello world' 1000 times and trying to progress in programming :) Bigger ROI if you fill up a backpack with books and do 100 of them from strength, time (and probably endurance) perspective.
I'm studying Quantum Computing for Computer Scientists [1] - until I found this book, I thought anything covering quantum would be too physics oriented. As the title implies, this book is nothing like that, covering all the mathematics needed (matrices and relevant operations) to then understand various topics within QC ranging from Algorithms to Programming Languages to Cryptography, all in largely self-contained chapters.

I'm currently working through the Algorithms chapter, which builds up from Deutsch's Algorithm [2] all the way to Shor's Factoring Algorithm [3], but I will definitely end up going through most of the chapters.

[1] https://www.amazon.com/Quantum-Computing-Computer-Scientists...

[2] https://en.wikipedia.org/wiki/Deutsch%E2%80%93Jozsa_algorith...

[3] https://en.wikipedia.org/wiki/Shor%27s_algorithm

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?

What. A. Minefield.

Here's what we're trying

- When she or I are upset, name the emotion at the earliest opportunity, e.g. "Hey, what you said back there hurt me, and I'm kind of embarrassed to be hurt by something like that but that's how I'm feeling right now..."

- This sounds like a bunch of whiny nonsense, but we've both found it takes a lot of heat out of a situation, and avoids a snide or sarcastic comment that might make things worse later. This is the slow-burn kinda situation.

- Sometimes there's no time to think about that and one of us just exclaims in anger or hurt about something. I don't know what to do about that; it just means there's a lot of work to do afterwards.

- Good luck :)

Edit: oh yeah, this assumes you're both ok having a difficult conversation in the first place. If implied criticism is a no-go zone, then... I wish you even more luck :)

most important is to come from a place of respect and to talk about the issue, not about the person. it should be about solving the problem together. never about pointing blame.

when i was still stuck in relationships that didn't work, most discussions were always about "who did (or did not do) what and why that was terrible". these days we talk about what problems we face, what we tried, how they didn't work and ask each other advice on how to deal with the situation.

i had to learn to be more humble and own up to my faults (that was hard). i also had to learn to reign in my temper when i was getting frustrated. (that felt impossible, but turns out to be easy when the discussions are not personally directed)

and another thing that has a huge impact on our communication: we validate, compliment or appreciate each others efforts constantly. we talk more about the good stuff than about the bad stuff, and that really makes a difference.

and lastly: allow each other personal space when needed

i know this is not really "new knowledge". every talk or tutorial about communication will tell you similar things. but it is what works for us.

"we talk more about the good stuff than about the bad stuff,"

20:1 minimum good to bad. Minimum. Even one "bad" a week may just be too much.

Also, limit the relative number of times you approach with something that "needs doing". You can't let your relationship turn into mere help-mate-ism.

It's both joyful and really painful. I have a one year old and we are on 60sqm with no balcony. My wife is pretty far along on the ADHD spectrum, which has its upsides but is definitely NOT conducive to getting any kind of deep work done. We fight often these days if i'm being honest. Luckily we are good at moving past shit

My focus is on embracing our current state as the new normal and trying to be happy and calm amidst all the uncertainty. My son is blisfully unaware of everything and truly a joy to watch.

In reply to op: I'm currently studying (relational) databases.

You are not alone. I have a toddler and I am going through exact same situation. I can totally relate what you said. It's very hard, but I think slowly we learn to navigate it.
> 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?

Develop a checklist of stuff to try:

1. Does the diaper need changing? 2. Does the baby want a diaper? 3. Does the baby want to be held? 4. Maybe some clothing is uncomfortable for it? 5. Does the baby need to be burped? 6. etc.

Walk through the list until something works or until the baby + you pass out. If you spend 2-5 minutes on each item it'll take maybe 20-30 minutes to go through it. If it doesn't work the first time (and you haven't thought of / noticed anything else while going through the list...) then do it again.

It feels good to have a plan, it gives you something to do that might help, and for those occasions when nothing works it at least helps pass the time :)

7. Is the baby hungry? 8. Is it too cold/too hot for the baby? 9. Does the baby have a rash in the diaper area? 10. Could the baby be teething (may start earlier than 6 months in)?

I agree, it's good to memorize or even write down these things. Over time, one learns to move quickly through that list, and which items are more likely at what time.

(RE 8. it's easy to worry so much about the baby having it warm that you end up overheating it.)

I have a cranky uncle who sends an email newsletter with links. Most of the links are conspiracy theories in my eyes. Some of them are about the climate. So to be able to make reasonable judgements, I've decided to learn about the science of climate. The IPCC makes all their reports available. I've started with the technical summary (84 pages, two-column). Most parts of it are well written and understandable with some basic knowledge of physics and chemistry. Nevertheless, it took several man-days to read it. As there is high confidence that the current warming is caused by humans, I've joined Citizens' Climate Lobby to contribute to the right laws to reduce the greenhouse gas emissions.

The same newsletter made me read a book about motivational psychology (The Righteous Mind). A very interesting topic, that I would love to learn more about, if I had more time.

Last year I've (re-)read Category Theory for Programmers. I had tried it once before, but gave up after a third, as the notation didn't make much sense to me anymore. I would like to read it again, creating flash cards for the most important concepts along the way.

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

> v uses the motif from Beethovens Vth

Brilliant observation, this one will be impossible to forget now!

edit: And I'm glad you found it useful! I've always wanted to learn Morse but never found the time/inspiration before that little learning app, which made the dive in so easy!

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:)

Video editing is a very usefull skill. It's rewarding to be able to quickly trim, stitch and edit some clips and maybe throw in some effects here and there.

Davinci Resolve is a surprisingly good tool and for a non-professional it would be my no. 1 recommendation.

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!

That's such a good idea! How are the latencies worked out?
You set a preconfigured time - I think it defaults to 1 bar.

It takes some practice and getting used to, and obviously isn’t quite the same as being in the same room, but it works well enough to stumble upon some great serendipitous moments like any good jam session :)

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'm grateful for personal protective equipment, but reuse does concern me

To help with this, studies indicate that you can heat items in the oven at 70C for 30 minutes for effective sterilization without compromising the masks. More detail at [1]. My household is also using this technique on things like incoming mail, etc.

Bravo on your work - stay safe!

[1] http://www.imcclinics.com/english/index.php/news/view?id=83

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/

That’s awesome! I did the same a couple of years ago (took about 1 year to complete) and it’s one of the things I’m most proud of, so I hope it feels as fulfilling for you too!
Cool! Thanks! I'm most worried about the finishing part, honestly. What did you end up doing for it?

I keep debating between whether to leave the wood visible (with Tru Oil or wipe-on polyurethane), or paint it (lacquer, super labor intensive, slow, expensive), or dye/stain it and use a clear finish on top of that.

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.
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 learning a lot about options trading. (Yes, I understand the risks, being margin called, and losing all my money.) To me, it's just a fun and interesting hobby.

I've also been reading and learning a lot about dirivities and the overall US financial system. It's pretty wild how things _actually_ work behind the scenes. So much "wealth" has been created coming up with such schemes. The more I learn, the more I worry about us being in some serious uncharted waters, and I think maybe it's all too complicated.

Would it be okay sharing how you are approaching options trading? What steps would you recommend someone who would like to start with the basics?
The two ways I got started were:

1) open a Robinhood account with a small amount of money ($100) ought to be enough. Buy in and out of stocks every day for a couple days until you can get approved for their level 2 trading. Then, start playing with options.

2) Open an account on ThinkOrSwim and use their tools to trade a dummy account or use real money. The learning curve of ToS is higher, but it is more powerful

The fundamentals are pretty simple, but the strategies for combining simple elements can become very complex. The fundamental questions are: will this "stock" (you can trade options on other financial instruments as well) move up, down, neither, on both? To what extent? Over what time period?

Sell defined risk credit spreads 30-60 days out on underlyings with high implied volatility where the max loss is a small percentage of your bankroll. Buy them back at some percentage of max profit (50% is a good general rule). Read or watch videos until you understand why this is a good starting point - there's tons of resources out there.

Yes, brokers are idiots who think defined-risk spreads are more "advanced" than holding the bag for premium decay and not even knowing why you're losing money. Sorry.

I'm also interested in this. Would be great to share some resources.
I also have been learning about options. My goal has been to understand the financial sector better first and foremost, and only secondary is making some money. I am a newb whos only been going for about 6mos at this so fair warning to not listen to me at all.

1. The entire market is a big casino. The main question is what kind of risk you want to assume in your bet. Everything you do in the market is a bet/gamble. Don't fool yourself otherwise.

2. Options are a high risk avenue, but can also have some of the highest returns.

3. Learn the lingo. Traders use it so much you will be lost if you don't. (https://www.investorsunderground.com/acronyms/)

4. Start small to learn the ins and outs of your broker.

5. Understand that stocks are not a reflection of the companies actual value. They are a reflection of the markets perceived value of the company. The difference is enormous.

6. Do your own DD (due diligence). Read the docs the company has and is putting out. Do your own math. Don't rely on analysts, but you can use them as a reference.

7. Learn what IV crush is!!! (theta gang ftw)

8. Learn the most common strategies used. The wheel, put debit spread, cash covered calls, etc. Different situations and risk profiles in the moment are better suited to certain strategies.

9. See what crazy plays turned out good, and which ones bad, and seeing what strategy was used, how was the DD, etc.

10. Lastly, and less commonly talked about, never underestimate the power of powerful people's connections and interests in a company/stock. This is why I tend to focus heavily on ownership analysis and board analysis. Sometimes every normal, quant level algorithmic indicator points one way, but the connections say otherwise... and the connections almost always win out.

Bonus material: https://www.youtube.com/channel/UCcmZHsuUt_DOzcgIcLd0Qnw

Golden rule from my perspective, regardless of asset - don't follow analysts (it's all about risk management and if strategy/indicator is public it's highly likely ineffective) and price action is king. Playing with automation as supplement to above is smart investment.

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").
Most authors will sacrifice some amount of "realism" in the interests of story-telling (compared to Yudkowsy with HPMOR at least). A couple of Magic examples come to mind: * Brandon Sanderson does a lot of Magic impacting Physics. The magic is often proper unexplained magic - but it's impact on Physics is pretty well modeled. In the most recent Mistborn book - there's a remark that explains that when the character magically reduces their weight while flying through the air - their velocity increases. I think Brandon points to that - but says that he loves the consequences at that level - getting to the point of red-shift/blue-shift for bubbles of fast/slow time is story breaking. See also his laws of magic: https://www.brandonsanderson.com/sandersons-first-law/ * Pat Rothfuss in the Kingkiller chronicles has a magic called "Sympathy" where rule 3 is "The law of 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.

I've done a few world building workshop and magic-system designs[1] workshop in a "nerdy-community centre" a few years ago. The community and interest for this is generally pretty small.

I was thinking about doing an interactive online version now that we're all stuck inside.

[1]: Someone in another comment mentioned designing hard magic systems, but there doesn't a whole interesting world of different magic systems out there: https://en.wikipedia.org/wiki/Hard_and_soft_magic_systems

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

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.

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

Why would I laugh?

I've done a lot of C programming over the years and I still consider it one of the most elegant languages I've had the opportunity to work with. With the right skillset, you can be as productive as a programmer of any other language or system.

And it's great to see where some of the things we take for granted in programming, come from.

If you want to draw pixels, give Cairo a try. It's fun to use!

Nice to hear from people still enthusiastic about C :)

Thanks for the suggestion, I hadn't considered Cairo, for some reason I thought it was only for SVG, maybe from it's use in Firefox. I will try it out once I get out of XCB territory.

> 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.
Then you should be using X11 directly!
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?

I'm not necessarily recommending you go this route in general, but this is a fantastically actionable article for going deep on various Linux graphics APIs including X11 right on the socket: http://betteros.org/tut/graphics1.php
Yes, I really like this article, I used it to get going with fbdev before I moved on to XCB, but only skimmed the remainder since it was avoiding libraries completely it was getting a little verbose (although on second thought DRM doesn't look too bad, and also I missed libdrm should probably see how much that can do).

Just realized now revisiting this that the author also showed how to directly implement xclient! the example is rather large confirming my suspicions RE parent comments.

I meant using Xlib, the client library for X11, which is going to always be available if you are using X! You can of course implement the library parts yourself, but that is more boilerplate.
XCB is actually lower level than xlib, in that sense it is more directly using X11 because unlike xlib it only really implements the client protocol and wraps it up into an interface.

I was however planning on trying out Xlib anyway on my path of exploration from simplest/lowest level to complex/higher level libraries: fbdev, DRM < DirectFB, libdrm < XCB < Xlib < SDL et al.

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.

> why would people laugh at someone learning C?

I suppose because of the perception that many programmers already know C. Which is true, but only some fraction know it well, which is far more important in C than in most modern languages.

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.
I've been into literature and philosophy for some time now. I'm following the "Masterpieces of World Literature" course [1] and have finished "Beyond Good and Evil" last month, currently reading Kierkegaard's Either/Or.

Aside from that, I'm also participating in Leetcode 30 days of code challenge [2]

[1] https://www.edx.org/course/masterpieces-of-world-literature [2] https://leetcode.com/explore/featured/card/30-day-leetcoding...

Same here :)

Just started reading

At the Existentialist Café: Freedom, Being, and Apricot Cocktails with Jean-Paul Sartre, Simone de Beauvoir, Albert Camus, Martin Heidegger, Maurice Merleau-Ponty and Others by Sarah Bakewell

It has a really nice narrative and tells the story of the aforementioned. Kierkegaard also makes some occurrences.

if you tend to like that book I would highly recommended Walter Kaufman's Existentialism from Dostoevsky to Sartre and Goethe, Kant, and Hegel
Second this also. Also enjoyed Will To Power as a kind of well of "things well said, which make you think, " even if they're not strictly correct.

Bertrand Russell wrote a lot of very accessible Western philosophy overview or survey books which I found orienting:




the former is online here:


About this one he said :(paraphrasing from memory now), "A big book is a big evil. You may ask why then the author proposes to lay before you the present work..."

He's a hoot.

High school is out so I am learning SIMD instruction sets, like AVX2 and SSE, and using these to speed up Hamming/Levenshtein distance calculations in Rust. Preliminary testing shows a 20x speedup using vectorized SIMD operations! The end goal is a full Rust library for edit distance routines.

Sneak peek of the code: https://twitter.com/daniel_c0deb0t/status/124224838155819008...

You could also consider providing bioinformatics routines such as global and local sequence alignment. Under the hood they're very similar algorithms.




Though I probably won't implement the different weighting schemes, I currently have alignment traceback and searching (allow "free shifts" for the pattern string) features.
Here's another recent SIMD aligner if you're interested:


I took a look at the code, and read the paper. It seems that they directly calculate the entire 2D DP array, but use SIMD to allow each cell to contain multiple values, one for each query string. My approach uses anti-diagonals instead, but it is fast for one vs one comparisons, instead of handling multiple query strings.

Regardless, my goal was to learn some SIMD and Rust (first time for both), so I did not read many background papers.

I'm learning about trading bots. It allows me to learn new things about software développement (réactive streams forum example), mathematics, machine learning and deep learning

I made it as a side project : https://github.com/cassandre-tech/cassandre-trading-bot

And i am writing a guide about what i learned : https://trading-bot.cassandre.tech/

was your bot profitable? have you done real trading with it yet?
Hello :) Well, my bot in fact allows you to build your own strategy quickly so my bot does not include strategy. I'm starting to build a strategy with my bot and ta4j... using kucoin sandbox right now. For the moment, still learning, not yet profitable :)
I'm learning Motion/Animation graphics in Adobe After Effects and 3D design in Cinema 4D Lite.I'm still beginner in both. Just in case you have wonderful resources to share to get me started, please share!

For Adobe AE I'm learning on these Youtube channels:

https://www.youtube.com/channel/UCQyoKfULtJaHqSxB80Efw4w https://www.youtube.com/channel/UC64eec0UYHxflyEWgyZOvLA https://www.youtube.com/channel/UCP3AIk974-PeB9bg1Mc7wug

For 3D: https://www.3dfordesigners.com/blog?tag=learn+cinema+4d+lite

I am revisiting my notes and re-watching lectures about basic machine learning algorithms like linear regression and logistic regression.

I am implementing these algorithms, so I need to understand a lot of the details. Here are some notes, which are work in progress: https://notabug.org/ZelphirKaltstahl/machine-learning-notes/... I try to write it in a way, that does not leave open questions and will be accessible to me and hopefully others years later.

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

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


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

What inspired the BF compiler project?
I thought it will be easy to implement and also a bit of nostalgia.

I was a 2nd/3rd semester CS student at that time when I saw BF code for the first time on a Competitive programming platform named SPOJ[0]. Later, I found it again on a code golfing website[1].

I thought it would be fun to learn as the language only had 8 commands! I learned it and wrote a tutorial[2] on my native language for my best friend so that we could have some fun together with it :D

[0] http://spoj.com/

[1] http://golf.shinh.org/

[2] https://github.com/wasi0013/Bangla-Brainfuck-tutorial/blob/m...

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.

Yeah, checkout Maude--really woefully underutilized. Some fascinating things around pathway logic that are applied to biology: http://pl.csl.sri.com
That's amazing! I've never found that site before but I'm going to read some of their papers. Thank you for linking
Maude fascinates me to no end. Currently I'm actually re-learning kdb+/q as I want to implement some things related to bioinformatics using it, but at some point I'd really like to do some things with logic/dependent types in biology. Happy to chat further grant <at> eonias dot org
Could you shed some more light on this amazing work you're talking about?
Sure. First, I'd recommend checking out the website of HN user 'triska at https://www.metalevel.at/prolog -- there's more to Prolog itself than most people are ever made aware of.

Frank Pfenning at CMU does some really cool research on concurrency using logical semantics and sequent calculi (https://www.cs.cmu.edu/~fp/). Session types might be the coolest thing out of this particular corner of the field, but there's so much more to explore here.

Going back some decades, concurrent constraint programming (CCP) takes the position that concurrent processes communicate by posting constraints upon a shared store. Vijay Saraswat's ask/tell CCP model has been a real inspiration to me. As best as I can tell, his work is based on forward reasoning, as opposed to Prof. Pfenning's work, which appears to use backwards reasoning (as does Prolog). (There's an interesting duality between the two kinds of reasoning, which I am not at all positioned to opine on.)

Some of the functional work I've seen on concurrency ends up going in a logical direction without realizing it; the more recent LVars papers (Lindsey Kuper and Ryan Newton) build up a lovely abstraction in Haskell that's conceptually the same as Saraswat's ask/tell logical framework, but they don't seem to realize it until several papers in. (It's all fantastic work! It's just a shame the communities have so little overlap.)

Logic programming allows you to model mutable state, and it gives you high-powered tools to reason about how that state changes over time. As a concrete example, you only need term unification and logical variables to get undirected communication channels in a logic program. Unifying a variable with a term in one part of the program allows other users of the variable to match on it and obtain information about that term. In this sense, it goes in the complete opposite direction from functional programming, which eschews state and treats it as something to be derived from a stateless foundation.

Cool. This subject is on my list and will probably approach it through Clojure's Core.Logic (a logic library inspired by both prolog and miniKanren) [1]

1: https://github.com/clojure/core.logic

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


I've been interested in the Tcl language since 2010 or so but have only written small scripts up to this point in time. I decided it was finally time to dive in so I've been working my way through "The Tcl Programming Language: A Comprehensive Guide" by Ashok P. Nadkarni as well as learning about the Naviserver ecosystem.
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

I am learning Elixir and Phoenix. And to be honest I am not sure I like either. The lack of decent resources (I mainly use Python and JavaScript with some C#) so I am used to reading a lot of blog posts, I don’t really like the documentation and the answers in forums are over verbose. And then there is Ecto which gives me new respect for SQLAlchemy or even solutions in C#. Debugging is a bit rubbish as well and to top it off it’s not typed. Pattern matching is kinda cool though.
Maybe give F# a try. It's functional, strongly typed and since you already know .NET and C# the ecosystem and tooling will be familiar to you and could lessen the learning curve.
The book "Programming Elixir" is by far the best resource I found for learning the language.
I am going to read it, I have heard good things so will put it on the todo list for this week. I usually enjoy learning languages so I don’t know why I am hating on this so much ( last time I felt like this was with Ruby which was mainly due to the community )
Trying to improve some of my intuition in linear algebra, more specifically in matrix decomposition and SVD.


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.
Most teachers don't have to deal with toddlers and the ones that do don't have to do another job while taking care of the toddler. It is not such a big deal unlike being a full time housewife which does have to take care of toddlers while doing other house jobs. The economic value of a full time housewife is probably bigger than many of the jobs done by women in the office.
>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.

I'm in the same boat as the parent poster. Honestly it's hard to even find 30 minutes of free time and I only have one toddler. I'm the play person and my wife works multiple jobs (remote) so she's on calls most of the day. Seems the rest of our free time is is spent either cleaning or cooking.

If by any chance I do have time the only place to sleep that's not my bed is the floor. We sold all of our furniture and moved during the middle of this pandemic and all the dang furniture stores are closed!

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

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

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


Well, using general Turing-complete code languages for infra and config vs specialized templates/languages is a legit point of contention in the industry right now, although judging by the style, GP isn't considering the pros and cons of each approach, which include:

* Forcing users to learn a specialized language vs reusing knowledge of a general purpose language

* Inevitable Turing-completeness creep and increasing complexity in specialized languages

* Complexity and difficulty of reasoning about general purpose code (and analyzability)

So GP does have a point. He/she is just not making it very well, I think.

While I agree the pendulum goes both ways - for instance a AWS’s CDK builds templates using your language of choice. How can someone know the tradeoffs without a breadth of experience who thinks they can learn everything they need to know from Wikipedia? “There is no compression algorithm for experience.”
You don't even know how much experience I have. I'm saying architecture patterns can be learned from Wikipedia not 'everything'.

A devops configuration language (outside the domain of architecture) is not included in this category. Please don't be manipulative and please do not lie.

The tradeoffs you mention are obvious right? I'm just sort of downplaying the huge bragging Scarface was doing when he mentioned he did some cloud formation and "infrastructure as code" because it's really not that impressive.

It's obvious that the logical consequence of using Turing complete languages for devops introduce a lot of complexity into infrastructure and can introduce configuration that executes continuously as well. Bugs that only existed in the application layer now creep into infrastructure. Infinite recursion can now be spinning up infinite instances.

That being said the devops thing was a side detail and that's besides the point. The point is that the role 'software architect' is useless.

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.

It isn’t intended to be an insult. This thread is veering way off topic but if you think you can learn everything that you need to know by reading a few blog posts and Wikipedia articles, what’s the point? Why ask on HN if as you say everything you need to know you can find from a few blog posts?

As software engineers, we tend to be told especially when we are young that we are all “smart people” (tm). We start to internalize it (believe our own bullshit). But the longer your career is, you realize that the world is full of “smart people” and that your coworkers also came up thinking they were the smartest people in the room.

It's an insult drenched in the social politics that are an intrinsic part of our corporate politics. Some positions are useless and ultimately require more politics to stay relevant. Architecture is such a position and you seem to be good at politics.

You don't even know how old I am, you don't even know what level of intelligence I consider myself to be. Yet you make a bunch of baseless comments hinting at my personal character. That is the extent of what you're trying to convey, an insult through and through yet subtle on many levels. Politics, the only essential skill needed to become an architect.

When did I say you can learn everything you need to know by reading some blog posts or Wikipedia? I never said this. I only said that you can do this for 'architecture' and that's why the job role 'software architect' is complete bullshit.

Now let's get back on topic. You disagree with me. You think architects know something about 'architecture' that is beyond Wikipedia and blog posts. Prove it. You think they have some ability that sets them apart from normal engineers. Tell me what that is and why there exists articles like this:


I don't want to see another irrelevant comment because that just tells me that you got absolutely nothing left. Prove the worth of a software architect.

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.

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

Agreed 100%. Interviewing is hard. I would argue though that interviewing for "architecture" causes another issue. To give an analogy... it's like studying english for a programming job because english is used all the time on the job.

Architecture is just too easy and too obvious and if you just happen to not know a specific architecture or way of speeding something up, all you have to do is read about it on the internet like looking up vocabulary on a dictionary.

I would also argue that google isn't exactly just testing algorithmic skills in an interview. The spiritual goal of the interview is that the question they give you is novel and one you haven't seen before. The overall purpose of novel questions is to measure your raw intelligence.

The question isn't whether or not you know how to reverse a binary tree but whether or not from a state of not knowing how to do it, can you creatively come up with a way to do it in an hour? Raw IQ.

Of course the practice doesn't always match up with the ideal and often times interviewees can get lucky.

I'm not saying that this is the best way to interview. I'm saying that judging an interview based off of architecture is even worse. It's even easier and there's a lot of room for bullshit in a conversational interview as opposed to a technical question.

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.

I think that if your hobby projects will be important for many people: i.e. you develop something with the importance npm, or Ruby on Rails, or Vue.js, FAANG companies will make you offers without asking you leetcode kind of questions.
I read that the guy who invented Homebrew still had to go through the leetcode interview at Google (which they failed) so I'm not sure if they ever waive the interview requirements?
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.

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.

I did some Leetcode type stuff in high school to prepare for CS contests and at University for some CS courses.

I think they are ok if you like that kind of stuff and like to find solutions to those kind of problems. And if you have time.

Most people who hate them are grinding leetcode kind of stuff in limited time, taking away from sleep, time with family, time for rest.

If something starts feeling like a chore, maybe you are doing it the wrong way or at the wrong time.

Also, from being employable point of view, I think there are more valuable skills. I.e. if you want to work as a web developer, know a framework by heart, master a web programming language, know SQL, know HTML, CSS and JS, know some useful patterns, know about testing, SOLID, DDD, TDD, know how to use tools like GIT, JIRA, Jenkins, Docker, know REST/SOAP/gRPC, know async and parallel programming. Those were the kind of technical questions I was asked about 3 months ago when I went through 20+ job interviews. From all those only one asked a leetcode kind of question. It wasn't hard and it didn't seem like it was a make it or break it kind of question. Many years ago, when I applied for game development jobs, I was asked about Unity, C#, GPU shaders and a bit of algebra and geometry, no question was leetcode like.

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.
I guess its something I'll get good at if I practice it more, but at I cant even really do leetcode easy right node despite having been a professional developer for a few years and a hobbyist for long before that. I have no C.S. background though.

Most of the times when I end up seeing the solution ot makes sense, but uses data structures in ways I wouldn't think. Part of the reason for that I think is because my daily work for one operates on much different types of data (business entities vs arbitrary collections of integers) and also because the logic in the applications I work on is not very algorithm heavy.

Another reason is because of high level abstractions I've been spoiled by. I could probably hack many of the problems together with LINQ but that's not gonna hold up very well.

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?
Never heard of LeetCode. Is it one of these fad languages? What companies are looking to hire people who are exprets with 10 years experience with this language?
Oooh! Downvotes instead of answers. That is extremely helpful, thanks. So all the posts here about this BS are shills working for some marketing company pushing their shit. It's not anything real since today is the first time it's been mentioned here. Typical marketing Yale imbecile tactic is use robot army downvotes to make people who ask WTF is this seem like they are out of the loop. Reality is LeetCode is absolutely nothing and anyone associating themselves with this label is either a shill or an imbecile. Thanks! Very helpful. Flag away since truth is shit and propaganda is everything on ycombinator.
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)

So a bunch of nonsense and no legit response. Neat. Thanks a bunch he responded sarcastically while rolling his eyes. No one has heard of your pet project.
I'm sure you're suffering in your world over there and I hope you're okay.
I'm doing great. I have a garden growing in size each day. I am taking a quinine derivative. I bought plenty of toilet paper and supplies starting back in late January. I posted about doing regressions on early factual and reliable Chinese data and was downvoted and rebuked by ignorant racist anti-asian people who are now holed up and desperate and lashing out. My chances of survival or not are not quite as bad as most others following the globalist stock scam cult.

I tried to get the word out using scientific and factual information, to save lives. Alas this is useless to the HN crowd. I even got flagged for saying weeks ago that all science shows that MASKS WORK. This statement of absolute scientific fact is anathema to the cultist thinking of HN fanatacists and cultists and their priest defenders like dang who will be responsible for the deaths of millions and is already responsible for the deaths of tens of thousands. Hey thanks guys. Hope this is satisfying to you to cause all this mass death by promoting ignorance.

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

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'm learning LDAP and Oauth2, at the moment.

Learning about directory services is empowering, and stuff like keycloak let you build your own single-sign-on solution with very little investment (except for willpower to learn).

Cybersecurity! I just started on Hack The Box. I am not sure if I want to go all the way for OSCP. Regardless, it is really fun and I've always wanted to learn how to "hack".
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

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.

I really think the idea of constantly learning (something new) is pushed too much in our field. I think we should encourage mastery in fewer topics rather than shallow superficial knowledge of lots of things.

It's a balance I know, and we shouldn't be super focused especially early on in our careers. But at my current job we have a huge tech stack and a tiny team, I am constantly learning, but never in any depth, just enough to solve the last bug and then change to something different. It feels very like a very unproductive way of working. Very little of the new tech feels like it actually helps. Kubernetes while we don't actually need to scale for the foreseeable future. NoSQl when we don't actually need to scale. Asynch web servers when synchronous would be fine. A React monstrosity on our frontend, when server side rendering would be perfectly functional for the problems we are trying to solve. Google cloud - fair enough we actually do need that one or something equivalent.

Edit: On looking through the other answers I see that a significant number are not tech related which is refreshing to see.

Right, I think the key is learning something new in an area where you know the least. Even getting to know the simplest concepts can go a long way.

My favorite example: cropping a photo to improve composition. It's simple and easy to do, but it can have a comparatively large impact on a photo.

Learning more and more specialized tech can give diminishing returns.

Yes that makes sense to an extent. The problem is that people were insisting on using MongoDB for problems better suited to a relational DB when it was faishionable, and now that decision lives on 6 years later.

Or I see a lot of CV's where people collect web frameworks - which essentially do the same thing. Yet whenever I inherit Django code, it seems to be done by someone with only the most basic knowledge of how to get things done.

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.

As I have a little time on my hands a few things.

Non-technical: I'm learning to create music to help satisfy my creative side. I'm starting with the piano, and when I can get to a basic proficiency, I'll slow down and jump to some voice lessons I bought a while back. Then, I'll put it together with reaper, using some of what I learned as a teenager.

Technical-Creative: I'm returning to my project to do a deeper dive on what makes programmers bad, mediocre, good, or great, and creating a track that others can follow. While I have the framework already, I am trying to learn a whole set of skills well enough to teach others.

Technical: I'm patching up holes in my EcmaScript ecosystem knowledge. I never really took the time to truly grok Shadow Dom, the Redux patterns, and the like, even though I was managing a team who was working in it.

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 too started picking up Rust with the goal of trying out embedded development. I'm taking it slow though -- working through the book and a little cli tool. I am also on the discord.
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 also a good book. Highly recommended.
I started it couple of months ago, but couldn't get past the first few chapters. It was too dry for my taste. Even though she's a brilliant scientist (I'd recommend checking her classic The Limit to Growth), it seemed like the earlier resources about the topic are much better explained rather than the newer stuff.
Im learning Scheme/Racket. I started from HTDP and moving on from there, so far I am loving it, havent been this excited in a while. I am also ramping up on F# and the community is growing and quite nice. I recommend Scott Wlaschin’s Domain Modleling in F# and his website fsharpforfunandprofit.

I am learning Latin and Spanish on Duolingo but thats more at the hobby level, about 10 min a day.

Learning probability for strong foundation in ML. The books i am following are "First course in probability by Sheldon Ross" and "Probability and Statistics" Michael J. Evans and Je¤rey S. Rosenthal

This is the first time i am studying based on the topics rather than following syllabus. I wanted to understand covariance for calculating similar interest b/w users to suggest the posts viewed by a user in the app i am developing. This took me down the rabbit hole and forced to learn everything required to define covariance. Its talking a lot of time but i feel it's worth it because now i have a strong foundation. Also its nice to follow more than one book because i have no attachment to any of the books. When in college i used to get attached to my notes or the first text book i follow, but studying a topic from many books have no attachment to either and its liberating.

Right now I'm learning Gatsby and re-learning React after having done one project with it and putting it down for 12+ months.

I'm learning how to rebuild my 3d printer for the third(?) time. Each time something breaks it starts off as blind confusion, and over the weeks I figure it out and then I feel like a genius when it it works.

I have a business I want to build, and I'm working on estimating what the cost of the individual items / products are, how long they take, and how long it really "costs" me. I'm working on fixing up the website and improving it.

I have a wall of post-it notes in different colors I'm using to track all of this stuff. As a developer I hate time tracking and project management in general but I'm learning a lot by doing it myself. Progress is slow, but at least there is progress.

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.
I have always felt I have not really understood things from the bottom up in terms of CS- like how do we really get from bits to software? I have been building Ben Eater's 6502 computer, which has been mostly enjoyable (cutting/stripping wires and getting them into the exact right small little hole is tedious at best, hurts my back at worst).

I have also been reading Modern Operating Systems by Tanenbaum- though a quite old edition from the early 200s- wondering if its worth putting on hold until I can get my hands on a newer edition.

Next up, I'd like to do Ben Eater's 8 bit computer as well as nand2tetris.


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.

Currently hacking up a prototype of a puppet-like system for automating host setup.

So far I can parse a configuration file, apply rules, handle (manually specified) dependencies, and configure triggers to run on rule-actions.

Not a bad state to be in for a few hours work. Of course the big decision is if I continue, and write modules for doing more than I have right now. I suspect the rational answer should be "no". But I kinda like the existing implementation, and being go it is trivial to install/deploy.


I'm trying to learn Blender for the umpteenth time. Years ago I prefered 3DS Max for 3D modelling and never put serious effort into learning Blender, looking to change that this year esp. with the recent UI/UX changes.

As far as programming is concerned; learning how to build Netty servers and navigating large open source codebases quickly.

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.

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.

ISA SATA card makes perfect sense to me. :) All those MFM drives are dead or dying. Protocols like SATA are implemented in hardware, and you buy an IC controller chip for the purpose. So the task with this project is to implement something that talks to the SATA controller and something that talks to the ISA bus, and bridge the two. Problem is that most SATA controllers will be designed to connect to a PCIe bus. Probably easiest to use a SATA-PATA bridge chip. Not sure how easy those are to find these days.

DOCSIS -- yeah, that's a lot of specialized knowledge to make a good one. A huge part of the complexity for that is probably board layout stuff. EMI & EMC, etc. This is a whole separate field of study on its own.

Getting that EEPROM reader working sounds like a good starter project. There's huge variation of EEPROMs though, so it would be sensible to focus on just the EEPROM you have. Who knows, your issues could have been a problem with the scavenged chip. But I2C (if your chip was I2C) is finicky and every chip seems to do it slightly differently.

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.
I'm learning how to play the piano and also trying to learn more music theory so my guitar playing is not just randomly playing notes or just following online tabs.

I am also going to soon start marketing my project [0] so I am reading a lot about launching products, pricing and how to attract attention.

[0] https://www.usertrack.net/features.php

Doing this part-time studying + working thing right now, finishing up my first year of Informatics/CS after changing my major.

For school, I'm learning networking. Finding it a bit dry, especially learning about packet structures and such. The book we're using, "Computer Networking: A Top-Down Approach" by Kurose & Ross[1] is great and the authors' personalities really shine through!

For work I'm learning about databases and how to gain access to it from a web app. The world of databases (specifically PostgreSQL) and SQL is entirely new to me. Currently trying to figure out how to best connect my Flask app with my Postgres DB.

Currently learning Rust whenever I have the time/motivation. It's a great language with some really clever design choices, but it's a pain in the ass to learn, especially without experience with lower-level languages. The incredible amount of other cool languages, such as Clojure and Elixir, can make it hard to stay focused!

Also been meaning to get into vector graphics (Affinity Designer[2] is on sale right now) and philosophy, but you know...the usual excuses. Honestly, the incredible amount of CS-related topics I know nothing about, including some really basic ones, makes it hard to study anything else out of sheer guilt.

As for philosophy, if anyone are curious, a book that was recommended to me by a philosophy major buddy is "The Problems of Philosophy" by Bertrand Russell[3].

[1] https://www.thriftbooks.com/w/computer-networking-a-top-down... [2] https://affinity.serif.com/en-gb/designer/ [3] https://www.thriftbooks.com/w/the-problems-of-philosophy_ber...

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.

Trying to learn or build my skill around music production with Ableton. I've been in a alternative metal band for almost 8 years, but electronic music has always interested me since I have quite a few ideas in regards to melody and stuff like that (I'm the singer in my band).

I just applied to a course from Berkeley trough Corusera, and they are really great, but I'm not trying to rush trough, as this is my main way of trying to learn, making me lose interest because of the overflow of information.

If anyone has any good books, courses or tutorials on this, that would be a great help too :)

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.
* Natural language processing (udacity nanodegree). * Spanish words (duolingo). * Random fields (reading random articles about it :-). * Anonymizing text (side project) * Photography (blogs, videos, and practice https://500px.com/la3lma)
A bootstrapped SAAS founder who sucks at Marketing. So I have decided to invest time learning everything about Marketing and Digital Marketing. From the ground up. Btw on that note, has anyone heard of Demand Curve which teaches Marketing courses ? I like some of their stuff online and thinking about taking their Premium Course.
I do in-house marketing and digital marketing. What challenges are you facing?

(I don't have a course to sell you and my services are not available for hire.)

Thx for asking. oo, where do I start ? I guess setting up an overall strategy before any actual tactical execution. We do close to 1M in revenue already and have inbound traffic already but I got to this point somehow without any real planning. We write a few blog posts, content etc, got social profiles where we post, were lucky to get a few great backlinks and have built some relationships with influencers in our industry. But what do we now ? I have no real strategy here. Should we run ads ? Where ? Why google and not linkedin or vice versa ?
There’s two divergent approaches to learning, sometimes referred to as top-down or bottom-up.

Top-down begins with broad context, such as the history of programming languages, the advent of objects and classes, and eventually zoom in to modern languages, syntax and functions.

Bottom-up works inversely; maybe you’re given a Python sandbox, a hello world, and a cheat sheet. You explore what you can do and build on those low-level operators to create foundations that frame wider context.

Effective learning is always a mix of both. Everyone learns somewhere on the spectrum, maybe bouncing around depending on motivation and experience.

With respect to your goal of learning marketing, you’ve identified your path of study: strategy. And just like your SaaS product was created out of an understanding of functions and needs in a space, so too should your research explore the functions available to your business and how they’ll affect your pipeline.

Simplified: you have a tool, and since you have revenue, you know people want it. Your goal is to find questions to ask and answer them, and use that feedback to make decisions regarding your marketing strategy.

-What is my biggest source of traffic to my site? Where do they spend the most time? What causes them to click buy? How can I use these data to optimize my funnel?

-What is my total marketing cost divided by the number of paying users (CPA)? What’s their expected lifetime value? What do other products in my space cost?

-What do my customers and affiliates describe my product as? What problems disappear once they subscribe? How does this translate to value for decision makers? Do my enterprise sales represent 80% of MRR or 10%? Should I use multiple approaches to entities of different scale?

The questions you’re asking are the right ones. And like any other field, they multiply and become more specific - but if you bear in mind the top-down goal (spend less, charge more) of a business, things will crystallize quickly.

Started working through the Coursera Machine Learning course By Andrew Ng. I’ve always wanted to understand ML better, and this seemed like the ideal opportunity to actually do it, especially as I might have some work coming up using ML.

So far, I’m very impressed, very clear presentation style and he does a good job of explaining the fundamentals and maths (which is good as I’m pretty rusty at maths!) while still keeping it fairly concise - my main issue with learning from video is often that it “waffles” a lot and I could get the same knowledge from text much quicker, but it doesn’t feel like that here.

I may switch to the deep learning specialisation or try to get my hands dirty with a more hands-on course after I understand the basic concepts but we will see, I’m actually enjoying relearning some maths more than I expected to!

Doing a deep learning course through fast.ai. Has been fun so far. For an ML noob, I like how we talk about deploying something end to end right from the first class and work our way backwards to the theory
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)

Cool! There's an easy tip for "o": If it's in the dictionary as о́ then it's the stressed syllable and you say the "o", otherwise it's "a". Example word: о́вощи, the first "o" is stressed. You should include the accent mark on any flashcards you make, since it can literally change the word you are saying (сто́ит, стои́т).

https://en.wiktionary.org/wiki/овощи https://en.wiktionary.org/wiki/стоит

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.
RE: "word is read exactly how you would sound out each letter (with a few exceptions)" nah, you write "короче", but you should say "кароче", write "остовайтесь" but read "аставайтесь" etc. otherwise you'll sound funny. Russian has a lot of exceptions.