Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: What things have richly rewarded the time invested in mastering them?
613 points by Carl_Platt on Sept 29, 2018 | hide | past | favorite | 564 comments
What things (books, activities, courses - anything really) have richly rewarded the time you invested in mastering them?

"Fighting fair."

It's a term I heard a Minister tell the bride and groom during his speech at their wedding. He talked about how you're going to fight with your spouse, but the challenge is to fight fair. Hear the other person. Try to see their perspective with sympathy, if not empathy. Avoid trying to "win" fights, that's never the point.

I talked about this with my then girlfriend. She was a vicious fighter. I was too. We knew each other's weak spots and knew exactly what to say. But we spent a few years slowly getting better. And now our fights are almost always about a rational disagreement on perspective. They get heated. We get emotional. Because we both really care. But we fight fair now, and that means our fights are productive and usually rather short. For me it means forcing myself to stop the argument for a moment, truly process and soak in everything she's said, try to understand why she feels that way, and see if maybe she's got a point. On more than one occasion, we'll be a few minutes into a yelling match and one of us will just abruptly say, "oh my god you're right..."

It's easily the most powerful skill I've developed in my adult life.

I've been married to her for 2 years now. I've got 78 more years to go with her and I feel more confident every day that we're going to make it.

I had a few moments:

First fight where we both knew that we fought about something but it was no longer on a level of staying together or not.

And when I realized that my wife is the person for whom some standpoints on my side are worth changing.

Also doing something only for her or for us.

I think that my relationship with my wife thought me to care way more and to understand other people better.

'Understanding/getting' it and living it are two different things.

Sounds a lot like the work done by William Ury, whose works can be found online (TED talks, Yoytube copies of some talks, his book "Getting to Yes"). That is, listening, and HEARING what the other person is saying, not "priming" your argument, and staying away from the literal "You're wrong!"

This 1000%. My wife and I came from families which did not know how to fight fairly. When we first started dating, our fights would last 3 days, then 2, then 1, then a few hours, then maybe 1 hour. I am proud of the progress we made and healthy communication style we developed together. Always from a position of mutual respect and seeking to understand alternate views. Made married life pretty blissful (I am a widower).

Any books/articles about this ?

The best relationship advice guide is here in my opinion: https://markmanson.net/relationship-advice

If not for the tactical advice inside of the article, it's a launching pad for other resources to dive into (such as the 5 language of love).

I’m still very much in the earlier stages of learning, but I’ll say negotiation. Recognizing that virtually any situation involving an “exchange” between two interested parties can become a negotiation has been a great insight into control for me.

People often think of negotiation as business, however it can be much more personal than that and can be very useful for your interpersonal relationships as much as it can be for your professional relationships.

Understanding how you can leverage another person’s empathy (and your own) in your favour without exploiting the other person is tremendously valuable whether you’re trying to get your kid to eat their vegetables or trying to convince a terrorist organization to free their hostages.

I’ve learned a few simple techniques that have honestly improved my ability to not only negotiate but communicate and understand people better in general.

I bought Chris Voss’ book on negotiating and it’s been really pivotal for my understanding of, well, humanity to a certain extent. Highly recommend it to anyone who wants to make a stronger person out of themselves.

No affiliation with the book btw but I’m a huge fan of the author as a result of his book.

> I bought Chris Voss’ book on negotiating and it’s been really pivotal for my understanding of, well, humanity to a certain extent. Highly recommend it to anyone who wants to make a stronger person out of themselves.

For people wondering, Chris Voss is the former lead international kidnapping negotiator for the FBI. Here's a podcast where he talks about negotiation [0] and the link to the book the above comment refers to [1]. His talk at Google about the same subject might be interesting too [2].

[0] https://fs.blog/2018/01/chris-voss/

[1] https://www.goodreads.com/book/show/32444582-never-split-the...

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

On thing that has bothered me about some other negotiating books is that they seem to focus on [what I call] "psychological tricks", then one day you get two people who've read the same book together and they just go back and forth trying to play tricks on each other and nobody gets anywhere.

Chris Voss' book teaches [among other things] that listening is the most important and most difficult negotiating skill. That's a "scaleable" approach to negotiation, if you happen to get two people together who both believe in listening to the other, that works.

Correction, the [1] link is not Chris Voss' book, but some sort of summary of the book.

Here's the correct link to Chris Voss' book: https://www.goodreads.com/book/show/26156469-never-split-the...

The unfortunate thing about negotiation books is that people begin to see all forms of human interaction as a negotiation. Negotiating when buying a car, sure go for it. But if you've scratched someone else's car and they're asking you to pay for it. Maybe not the best time to whip out those negotiating skills.

if you've scratched someone else's car and they're asking you to pay for it

That's a perfect time to use those negotiating skills. When I was buying a car, I just told them the number I'm willing to pay, and two weeks and 5 calls later they agreed. On the other hand, had I scratched someone's car, I'd want to use some negotiation tricks in case they wanted me to pay too much.

Ironically, this book brings up how it disagrees with the most upvoted comment's book "Getting To Yes".

This book (Never Split the Difference) was also pretty helpful to me, but it's easy to forget to apply in scenarios.

Computer Science degree.

Sure, lots of us "learnt" programming in our bedrooms or whatever by doing our own thing and messing about in whatever language. I went into my compsci degree arrogantly thinking that I pretty much knew how to code already so please just give me the bit of paper saying I have the degree and I'll be on my way thanks very much.

I was very wrong.

Although I was pretty good at the coding (or at least I like to think so), I learnt so much more of the theory that is as relevant today as it was then, and as it was decades before that too. It stretched me in ways I did not even know I could be stretched - I dont think I would never have learnt the "hard" theory that transcends specific programming languages if I was just tinkering around on my own or reading a "How to program Python/Visual Basic 6/PHP/C#" books etc (aged myself there with VB6!).

More or less every day I still use those skills/knowledge I learnt on my degree, but not only that I came out beaming with confidence and the knowledge that I knew my stuff.

As a direct result of my degree I enjoy a pretty cushy, well-paid, well-perked, and secure job at a company that many people dream of working at, and have done for years. Sure it was 4 years and a few thousand GBP (at the time in the UK - more expensive now) but totally 100% worth it - I genuinely dont think I'd be where I am now if I had not done the degree.

While I have no doubt this paid dividends for you, I'm not convinced that the cost/benefit is greater on the whole than alternatively spending those 4 years doing real-world development. Subjective, sure, but from my perspective there are too many amazing self-taught developers and too many subpar ones with degrees to automatically justify the 4 year time and money cost for the average person (concerning skill, career prospects have their own reasoning w/ degrees of course).

One of the biggest things one learns is the ability to self-teach. Unfortunately college charges a lot of time and money to learn via their chosen methodology which doesn't fit many people. At worst it can build a dependence on teacher-pupil classroom settings to learn new approaches, hence so many training sessions and stagnation in their absence. As a tautology, it's not that one approach is necessarily better than another, but we must remember that one approach is not necessarily better than another.

I agree that self-teaching is a very important skill, but it is a skill that I learned in my university time. It itself is a self taught skill, of course. At least in Germany, lectures are not compulsory, and if I find I don't learn enough, I go home and try to understand it on my own.

Second, I dispute that spending those 4 years doing real-world development would have yielded greater benefit. The thing is, he'll be doing his whole life real-world development, so the longer he is in the profession, the smaller the benefit of the additional amount of experience will be. On the other hand, in the four years of college, he has the chance to learn some other stuff deep in a way that he won't have the chance while he's working.

> I dispute that spending those 4 years doing real-world development would have yielded greater benefit

Didn't say that, just saying that's not the case for many

It also depends on whether your indicator for success is writing CRUD endpoints in the latest web framework vs inventing new data structures, algorithms, and AI systems.

Having hired programmers since the 90's, OP is correct.

Think of it with this analogy:

a hacker with no comp-sci foundation is to hacker with comp-sci foundation the way a car mechanic is to an automotive engineer

It's not a binary correct vs incorrect and it's unfortunate that so many that hire see it that way. I don't when I hire and I understand that different approaches work best for different people. You should take that into account instead of thinking that one approach is flatly "correct".

You are correct: I didn't specify what I was hiring for. I didn't have a need for plug-and-chug hackers to knock out one-off fixes, i had a need for talented programmers to groom into software and system architects that would maintain complex systems for many years. First I went for the Farady over Maxwell approach the first 5 years i hired and that was a 50% fail. The next round of going for degrees + hacking worked much better after 3 years. Granted, hackers might be different today than they were in the mid-90's early 2000's

I have a com-sci degree from a non-reputed college from a country that's considered the 'body shop' of the software development world, so my perspective is fairly skewed. That degree cost me virtually nothing as compred to what prestigious colleges cost, took me a year less to complete and I stood first in my graduating class. I graduated at the worst point of the 08 recession. I still remember being kicked out for not being 'qualified' enough without even a chance to interview. Was it worth it? Sure, taught me to figure out whats important and whats not, identify decision makers, optimise my habits to maximize output, work with idiots and geniuses at the same time and i was now 'certified' to code and get paid for it. Would I be able to make do without it? maybe, but I'd rather take this route.

It ultimately boils down to whether you have the discipline on your own to learn all the "right" ways to do something and understand how it works. Unfortunately we also have an issue where schools are pumping out CS degrees that aren't exactly high quality.

Studying does involve a big chunk of practial work, so you get both theory and practise. If you don't know the basics it would be very hard to do any "real-world development". So why do you think, 4 years are better spent trying desperately to coble some scripts together with a boss behind you than spending those 4 years surrounded by experienced teachers and like-minded students in an environment that focuses on learning?

I'm going to try to comment like this, here goes...

Why do you think 4 years are better spent paying to cobble together scripts for unnecessary assignments the way a can't-hack-it-outside-academia teacher wants who is not incentivized to do the best and is out of touch with real-world development instead of spending those years surrounded by experienced and like-minded peers in an environment that focuses on making tangible accomplishments and making money?

I hope it's clear how ridiculous discussing things this way is. There are benefits on both sides, and a reasonable person would respect that.

Except that what's being talked about here is a Computer Science degree, not a Programming or even Software Engineer degree. While the former does generally involve learning some programming, its focus is more about understanding the way computers and programming languages work from the fundamental theory on up.

