Recent submissions

Comment · 2 years ago
None of them. Study Knuth. Study the Intel manuals. Study “The Art of Multiprocessor Programming”. Study compilers. Study TCP/IP. Study algorithms and data structures. Write lots of code for all of those things.

Disregard the noise. Ban yourself from reading blogs and magazines and tech news. Focus on what is fundamental to the field. Look where nobody else is looking.

Comment · 4 years ago
I'd like to give you some advice based on my own experience, and without making too many assumptions about you and what you haven't told us about your situation.

I absolutely believe there is a way for you to get through this. Don't be discouraged!

The first thing you must do is to kill the negative thought train. Don't panic, don't assume your career is over, that you have no hope, that it's going to get worse, that people are going to find out, that you'll get fired, etc.. Whatever you're fearful about as a result of realizing you're burnt out, try to set it aside for now because you don't need any more stress or worry. It sounds like you have time to think about what to do, so take that time, and don't put yourself under any pressure. Accept the state you're in. It's ok. This happens to many, many people, and you're not the only one. Moreover, your world doesn't sound like it's about to end. Relax about it, as much as you can.

I would echo what some others have said here about telling your boss/team: don't. What I think you need to do is look at what your day-to-day job is like, and see if there's anything you want to change. Is there anything that's really dragging you down? Do certain tasks or projects drive you crazy or make you feel depressed? Are you unhappy with your role in general? Do you hate your office and need to move? Is WFH making you unhappy, and you need to be back in a real office? Try to ponder it all, see if there's something you could change that would give you some quality of life improvement. When you think you have something, take that to your boss, and see what they can do about it. Don't engage in self-enfeeblement when you have that talk. You're entitled to set boundaries for yourself and ask for a change without having to divulge anything about your personal state of mind. Just say plainly that you're not feeling happy in your current role, and you'd like to give something else a try (i.e., whatever alternative you're going to present). Ask if that's possible now or at some point soon. If not, ask if there's something else available right now that they could offer you because you feel like you really need a change. Consider the options, but only choose one if it appeals to you, not just because you think need to choose one.

If it's a hard no from the boss or if there are no good options, then ok, no problem. Consider your next options. A job is a job. If things aren't so bad where you're at, then maybe it's worth staying. Ask yourself if perhaps you are too emotionally invested in having a "great career". If so, work on detaching emotionally. Show up each day when you have to, and leave when you can. It's ok to do a good job, and do it for the pay check. You don't have to accomplish anything great. You don't have to break your back for your employer. If you stay where you're at, look at ways that you can change little things to give yourself some feeling of agency and autonomy. For me, I had schedule flexibility, so I engaged in a daily act of rebellion where I would sleep in, show up in time for the daily stand-up, then do what I could until I felt like I was done for the day, and then I went home. If you don't want to stay where you're at, then take time to think about what you want to do next.

I can recommend seeking professional help. A good therapist is a very valuable disinterested third-party who can help you think everything through. Unless your situation is in dire straits, the best way forward is to make small but well-considered steps that will help create emotional and psychological space for yourself to heal. Oftentimes, what we think is the one problem causing us to burn out isn't actually the only problem contributing to the situation. A therapist can give you perspective on that. Perhaps anti-depressants might be a help for you, but a therapist can help you figure that out too. Don't sign up for the drugs straight away unless it is clearly needed.

I can also recommend walking, every day if you can, for as long as you're able or it remains enjoyable for you. Wooded areas and around lakes are great to walk around, but anywhere will do. It will help you relax and mull things over. It really will. Listen to music if you like, but also try it without. Stop and sit along the way. Take in the sky, the birds, the trees, the landscape. Just enjoy being there, and the beauty of nature. Think about whatever's on your mind, but don't force yourself to think of a solution. Let your mind wander. Space out. Relax.

Over time, you will be able to figure out what you need to change. It took me a couple of years, to be honest, but that's fine. It's not a race. The building (i.e., my life) wasn't burning, so I just focussed on taking my time because I didn't want to change too much too soon and end up back in the same hole down at some point down the road. I took care to sleep well (but not too much), walk regularly, and try do things I enjoyed (or used to enjoy). No pressure. If I didn't feel like doing anything intellectual on a particular day, I didn't. I got a lot of mileage out of housework, cooking, and walking on those days.

I believe you can figure this out. Hang in there, my friend!

Comment · 5 years ago
A good manager should.
Comment · 9 years ago
How ironic is it that the Haskell Research Compiler is written in Standard ML, and not Haskell? Joking aside, SML is a great language, and often overlooked, so this is good to see!
Comment · 11 years ago
1994-1998 was a bad time for C++. Stepanov had just come along with the STL idea, and there were various competing implementations of it. And I don't think I need to say anything more about the travesty of MFC other than to acknowledge its mere existence.

C++14 (the latest standard) is a far better language than C++ in the '90s, and it really does beat C when it comes to abstraction capabilities, type safety, and standard library functionality. C++11 also defined a standardized memory model which is extremely useful for writing multithreaded code.

Yes, C++ is not perfect -- the C++ standard library lacks a lot of functionality found in the libraries of other languages; there is a lot of complexity in the language that one must master to really "know" C++; the language itself has dark corners and disappointments; and so on. No language is perfect, and every language permits bad code.

I've been working with C++ full-time for the past three years. I didn't know much about the language before then (I was a "C 43var!" guy), but had heard all the horror stories about it. Now, I'm convinced that it's probably the best general purpose programming language available to date. It combines the full power of the machine with very expressive abstraction capabilities. Having seen what can be done with C++, I decided to study harder and try to master it.

I think this last point is ultimately what puts people off, and leads to a lot of FUD about C++ -- it takes hard work to master the language and the tools to work with it. Nobody really wants to do that, not when there are seemingly viable, and easier, alternatives. Instead, people are more willing to invest huge amounts of effort and money to try to scale up those alternatives if it means they can avoid the complexity of a language like C++. That's fine, I guess, we all have to make the appropriate engineering trade-offs, it's just unfortunate that many people fall into extremism about it in order to justify their attempt to simplify the reality of computing (which is actually considerably complex).

Comment · 11 years ago
What comments in support of the NSA? Any comments in support of the NSA here are IMMEDIATELY flag-killed by the HN Nazis who love to suppress any kind of free speech they don't agree with.
Comment · 12 years ago
I know someone who used to work at an algorithm trading firm and did electronic market making. He said they used to go to great lengths to program their algorithms to try to spot this sort of manipulation, but it's a hard problem because you're fighting against a cloud of bad traders who are coordinating their efforts across multiple market centers.

I have to say, the regulatory dept. at the exchange I work for does an excellent job of monitoring for any funny business. They have some nifty real-time tools that are scriptable and can replay the state of the market at any point. It's really cool stuff!

Comment · 12 years ago
Algorithmic trading is intrinsically neither good nor bad. It's kind of just a natural progression in the markets once easily programmable computers and high-speed networks came along.

How algorithmic trading is used, however, is another story. Humans are still the ones who bring the intent to technology, using it for good or evil. But it may interest you to know that a lot of malicious trading in the markets is not done by algorithmic traders, but by teams of manual traders working in concert to place manipulative trades that cause the market making algorithms to move the market in certain ways. (Source: I work at an exchange, and this is what our regulatory and compliance dept. says all the time.)

Comment · 12 years ago
I think you've taken a pretty narrow interpretation of "reliable software". It seems more reasonable to think that Bjarne was speaking at a general level, i.e., the idea that software written in non-garbage collected languages tends to be prone to memory management errors on the part of the programmer.

This has been a common meme for the past 15 to 20 years precisely because it is so easy to forget when a block of memory needs to be freed. However, the mechanisms of reference-counted smart pointers, RAII, and clearer ownership semantics in the language, go a long way to help mitigate the common manual memory management problems in C++.

The downside, of course, is that you have to know how to use these ideas to write "reliable software", and C++ does not make it easy. It's pretty much impossible to go from reading the standard to implementing correct and optimal C++ programs. There are so many gotchas, corner-cases, and features which require much study and experience to truly understand.

Comment · 12 years ago
Jarvis from Iron Man, or KITT from Knight Rider.
Comment · 12 years ago
Neural networks are impressive only in that they are able to give any kind of meaningful results at all. In the end, they are only a poor mimicry of real machine intelligence, and not much better, conceptually, than plain old nonlinear regression.

Nobody has been able to determine what the structure of a neural network should look like for any given problem (network type, number of nodes, layers, activation functions), how many iterations of the parameter optimization algorithm are needed to achieve "optimal" results, and how "learning" is actually stored in the network.

Statistical learning methods are obviously still useful, but I think the field is still wide open for something to emerge that is closer to true machine intelligence.

Comment · 12 years ago
I think your views on the GPL are spot on. At least we can agree on that.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton