Don't fall for it. Most of us will not be able to do money from art, from photography, from aikido. Enjoy it, do it for your own sake, to balance your life.
Don't fall for it. Most of us will not be able to do money from art, from photography, from aikido. Enjoy it, do it for your own sake, to balance your life.
I told her that I'm really happy that photography makes her happy, but that there's no way she'll make much money doing it and she already knows that. It would make life more stressful and ruin the fun she now enjoys. And since I once tried turning a creative hobby into freelance work, she knows I'm telling her the truth from my own experience. I wouldn't want to tell the most important person in my life some BS flattery--if I'm really going to support her, I have to be totally honest.
At some point it stops being fun - 8 hour days practicing for example he mentioned.
And my programming hobby? Better than ever! Turns out, having actual professional experience makes things easier and I can just play around with it whenever I want with a lot less stress than if I didn't also do it as a job.
Of course, I also have other hobbies. But making money on my main hobby was great in the long run.
This past weekend there was a bunch of bike maintenance to be done. Swapping parts around, cleaning things, fixing stuff... It all kinda came to a head yesterday morning where I very clearly thought "this is fun, but I'm VERY glad this isn't my job -- this is a lot of fiddly work".
It's very common for folks to try to turn their hobbies into a job, only to have that realization too late. I feel fortunate to have had that realization before considering it.
The corollary being that a hobby can stop being fun when you stop being able to freely put it down when you want to -- when you've barked your knuckles on the chainring for the 33rd time. And it's also pretty clearly backed up by studies that show that autonomy is a strong factor in workplace happiness and effectiveness.
But I don't buy into that, I believe that you can lose the joy just as much, or more, when you are following the self-employed model.
Working for a boss it's still quite possible (but maybe not easy) to separate work hours from leasure projects in the same fields, but when self-employed, all "off" projects have the potential to become "on" or something in between.
I've seen this effect in a few self-employed and founder friends.
/wanders off to browse carbon handlebars
It of course is unlikely to become a primary, or significant, source of income. It also unlikely to affect what you do for fun.
I still cannot understand but to many, sitting at a desk idleing is incomparably better than doing something on your own. Be it maths, electronics .. doesnt matter.
As for their mindless job, they might not see it as so. They could have stress and deadlines for their bullshit work and feel like they're working hard, even though the they are basically doing the same as taking a bucket out into the ocean and scooping up the water and dumping it out into the rest of the ocean.
So they're working hard and they're good, and you're just messing about, and you're bad. Which of course is not a healthy way of looking at things, hence the dark side of the Puritan work ethic.
Here's the relationship is unidirectional - do something for fun and if it makes money then it's well and good. Why to drop that just because it makes money (which isn't the original motive).
This is actually the reason for why many open source developers burn out, even if they aren’t making any money, which is tragic.
And you might say that you’ll not fall for it. Well good luck with that.
In my experience the minute you share your work with others, that’s when it becomes slightly less fun and it’s all downhill from there.
Unfortunately, this is often true -- but there are exceptions. I've had a couple of projects where the experience has been almost entirely positive. There's a lot of satisfaction in seeing that something I designed and created purely to suit my needs has turned out to be used and appreciated by others as well.
It can quickly become work instead of fun; work you are not paid for. Though if you accept donations for it, then you have an obligation to keep it going.
An author didn't really want to deal with a library any more, someone came out and offered to maintain it, the original creator agreed and moved things over, and the new author added exploits to the code.
Most of HN and other social media was lambasting the original creator for doing something so "careless". Many people wanted them to just shut it down when they were done with it, others wanted them to more carefully vet potential maintainers, still others said that shutting the project down would be irresponsible as there could be vulnerabilities found that need to be fixed.
There really isn't a right answer, and with how social media sites feel these days with witch hunts and outrage flying around everywhere, I personally have shied away from open sourcing a few tools that I've created simply because I don't have the time or care to maintain them. The last thing I want is "social media" to collectively decide that I've made terrible mistakes that no sane programmer would ever make in their code, and that I deserve to never work in this industry again.
I'm part of HN, my general attitude here is that the maintainers of the consuming software are at fault.
If you have so many dependencies (especially in javascript, hah) that you can't keep track of what's happening with them then either your scope is too big or you're just carelessly glueing things together because you can't be bothered to build sane things on your own.
I understand using things like jasmine and one or two other big things, but at that point those big things are critical components of what you've built and you need to be paying close attention to them for the duration that you're responsible for the maintenance of the code.
TL;DR: the fault is with the consumers for being careless, not the people who actually put work in.
Dependencies don't just end at a package.json. Their dependencies matter, as do theirs. The C++ code use in the javascript engine is a dependency, as is the python code they use during the build process, which itself relies on Python and their interpreter, which is again more C code, which means you need a compiler, which also has a large suite of dependencies and relies on an OS to provide many things, which themselves rely on more compilers and eventually machine code that should be consumed correctly, and that depends on the microcode running in the CPU to be created correctly and without any vulnerabilities. Of course that microcode is generated using more higher-level code, and the cycle continues.
You literally can't check everything, and I'd argue that you can't even check more than 2 steps out from your own code realistically.
That's not to say you shouldn't try, but you can't just pretend that it's the fault of the consuming dev that they got exploited just like you can't pretend that it's the fault of the original creator of the code who doesn't want to maintain it any more.
These things are going to happen, and I think we would all be better off if we just accepted that, stopped trying to place blame on a specific person or group, and instead continue working on making it harder to accomplish those bad things. Otherwise we get into a situation where "the only winning move is not to play".
What do you do when someone has a dependency on something like OpenSSL, GCC, V8, Chromium, or even Linux? It's easy to say "oh well just pay someone", but who would I pay, and what would I pay them for?
We use npm to install 2 dependencies for a project i'm currently on. I can vet those 2 dependencies, and luckily in this case they are simple and each only depend on another 4 or 5 themselves, and in total I have 20 deps. I can review that, and it all looks good (for the sake of discussion let's assume I can actually carefully review and understand every line, when we both know that's not possible in the real world).
Now what? Well I'd also need to validate that the tool `npm` isn't hacked, and now that's a massive amount of work, then throw on node on top, and then v8 on top of that. So let's throw away all of javascript because I don't have a few hundred million dollars laying around to spend on auditing the entire javascript ecosystem.
So what platforms do you use? C/C++ are out of the question, GCC is massive and I don't think I have the money to pay for audits for that either, let alone libc and OS kernels. So does that rule out everything except for small embedded systems and custom designed chips? Maybe there are some assemblers out there that can compile some simple code and are small enough to be audited by a smaller company. I mean you'd still have supply chain attacks that you need to protect against and verify, but hey those are easy to fix right?
Or do those dependencies not count for some reason?
And that's even assuming that an audit of a codebase will catch much of anything, which we both know they won't in all cases. So then what do you do when one slips through the cracks? Find someone to blame like that'll help anything? Tell the company that got owned that if they just added a few more zeros to the end of the check they wrote someone would have caught this?
This "just verify it" stuff gets so tiring, it's literally not possible.
Maybe I'm really living in a bubble of the wild west of computer programming, but somehow I just can't see this magical world just out of reach where everyone else verifies and vets every single dependency and that chain continues unbroken all the way down to the firmware and even the hardware and nobody ever makes mistakes and nobody ever pushes changes out at any level without hundreds of people reviewing and improving and fixing and re-verifying every single change.
The idea that anything even close to resembling this happens in the real world is so laughable to me, it's just the same old "only REAL programmers do x" gatekeeping that is so prevalent in this industry. And this is exactly the kind of thing that makes me not want to contribute back any changes. Because god forbid I don't spend wheelbarrows of cash on vetting every single part of my stack, and that my code isn't absolutely perfect in every way, or I'll be dragged across the coals and made into some kind of demon for having done something so stupid that a "real programmer" would obviously never do.
If you're using npm for something important then just realize that you're taking a huge risk and don't be surprised when it blows up in your face. Most of the discussions on HN are about toy applications which don't really count for anything. I would be surprised if the Visa payment processing system uses npm.
Also: there are compilers other than gcc that are much smaller.
You can always take it down or disable issues[1].
> Though if you accept donations for it, then you have an obligation to keep it going.
You most certainly do not. In the same place you ask for donations, make it clear they’re for people to thank you for the work you already put into it, not to “buy” future work time.
If you don’t want to work on a feature, say “no”. If a user acts entitled, explain (tip: keep a non-confrontational text snippet ready) that you’ve developed the software in your free time and are under no obligation to fix other people’s bugs; when you do, it’s because you want to. Lock the thread if need be. Does the user come back to open another issue, guns blazing? Block them.
I spend hours every day on open-source. I’ve learnt that most users are reasonable and can take a “no” if you add a “because”. It does not have to be the soul-wrenching experience many maintainers make it out to be.
However, for some people it might sap the original enjoyment they had. Now you’re concerned about profitability and maintaining your audience and market etc. Soon your mindless pastime is causing you stress and anxiety, which defeats the point.
> “Hmm…I want to write a book. I would really love to write a sappy romance novel because I think they’re so fun to write. But I need to turn it into profit, so I should do market research and see what’s trending and build off that. Self-help is big, let’s try to focus on that, even though I personally hate self-help books.”
Note the change. "I really want to write a romance novel. I did market research. Self-help sells better. I'll write self-help then."
Following this thinking, you'll end up doing something you hate (and probably produce a barely sellable garbage). Hobby is about a thing ("I want to write a romance novel"). Making money is about money, and the thing is only means to an end ("I'll write whatever sells best, and maybe I should reconsider whether I can do something else than writing for even more money.").
I'd argue that even in professional life, this kind of thinking taken to the extreme is poison, and part of what ruins our societies and the planet. That is, companies which are really indifferent to what they're doing, and only focused on whether they can make money on it.
(One could argue that this is how market economy is supposed to work - don't think for yourself, don't feel for yourself, just do what the Market tells you to. We can see both good and bad consequences of that thinking all around us.)
Society would fall apart without people who clean sewers, take the trash, and many other tasks that are unpleasant. Maybe you are lucky enough to get paid well to do what you love. Maybe you are not willing to do some unpleasant job that would pay better than your own. Likely you are unable to do some jobs (lack of training or lack of physical ability). No matter what you do, and no matter what your abilities: there is some other job that you could do instead. The market economy works because it provides motivation for people to not do a job they would love and instead do something else.
That doesn't mean it should be the author. If he hates self-help books as a concept, he'd probably do a shit job at it. That is, he might make money, but the book wouldn't be useful. Market economy as it is today, in practice, is pretty bad at rewarding quality. Marketing gives much greater ROI.
> The market economy works because it provides motivation for people to not do a job they would love and instead do something else.
I recognize that and this is the main thing I meant under "good" when I wrote about "good and bad" consequences. Unfortunately, Sturgeon's law applies - "90% of everything is crap". The market doesn't seem good at reducing this percentage. In self-help space, we need more Carnegies and Coveys, and less copycats who arrive in the space through "market research" and crap out nonsense that ultimately wastes buyers' money. Same thing applies to all other spaces. My complaint isn't really about the market telling you what to do - I'm just wishing the market was better at directing the right people to the right jobs, ensuring there's "impedance match" between the worker and the work.
I'm not sure how we can get there, though I think it would have to start with completely destroying the marketing industry. The world won't stop drowning in bad products and services for as long as a dollar spent on marketing buys you more profit than a dollar spent on product development or improving your service. Marketing completely scrambles people's ability to evaluate and reward quality and utility.
I've said this before on HN, but my recommendation is this: Most people can find a set of things they're willing to do. If you only have one thing you think you can do with your life, first try expanding your wings and sampling a few more things.
Then, write down on one list the things you want to do with life, in some rough order of preference. On another list, write down the marketable things you think you're capable of, in some rough order of lucrativeness.
Odds are, there's going to be something that shows up reasonably positioned on both lists. "Software engineer" was certainly not my #1 on my "list of things I'd like to do", but my personal #1 was frankly absurdly unrealistic and barely shows on the "what I can make money with" list at all. (The modal outcome is quite likely $0/yr, honestly.) But software engineer was a pretty solid #2. On the other side of the list, I probably could have been a lawyer, and may well have made more money at it, but it didn't show very high on my "list of things I'd like to do". Software engineer was somewhere around #2 on both lists, so it won. I have no regrets. It was a fine choice. And it was something I could easily figure out how to angle for, and there was no simply blundering into a career.
If you do want to write something, and you want to make money at it, I recommend a similar approach. Wanting to write a romance novel and deciding to write a self-help book may not bring you joy, but wanting to write a romance novel and instead writing a YA romance novel because that's where the money is may not be such a sacrifice.
I did come to the conclusion some time ago that since writing code is my #1 money-making skill and in top #3 of "things I'd love to do" (and a part of #1 too), but the types of programs to write are different, I need to focus on finding overlap in what I write when looking for jobs or (now) customers.
People never listen when I tell them that I code because I enjoy it. It makes me wonder how much people actually enjoy aspects of their own lives. If I make money off what I do, that's great, but most of my motivation is to satisfy the "what if" and "could I" type questions that run through my brain.