So if you're going to criticize it, at least get it right: it's not 4 years cobbling scripts together for <insert tired "those-who-can't-do-teach" stereotype here>, it's 4 years learning theory and fundamentals when you could be practicing the marketable skills you'll be using more directly.

Personally, though, I've found that while nearly none of the specific programming techniques I learned in my Computer Science degree have been applicable to my job since, the fundamental understandings of the underpinnings of the field have made it vastly easier for me to pick up new languages and techniques as I need to.

Thank you for stepping in and trying to clarify. English is not my native language - that is why I sometimes struggle to explain myself better. The most valuable stuff you learn in CS study is the theory and that is exactly the stuff you miss out in an actual job (exceptions are possible of course).

Ironically, going to a state school for Computer Engineering with large class sizes and under funded professors made me learn how to learn very quickly. The lectures were initially very simple, and supplemented with hard projects and labs where we would really learn how to do something

I went into my degree thinking the same thing, and I learned very little, because I generally knew more than the tutors. The biggest win from my college time was from the library and access to books on compiler theory, my real interest.

Now, decades later, I despair at how poorly new and many not so new developers we hire really understand complexity theory. Complexity theory is the single biggest thing you can learn that you might not learn self-taught, but so very few developers internalize it. They write code that does network calls and database calls with abandon, never mentally multiplying out the complexity. And as the gap between testing environments and production environments grows (i.e. a lot more data in production), the cost increases. (I had learned and internalized complexity theory at 15, from a chance book found in a bookshop. This was before the web made such information easy to find.)

I agree 100% that complexity theory is the most important thing you learn that doesn't come intuitively. Unfortunately, a lot of us idiots, I suspect maybe the majority, have to have scalability completely beat down into us until it's internalized and fully respected. It's similar to the hot stove lesson where you know conceptually that it COULD and probably WILL hurt, but a lethal mix of naivete, optimism and some arrogance convinces you to push that shitty 1.5-seconds-a-transaction piece of code anyway and then - oh wow! - it scorches you. If you're in a shop with no existing or only surface-level code reviews, then you learn the lesson in production, and it brands you for life. In an instant, all that big O theory and combinatorics you did in college makes complete sense. This is the single most common lesson every shop with junior developers learns at every place I've ever been at.

You can learn that from a good textbook on algorithms and data structures. You don't need a full blown Computer Science degree for that.

Is there a clear line between 'respecting complexity' and 'premature optimisation'?

OTOH: With good monitoring, starting naive and improving later isn't the worst. My company uses NewRelic and it auto-magically sets up traces for all transactions. Can see where time is being spent, and the number and duration of DB and external-requests.

Of course you actually have to pay attention to it. I've gotten a lot of praise by just optimizing things that everyone else shrugged off. (Turns out people appreciate a fast authentication system; who knew!?)

There's a difference between the trade of programming and the science of programming. The former, you learn on the job. The latter, you generally learn at university. And for some things (fewer things than I'd like, honestly) the latter is going to help you a lot. For the rest, it's not really necessary.

I learned in my bedroom and got a degree in comp sci. Between the two, the comp sci degree was less useful.

What has turned out to be more useful was knowing how to ship software that delivers business value without being an architect astronaught. I credit that to my few business classes in undergrad and my MBA studies before dropping out.

Torn on this one.

I'm currently finishing up my CS degree after having worked professionally as a dev for a few years. I got started with a bootcamp, maybe before they were mainstream.

Maybe my expectations were out of line from the onset, but I came in more to learn than for the sacred degree. And I don't mean for this to be specific to my school - I imagine it's happening many places - but the school seems to be going out of its way to push students away from what I'd consider the core computer science curriculum.

I don't think it was always this way but subjects like compilers, algorithms, operating systems, and computer networking are veering more and more towards optional. Taking all of them before graduating is rare.

Instead, the hot thing seems to be software engineering. It sounds so good on paper - and I'm sure students, parents, and school admins all want it - but my experience with it has been complete nonsense.

In practice, these, and similar classes, have just been watered down versions of what is done in bootcamps, but executed poorly by folks with little industry experience. The result seems to be no actual computer science knowledge, a superficial experience, and bad habits.

There's so much more hard computer science I want to learn. And while I'd love to continue on to grad school - I have learned a fantastic amount here - so I can actually get to the good stuff, I don't know if it's realistically the best path.

tldr, I'm a bit bitter that I've had to take so many "filler" courses during my cs degree. Are CS degrees getting watered down? Is software engineering as a domain like this everywhere?

If you are interested in CS-related research (like, really interested to make theoretical contributinos), then CS is obviously needed. For the rest of coders, i 'd say a math degree or a physics degree might teach more skills and a better appreciation of intution. I see sometimes programmers trying to apply extreme abstractions to simple situations that makes my physicist self almost angry. It also makes it easier to justify going with what works, rather than with what justifies the time spent to learn compiler theory.

If you can't invest in a studie it also helps a lot to skip searching how to do things in a specific language. You are much better off by searching for solutions. For example: 'how to create modular programs' will give you more valuable results than 'how to create a website in PHP'.

Things like dependency injection work the same in most languages so it's more helpfull to understand what it solves than how to solve it in language [x]

I'd be interested in a few real world examples of these cases where you are able to apply the CS knowledge in your day job. Would you mind sharing one or two?

I would argue it is not about the little facts, such as specific sorting algorithms, but its more about learning how to approach a CS task, how to abstract and how to reason about code. The colleagues I know that were not as lucky and could not study CS, often they just hit a "wall" when they would have to argue about a certain SW architecture for example or when they were presented with an abstract problem, such as implementing some generic behaviour. And learning how to do this is a process that continues after the study, but it is important to get a basis. It is hard to really be specific here but if you do not have a good foundation of knowledge in a field, you will sooner or later (if you are not self-delusional of your abilities) regret it.

We were storing HTML blobs in a database, and we needed to run through all of them and manipulate some tags. A coworker argued that we should use regex. I was able to turn that into a teaching moment about the Chomsky hierarchy, and how (simple) regex can't be used to parse languages which feature arbitrary levels of nesting.

but did you manipulate the tags without regex?

Never mind the forest; look at these trees...

are you accusing me of shortsightedness?


I can contribute some. Mostly it comes when you attack problems and conceptualize your solution to that problem, it does not come when looking for a library or digging through the API. Almost all of the problems you will encounter in your day to day work will be something with an already known solution or use a well known and researched pattern.

Knowing the common language and use cases for data structures is probably the one I lean on the most. Seeing the general shape and feel of a problem that needs a graph style solution or being aware that looping through a nested array is bad but that there are easy off the shelf solutions built into most languages to that problem is important. How else would I know that at the root objects in js, dicts in Python, maps in Java, C#, and Clojure are all backed by the samething and have similar properties or that those properties shape how you interact effectively and efficiently with those things?

Additionally it opens the world of acidemia to you by teaching you the conventions and tools you need to read and make sense of comp sci papers which let you stay at the cutting edge of your field if you want to, imagine being a machine learning engineer before Google made this huge push in ML, I tried when I first started college to grasp the ML stuff but most of it was beyond stuck in papers behind lots of calculus that I didn't have the time or desire to learn. My CS pushed me through Calc 1 and 2 so if I wanted to I could just brush up on that and push into ML.

It's hard to explain for a lot of people because in reality you can go it alone and do fine but it always be the case that your whole career you didn't get a CS education so you might have holes in your knowledge that you had no idea about. Additionally it lowers barriers to careers and gives you an incredible opportunity to build a social network of interesting people who in general will go on to do big things and you can leverage that social network for even more career gains.

I haven't even touched on the social aspects of college which you can dip into if you want or the fact that it gives you an opportunity to learn how to live on your own all of which are important but directly connected to CS but rather college as a whole.

TL;DR You don't know what you don't know but college helps you get those tools and teaches you s whole bunch of lessons along the way, but you can go it alone of you want.

