Do many people hobby code with that entrepreneur mindset thing? Or sit down to play guitar thinking they want to make a hit and feeling bad if they just noodle some cover songs? What a miserable existence that must be. How do you get that way? Should we blame LinkedIn or what is it?
I will preface this by saying that, I decided to stop pursuing a job as a software developer because my 2 years of work experience mean nothing in the job market.
Now that I ended up finding a job as a waiter (of all things) I finally enjoy learning new things again. Before, I would get chronically stressed researching the job market, gathering keywords from job openings, consuming Udemy courses at 2x speed, using AI to plan the project and scaffold it. I was writing projects to save my life, because my finances are just that bad.
Surrendering and giving up the pursuit of work made all this mental load go away, and ironically made me progress in a personal skill level faster than anything else. I can now learn deeply. I can tinker with code to my heart's content. I can see all the warnings. I can research why this and that happen, without feeling like I have to "sigma grindset" every second.
Perhaps when the storm is gone with the whole "AI is gonna take our jobs" and the market demanding every keyword match, and I feel more confident in myself I'll try to get professional again. Or not. All I know is that I love programming.
In all seriousness, being able to pinpoint what is causing the possible stress / load and making choices to get rid of that is pretty amazing, props!
Though as for the job market, I’m sure the AI hype will blow over but I don’t think it’ll remain silent for long, there’ll be another nonsensical trend within reach.
Tech needs to keep innovating to keep investors happy and keep investing. That’s why it’s going this AI bubble route. Cause they don’t have any groundbreaking innovations at the moment but want to keep the investors they got when the web was newer and was worthy of the real hype.
Because having your own product is something that on paper sounds extremely rewarding. If you do it well, the maintenance might be less than the work you put in your actual job.
Some people want to break out of the cycle, and you can't really blame them for it when the economy is hurting working people (ofcourse excluding that writing software is relative to other jobs a cushion job)
I had my own company previously and I found it hard to detangle that commercial mindset from hobby coding. I’m employed now and find it much easier to code purely for fun.
If I played guitar professionally then I’d probably find it hard to not think about new pieces in the context of a gig-worthy repertoire.
This is a reaction that I had for a time, until realizing that outside of just "some people are different", there is also the wider protestant work ethic putting work at the center of their life, and assigning a moral value to productive work.
I'm describing it in too vague terms to be appropriate, and most people might be thinking it in that way, but I genuinely think there's a part of it in a lot of the "I did this paid service as a weekend project" mentality.
Many people think that they just have to write some code and execute it publicly and they'll somehow be provided for. That can sully recreational coding since it makes it hard to see that it will most definitely not be directly profitable without a lot of non-coding labour.
Doing business is demanding, you've got compliance and documentation and code needs to be intelligible to other people and finances and marketing and planning and customer support and all that domain knowledge that allows you to catch more than one or two paying customers because your solution works in most of a sector of society and so on.
With this in mind you'll have an easy time seeing that your for fun, recreational project is not a business and that you can't think of it as one until users are starting to force you to by being so many or offering money for additional services.
I have no idea why they mention coding. It is the same in any kind of job. You can bake cakes for fun, make music for fun, write poems, novels, play chess for fun, practice sports, grow potatos ...
At a certain stage, you realize that in order to be able to do only that job, you must make someone pay you for it. You must do it in a way (or in a volume) which makes others happy. The fact that it makes you happy is not enough anymore.
I don't think there is an angel and a devil. It is still the same thing. If you like the result of your work, there is a high chance that others will like it. You don't need to change what you do by a 100%. Changing it by 5% - 10% is often enough.
I think it's more common because one doing only coding can get paid reasonably. On the contrary, few people who "bake cakes for fun, make music for fun, write poems, novels, play chess for fun, practice sports, grow potatos" can get paid enough for a living, so that's usually not an option to consider. (Which is the reason that I find us coding people very lucky.)
If you happen to work for a company that's big enough to pay reasonably. And even that is still a very temporary accident of times.
There was a time with plenty (comparatively to today) of tailors, living very reasonably, because there was a demand, and the means.
Today, you're lucky if you manage to find one that's in your city, and even more if he/she's not too expensive (that is, compared to ready-made stuff).
Come on, coding is universally at a premium compared to other trades. Naturally you wouldn't have a FAANG salary at an outsourcing farm overseas but it'll certainly provide you with comfortable living by local standards.
> coding is universally at a premium compared to other trades
It has been and it still is at this time. Just saying that it won't last.
The existential threat, and perpetual adaptation to technology musicians (classical as well as contemporary) have met since the invention of sound recording and its developments, is coming for software developers too.
Like you almost spelled out, tailors were never competing with ready-made. Clothing used to be expensive, until people (sometimes children) working for pennies were able to send to you across long distances something good enough to wear.
One can combat it by just choosing discipline, grit, perseverance and stop boxing themselves into angel vs devil kind of thinking. You are either working for self or working for someone else.
Life is rather what you make of it than the society perception of it.
I've found that just writing code only takes me so far, I need to share as well to feel good about it. But sharing anything outside of the ordinary with the world means painting a pretty big target on your back. On the positive side, it also opens up an avenue for getting paid.
My point is that if you start with the fun and let it grow from there, and you're willing to go through the discomfort of sharing, it doesn't have to be either or.
I wish to share, but not to helicopter parent. I've long felt this case ill served, from 1995 Perl CPAN's "you own the package name" (vs author-packagename-version triples), to 2025 github's impoverished support for communities of forks. No "past me wrote this; present me frees it to jam; future me isn't involved - play well together, and maybe someday I'll listen in or drop by". The emphasis has been on human ownership/control of code, and of limited human collaboration, rather than on code getting out there, building friendships and communities, having fun and flourishing with the humans.
That's only with GitHub. There are other platforms, obviously less popular, which don't take that approach.
Heck, most of the "real" free software world (the one building entire operating systems, desktop environments, programming languages, games... other than Linus with Linux) operate in that manner.
I am always perplexed when people ask me about my GitHub account for my opensource contributions: I point them at whatever the latest incarnation of ohloh (OpenHub) is where they can find thousands of my commits over hundreds of projects.
I used to think the same thing, that sharing was caring. Now, for me, I would rather share with non-coders. So now everything is communicated as a product summary, not a coding project.
For me, this has somehow gotten to a point where I keep questioning myself if I’m actually doing something out of curiosity or because of the idea I could share something with other people or some other motive. So I’m not even sure what I’m curious about anymore, which might sound ridiculous.
Hey, don't worry. In my book, if you do something because you want to share it, then you're still interested in it enough (or curious about if you want). You just like to share, and that's okay.
It's also a good filter for topics. Naturally, the topics of interest of others seem more valuable.
I am doing a similar thing on my blog. Generally, each topic must pass the test of: is this useful to at least some? And being commited to write means I can clarify and organize my thoughts.
So nothing to worry about, keep on experimenting and sharing.
At least for me, I enjoy trying to solve problems using code. Kind of like how some people enjoy solving cross-words, math problems, and what have you.
As for the larger things that could potentially lead to a business, those types of problems usually come from something I encounter at work. If I'm stuck using software that sucks, identify some obvious demand, etc.
I've thought that recently there are things I'm willing to build, things I'm willing to sell, and things I'm willing to support. My desire for each is not in equal measure. There are vastly more things I will build for myself then I can sell, and there are a lot of things I like selling but I hate supporting. Only when I feel the trifecta do I release it to the public. The rest I tell myself I can just enjoy the process of building and throwing it away if I want, it doesn't matter.
Outside of professional software jobs, for me code is also a form of personal expression. I code for work. But I also code for fun. Although there is some overlap in the experience between the two, the two forms of coding are wildly different.
I probably don't need to explain much about coding at work. It's not just about "writing code". It's about software engineering. It's a responsibility that requires professionalism, discipline, and care. The real focus isn't the code itself. The focus is first and foremost on the business problems. Good code, good algorithms, and solid engineering practices are simply means to an end in solving those problems effectively.
But in my free time, coding is something else entirely. It's a form of art and expressing myself. It all started with IBM PC Logo and GW-BASIC, where writing code to draw patterns on the screen was my way of creating art. While some kids painted with brushes and watercolours, I painted with code and CGA colours.
Coding in my leisure time is a way for me to create, explore, and express my silly ideas without the constraints of business requirements or deadlines. It's where I get to experiment, play, and bring ideas, no matter how trivial or pointless, to life purely for the joy of it. Occasionally, these small experiments evolve into something I'm comfortable sharing online. That's when I write up a README.md, add a LICENSE.md, commit the code to my repo, and push it to GitHub or Codeberg to share with others hoping fellow like-minded individuals might find joy or utility in these experiments.
Fortunately, I've been able to release a few projects that have gathered small communities of users. For example, my last such project was https://susam.net/myrgb.html which, as far as I can tell, has got about 50 to 60 daily users. It's a small number but it's not nothing. While coding for leisure has always been enjoyable, the presence of these small communities has also been quite motivating.
I think it is possible to do both with some luck. While coding for work happens almost everyday by necessity, I think coding for leisure can also happen along with it, provided other circumstances of life don't get in the way. If circumstances allow, it is certainly possible. It doesn't have to happen everyday. I know everyone has got responsibilities in their lives. I've got too. But it can happen once in a while, when a spark of inspiration strikes. For me, it usually happens on some weekends when I get an itch to explore an idea, something I feel compelled to implement and see through.
>In a perfect world, I could listen to the angel and solely get by having fun and working on things I enjoy. But if I didn't listen to the devil from time to time, I wouldn't stay up to date with the latest technologies, and as a result I wouldn't be able to pay my bills.
Why do you need to listen to the devil to stay up to date with the latest technologies? You don't need to work on something monetizable to stay up on the latest technologies. You can work on something for fun and incorporate some of the latest technologies to learn about them at the same time.
Am I the only coder who has never really felt the desire to "be my own boss" and get rich from coding?
I was so against the idea, actually, that I avoided majoring in CS because I didn't want to ruin my favorite hobby by doing it professionally.
It wasn't until a few years after I graduated with my philosophy degree and couldn't find a career that I decided to try writing code for a living.
It's been great for me for almost 20 years now, and thankfully I still love to code for fun even though I do it all day professionally, but I have not felt the pull to try to form my own startup and try to get rich.
My favorite part of coding is having a problem and then figuring out how to solve it with the tools I have. I love working as a programmer because that is what I do all day, and someone pays me really good money to do it.
And I don't have to worry about all the other stuff like business models or funding or getting customers or talking to people, I just get a problem and do my favorite thing to solve it.
And I have more time to do other things because I am not hustling or trying to get rich.
I like programming for my friends. The moment money gets involved it goes to shit. Idea guys want you to program for free , and offer you something like 1% vested over 5 years.
They have you sign NDAs before you start working. The ideas are all really really stupid.
I do have my ideas, but I’m also humble enough to just accept I’ll probably never make any real money. I self taught my way straight to 6 figures ( back in 2016 when that still meant something). That’s enough really…
Yeah, I don't want to code for equity, either. I just want to code for a flat paycheck, with maybe an equity bonus. I have been able to do this for 18 years now.
I never thought that I would "be my own boss" after making the moves needed to go beyond just being a hobbyist, but I was quickly shown that I'm essentially unemployable.
It's been 2 years, and I can proudly say that i'm finally making more money than I did delivering packages on a bicycle in SF, which isn't much.
Getting rich was never in the cards for me, but not having to answer to a tyrannical boss every day is definitely a positive. Coming from a blue-collar background, that's pretty much the norm, and that sentiment has stuck with me.
Speaking only for myself, I never wanted to be rich. It would have been nice to have the money, but I never wanted to make the sacrifices necessary.
I also didn't want to be used by some predator, to make them rich. I found a [less-than-perfect, but OK] company to work for, that had values I liked, and stayed there, for a long time. I got to hang with the really cool kids. I mean the ones that were so cool, no one knew who they were, because they didn't care about being cool. They just liked doing what they were doing, and they were the best at it.
I was the dumbest kid in the room, and I'm smarter than the average bear. I also got to play with some very cool toys.
But I was a manager, for most of that time, and I didn't want to give up coding. I didn't have a "shower clause" in my employment contract, so I spent a great deal of my extracurricular time, doing open-source stuff. I had an organization that could use my skills, so I worked with them.
Eventually, the cool ride was over (after almost 27 years), and I found myself ready to roll up my sleeves, and help make someone else rich.
But no one wanted me, so I was forced to retire, and I've never been happier.
I was just talking about this, yesterday, to a friend of mine, who sold his company, and is getting set to become a Man of Leisure. He's like me. He needs something to do, and I suspect that he'll do something cool.
I mentioned how upset I was, when I figured out that no one wanted me, but, after a year or so of following my own muse, I realized that I had been working at a state of chronic, low-grade misery, for over 30 years. I probably work harder now, than I ever did, drawing a salary, and I absolutely love it. This is what I've been working on, for the last month or so[0]. Still have a ways to go, but it's coming along great, and I've been learning a lot.
Here's a post that I wrote, some time ago, about how I like to approach things[1].
But only if you get incredibly lucky. Even in the Bay Area where many an employee became a millionaire the chance of that being you is still a single digit percentage.
I'm the same, I started coding as a kid on an Amiga 500. But I never thought it would become my job. I studied a degree in communication and worked as a journalist first, then as a press agent. Later I decided to move to a different country where I could not work in PR or journalism due to language barriers so I went back to programming. Eventually I even went back to Uni and got a degree in IT because I felt that I had some knowledge gaps due to being self-taught. Going back to uni in my mid 30s was actually a cool experience (despite the fact that I had to study & work at the same time).
I've always thought of myself as a struggling artist and musician first, code being one of many avenues to express myself, and also to pay the bills until I got into more managerial roles, and now I get to use it more creatively or in pursuit of creative endeavors rather than during work time, and it is incredibly liberating.
>No one likes schleps, but hackers especially dislike them. Most hackers who start startups wish they could do it by just writing some clever software, putting it on a server somewhere, and watching the money roll in—without ever having to talk to users, or negotiate with other companies, or deal with other people's broken code. Maybe that's possible, but I haven't seen it.
>One of the many things we do at Y Combinator is teach hackers about the inevitability of schleps. No, you can't start a startup by just writing code. I remember going through this realization myself. There was a point in 1995 when I was still trying to convince myself I could start a company by just writing code. But I soon learned from experience that schleps are not merely inevitable, but pretty much what business consists of. A company is defined by the schleps it will undertake.
>The most striking example I know of schlep blindness is Stripe, or rather Stripe's idea. For over a decade, every hacker who'd ever had to process payments online knew how painful the experience was.
A lot of why people didn't build Stripe before was that to enter the payments space you needed connections to get the banks and payment processors to work with you. In comparison, you don't need anyone's permission to make uber for dry cleaners or something in line with other trends of the time. I doubt the Collison brothers would have been as successful getting Stripe off the ground if it had been their first company.
Working at a start-up now and seeing how many partnerships are solely due to connections of the CEO or a random board member is crushing. The tech side is an entirely and relatively easily solvable problem in comparison to the rest.
Has always been, there are a few cases where this wasn't true but odds are any industry you want to "enter" needs someone with connections to open the doors for you.
Tech is a problem that needs solving but it isn't the biggest problem to be solved, having a network and knowing people is more than half the job.
Banking is both deeply entrenched and well regulated. I suppose people could make a venmo/PayPal/cash app payment system but dealing with cards would be more difficult
Set a reminder for 10 years from now. Let's see how many incredible new tech products have been built. My guess is that ~any judge will decide that it turned out there were a lot of things still to be built
yeah. I worked on the internal banking connection at Square in the old days (~2011) and it was a _nightmare_. like, pre-TCP/IP connectivity that depended on dedicated copper to do teletype in COBOL-style fixed length fields in a cryptic format that was only specified in scans of paper documents. We had to write an adaptor that looked like, you know, REST on one end but then shoveled all of the traffic onto that single upstream connection, and then had to try to map responses that came back out of order to the right client. Miserable stuff and a threading nightmare.
This is hardly the point, but pg's use of schlep is jarring: it's primarily a verb ("to schlep"), but the noun form almost uniformly requires an article ("the schlep").
"No one likes schleps" should be "no one likes to schlep."
> But if I didn't listen to the devil from time to time, I wouldn't stay up to date with the latest technologies, and as a result I wouldn't be able to pay my bills.
It appears to imply that new technologies do not count as fun, which may be the case for the author, but not generally. And there are indeed fewer open vacancies requiring older (decades old) technologies exclusively, with vacancies often including currently-hyped technologies in addition to established ones, which opens more options and potentially leads to a higher salary if one employs those newer or hyped ones, but I guess that it is quite possible to pay the bills while using mostly the older ones, too.
Coding is another tool, just the same way you buy a piece of furniture online you can also build it yourself, if you have the tools and skills. It's up to you how you want to use your resources (time and money).
Coding is a tool to solve data problems, I've been doing it for close to two decades now and I still find it fulfilling and fun. Many years ago I used to think, I love my job that I would do my job for free ... I was wrong! Others will paid for doing things you find fun, make sure you know your worth.
Maybe to you. For some of us, it's also a form of self-expression, a hobby or a lifestyle.
In my experience coding for money and coding for fun is a very different experience. I know my worth, but I am also free to do whatever I want out of my working hours.
I understand your point, and I don't disagree with it as a matter of utility. It just doesn't capture all of what code is.
I find computer systems beautiful. A system of parts interacting in a complex dance to process data. Each part effortlessly modifyable and reusable, executable by the generic machine people already own.
I love the puzzle of putting data together, of shaping it in main memory, and the joy of finding that previous shaping makes the current problem easier. The joy of finding a hidden algebra or transitivity.
All of these things go beyond the "tool" view of software and touches the "art" view. A painter doesn't find the painting useful, they find it beautiful.
I would be writing software, even if I want paid. I would however be working on vastly different software, and I think that's the OP's point.
As I get older I find myself embracing the angel more and more. I've met a lot of programmers that got what the devil was offering by only listening to the angel.
When you start coding and start having fun, please remember that the "fun" doesn't apply to coding as profession. The same goes for any other profession. Doing something for fun vs professionally are two different worlds.
Let me clarify what I mean by for fun vs professionally. For fun means you make decisions based on "That feature would be fun to implement". Professionally means you make decision based on "That's what good for business". Based on these definitions most of the open source projects don't fall under "professionally" category.
Love it, perfect length and cadence for a blog post (imho). Stayed focused on personal perspective / experience. Perfect minimally distracting amount of CSS. Perfect skimmability that drew me in to read in more detail. And a perfect conclusion that I just happen to agree with.
I've actually been thinking about this a bunch the last couple of months and it's a truly painful dilemna!
At a high level, for those of us who code outside of work, we're constantly faced with the choice of either working on something that we find interesting vs. something that would further our careers. It's awesome when they align, but it can be painful when they don't.
I sometimes feel guilty when I choose to work on passion projects... but if I instead choose work on professional development, I feel like my creative soul starts to wither a bit.
If you have issues with having proper material compensation for your work, you will have to work on those first before anything else.
Doing necessary work, even when you don't like is for me the definition of "work". You should also learn to manage it, if you work too much, you should take a break.
You don't need to get rich as "billionaire", but if you are good at your work it is reasonable that you will get "millionaire", because you gave society tens of times more value that what you got.
That is not something to be ashamed of. If you got the money gambling(taking it from someone else) you can feel ashamed, but not if you made money generating wealth with effort and work.
I am concerned about the authors propensity for taking pop cultural memes very very seriously. Somewhere in here is a lightbulb waiting to go off and a complete human ready to be born. Maybe consider going camping.
Honestly, the text looks like it was written by someone who does not understand hobbyist programming.
It's not fun. The activity is not an enjoyable act of entertainment. It's stressful, time consuming and miserable.
The result is what matters. You did something. Learned something. For you, not because it was in some work planning. It provides catharsis.
That sort of catharsis does not exist in some work related environment. It never will, unless stars align magically, which they almost never do.
I am highly skeptic of this "code is fun" perspective. Always was.
That's why "all your base belong to us" kind of contracts in which stuff made outside work COULD become property of the hiring company makes otherwise happy developers into depressive under-productive nightmares. Let them code the toy thing unharmed in their spare time, for fucks sake.
Let it be the real thing. Stop this nonsense fairytale.
It is for your own good. It prevents companies from hiring con men, it prevents young folk from being drawn to a career they will despise, it prevents massive loss of investment.
I wanted to code for catharsis. To learn. To feel I made something. Wanted, past tense. These "code for fun" people were serious contributors to my burnout.
> Honestly, the text looks like it was written by someone who does not understand hobbyist programming.
I don't think that at all. I think he just has a different perspective on it than you do. Whilst your perspective is valid, some people actually do enjoy the work of coding, especially if they can do so in an environment where they can immediately check intermediate results and use those to shape their coding trajectory as they work, creating a tight OODA loop. (Hi, Lisp!)
> That's why "all your base belong to us" kind of contracts in which stuff made outside work COULD become property of the hiring company makes otherwise happy developers into depressive under-productive nightmares. Let them code the toy thing unharmed in their spare time, for fucks sake.
> Let it be the real thing. Stop this nonsense fairytale.
On this we can agree. I think that for programming to be fun it has to be something you want to see come into fruition, i.e., not any random thing someone else wants to see, done to their schedule by their rules. Good tech companies -- game studios in the 90s, Google in the early days, even Microsoft in the early days -- knew how to make the golden goose as comfortable as possible while slipping out the back with the eggs.
But in the late 90s, Jim McCarthy's "Beware of a guy in a room" became iron gospel among management types, who interpreted it as meaning that developers must be subjected to a panopticon in which what they are doing at all times is tracked and analyzed by the chain of command going up to the C level. Hence Scrum, SAFe, and all that malarkey, and we've forgotten how to "let 'em cook" as the kids say now.
I was fine doing some hours of planned teamwork. As long as I had some time to work on things I want. Spare non paid time.
For those things I want to program on that spare time, I don't want anyone snooping around to collect anything. I realize I don't want anyone encouraging, questioning, giving advice, talking about it.
The problem is much deeper. As I mentioned, this "code for fun" people had a prominent role in my burning out. They act as catharsis blockers as much as scrum people.
It makes no sense to try anything anymore. There could be a con man happy supporter just around the corner waiting to "collect the egg for free". I will rather let them starve.
Maybe this is exactly what the profession needs. A mass strike of some sort. Not for higher pay, but for better work conditions. It probably won't happen in my time.
Do many people hobby code with that entrepreneur mindset thing? Or sit down to play guitar thinking they want to make a hit and feeling bad if they just noodle some cover songs? What a miserable existence that must be. How do you get that way? Should we blame LinkedIn or what is it?
I will preface this by saying that, I decided to stop pursuing a job as a software developer because my 2 years of work experience mean nothing in the job market.
Now that I ended up finding a job as a waiter (of all things) I finally enjoy learning new things again. Before, I would get chronically stressed researching the job market, gathering keywords from job openings, consuming Udemy courses at 2x speed, using AI to plan the project and scaffold it. I was writing projects to save my life, because my finances are just that bad.
Surrendering and giving up the pursuit of work made all this mental load go away, and ironically made me progress in a personal skill level faster than anything else. I can now learn deeply. I can tinker with code to my heart's content. I can see all the warnings. I can research why this and that happen, without feeling like I have to "sigma grindset" every second.
Perhaps when the storm is gone with the whole "AI is gonna take our jobs" and the market demanding every keyword match, and I feel more confident in myself I'll try to get professional again. Or not. All I know is that I love programming.
In all seriousness, being able to pinpoint what is causing the possible stress / load and making choices to get rid of that is pretty amazing, props!
Though as for the job market, I’m sure the AI hype will blow over but I don’t think it’ll remain silent for long, there’ll be another nonsensical trend within reach.
Tech needs to keep innovating to keep investors happy and keep investing. That’s why it’s going this AI bubble route. Cause they don’t have any groundbreaking innovations at the moment but want to keep the investors they got when the web was newer and was worthy of the real hype.
Because having your own product is something that on paper sounds extremely rewarding. If you do it well, the maintenance might be less than the work you put in your actual job.
Some people want to break out of the cycle, and you can't really blame them for it when the economy is hurting working people (ofcourse excluding that writing software is relative to other jobs a cushion job)
It's not a cushion job. At least not when you are working on a huge codebase together with lots of other developers.
I had my own company previously and I found it hard to detangle that commercial mindset from hobby coding. I’m employed now and find it much easier to code purely for fun.
If I played guitar professionally then I’d probably find it hard to not think about new pieces in the context of a gig-worthy repertoire.
This is real, anytime I code I'm obsessed about RoI
This is a reaction that I had for a time, until realizing that outside of just "some people are different", there is also the wider protestant work ethic putting work at the center of their life, and assigning a moral value to productive work.
I'm describing it in too vague terms to be appropriate, and most people might be thinking it in that way, but I genuinely think there's a part of it in a lot of the "I did this paid service as a weekend project" mentality.
Many people think that they just have to write some code and execute it publicly and they'll somehow be provided for. That can sully recreational coding since it makes it hard to see that it will most definitely not be directly profitable without a lot of non-coding labour.
Doing business is demanding, you've got compliance and documentation and code needs to be intelligible to other people and finances and marketing and planning and customer support and all that domain knowledge that allows you to catch more than one or two paying customers because your solution works in most of a sector of society and so on.
With this in mind you'll have an easy time seeing that your for fun, recreational project is not a business and that you can't think of it as one until users are starting to force you to by being so many or offering money for additional services.
I have no idea why they mention coding. It is the same in any kind of job. You can bake cakes for fun, make music for fun, write poems, novels, play chess for fun, practice sports, grow potatos ...
At a certain stage, you realize that in order to be able to do only that job, you must make someone pay you for it. You must do it in a way (or in a volume) which makes others happy. The fact that it makes you happy is not enough anymore.
I don't think there is an angel and a devil. It is still the same thing. If you like the result of your work, there is a high chance that others will like it. You don't need to change what you do by a 100%. Changing it by 5% - 10% is often enough.
I think it's more common because one doing only coding can get paid reasonably. On the contrary, few people who "bake cakes for fun, make music for fun, write poems, novels, play chess for fun, practice sports, grow potatos" can get paid enough for a living, so that's usually not an option to consider. (Which is the reason that I find us coding people very lucky.)
> only coding can get paid reasonably
If you happen to work for a company that's big enough to pay reasonably. And even that is still a very temporary accident of times.
There was a time with plenty (comparatively to today) of tailors, living very reasonably, because there was a demand, and the means.
Today, you're lucky if you manage to find one that's in your city, and even more if he/she's not too expensive (that is, compared to ready-made stuff).
Come on, coding is universally at a premium compared to other trades. Naturally you wouldn't have a FAANG salary at an outsourcing farm overseas but it'll certainly provide you with comfortable living by local standards.
> coding is universally at a premium compared to other trades
It has been and it still is at this time. Just saying that it won't last.
The existential threat, and perpetual adaptation to technology musicians (classical as well as contemporary) have met since the invention of sound recording and its developments, is coming for software developers too.
> perpetual adaptation to technology musicians have met
Didn't it also went with an important reduction in the number of people who could make a living out of that?
Like you almost spelled out, tailors were never competing with ready-made. Clothing used to be expensive, until people (sometimes children) working for pennies were able to send to you across long distances something good enough to wear.
[dead]
One can combat it by just choosing discipline, grit, perseverance and stop boxing themselves into angel vs devil kind of thinking. You are either working for self or working for someone else.
Life is rather what you make of it than the society perception of it.
I've found that just writing code only takes me so far, I need to share as well to feel good about it. But sharing anything outside of the ordinary with the world means painting a pretty big target on your back. On the positive side, it also opens up an avenue for getting paid.
My point is that if you start with the fun and let it grow from there, and you're willing to go through the discomfort of sharing, it doesn't have to be either or.
> share as well to feel good about it. But
I wish to share, but not to helicopter parent. I've long felt this case ill served, from 1995 Perl CPAN's "you own the package name" (vs author-packagename-version triples), to 2025 github's impoverished support for communities of forks. No "past me wrote this; present me frees it to jam; future me isn't involved - play well together, and maybe someday I'll listen in or drop by". The emphasis has been on human ownership/control of code, and of limited human collaboration, rather than on code getting out there, building friendships and communities, having fun and flourishing with the humans.
That's only with GitHub. There are other platforms, obviously less popular, which don't take that approach.
Heck, most of the "real" free software world (the one building entire operating systems, desktop environments, programming languages, games... other than Linus with Linux) operate in that manner.
I am always perplexed when people ask me about my GitHub account for my opensource contributions: I point them at whatever the latest incarnation of ohloh (OpenHub) is where they can find thousands of my commits over hundreds of projects.
[dead]
I used to think the same thing, that sharing was caring. Now, for me, I would rather share with non-coders. So now everything is communicated as a product summary, not a coding project.
For me, this has somehow gotten to a point where I keep questioning myself if I’m actually doing something out of curiosity or because of the idea I could share something with other people or some other motive. So I’m not even sure what I’m curious about anymore, which might sound ridiculous.
Hey, don't worry. In my book, if you do something because you want to share it, then you're still interested in it enough (or curious about if you want). You just like to share, and that's okay.
It's also a good filter for topics. Naturally, the topics of interest of others seem more valuable.
I am doing a similar thing on my blog. Generally, each topic must pass the test of: is this useful to at least some? And being commited to write means I can clarify and organize my thoughts.
So nothing to worry about, keep on experimenting and sharing.
At least for me, I enjoy trying to solve problems using code. Kind of like how some people enjoy solving cross-words, math problems, and what have you.
As for the larger things that could potentially lead to a business, those types of problems usually come from something I encounter at work. If I'm stuck using software that sucks, identify some obvious demand, etc.
I've thought that recently there are things I'm willing to build, things I'm willing to sell, and things I'm willing to support. My desire for each is not in equal measure. There are vastly more things I will build for myself then I can sell, and there are a lot of things I like selling but I hate supporting. Only when I feel the trifecta do I release it to the public. The rest I tell myself I can just enjoy the process of building and throwing it away if I want, it doesn't matter.
Just a suggestion: The github permissions your comment login thing requests is a bit too aggressive.
> This application will be able to read and write all public repository data.
Can’t everyone read public repo data?
Not everyone can write it…
Oh, I missed that. Thank you.
Outside of professional software jobs, for me code is also a form of personal expression. I code for work. But I also code for fun. Although there is some overlap in the experience between the two, the two forms of coding are wildly different.
I probably don't need to explain much about coding at work. It's not just about "writing code". It's about software engineering. It's a responsibility that requires professionalism, discipline, and care. The real focus isn't the code itself. The focus is first and foremost on the business problems. Good code, good algorithms, and solid engineering practices are simply means to an end in solving those problems effectively.
But in my free time, coding is something else entirely. It's a form of art and expressing myself. It all started with IBM PC Logo and GW-BASIC, where writing code to draw patterns on the screen was my way of creating art. While some kids painted with brushes and watercolours, I painted with code and CGA colours.
Coding in my leisure time is a way for me to create, explore, and express my silly ideas without the constraints of business requirements or deadlines. It's where I get to experiment, play, and bring ideas, no matter how trivial or pointless, to life purely for the joy of it. Occasionally, these small experiments evolve into something I'm comfortable sharing online. That's when I write up a README.md, add a LICENSE.md, commit the code to my repo, and push it to GitHub or Codeberg to share with others hoping fellow like-minded individuals might find joy or utility in these experiments.
Fortunately, I've been able to release a few projects that have gathered small communities of users. For example, my last such project was https://susam.net/myrgb.html which, as far as I can tell, has got about 50 to 60 daily users. It's a small number but it's not nothing. While coding for leisure has always been enjoyable, the presence of these small communities has also been quite motivating.
I think it is possible to do both with some luck. While coding for work happens almost everyday by necessity, I think coding for leisure can also happen along with it, provided other circumstances of life don't get in the way. If circumstances allow, it is certainly possible. It doesn't have to happen everyday. I know everyone has got responsibilities in their lives. I've got too. But it can happen once in a while, when a spark of inspiration strikes. For me, it usually happens on some weekends when I get an itch to explore an idea, something I feel compelled to implement and see through.
>In a perfect world, I could listen to the angel and solely get by having fun and working on things I enjoy. But if I didn't listen to the devil from time to time, I wouldn't stay up to date with the latest technologies, and as a result I wouldn't be able to pay my bills.
Why do you need to listen to the devil to stay up to date with the latest technologies? You don't need to work on something monetizable to stay up on the latest technologies. You can work on something for fun and incorporate some of the latest technologies to learn about them at the same time.
Am I the only coder who has never really felt the desire to "be my own boss" and get rich from coding?
I was so against the idea, actually, that I avoided majoring in CS because I didn't want to ruin my favorite hobby by doing it professionally.
It wasn't until a few years after I graduated with my philosophy degree and couldn't find a career that I decided to try writing code for a living.
It's been great for me for almost 20 years now, and thankfully I still love to code for fun even though I do it all day professionally, but I have not felt the pull to try to form my own startup and try to get rich.
My favorite part of coding is having a problem and then figuring out how to solve it with the tools I have. I love working as a programmer because that is what I do all day, and someone pays me really good money to do it.
And I don't have to worry about all the other stuff like business models or funding or getting customers or talking to people, I just get a problem and do my favorite thing to solve it.
And I have more time to do other things because I am not hustling or trying to get rich.
I like programming for my friends. The moment money gets involved it goes to shit. Idea guys want you to program for free , and offer you something like 1% vested over 5 years.
They have you sign NDAs before you start working. The ideas are all really really stupid.
I do have my ideas, but I’m also humble enough to just accept I’ll probably never make any real money. I self taught my way straight to 6 figures ( back in 2016 when that still meant something). That’s enough really…
Yeah, I don't want to code for equity, either. I just want to code for a flat paycheck, with maybe an equity bonus. I have been able to do this for 18 years now.
You're in the 99%. It's just that the other 1% write all the blog posts.
I never thought that I would "be my own boss" after making the moves needed to go beyond just being a hobbyist, but I was quickly shown that I'm essentially unemployable.
It's been 2 years, and I can proudly say that i'm finally making more money than I did delivering packages on a bicycle in SF, which isn't much.
Getting rich was never in the cards for me, but not having to answer to a tyrannical boss every day is definitely a positive. Coming from a blue-collar background, that's pretty much the norm, and that sentiment has stuck with me.
What makes you "essentially unemployable"?
Speaking only for myself, I never wanted to be rich. It would have been nice to have the money, but I never wanted to make the sacrifices necessary.
I also didn't want to be used by some predator, to make them rich. I found a [less-than-perfect, but OK] company to work for, that had values I liked, and stayed there, for a long time. I got to hang with the really cool kids. I mean the ones that were so cool, no one knew who they were, because they didn't care about being cool. They just liked doing what they were doing, and they were the best at it.
I was the dumbest kid in the room, and I'm smarter than the average bear. I also got to play with some very cool toys.
But I was a manager, for most of that time, and I didn't want to give up coding. I didn't have a "shower clause" in my employment contract, so I spent a great deal of my extracurricular time, doing open-source stuff. I had an organization that could use my skills, so I worked with them.
Eventually, the cool ride was over (after almost 27 years), and I found myself ready to roll up my sleeves, and help make someone else rich.
But no one wanted me, so I was forced to retire, and I've never been happier.
I was just talking about this, yesterday, to a friend of mine, who sold his company, and is getting set to become a Man of Leisure. He's like me. He needs something to do, and I suspect that he'll do something cool.
I mentioned how upset I was, when I figured out that no one wanted me, but, after a year or so of following my own muse, I realized that I had been working at a state of chronic, low-grade misery, for over 30 years. I probably work harder now, than I ever did, drawing a salary, and I absolutely love it. This is what I've been working on, for the last month or so[0]. Still have a ways to go, but it's coming along great, and I've been learning a lot.
Here's a post that I wrote, some time ago, about how I like to approach things[1].
[0] https://github.com/RiftValleySoftware/ambiamara/tree/master/...
[1] https://littlegreenviper.com/miscellany/thats-not-what-ships...
I'm wondering what a "shower clause" would be in a contract and hoping it's not a Silkwood reference.
I don't want to be rich either, but it would be awesome to FIRE before I'm 65.
It was never a goal of mine, but I found out I could, at 55.
It would have been nice, to have the extra decade of salary, but c’est la vie…
You can do that on a normal salary, too.
But only if you get incredibly lucky. Even in the Bay Area where many an employee became a millionaire the chance of that being you is still a single digit percentage.
Not just luck. Self-discipline, structure, and sacrifice are necessary.
Living frugally, deferring (or avoiding) purchases, saving a substantial percentage, etc., was important for me.
Also, the world around us, changes.
In my entire career, I never made more than what some kids make, coming right out of school, these days.
The same for my father. He never made more than about $50K, his entire life, yet had a half-acre house in Potomac, two cars, and a stay-at-home wife.
I'm the same, I started coding as a kid on an Amiga 500. But I never thought it would become my job. I studied a degree in communication and worked as a journalist first, then as a press agent. Later I decided to move to a different country where I could not work in PR or journalism due to language barriers so I went back to programming. Eventually I even went back to Uni and got a degree in IT because I felt that I had some knowledge gaps due to being self-taught. Going back to uni in my mid 30s was actually a cool experience (despite the fact that I had to study & work at the same time).
You wanted to get rich in the philosophy mines while coding as a hobby?
Be cool if you pulled it off.
My plan was to be a stand up philosopher
I've always thought of myself as a struggling artist and musician first, code being one of many avenues to express myself, and also to pay the bills until I got into more managerial roles, and now I get to use it more creatively or in pursuit of creative endeavors rather than during work time, and it is incredibly liberating.
>No one likes schleps, but hackers especially dislike them. Most hackers who start startups wish they could do it by just writing some clever software, putting it on a server somewhere, and watching the money roll in—without ever having to talk to users, or negotiate with other companies, or deal with other people's broken code. Maybe that's possible, but I haven't seen it.
>One of the many things we do at Y Combinator is teach hackers about the inevitability of schleps. No, you can't start a startup by just writing code. I remember going through this realization myself. There was a point in 1995 when I was still trying to convince myself I could start a company by just writing code. But I soon learned from experience that schleps are not merely inevitable, but pretty much what business consists of. A company is defined by the schleps it will undertake.
>The most striking example I know of schlep blindness is Stripe, or rather Stripe's idea. For over a decade, every hacker who'd ever had to process payments online knew how painful the experience was.
https://www.paulgraham.com/schlep.html
A lot of why people didn't build Stripe before was that to enter the payments space you needed connections to get the banks and payment processors to work with you. In comparison, you don't need anyone's permission to make uber for dry cleaners or something in line with other trends of the time. I doubt the Collison brothers would have been as successful getting Stripe off the ground if it had been their first company.
Anything thats remotely disruptive requires the same deep connections.
Tech just doesnt have many opportunities left.
Deep connections: the invisible wall the common man cannot pass.
Working at a start-up now and seeing how many partnerships are solely due to connections of the CEO or a random board member is crushing. The tech side is an entirely and relatively easily solvable problem in comparison to the rest.
Has always been, there are a few cases where this wasn't true but odds are any industry you want to "enter" needs someone with connections to open the doors for you.
Tech is a problem that needs solving but it isn't the biggest problem to be solved, having a network and knowing people is more than half the job.
Banking is both deeply entrenched and well regulated. I suppose people could make a venmo/PayPal/cash app payment system but dealing with cards would be more difficult
Banking is both deeply entrenched and well regulated. I suppose people could make a venmo/PayPal/
Set a reminder for 10 years from now. Let's see how many incredible new tech products have been built. My guess is that ~any judge will decide that it turned out there were a lot of things still to be built
yeah. I worked on the internal banking connection at Square in the old days (~2011) and it was a _nightmare_. like, pre-TCP/IP connectivity that depended on dedicated copper to do teletype in COBOL-style fixed length fields in a cryptic format that was only specified in scans of paper documents. We had to write an adaptor that looked like, you know, REST on one end but then shoveled all of the traffic onto that single upstream connection, and then had to try to map responses that came back out of order to the right client. Miserable stuff and a threading nightmare.
This is hardly the point, but pg's use of schlep is jarring: it's primarily a verb ("to schlep"), but the noun form almost uniformly requires an article ("the schlep").
"No one likes schleps" should be "no one likes to schlep."
> But if I didn't listen to the devil from time to time, I wouldn't stay up to date with the latest technologies, and as a result I wouldn't be able to pay my bills.
It appears to imply that new technologies do not count as fun, which may be the case for the author, but not generally. And there are indeed fewer open vacancies requiring older (decades old) technologies exclusively, with vacancies often including currently-hyped technologies in addition to established ones, which opens more options and potentially leads to a higher salary if one employs those newer or hyped ones, but I guess that it is quite possible to pay the bills while using mostly the older ones, too.
Coding is another tool, just the same way you buy a piece of furniture online you can also build it yourself, if you have the tools and skills. It's up to you how you want to use your resources (time and money).
Coding is a tool to solve data problems, I've been doing it for close to two decades now and I still find it fulfilling and fun. Many years ago I used to think, I love my job that I would do my job for free ... I was wrong! Others will paid for doing things you find fun, make sure you know your worth.
> Coding is another tool
Maybe to you. For some of us, it's also a form of self-expression, a hobby or a lifestyle.
In my experience coding for money and coding for fun is a very different experience. I know my worth, but I am also free to do whatever I want out of my working hours.
I understand your point, and I don't disagree with it as a matter of utility. It just doesn't capture all of what code is.
I find computer systems beautiful. A system of parts interacting in a complex dance to process data. Each part effortlessly modifyable and reusable, executable by the generic machine people already own.
I love the puzzle of putting data together, of shaping it in main memory, and the joy of finding that previous shaping makes the current problem easier. The joy of finding a hidden algebra or transitivity.
All of these things go beyond the "tool" view of software and touches the "art" view. A painter doesn't find the painting useful, they find it beautiful.
I would be writing software, even if I want paid. I would however be working on vastly different software, and I think that's the OP's point.
As I get older I find myself embracing the angel more and more. I've met a lot of programmers that got what the devil was offering by only listening to the angel.
This is basically what I am thinking about in the past few months. When everybody is talking about AI but you don't buy it.
When you start coding and start having fun, please remember that the "fun" doesn't apply to coding as profession. The same goes for any other profession. Doing something for fun vs professionally are two different worlds.
Confidently wrong. Life is a bit more nuanced than that.
Look at any popular open source project and tell me not a single contributor was having fun while writing it.
I can give you examples of very high quality open source projects where I know for a fact that the person/team behind them were just having fun.
Let me clarify what I mean by for fun vs professionally. For fun means you make decisions based on "That feature would be fun to implement". Professionally means you make decision based on "That's what good for business". Based on these definitions most of the open source projects don't fall under "professionally" category.
Love it, perfect length and cadence for a blog post (imho). Stayed focused on personal perspective / experience. Perfect minimally distracting amount of CSS. Perfect skimmability that drew me in to read in more detail. And a perfect conclusion that I just happen to agree with.
I've actually been thinking about this a bunch the last couple of months and it's a truly painful dilemna!
At a high level, for those of us who code outside of work, we're constantly faced with the choice of either working on something that we find interesting vs. something that would further our careers. It's awesome when they align, but it can be painful when they don't.
I sometimes feel guilty when I choose to work on passion projects... but if I instead choose work on professional development, I feel like my creative soul starts to wither a bit.
If you have issues with having proper material compensation for your work, you will have to work on those first before anything else.
Doing necessary work, even when you don't like is for me the definition of "work". You should also learn to manage it, if you work too much, you should take a break.
You don't need to get rich as "billionaire", but if you are good at your work it is reasonable that you will get "millionaire", because you gave society tens of times more value that what you got.
That is not something to be ashamed of. If you got the money gambling(taking it from someone else) you can feel ashamed, but not if you made money generating wealth with effort and work.
I am concerned about the authors propensity for taking pop cultural memes very very seriously. Somewhere in here is a lightbulb waiting to go off and a complete human ready to be born. Maybe consider going camping.
> I watched an Amazon Prime knockoff of Silicon Valley called Betas
Not sure you can call it a knockoff if it came out a year earlier!
The angel is human curiosity and the devil here is capitalism society pressures. be you.
(2023)
Honestly, the text looks like it was written by someone who does not understand hobbyist programming.
It's not fun. The activity is not an enjoyable act of entertainment. It's stressful, time consuming and miserable.
The result is what matters. You did something. Learned something. For you, not because it was in some work planning. It provides catharsis.
That sort of catharsis does not exist in some work related environment. It never will, unless stars align magically, which they almost never do.
I am highly skeptic of this "code is fun" perspective. Always was.
That's why "all your base belong to us" kind of contracts in which stuff made outside work COULD become property of the hiring company makes otherwise happy developers into depressive under-productive nightmares. Let them code the toy thing unharmed in their spare time, for fucks sake.
Let it be the real thing. Stop this nonsense fairytale.
It is for your own good. It prevents companies from hiring con men, it prevents young folk from being drawn to a career they will despise, it prevents massive loss of investment.
I wanted to code for catharsis. To learn. To feel I made something. Wanted, past tense. These "code for fun" people were serious contributors to my burnout.
> Honestly, the text looks like it was written by someone who does not understand hobbyist programming.
I don't think that at all. I think he just has a different perspective on it than you do. Whilst your perspective is valid, some people actually do enjoy the work of coding, especially if they can do so in an environment where they can immediately check intermediate results and use those to shape their coding trajectory as they work, creating a tight OODA loop. (Hi, Lisp!)
> That's why "all your base belong to us" kind of contracts in which stuff made outside work COULD become property of the hiring company makes otherwise happy developers into depressive under-productive nightmares. Let them code the toy thing unharmed in their spare time, for fucks sake.
> Let it be the real thing. Stop this nonsense fairytale.
On this we can agree. I think that for programming to be fun it has to be something you want to see come into fruition, i.e., not any random thing someone else wants to see, done to their schedule by their rules. Good tech companies -- game studios in the 90s, Google in the early days, even Microsoft in the early days -- knew how to make the golden goose as comfortable as possible while slipping out the back with the eggs.
But in the late 90s, Jim McCarthy's "Beware of a guy in a room" became iron gospel among management types, who interpreted it as meaning that developers must be subjected to a panopticon in which what they are doing at all times is tracked and analyzed by the chain of command going up to the C level. Hence Scrum, SAFe, and all that malarkey, and we've forgotten how to "let 'em cook" as the kids say now.
Sorry, still sounds like a fairy tale.
I was fine doing some hours of planned teamwork. As long as I had some time to work on things I want. Spare non paid time.
For those things I want to program on that spare time, I don't want anyone snooping around to collect anything. I realize I don't want anyone encouraging, questioning, giving advice, talking about it.
The problem is much deeper. As I mentioned, this "code for fun" people had a prominent role in my burning out. They act as catharsis blockers as much as scrum people.
It makes no sense to try anything anymore. There could be a con man happy supporter just around the corner waiting to "collect the egg for free". I will rather let them starve.
Maybe this is exactly what the profession needs. A mass strike of some sort. Not for higher pay, but for better work conditions. It probably won't happen in my time.