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.
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.
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).
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.
For people wondering, Chris Voss is the former lead international kidnapping negotiator for the FBI. Here's a podcast where he talks about negotiation  and the link to the book the above comment refers to . His talk at Google about the same subject might be interesting too .
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.
Here's the correct link to Chris Voss' book:
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.
This book (Never Split the Difference) was also pretty helpful to me, but it's easy to forget to apply in scenarios.
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.
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.
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.
Didn't say that, just saying that's not the case for many
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
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.
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.
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.)
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!?)
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.
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?
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]
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 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.
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.
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.
It's easier now than it ever was.
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.
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, 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.
 first ed. of https://ksiegarnia.pwn.pl/Algorytmy-struktury-danych-i-techn...
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.
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.
ah, instant nostalgia. I loved that one as much as "Writing Computer viruses" :]
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.
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.
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.
If you had to depend on a teacher to expose you to the books you should read, what about the rest of your career?
No, but if I needed to know about how to optimize MySQL, I would do research on - how to optimize MySQL.
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.
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.
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.
except for baking—-precision and reproducibility are key there.
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.
P.s. I’ve flipped through ‘The French Laundry Cookbook’, and if you can take that on, I’ll call you a chef. :)
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.
set editing-mode vi
set keymap vi-command
I’m a vim person, but I feel like the modal workflow does not work well at all in a shell.
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.
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"
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 :)
Awesome little company with great kits for people into building HiFi gear
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.
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.
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.
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 have an English degree, so I can at least say his advice rings true and hits a lot of important points.)
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 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.
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 that my friend wrote during his first real encounter with Sanskrit poetry.
: https://youtu.be/ZoS1nA8RVko?t=740 (starts at 12:20), https://youtu.be/WwtIJ8_bQf8 (ends at 35:00).
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.
कुत्र = 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).
संधिम् जानासि किम्
नेदम् प्रश्नम् संधिविषये
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.
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.
This way, I'm able to get in 7-8 glasses in a day (which is the usual prescribed limit).
Now I drink 2 gallons of water every day, it's become a habit and I feel sharp every day.
Ok, maybe that's working for you, but I would caution other people, hyponatremia is a real risk if you over hydrate.
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.
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.
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.
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.
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).
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?
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.
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.
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.
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 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).
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.
But it’s also about discipline, this sort of thing can only be accomplished with discipline, which is what really lets you accomplish things.
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.
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
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 am too young for this shit :( .
Let's add one more word:
Your most important _material_ asset is your ability to produce income.
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!
This book is a good start: https://www.reddit.com/r/overcominggravity
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.
> I found no evidence for this,
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.
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.
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.
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.
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.
His book on Amazon: https://www.amazon.com/Overcoming-Gravity-Systematic-Gymnast...
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.
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
Bent over row
(I don’t do power cleans)
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):
-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.
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?
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.
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.
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  is the best medicine.
- 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.
- 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.
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.
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.
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.
No idea about body temperature, sorry.