The most brilliant and successful engineers I know don't have degrees, and they accumulated their vast CS knowledge on their own. They all dropped out of college within the first two years and started working at 19-20. Two of them now run their own software consulting businesses, one is a lead at Netflix, and one is a lead at Google. They're all a bit older than me, in their early 30s now. The younger ones -- one just started at FB with a 240k+ base (he's only 23), and the last one is at Dropbox.

The main factors I think people should take into account for whether or not a CS degree is worth it:

Do you believe that you absolutely need the degree to break in to a programming career, if you're someone who just wants a good job and doesn't know where to start (like I once was, and like many of my friends who are just starting off with learning are now)? Or are you interested in a specific programming field that has a hard CS/Math degree/knowledge requirement?

Is the combination of tuition/fees and opportunity cost significant to you? If you are responsible for paying your own way and taking out loans, compare spending ~4 years in college and having -$40k and no work experience, vs. working for ~4 years, having $40k+ in the bank (possibly much more), accumulated possessions/assets, credit history, etc. This is not nearly as significant if your finances are being handled by someone else, and/or you don't have to worry about money at all because you have access to wealth anyways (mainly through trusts, planned inheritance, a partner, or your family).

Do you believe that you need to the environment, structure, and pace provided by college/university to actually learn CS, and that you're incapable of doing so on your own? I want to note that there's nothing wrong with feeling that way. It's just something to take into consideration. If you need to be completely immersed in it to actually retain the knowledge, then it's the right choice. If not, and you're someone who can learn everything on their own, then consider if being in a CS program would actually hamper your rate of learning, as you're forced to match the slower pace of others.

> Do you believe that you need to the environment, structure, and pace provided by college/university to actually learn CS, and that you're incapable of doing so on your own?

For me, it was not a case of not being able to do it on my own, it was not knowing what I should know.

You could probably spend years becoming an expert on C# or Java or C++ or Go or whatever just by coding in it at your own pace (or at a job) and slowly learning by osmosis/experience/mistakes along the way etc. That's fine. But would you learn the useful theory along the way as well? And if you did, would you bother if someone hadn't created a nice structured syllabus for you? I know that I almost certainly would not had I just stuck to churning out fairly clunky (as I know it was now) code without the formal education in it.

As you said, I am sure some people dont need this though, and somehow just have limitless time or already somehow know exactly what they should learn next, when, and in what order and never need to ask any experienced people any questions to clear up misunderstandings or have their knowledge checked. Lucky them.

> what they should learn next

Easy: whatever seems interesting.

> when, and in what order

Every single book I've read listed the things you should know before reading it in the introduction. If there's something you don't know about, you go back to the library or bookstore. Rinse and repeat, then start from the bottom and climb back up until you reach the first book. It's easy.

> and never need to ask any experienced people

There were so many experienced people on the Internet even back when I was a kid that you didn't have any problem with finding and asking them. They were incredibly helpful, especially in suggesting which books on a given topic to read. Assuming that you can get access to such people only in college is kind of elitist.

> to clear up misunderstandings

As I said, smart people are everywhere (on the Internet), just reach out and they'll help you. Well, maybe it was easier in the 90s - or maybe not, I don't know - but I'm 100% sure that not all the smart people of the world are in colleges right now.

> or have their knowledge checked

Your programs are self-evaluating proofs of your understanding. Cross-checks by others are nice, but hardly essential.

>As I said, smart people are everywhere (on the Internet), just reach out and they'll help you. Well, maybe it was easier in the 90s - or maybe not, I don't know - but I'm 100% sure that not all the smart people of the world are in colleges right now.

It's easier now than it ever was.

>As you said, I am sure some people dont need this though, and somehow just have limitless time or already somehow know exactly what they should learn next, when, and in what order and never need to ask any experienced people any questions to clear up misunderstandings or have their knowledge checked. Lucky them.

Here's what you're missing -- you still get to rub shoulders with experienced people as you work alongside them in a professional context. If they have a CS background, you get to fill in any missing gaps, whether it's hard knowledge or simply learning what you still need to learn on your own, so long as you're willing to ask and they're willing to share.

You also have the alternative of learning from experienced people without needing to be employed. Online communities containing working professionals, open source, local meetups. The latter isn't an option for everyone based on location.

If your first job doesn't have an opportunity for mentorship because you're the only dev, or the other devs are overloaded, you can still reach out to countless people who will help you for free and with no expectation of anything in return.

Open source is extremely intimidating to get into as a beginner. I'll admit I was never able to do it, and even now I feel intimidated despite having spent 3 years working professionally.

But the fact is that the option is there for anyone who wants to access it. Any person can get things like code reviews and career guidance from very smart and very experienced people if they're willing to seek it out, without having to pay them anything. You have open access to the CS knowledge that is passed down in university programs, and to people with that knowledge for when you need help.

I don't know how much longer this will be the case, but I think the trade-off in value between getting a CS degree and getting into the industry as soon as possible (and picking good work environments) is only continuing to grow, especially since employers are caring less and less about a CS degree as a hiring criteria with each passing year.

> I can contribute some.

So please do, then?

> How else would I know that at the root ...

Just read a few books on algorithms and data structures? Is that a problem? Or do you say CS degree course gives you access to books you otherwise cannot get?

I got my first, quite a decent one[1], for my 12th birthday. I slept with it. Like, seriously, kept it next to my pillow. At first, I didn't understand anything. A year later, the book was in a rather tattered shape, but my understanding was quite decent, except for some of the "AI" algorithms (the book was from '95, so what it called AI was rather different from today). About half a year into reading it I finally saved enough money to buy the least expensive version of Visual C++, and I could finally start coding the exercises. Before that, I just imagined what they would look like, how they would work; I borrowed Stroustrup's "The C++ Language", read it and wrote C++ code in my biology notebooks. I sorted playing cards, laying on the carpet in my room, and was overjoyed when they indeed became sorted. It was incredibly exciting. You know what uni was when I entered it years later? Anything but.

> Additionally it opens the world of acidemia to you by teaching you the conventions and tools you need to read and make sense of comp sci papers

By the time I actually needed them, the papers were mostly accessible to anyone, academia or not - but that was many years later.

Before that, though, I learned most of the "tools" from - again - books. There were great books on math in my high school library and my maths teacher was happy to help with things I struggled with, even though they were unrelated to the actual course she taught. My first animated, rotating cube implementation was thanks to her. She told me that what matters is the curiosity to find problems and persistence in attacking them. She never once told me that about having a degree.

> You don't know what you don't know

What? You try to implement something. It doesn't work. Here, that's what you don't know. Now go learn it.

It's really that simple. If you're a person who "tries to implement something" on your own once in a blue moon, then sure, school is good for you. It forces you to try things and helps you accomplish them. If you're not, though, it's just going to slow you down and suck all the pleasure out of learning (because it will force you to try things you don't want or need at that point - instead of an exciting adventure, learning becomes more like a job due to this. It's dreadful. Horrible. And most of all: counterproductive.)

> but you can go it alone of you want.

Well, some of us can, others don't. It's important to know two things: a) which kind of person you are; and b) you don't have to be ashamed of being either. Your post sounded a bit condescending to me, hence the lengthy response - I just wanted to offer a perspective of someone from the other group.

[1] first ed. of https://ksiegarnia.pwn.pl/Algorytmy-struktury-danych-i-techn...

Imagine you would have had to go your path with just books, without the great math teacher you mention. It would have been possible, but much harder.

Now imagine you have 5 or 10 great teachers, with expertise in different areas of CS. Wouldn't that also have made it possible for you to learn much faster, or learn more in the same time?

And now imagine, you meet a few like-minded CS students, and 'try to implement something' together instead of on your own. That was what really boosted my learning rate.

Of course, university does not have a monopoly for these experiences. But the good CS programs are designed to provide it to you.

This may well be locale-dependent, but the great things you describe - I can indeed only imagine.

I did my best to search for like-minded CS students, did my best to seek great teachers. I tried for nearly 2 years - and failed miserably. The handful of students - out of 150 on the year - I could talk and maybe team up with were disappearing one after another, hired by this or that company. The professors were all old, which in this country meant that they were all re-trained into CS after 40 years of career in something else. There was simply no computing here to speak of before the late 80s, it couldn't be any other way. Younger people never even considered becoming academics - the money was simply not there. Without said 40 years of tenure, they would work for something like one-sixth of what industry - the Western companies rapidly expanding into the country - offered. And I don't even want to talk about other students, their expectations and attitudes - it's way too sad.

You know, I actually dreamt of a place where my passion would be shared by others. At every stage of my education, I was told that the next one will be that place and I will be able to finally learn what interests me there. It was all bullshit. There was literally no place in this country where I could learn what interested me, and I couldn't really go anywhere else due to health issues, even after it became possible without passports.

Meanwhile (or actually a bit before that), my English became good enough - much better than that of my profs, who were instead all speaking Russian very well - and the Internet opened to me. I found great teachers there. I found many people sharing my passion - people, with whom I tried implementing stuff, failed, learnt and sometimes succeeded. I've never said I did it all alone - just that it was all 100% outside of college - and mostly outside of this country.

So, you should consider yourself lucky, and I'm really jealous of you. I wonder, how much of my "I did it all myself" attitude is by preference, and how much of it is just trying to cope with all the shattered dreams the educational institutions here had given me. "The good CS programs are designed to provide it to you" - indeed.

Well, that's one part of it, but the other side still stands: I started learning programming at 9 and kept at it by myself for the next decade. I believe learning is a great example of compound interests - the more you learn, the faster you can learn more. By 19 I actually had a good grasp of the basics, and my learning rate was much higher than virtually any other student (except those similar to me). I don't think it would have been easy, even for the "good" programs, schools, and teachers - to teach me, without causing me endless grief and frustration. That's the nature of education systems (I was told, again and again). The fact that mine was anything but "good" multiplied that frustration tenfold.

I really wish I could experience a dream-like environment you talk about. I might have dropped out and gone my own way anyway - but I might not, and might have been that much better off thanks to it. I won't ever know.

Thanks for sharing your experience. I also don't want to paint a fairy land of learning, because it wasn't that for me either. I had a fair share of useless professors as well, and mandatory courses I hated. As always, the truth is somewhere in the middle.

> [1] first ed. of https://ksiegarnia.pwn.pl/Algorytmy-struktury-danych-i-techn....

ah, instant nostalgia. I loved that one as much as "Writing Computer viruses" :]

Learning about b-trees, storage layers of databases comes in hand when you have to push your database to its optimum performance.

Similarly understanding storage classes for data and indexes, for example when to btree vs lsm trees. If you are using lsm trees when and how it should be optimized.

And ofcourse, in interviews :D.

You don’t really need a degree for that. You can learn that from a book.

As far as interviews, the last three jobs I had.

1. We need you to design a fault tolerant system with no single points of failure. Write out your design on the board.

2. What is your 90 day plan to build a software development department to achieve these initiatives.

3. Here are some issues with our AWS infrastructure and challenges we are having delivering features. How can you help solve them.

Yes, I’m supposedly a hands on developer, but at a certain point in your career, you’re not asked to write a merge sort on the board.

> You can learn that from a book.

And I did read it from a book, when someone from University introduced me to the book and explained it to me in short firstly so I can grasp it more easily on my own.

I'd never pick a book about B trees on my own (booooring, let's learn LatestFramework.js).

My University professors were mostly a complete disaster but at least the materials we had were good enough. Who wanted to learn had access to knowledge, and for motivation -- at least the grades.

I can't see myself on my own even finding a book about theory and then going through it for 4 months, getting into nitty gritty details just for the kick of it.

There's no obvious benefit at the time of learning it. By the time you can see the benefit on your own, it could be too late.

And I did read it from a book, when someone from University introduced me to the book and explained it to me in short firstly so I can grasp it more easily on my own.

If you had to depend on a teacher to expose you to the books you should read, what about the rest of your career?

I'd never pick a book about B trees on my own (booooring, let's learn LatestFramework.js).

No, but if I needed to know about how to optimize MySQL, I would do research on - how to optimize MySQL.

My University professors were mostly a complete disaster but at least the materials we had were good enough. Who wanted to learn had access to knowledge, and for motivation -- at least the grades.

I doubt that there is a dirth of knowledge between the free information you can get and paid courses online.

I can't see myself on my own even finding a book about theory and then going through it for 4 months, getting into nitty gritty details just for the kick of it. There's no obvious benefit at the time of learning it. By the time you can see the benefit on your own, it could be too late.

There was no obvious benefit from me learning 65C02 assembly language and BASIC in the 6th grade. But I did it anyway. There was no benefit from me spending hours on the comp.lang Usenet groups in college. For any software developer though, there is an obvious benefit from having a deep understanding in marketable technologies - competitiveness in the job market.

> If you had to depend on a teacher to expose you to the books you should read, what about the rest of your career?

It's a kick start. You depend on the school to teach you other basic skills too: letters, numbers. You learn a lot of words from classes, but it doesn't mean you'll stop learning words once you're done with elementary school. You can go on your own after that.

My personal experience with school and university is exposure to a lot of different things. I wasn't forced to learn everything -- I spent more time on things I liked and less time on things I just wanted to get a good grade on.

The system is far from perfect and is flawed in many ways, especially where I live. But I don't think that the idea of formal education itself should suffer because of some flaws; I's rather improve it over ditching it.

It's a kick start. You depend on the school to teach you other basic skills too: letters, numbers. You learn a lot of words from classes, but it doesn't mean you'll stop learning words once you're done with elementary school. You can go on your own after that.

Since the discussion was about the difference between learning in your bedroom vs a CS degree, I learned in my bedroom when I was in 6th grade, I already had the kickstart.

The rest of my career I got my kickstart from Usenet, podcasts, blogs, Hacker News, coworkers, and necessity.

Cooking. I am not a chef, but I have spent the time and effort to be able and willing to tackle nearly any recipe in the cuisines I'm familiar with. More importantly, I've made my wife, family, friends, strangers, and myself, happy at my table and via gifts of food. In terms of books, the biggest difference-makers have been 'The Way to Cook', Julia Child, 'The French Laundry Cookbook', Thomas Keller, et al, and 'The Flavor Bible', Page and Dornenburg.

Second this. I spent a lot of time focusing on trying recipes with new techniques or new ingredients when I was in graduate school and cooked dinner for my wife and myself every weeknight. When I started, I viewed recipies almost as magic spells that had to be followed just so (or maybe for this crowd, code to be copied verbatim from a Stack Overflow answer). But once I learned some basic techniques and the properties of ingredients, I gained the confidence to experiment and create new dishes. Recipies and cookbooks are now sources of inspiration and not rigid rules.

except for baking—-precision and reproducibility are key there.

I would add to this: learn how to sharpen a knife with a cheap wetstone and learn how to cut correctly with a chef's knife... it speeds up your prep time immensely and is also a lot safer. i can basically cut up most veggies without thinking about it or looking at the board and it doesn't take very long to learn.

I was going to say the same thing! For me it is baking/making bread, but cooking generally is rewarding and a practical skill.

I wouldn't advise to start with baking once the learning curve is way steeper and less fault tolerant than general cooking. If you are just starting and want to see cooking as a relaxation activity delay baking and start with Italian food.

Completely agree. Being able to eat decently, consistently and without breaking your budget definitely makes cooking a great skill to invest.

Hint (it works for me, YMMV): cook only once a day, only when you're rather hungry and preferably on evenings after work. It will help you to relax.

Cooking, and ironing are my go to relaxing activities in the evenings. Hit two birds with one stone.

I’m rather the opposite when it comes to ironing, I can never get myself to do it while not hating it. Do you have any tips for how to make it more bearable?

Have one item in the bathroom when you shower. The steam can remove the wrinkles depending on the conditions.

Do less laundry.

I also agree with this. I have learned by doing blue apron and hello fresh for a year, and it's amazing the little things I've learned from cooking so much. another bonus is my foods budget has become much more manageable.

Agree that being able to feed yourself, your family and friends properly is fantastic. Our society is not set up to make it easy.

P.s. I’ve flipped through ‘The French Laundry Cookbook’, and if you can take that on, I’ll call you a chef. :)

Hahaha. It's one thing to make something from the French Laundry Cookbook. It's another thing to do it all day(night) every day. That's a chef.

Readline —- I’m sometimes amazed at the number of relatively seasoned developers who don’t know simple commands like ctrl-r. This one really pays off because almost all shells and repls like ipython or the mysql client implement it.

Sample cheat sheet:


You don’t have to learn it all, but mastering the basics like moving to the end/beginning on the line, moving/deleting by word, yank, history search and the like will pay off handsomely.

If you're a vi user, edit ~/.inputrc and add:

   set editing-mode vi
   set keymap vi-command
This changes readline behavior from emacs to vi. This, along with "set -o vi" in bash, are really handy (though can be frustrating for others if you ever share a keyboard pair programming).

In Zsh, it will set the editing mode to whatever your $EDITOR is set to. So if $EDITOR == vim, readline will be set to vim mode.

I’m a vim person, but I feel like the modal workflow does not work well at all in a shell.

Nice! I’ve been at this game for a while and ctrl-r must have slipped right past me till now. I’ve regularly do ‘history | grep ___’ but ctrl-r looks like a far better solution.

I'll just mention fzf then.


Huge fan as well. What I really want is a terminal which has Vim's "normal mode" keybindings for scrolling back the buffer, selecting, find/replace... but then anytime you go to "insert mode", you get Readline. Best of both worlds.

I think that's Neovim's terminal mode. I personally don't use it because I use a tiling window manager, so it's easy to launch another terminal wherever I want and I'm happy with the key bindings. But some people swear by terminal mode.

Thanks for the pointer, I'll check it out.

Lots of the commands work in many macOS GUI apps as well.

The origin of those shared commands isn't from readline, but rather from emacs key bindings that made it into both readline and MacOS: https://jblevins.org/log/kbd

I'm going to say something out of the blue - Building speakers.

Building speakers look complex from the outside, but are pretty rewarding once you know the basics (Thiele parameters, enclosure design and tuning). You can put together your own speaker with just a couple of parts from eBay or anywhere else on the internet really and sometimes can end up with really high quality boxes that can outperform much more expensive commercial ones available in the market.

Speaker design is one of those things that the more time you put into it, learning, studying, testing, the better rewarded you'd feel. To add to the mix there's also amplifiers - Class A, B, C, D and even tube amps and each combination of amplifier and crossover sounds totally different.

Each speaker box I design, I feel is like good food. Different flavors, different combinations, different possibilities. You will never feel bored and never feel you've hit an end. You're always discovering something new.

Oo, this is something I'm pretty interested in getting into (I love good sound systems, and enjoy building physical things). Do you have any pointers on where to find information on how to design speakers / pick sensible component combinations?


Books: There are many technical books, some are so complex in their wordings that you'd feel like giving up even before you start.

The best book I've found that's short and sweet (but requires a little bit of math background) is this one:



Coursera has an Audio Engineering course which the professor explains in really crisp detail. It's from University of Rochester.

The course title is: "Fundamentals of Audio and Music Engineering: Part 1 Musical Sound & Electronics"

Link: https://www.coursera.org/learn/audio-engineering

I audited the course and didn't pay any money. There's not much difference unless you want a certificate (and of course want to support Coursera too).


I like Kirby meets audio. He does some really nice stuff with speaker boxes. He mostly sells kits for his speakers, but I don't recommend them. They are from parts express mostly.


I LOVE John. He reviews most of the cheap amplifiers from China and teaches you what's wrong with them electronically and how to fix them. HE's very knowledgeable as well.


Where to buy parts:

If you're buying speakers, AliExpress usually sells good quality speakers for cheap. You may also want to search for the same model (sometimes under different brand names) on eBay as eBay can be cheap sometimes as well.

Contrary to popular belief, most speakers are actually made in China. Simply because China possesses most of earth's natural magnetic ore required for making speakers. That and Neodymium too. For example, look at the quality of this Aluminium cast speaker: https://www.instagram.com/p/BjZN5XKggOt/. It's definitely hundreds of notches higher quality than what you can buy commercially from say, Sony or Philips in the consumer market. And it also costs really less.

Nanjing in China has most of these speaker factories and I visited a few last year. If you are able to make a trip to China like I did, it's best to form a personal relationship with someone there and you can order directly through them. The price difference between AliExpress/eBay and these factories direct can be as huge as $50-100 depending on the model and size of the speaker.

For amplifiers, I recommend eBay or AliExpress. Both carry decent models.

If you'd like to build your own, hands down the best model to get started with and easiest to hack one in a weekend is TDA 7297 by ST MicroElectronics. The good thing is, you can even power it with your USB! And the sound quality is REALLY good. It's the same IC used by a lot of companies (Creative for example) and resold to you for $700 (Creative actually has a model that uses this IC for this price, I can't remember which one). Many companies like Bose also use similar models from ST as well. That's when you realize stuff you buy from the consumer market is actually something you could have built yourself too, with a little more effort :)

Some other popular amplifier models (plug and play) are chips based on TPA 3116D2. They come in different configurations 2.1, 4 channels or good ole' stereo. Pick the ones you like.

Finally, don't be intimidated by all the complex terminology, sometimes you can just start with what you like or find combinations on the internet that are popular. Here's my earliest build: It's a mix of art + audio (attempt to): https://www.instagram.com/p/Bet9CA-FxHs/. But even after so many years, I'm still proud of it :)

Hope this helps :)

I'll piggyback on this comment to recommend (no affiliation) twistedpearaudio.com

Awesome little company with great kits for people into building HiFi gear

I'm glad you mentioned this. I've recently gotten into analog stereo. I've fixed up a few receivers, which has involved deciphering schematics, testing circuitry and soldering. Very rewarding when it works! I've rehabbed some speakers and turntables, too. I'm a long way from understanding much of anything in depth, but it is a nice off-screen, hands-on hobby. Thanks for the book recommendations below.

I recommend reading the book The Invisibility Cloak by Ge Fei

Would the barrier to entry for making working speakers be significantly higher if the aux port goes away entirely?

If it went away entirely, as in also from laptops, desktops and Raspberry Pis, without adapters being available, maybe.

But you're not going to be driving a speaker with a phone anyways. You'll need an amplifier, and if the aux port goes away, the amp will likely have whatever-alternative-input-there-is.

You can use something like hifiberry or justboom to embed a spotify / airplay compatible amplifier into your speakers: https://www.justboom.co/product/justboom-amp-zero-phat/

If Aux port goes away, it's still going to be Bluetooth or Wifi and of course there are plenty of plug and play chips out there on the market that should do the job pretty easily. So, to answer your question, no, the barrier wouldn't be that high at all :)

Being good at reading and writing.

The ability to quickly and efficiently understand and mentally absorb large amounts of the written word, and the ability to write clearly, simply and coherently about subjects both simple and complicated.

Being good at reading is a force multiplier in everything academic I have ever done, and continues to be a huge advantage in both learning and simply doing my job, and in so much of life in general. So much information about how everything works, physical devices and procedures and interacting with governments and organisations, is provided as the written word. If you can do it quickly and correctly, you're ahead of the game.

Being good at writing helps me transmit knowledge and instructions across time and space to other people, helping them understand faster and better. It also saves me time; I work with people who genuinely struggle to express precise technical information through the written word, spending large amounts of time producing text that really isn't adequate. Often they write as if they're speaking, which just doesn't work.

A lot of people go through life with just functional literacy; being good at reading and writing is a force multiplier across so many activities in life, right from early education all the way through such a huge range of jobs and careers. The return on investment spent on being good at reading and writing is huge.

By way of writing feedback - you could have made your point in half as much text. What is your take on brevity?

I'm with Strunk & White.

Strunk & White is held in too high regard because of its status as the definitive writing style guide in education. Much of it is outdated, or based on the opinions and pet peeves of the writers. Some of it is outright wrong and promotes bad writing in favor of made up grammar rules such as split infinitives.

Without devolving into a discussion of S&W having the word "style" on the front, with "grammar" nowhere to be seen, S&W 4th edition (the one I happen to have to hand) specifically advises that breaking the rule about not splitting infinitives can be good.

> Being good at writing helps me transmit knowledge and instructions across time and space to other people, helping them understand faster and better. It also saves me time; I work with people who genuinely struggle to express precise technical information through the written word, spending large amounts of time producing text that really isn't adequate. Often they write as if they're speaking, which just doesn't work.

I'm very familiar with this situation. Since an ever increasing amount of important communication is handled in written form, via mail, slack, in todo lists and project management tools, I noticed how many smart people reduce their writing to several loose thoughts, if not barely connected nouns, that hardly count as sentences, resemble spoken language and almost always require additional discussion and questions to understand the actual meaning.

I think to many people it just feels too cumbersome to write and explain in detail. However the time saved during writing is, of course, lost when the almost inevitable clarifying discussion afterwards is due.

Writing and reading is critical. Take your time to do it well.

I generally find that people are no more precise in their verbal language than their written, if you actively listen and don't just let the word-salad wash over you. Very few people can achieve much information density, in any medium, but at least when written down the information is persistent.

Do you have any tips on getting better at this (eg writing explanatory pieces on technical issues) apart from simply doing it over and over again?

Harsh, brutal critique from other people (ideally the target audience), prompted by deliberate questions from us about how easy it is to read and understand, and questions from us to test that understanding.

Writing happens entirely inside one's own mind; it can be so hard to see that what we're writing isn't clear, isn't well structured, doesn't guide the reader deftly through understanding and enlightenment. I wonder if it's even possible to properly critique our own explanatory pieces on technical issues, given that we cannot read it without having that knowledge already in our heads, as the target audience will have to.

It can be quite a shock to learn how badly written some of our own work is; as with code reviews, ego has to step aside.

I really enjoyed "The Sense of Style" by Steven Pinker. It's meant to be an accessible guide for the common writer.

(I have an English degree, so I can at least say his advice rings true and hits a lot of important points.)

Learning how to smile. I would spend time in front of the mirror practicing my smile for different situations.

During interviews I would force myself to smile. It helped get rid of some nervousness. When I get stuck on a problem I would smile stupidly and usually the interviewer would help me out.

When I feel like conversations are getting heated I would take a step back and smile, it helps me direct the conversion to a more positive place.

Sometimes when stuff happens outside my control and life just sucks I'll force myself to smile and handle things to the best of my ability

I also practiced smiling to change my neutral expression (which used to cause people to worry that I might be sad) and now I constantly have a slight smile.

I still haven't gotten used to strangers on the street suddenly smiling brightly at me, it always takes me a moment to realize it was me who smiled at them first.

The secondary effect of receiving unexpected smiles definitely also helps to improve my mood.

Paul Eckman's claim-to-fame is his work of proving that chnaging facial muscles changes the underlying emotions (in extension to the commonly known fact that our facial muscles change to reflect our emotions).


Wow. Amazing advice. I was feeling shitty and nervous now and tried a bit of forced smiling. Changed my mood for sure.

Me too! :D !! :D

Learning Sanskrit. I have spent the last few years learning it and it's been tremendously rewarding. Sanskrit is a beautiful language. Learning it is a great mental challenge and gives great satisfaction (to me). Before learning Sanskrit I had never really pursued a hobby this seriously. Since I have been doing this I no longer feel like a machine who just goes to work, eats and sleeps. Before this, I used to feel great despair if the work in the office was not to my satisfaction. Since I have started pursuing this passion, work no longer dictates my life. Work is not the only thing that makes my life meaningful. I view work as one of the important things in life and not the only important thing in life. And that has made all the difference. My contentment and happiness level has gone up dramatically since I have been learning Sanskrit.

This is an extremely interesting perspective. I actually had the opposite experience. I was forced to learn sanskrit throughout my high school career and I absolutely hated it. I'm an extremely practical person and I have no use for the language at all.

There is no contradiction actually. While talking about the state of Sanskrit in school education, Chamu Krishna Shastry says[1] that schools are factories for producing students who hate Sanskrit.

IMO, whatever other reasons there may be, a most compelling reason for learning a language is its poetry (Robert Frost defined poetry as that which gets lost in translation), and here Sanskrit poetry is unlike anything in the world. You may like to read this collection of essays[2] that my friend wrote during his first real encounter with Sanskrit poetry.

[1]: https://youtu.be/ZoS1nA8RVko?t=740 (starts at 12:20), https://youtu.be/WwtIJ8_bQf8 (ends at 35:00).

[2]: http://sadasvada.com/Sadasvada_Print_Apr2014.pdf

Are you the editor of the essays, "SHREEVATSA R."?

Yes. (Mohan kindly included my name as "edited by", but all it means is that I read his essays and gave some feedback / made minor suggestions, before he posted it.)

The key phrase is "was forced to learn". I am not forced. I am doing it because I want to. I am also a very practical person. Sanskrit is a very useful language to me because it gives me great happiness.

Whoa, I mentioned a similar experience before seeing your comment!

Vidya/Shishu Mandir?

I would say, knowing any foreign language, is a very rewarding skill. I'm not a 'natural' regarding language learning - I've to push it - but it definitely pays. In my case is Slavic languages with emphasis on Polish. It's a long-term hobby.

As a native, this is the first time I hear of someone learning Polish as a foreign language as a hobby, as opposed to having a partner or a job in Poland. This must be hard work. I am happy it works for you as a hobby :-)

Same. Language learning is a hobby of mine, and it's been absolutely rewarding. It's allowed me to do university courses through another language, learning more about the culture and stuff of another area. It's also enabled me to connect with more people on their own terms, an experience which has definitely made me a better person.

Interesting. We were in general decent at this language till class 10 (high school/secondary school). We were forced to learn it so while we got better at it we hated it and except one guy none of us continued this subject (as an elective) in class 11-12 (senior secondary) and that last guy too moved to Economics after class 11. In India class 11-12 used to have a 5th subject (elective) and even tough no one really did it for passion a lot of people took Sanskrit anyway (esp. for class 10 CBSE board exams) as it was also supposed to be a we scoring language. Don't know how much CBSE (kind of our national school board) has changed in last decade or so.

We used to have Sanskrit months and weeks when we were supposed to interact with each other pretty much entirely in Sanskrit. It had such a solid grammar and I'd say it was flexible too. I wish we were introduced to it in a flexible manner. I remember myself being able to rad Sanskrit books with relative ease. But, now? Last time I tried I couldn't. I kind of blocked this language out. I talked to couple of friends and they had similar experiences.

Why did you choose Sanskrit in particular?

It all started a few years ago when I was burnt out due to reasons that are not relevant to this discussion. I happened to read some Sanskrit and I found it very relaxing. I then bought some Sanskrit grammar books (by Thomas Egenes) and would read them before bed time. I found reading them incredibly relaxing mainly because I was doing it with no particular goal in mind. I was doing it because I liked it. Before that I was doing everything in my life with some material objective in mind (promotion, money, sex). I never stopped reading Sanskrit since then and with each passing day I found I am happier and more content in life. Never in my wildest imagination I would have thought that an ancient language would have such a profound positive effect on my life.

I was in a similar situation as yours and I started learning Sanskrit as my hobby. It is a beautiful and a very logical language. I have been working towards improving my Sanskrit speaking ability more so than the grammar itself. It felt a lot more rewarding when I was able to hold a conversation using in my broken Sanskrit. If you haven't yet found a group to I would highly recommend finding one and practice your Sanskrit.

Where did you find yours?

कुत्र पठसि संस्कृतम्?

Okay, I will try.

कुत्र = where (?)

पठसि = studying. When you want to use "studying" with "you"; with "I" it would have been "pathaami" (पठामि) iirc.

संस्कृतम् = Sanskrit

So, it should roughly read "Where are (you) studying Sanskrit?"


I'm pretty much a novice but I think you may skip the bracketed _you_ because it's idiomatic to skip it when its clear from the conjugation. E.g. (You) go and (you) find him.

Also guessing that he was using material and not learning at an institution, I should have used केन (using what) Or just asked कथा (how).

Right. Even in Hindi it makes perfect sense to often skip You, I etc.

स्वाध्यनेन पठामि।


संधिम् जानासि किम्


सत्यकस्य पुत्र: क:

नेदम् प्रश्नम् संधिविषये


I too have been interested in learning Sanskrit for some time. Can you tell me what resources you used?

Introduction to Sanskrit by Thomas Egenes is a very good book for beginners.

I've personally used the Samskrita Bharati books to learn

Egenes book

Drinking lots of water.

It might not be the same for everyone. However, I have noticed that I rarely drink water. It is interesting that I only noticed that this year (late twenties). The effects on my body and mind were phenomenal. I used to drink less than 1 liter a day.

I don't feel thirst. So I don't drink water when I'm dehydrated (because I almost never feel it). Instead, I have a prescribed quantity that I drink everyday. Also when I'm out for food/coffee/bar I always order a bottle of water. I might not drink all of it, but it'll help me drink.

You should drink 3-4 liters per day to feel the difference. The difference will be massive only if you are dehydrate it without realizing it. In my case, I was severely dehydrated, but I never noticed it.

The effects: I feel fresher. Smarter. More active. My eyes are much less sore and I suffer less when I'm looking at a screen. It is interesting I have never noticed or thought that water dehydration was the cause. The first days that I started the water dosing, I felt that the exhaustion was relieved.

To give you an idea of how serious this is. Look at this chart: https://i.pinimg.com/originals/3e/ed/4a/3eed4ad01533479b473e... My pee color was always on the extreme side before. I have never questioned it. Talk about ignorance.

The very first days of hydration, I felt almost 10 years younger. By continuing I certainly no longer feel the effects since I'm used to the new standards. But I'll never forget the day I discovered that I was in severe dehydration. I also will not forget the almost instantaneous change in my body after the few hours of drinking.

I tried drinking that much water but it made me wake up once or twice a night having to urinate even if I reduce water intake before bed. I felt that this disrupted my sleep too much to be worth it.

Do you have the same problem? Is there anything I can do about it? For a while I thought I just had a small bladder measuring the amount I urinate showed normal values of roughly 500-600 ml when waking up with a stronge urge to pee. This does make sense to me because the 3 to 4 liters from drinking plus the extra water from food has to go somewhere after all, so I am wondering why other people do not have this problem.

I actually have a simpler solution which I've been following for some months now - drinking one tall glass of water everytime I feel thirsty. If you have small paper cups instead, then drink 3-4 of them. But drink enough so you may not need to drink for the next hour or so.

This way, I'm able to get in 7-8 glasses in a day (which is the usual prescribed limit).

Interesting. To be honest I don't recall an instance in my life where my mind woke me up to go peeing. If your bladder can handle 0.5l and you drink 4 liters a day, that's like 8 times peeing a day. Do you make sure you go to the toilet often?

During my interviews, I notice a profound difference in performance when I drank 2 gallons of water a day before the interview. I got out of those interviews thinking, How did I even come up with that solution? I pocketed a few offers and drinking water definitely played a pretty big role.

Now I drink 2 gallons of water every day, it's become a habit and I feel sharp every day.

2 US liquid gallons? 7.5 liters?

Yeah. 2 of those gallon bottles.

> 2 gallons of water every day

Ok, maybe that's working for you, but I would caution other people, hyponatremia is a real risk if you over hydrate.


I go to the gym every day, which has had a profound effect on my life. But I also drink a lot more water than I did before. Perhaps a combination of the two have helped me a lot of the last year?

Yeah workout + water is a great combination

Yes! 4 litres is probably bit extreme. You should drink about 2-3 litres. It is also important to drink plenty of water to avoid kidney stones.

You mentioned your pee colour is on the extreme side. You should probably get yourself scanned for kidney stones. Kidney stones can go undetected for ages.

I don't think I had kidney stones. My water intake before was less than 1l a day. Much less. So I'm guessing it was the reason for the pee colour being on the extreme side. I'm on the other extreme now.

There are indeed huge individual differences, I don't drink a lot, if I force myself to drink more I ended up spending a lot of time eliminating.

Also note that your diet makes a huge difference, the veggies and fruits you eat, the more water you put in your body without drinking.


(I feel like that might be cheating on HN...)

I started programming about 16 years ago (I think), when my Dad bought a basic introduction to HTML for himself, which I ended up "borrowing". I super geeky teenage life followed where I learned various languages, including Python, Delphi and an obscure language called RapidEuphoria (honest, that is a programming language, with some interesting features actually). Fast forward through a Maths degree and 2 internships, I'm now a happy Engineering Team Lead at Bloomberg, generally utilising JS, Python and C++ as appropriate.

Of course, there are a bunch of other skills needed to be a successful software engineer, but I think turning my hobby into my career has been the most richly rewarded skill so far.

I hesitated to write programming (or coding!) but saw more posts and came back to peek.

Through this, I've learnt product and market fit that made tangible changes in peoples lives - the coding remains a personal rich reward, but the product outcome has been the true 'reward' so to speak.

I value the personal rewards higher than anything however. There are not many things better than a good hour coding session when things go well and everything works. I've fond memories of many good hacks or idea that were so perfect that they pivoted other peoples ideas and changed a product outcome.

Do you work on bloomberg websites? I must say bloomberg has the best websites. Fast, not bloated and with awesome design. I love them.

I don't, no. I work on Cross-Commodities Apps, like search and basic data display interfaces, in the Bloomberg Terminal. I like the website too :)

I'm curious about your experience going from a maths degree to a software engineering career - do you find the maths to be specifically and/or broadly relevant to your work? Are there any anecdotes you'd like to share on the process?

I have degrees in Math (PhD), CS(MS), and Engineering(BS). I find wonderful interactions between all three.

My career is a bit mixed up: Taught Math at a college (part time on and off for 10 years), Meteorologist (only 2 years), Nuclear Engineer (only 2 years), Systems Engineering (7 years), Hedge Funds (15 years). I did a lot of ML/AI (20 years) mostly for Trading Stocks, Poker, Torpedos, and Satellites. I wrote about 100,000 lines of C++ and about 10,000 lines for each of the following: BASIC, Mathematica, Matlab, and Haskell.

Math is an integral a part of my life and my thinking. :)

If I get some time later, maybe I will try to write up a few stories.

I did one of my undergrads in mathematics. For me the primary benefit of studying pure mathematics was that it greatly improved my ability to think clearly. Mathematics more than almost any other discipline (physics and philosophy are on par with maths here) has the power to remove conceptual clutter, teach you to capture the essence of a problem, and be a more careful thinker. I've always been a first principles thinker, and maths made me a much better one. There is a night and day difference in how you think between the beginning and end of a good undergraduate Real Analysis course.

Applied to software engineering, it (indirectly) improved my abilty to understanding what a piece of software needs to do and why it's there. It also improved my ability to discern what level of abstraction is appropriate to the problem at hand, and figure out what questions to ask. In short, mathematics changes the way you think in a very powerful way. The precise contents of what you learn in the subject aren't necessarily applicable to everyday software engineering outside of a few areas, but the way of thinking is eminently so. For a personal example of where mathematics does come up in programming in a direct way, I do hobby graphics programming, which necessitates fluency in elementary linear algebra and benefits from grasping vector calculus (if you want to understand how light transport works and where physically-based rendering algorithms come from).

I'm a maths graduate who became a programmer too. In my experience there's very little direct application of the knowledge acquired during the degree, but the thinking process gained is totally relevant. Doing a maths degree is one of the best things that happened in my life, and it altered the way I think forever. Having said that, now that I do a little bit of AI (as everyone should), I start to see more and more math in the code I write.

Little slow replying to this one, but that's fortunately given 3 other people in a similar position to reply and I can't agree more with the sentiment. Have I used my knowledge of approximating PDEs using multi-variate finite element methods? No, not really - though it makes for some interesting conversations with meteorologists occasionally. Whether it's the deep understanding of logical constructs (everyone should know what the contrapositive is) or the ability to model a problem and remove cruft, the way of thinking a maths degree instills will be invaluable forever.

I'm not sure but your personal website may be down.

My marriage.

No one else in my life has my back, protects my confidence, and shares this wild adventure like my wife does. We have invested a LOT of time and money into getting better at overcoming disagreements, digging deeper into what is actually causing a rift between us, defining the company we want to keep, etc.

We are both athiests, so we didn’t have access to church or religious marital counciling (probably for the best). We took it upon ourselves to study all we can, to treat our marriage as a foundation to improve our self-awareness and help each other see their blind spots.

Some education that has been helpful: - Nonviolent Communication by Marshall Rosenberg. Great foundational book. His other book “Speaking Peace” is a how-to manual for conflict resolution between warring communities/tribes/nations. Both are VERY powerful and cheap. Both have audiobooks.

- Wired for Love by Stan Tatkin. Great book about building a foundation in a partnership.

- “Deep Psychology of Intimate Relationships” course (DPIR) from RelationshipSchool.net and the free “Smart Couple Podcast.” DPIR is a “masters degree” in building a rock solid partnership, and the podcast offers some great ongoing commentary. What secular relationship books or courses or events do you recommend?

SQL. Ultimately a software company is a business, run by business people who have to solve business problems. Often to do that they come up with questions which need to be answered by ad-hoc (written on the fly for one purpose) SQL queries. Having that ability, to answer arbitrary questions FAST will elevate your status in the minds of managers and business people.

I second that. Most developers don't bother with SQL and suffer for it (having to do lots of work with the data after selecting it or having poor performance). Very few developers use analytics functions with which you can do wonders.

The most annoying thing I hear often is that if you use Hibernate you don't need to know SQL. Last time I checked, Hibernate's manual had something like a thousand pages. It's better to just learn SQL.

Recently, I started learning SQLite. I have some knowledge of python so I want to organize my information using SQL and python (Being electrical engineer, I am not coding for earning).

Second this. I'm an electrical engineer who writes SQL queries daily. Knowing where your data is, how it is organized, and enough tools to do something with it: SQL, Excel, Python, R...etc is vital for making business decisions.

W3Schools has a good SQL tutorial I recommend to new engineers. After that just try to use it and use stack overflow when stumped. Easy things are easy, but some harder things can be difficult for some to grok.

What's a good place to start learning SQL? (for someone with 5+ years C++ and now dabbling in Clojure/ELisp)

0. Look at a few simple sql queries (at most one join) and the corresponding schema. Internalise what the queries do and a rough idea as to the syntax

1. Have a database to query (or think of some project that is basically a frontend on a database and which you can give a reasonable amount of data)

2. Come up with questions for the database you want to answer

3. Look at the SQLite documentation. They have fantastic diagrams for the syntax of a sql query.

4. Write down the sql for your query (or work out what you can’t express and see if you can search on the internet to find out how to express it)

5. Look into relational algebra and try to work out how it corresponds to sql databases.

6. Repeat steps 2-4

7. Understand what different types of joins there are

8. Repeat steps 2-4

9. Read about more exotic things like nested queries, window functions, recursive queries, and so on (just look at the features of your database of choice and see what you can learn about). These might come in handy for future questions

10. Repeat steps 2-4 (repeatedly)

If you don’t know which database to use then start with SQLite. It’s basically fine for anything simple and manything complicated.

(self plug) you might want to give pgexercises.com a go. It takes you from beginner up to somewhat advanced with exercises that you can run in the browser.

Personally, I like the gentle introduction given on W3Schools. It shows you what you have and what you aim to get out of it in terms of data, and removes the need to bother with a local setup, letting you focus on the actual queries instead.


Joe Celko's books are excellent. And then learn window functions.

This might be useful: https://selectstarsql.com/

Going to a gym two to three times a week for small group training sessions.

In terms of investment, it is not as expensive as private training and it keeps you on track. The real investment is in you. Your most important asset is your ability to produce income. Having a healthier body helps maintain that ability. The damage that I do through typing is only barely counteracted by these training sessions. I don’t take typing for granted, having had soreness and pain for many years, and going to the gym and lifting weights has been the best action I’ve done towards addressing that. For you young and older people out there, do not take your ability to pound at a keyboard for granted. One day, it may start to lead to soreness which goes away after some rest. Eventually, the soreness does not go away.

The true returns are the cumulative effects of sticking with a healthy habit. You may not become “jacked” and super muscular but you will become fitter.

After almost two years, the benefits of regular exercise are so apparent that I have to hold back getting on my bully pulpit to encourage other friends to do so.

I'll second this for but for any kind of exercise. If you're not disciplined enough (yet) to exercise by yourself, as the parent says, classes are a brilliant way to stick with it and keep motivated.

I get to the gym pretty much every day before work. The benefits are huge - more energy, better concentration, and of course just looking and feeling better in general.

Edit: for the deleted comment - I'm late 30s, not sure if that's young or not and I'm a night owl for sure. Also see a noticeable difference in those busy "I should skip the gym" periods if I don't go, as oppose to prioritising my exercise over my work (which yields far better results).

I am a big believer in regular strength training, to the point were I am generally in a worse mode for the day if I can't get a scheduled workout in.

If you want to get started, find a group or a program and jump in. I like nSuns + regular cardio, but the choice is going to depend on age and overall goals. I see my improving PRs and workout sets I've completed as both motivating and addicting.

StrongerbyScience has fantastic guides to most movements, and excellent, peer-reviewed training methodology.

I find that getting good exercise also helps me think. I feel more creative and happy if I’m getting my 30 minutes a day.

But it’s also about discipline, this sort of thing can only be accomplished with discipline, which is what really lets you accomplish things.

> discipline

For the benefit of my past self: discipline isn’t about punishment or being harsh with yourself. Discipline is the practice of saying to yourself “this is hard. This is scary. This is worth it and so I’m going to do it because I’m stronger than I think” and then following through with action.

EDIT: Sometimes the "following through with action" bit also involves knowing what you need to set yourself up for success (e.g. good food, enough sleep, encouragement from friends, the ear of a therapist, guidance from a coach, clarity on a goal) and enduring the discomfort that comes from the decisions required to get those.

Discipline is learning how to want to do something, not how to make yourself do something.

How do I make myself want to do something? Serious question

I believe the point of discipline is to do something regardless whether you want to do it or not.

My favorite quote on discipline:

“A modern stoic knows that the surest way to discipline passion is to discipline time: decide what you want or ought to do during the day, then always do it at exactly the same moment every day, and passion will give you no trouble.” - W.H. Auden

Thank you for the nice reply and quote.

Connecting the future outcome you want with your present experience. Running when it’s 40 and rainy sucks to start, but after your warmed up and for the rest of the day you will be glad to have done so. Starting definitely sucks, but if you’re convinced enough in the present that the future state is worth it, you will want to run and you will want to push through it. That’s a skill that can be cultivated.

Thank you for your reply!

Wouldn’t that be motivation?

I have been the the complete abyss of creating muscular skeletal issues for myself. If you really don't want to mess around I think swimming is the way to go. Couple with curcumin / boswellia / magnesium to take the edge off. If you really nail down the exercise / nutrition etc you can slowly but surely reverse these varieties of problems (personal experience)

Seconding swimming, just make sure you have good form. Also, if you’re having musculoskeletal issues, maybe pick a couple different activities and do them in rotation. Diversity in workouts is good if your objective is to stay healthy/generally strong as opposed to having a particular physique or because you want to excel at a sport.

This is why I do triathlon + weightlifting. For me, it’s the perfect blend.

Mini trampoline rebounding for cardio + weightlifting.

> If you really don't want to mess around I think swimming is the way to go.

I have been plauged by muscular/ligament issues too. I tried swimming and ended up hurting my rotator cuff, now I can't do repetitive overhead activities :\.

I mean.. if it's really that bad you can always walk back and forth in the pool. I really do that sometimes.

yeah not a bad idead. i need to find plantar fasciitis sleves that are waterproof.

I am too young for this shit :( .

Me too.

Yep! I fell out of the exercise habit for an extended period and it was awful in all regards. Finally got back in the groove with moderate weights, bodyweight exercise, and kettlebell at home. Like the man said, 'mens sana in corpore sano'

People are focusing on the asset comment too much, and IMHO missing the forest for the trees.

Let's add one more word:

    Your most important _material_ asset is your ability to produce income.
Bam. No more philosophical/moral connotations. It's almost tautological: your ability to generate material value is your most valued material asset.

It doesn't even have to refer to working as that value generator. If you have enough money in a bank account to live off the interest then that is your most valued material asset!

I'd recommend calisthenics instead of going to a gym. Far less chances of getting injuries with bodyweight exercises.

This book is a good start: https://www.reddit.com/r/overcominggravity

> Far less chances of getting injuries with bodyweight exercises

I found no evidence for this, arguments seems to boil down to an "appeal to nature". Many variations of bodyweight exercices are far from healthy for tendons (single arm push ups or single arm pull ups for example), even basic push ups are harder on the shoulders than dumbbell bench press.

If you keep the rep range above 15-20 the risk of injury is pretty minimal with weights.

With that said, bodyweight exercises can be a good alternative if you don't have access to a gym, or if you like to train outside on a playground. But be careful with some exercises because bodyweight != healthy.

>> Far less chances of getting injuries with bodyweight exercises

> I found no evidence for this,

From Wikipedia:

""" Bodyweight exercises have a far lower risk of injury compared to using free weights and machines due to the absence of an external load that is placing strain on the muscles that they may or may not be able to deal with. However, the lower risk of injury is only provided that the athlete/trainee is progressing through the correct progressions and not immediately skipping to strenuous movements that can place undue and possibly harmful stress on ligaments, tendons, and other tissues. Although falling on the head, chest, buttocks, and falling backwards can occur, these are far less harmful injuries than dropping a weight on a body part, or having a joint extended beyond its natural range of motion due to a weight being used incorrectly. """

That quote makes no sense. Load on the muscle is there with both bodyweight and weighted exercises - that's how you train the muscles. And the caveat about not skipping progressions works just as well for weighted exercises - you progress gradually so you never produce "strain on the muscles that they may or may not be able to deal with".

I stand corrected on this, my sentence was too strong and large, I should have been more specific. I still maintain the rest of my points though.

The quote actually addresses the rest of your points pertaining to calisthenics (correct progression, with good form, is important; those who "rush" are likely to get injured regardless of weights).

I'll counterpoint this and say chances of getting injured can be pretty low if you take your time and study up on your form.

I'll also say as someone who thought he didn't need the gym because I would do calisthenics/yoga/barbell exercises at home, my back pain never went away until I started lifting heavy weights. I'd say likely because it stregthened my core which supports the back, but I'm no sports scientist.

>>> I'll counterpoint this and say chances of getting injured can be pretty low if you take your time and study up on your form.

Yes absolutely ! And you build muscle WAY MORE FASTER with real weights versus calisthenics

The two rules of the gyms are basically : no machines, and 'form before weight' (i.e. master a movements at a given weight without feeling hurt before moving up).

The only two actually dangerous movements are deadlift and squats and it takes at least a PT sesion + a few "form check " on r/fitness to get it right but once it his mastered it's all good. Alsso bench press but it really start being possibly dangerous at 80kg and you are aready quite developped anyway so you are already supposed to master the basic of form an training.

> The two rules of the gyms are basically : no machines

Machines are fine and useful. Better rule might be "don't only do machines". But even then, I'm pretty sure someone experienced could design a routine that would get them good results with nothing but machines.

They provoke a "backpropagation" of the force you are exercising in the orthognonals of the machine work axis directly into your joints. Risk of injury at heavy weights. doesnt happen with free weights

Where's the less chance of injury part coming from? It's much easier to master and incrementally load a fundamental weightlifting movement than a corresponding bodyweight progression. This means better form and more control - fewer injuries. I have tried both types of training for a while, and have concluded that weights are superior in every way. Unless the goal is mastery of a specific bodyweight skill.

From Wikipedia:

""" Bodyweight exercises have a far lower risk of injury compared to using free weights and machines due to the absence of an external load that is placing strain on the muscles that they may or may not be able to deal with. However, the lower risk of injury is only provided that the athlete/trainee is progressing through the correct progressions and not immediately skipping to strenuous movements that can place undue and possibly harmful stress on ligaments, tendons, and other tissues. Although falling on the head, chest, buttocks, and falling backwards can occur, these are far less harmful injuries than dropping a weight on a body part, or having a joint extended beyond its natural range of motion due to a weight being used incorrectly. """

Well, this is just a bunch of nonsense.

Here are the logical ways to explain the misconception of injury being less common with bodyweight training:

1. Progress with BW is slow as crawl. All things being equal, lifting will improve strength much faster, leading to higher loads sooner. Higher loads always mean more injury potential. Faster progress is not magic - it's possible because all major muscle groups can be loaded precisely and gradually with weights as opposed to BW movements. You can take things as slowly as you want.

2. With BW, some movements simply cannot be loaded properly. For example there is nothing you can possibly do with just your body weight to put any serious load on your legs or low back. This already cuts one's potential for injury in half at the cost of neglecting the development of the lower half of your body. So instead of taking things slow with your barbel squats, you are stuck at 1-leg BW squats forever, which are only hard because of balance/stretching issues and are fairly trivial strength-wise.

3. With free weights, it's easier to be stupid and bite more than you can handle.

As I said, I've done both for enough time to appreciate pros and cons. There are reasons to practice BW training, but lower injury changes is not a good one.

I do calisthenics myself. How long have you been doing it? Can you do any of the more advanced movements? (Planche, front lever, back lever, handstand)

About 2 years. Started out "skinny fat" (like most Indians), now have good muscle definition.

I'm not in any rush to do advanced movements. For me, perfect form (and safety) comes before anything else. I also practice "greasing the groove" (doing low reps more frequently), which helps to mentally learn the form as well, and make the exercises as natural as say lifting a glass of water.

I can do about 4 proper-form push-ups, though most often I train with incline push-ups. I also do bodyweight rows (using bars), and squats. Eventually I'd like to do stuff like front lever, but: petit à petit, l'oiseau fait son nid.

Watch out for your wrists though. Most ppl have weak wrists and end up hurting themsleves with bodyweight excerises.

I recently started strength training as a software developer and it’s been a huge boon on my mental health, my confidence and for sticking with decent eating habits.

For people looking to get started, I would suggest Starting Strength, which is a book on Amazon (pretty lengthy, but extremely thorough) or Strong Lifts 5x5 (google it to find the program it’s free on the web).

The basic gist is to do full body barbell movements for 5 sets of 3 or 5 and increase the weight by 5 pounds (2.5 pound plates on each side of the barbell) per session.

The basic barbell movements are

  Overhead press
  Bent over row
  (I don’t do power cleans)
Do YouTube proper form, benching especially can rip up your shoulder when done incorrectly.

YouTube channels I watch to keep motivated and to learn stuff like form and nutrition (they limit the bro science as far as my untrained eye can tell):

  Alan Thrall
  Eric Buggenhaggen
  Jeff Nippard
Remember the following:

-no one is looking at at the gym

-lift only what you can lift, start slow, you will progress very quickly

-Commit to going every week three days a week, except for illness and injury

-Carefully watch form videos on YouTube for the lifts (Alan Thrall and The Art of Manliness are the best)

-If you do sustain an injury, let it heal for a weak or two, but continue lifting around the injury

-strength training is not body building, but it is the ideal place for creating a foundation of strength and overall health, you will lose weight, you will gain muscle and you will be out of the gym in under an hour with the basic barbell movements.

I’ve been lifting for 7 months now and I love it. I suggest everyone do it.

I would add Barbell Medicine to your list of youtube channels. They also have a podcast and produce lots of useful content.

> Your most important asset is your ability to produce income.

come on

They aren't wrong. What are you going to do without your ability to produce income? Eat dirt and sleep under a bridge?

I don't doubt it's an important thing, I'm scoffing at "the most important".

Take almost ANY very important historical figure. Was their most important asset their intellect or talent or Idon'tknow, OR their ability to convert those into income?

In Maslow's Hierarchy of Needs, physiological needs are placed at the foundation. This statement is not that different, since money is the foundation of almost everything a person does in the modern world.

It's not a statement on how things should be, or how we might want them to be. It's just a pragmatic acceptance of the way things are.

Money is how we survive. It's not the money itself; it's the a ility to buy necessities. When you're living on the streets you realize real quick that money is about the most important thing becuaee it enables you to do everything else.

That is impressive, how long does it take to restore a typical photo?

Most took 5-10 hours, but the photo of the couple covered in black spots took about 15 hours. That one was a woman's only surviving photo of her parents, so she was extremely happy with the results. I did them all for Reddit users for free, and it was very gratifying. I'd recommend fielding Reddit requests as a good way to practice. Here's one I worked on for two days before giving up, early in my stint doing restorations. https://imgur.com/a/56pSsS7 I really should start over, but don't have the drive anymore. I'd say that was my most ambitious attempt. The guy I did it for still had it framed, despite its flaws. Thanks for liking my work!

Wow that's amazing! Good job :)


Which one was hardest and easiest?

The photo of a couple covered in black tar spots was the hardest. It took about 15 hours, without a break. It was the only surviving photo a Redditor had of her birth parents, so I put my all into it. This one was probably easiest (https://imgur.com/a/1lp9O) because there were fewer repair areas.

What are some good resources for learning photoshop?

Online tutorials and Youtube videos were some help, but really it just takes practice. Muscle memory is key. I used two tools repeatedly, the clone tool and healing brush, then magnified the work area to zoom in on details. I think the patience I learned has transferred to other non-Photoshop tasks. Others here have commented on similar results.

It's basically close to painting :) good job!

Thanks! Sometimes they end up looking too much like paintings, so part of the challenge is to keep them looking photographic.

Learning a musical instrument to a high degree of proficiency.

What's a "high degree of proficiency"? Obviously somewhat subjective but I'd argue its one of:

1) being able to play intermediate to advanced pieces in the standard repetoire. In the case of my instrument, piano, it's being able to play Bach, Brahms, Debussy, Bill Evans, T Monk, etc.

2) being able to think of a musical phrase and then play it on your instrument without much/any guesswork.

My parents forced me to take piano lessons - classical - for 6 years starting when I was 9. I hated it. When they finally let me stop we moved across the country and I fell in with some new friends, one who played bass and the other drums. They would regularly get together to do something called 'jam', which I'd never heard of. They invited me and although I only knew one non-classical piece - a simple blues - the feeling of playing/making music with other people was electrifying.

I ran home and asked my mom if I could start taking lessons again - this time jazz. I went on to attend a music school for undergrad and have never stopped playing, picking up guitar, bass and drums along the way.

Playing/making music has been one of the greatest sources of comfort and pleasure. I don't often get depressed but on those rare occasions when I do, being able to sit at my piano and play something like [0] is the best medicine.


So ultimately, you think your parents forcing you to take lessons was good for you? My son is in that zone - kind of likes, kind of hates taking lessons. But I feel parents have to push their kids to do something to understand that applying effort will help you in life, not just playing video games. Thoughts?

Yeah, I do. I don't know if it's good for everyone. I tend to think it is though, in the same way that perhaps forcing your child to learn a 2nd language is more than likely good for them, despite the fact that they may not appreciate it while in the process of learning.

The song in question is intermezzo, Op. 118: No. 2, in A

video is down

Meditation -

I wouldn't say I've mastered it, but after 4+ years of study and practice including several 5-7 day retreats I can honestly say I'm far more emotionally balanced, calmer, happier, more insightful, more confident and comfortable in my own skin, better at dealing with setbacks and difficulties, ...

There's many things that call themselves meditation and as far as I can tell the majority of them are legit. I'd advocate picking one large and well established school / method and sticking with it for a few years rather than attempting a breadth-first search of the space or going into some niche branch that really just has one charismatic instructor.

I’d heavily recommend the book: The Mind Illuminated—I consider it the training manual on meditation and it considerably pushed my practice forward.

Planting fruit trees on the property. Fruit trees require little maintenance and can, when mature and when things have been done right, produce amazing yields year after year for several decades. The previous grass lawn mono-culture has given way to several rows of apple and cherry trees, thanks to a few hours spent learning how and digging the holes. I know of nothing more rewarding as a function of the (tiny) time and money invested.

Do you have any recommended resources?

Not OP, but here is one that I liked: The Holistic Orchard Tree Fruits and Berries the Biological Way By Michael Phillips. It covers a variety of topics and different types of fruit trees and berries.

I'd suggest a local nursery. They'll hopefully be able to guide you to ones suited to your area and exposure.

- Learning x86 assembler back in school: knowing what everything comes down to in the end has no price.

- reading "Smashing the stack for fun and profit": I learned so many things from that article, that I felt like a god when I finally understood all the things. And all of those things are still relevant today when debugging stuff.

- learning ruby: when rails came out I jumped on the hype train and started learning ruby. I was mainly a java dev, so learning all the new ways of doing things made me grow a lot.

- javascript: I hated the language, but once I bit the bullet and overcome my hate for it and started learning it, I now love all the things I can do.

- learning git: it was an uphill battle at the beginning, but now I can't live without it.

I am sure there are a lot of other things I am forgetting, but these come to mind now.

> Learning x86 assembler back in school: knowing what everything comes down to in the end has no price.

I think going a couple of steps lower, learning electrodynamics (from a book like morin&purcell), and then electronics (art of electronics), will give you even more satisfaction.

Out of curiosity, what did you hate about JS before you learnt it?

Flamenco dancing, from Andalucia in Spain: https://youtu.be/t5nusnPUXSY

I had never danced before, had no coordination, and was petrified of looking stupid in front of others.

Then five years ago, I saw an ad for beginners' flamenco dance classes and decided to give it a go. Right away, I got hooked on the physically demanding athleticism, the precision of the complex rhythmic structure, the way you make the music with your feet stamping on the floor, and the way it requires total concentration. After a high-pressure day in front of the computer at work, I love leaving that behind and walking into the dance studio...

The most rewarding part is I now take classes taught by the top Spanish dancers. It's a real buzz to see them perform on stage on a Friday night then spend the Saturday and Sunday in workshops with them teaching the same choreographies.

Incidentally, that You Tube link above is of Marco Flores and Manuel Linan, two of my favourite male flamenco dancers. I will be doing a workshop with Manuel Linan this Christmas and one with Marco Flores in Spain next February.

Directed meditation.

I read a weight loss book called "the Gabriel Method" and it changed my life. Besides all kinds of food related things, it teaches a sort of goal-oriented meditation/visualization technique that I found to work for many more things than changing eating habits.

I've felt more like good food and less like bad food so I eat healthier without needing to muster discipline. Lost 10 kilos so far without really trying all that hard.

I've been procrastinating less because I changed the way I feel about many of the tasks I'd keep postponing.

My relationship has never been better, despite our lives having become more, not less, busy during the same period. We fight way less because I'm less annoyed by things and I'm better at not letting things escalate when she's annoyed by things.

Frankly it's been pretty spectacular.

OOC - how long did it take to lose 10 kg? Did you experience decrease of body temperature during that period?

About 8 months. Unexciting speed compared to diets, but I'm not on any diet and I eat whatever I like. It's not going to come back on. I expect to lose the same amount again in the next 8 months or so.

No idea about body temperature, sorry.

That is perfectly normal speed of losing ~1 kg per month. I have been there...lost ~20 for 2 years and keep it until now. As for the body temperature I read somewhere that losing 3% of weight slows down metabolism significantly that leads to wide spectrum of side effects like low body temperature.

Not an expert here, but your metabolic rate depends on how much muscle you have. Losing fat alone is hard. Typically you lose some muscle along the way, unless you try to fight it with weight training.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact