Most active commenters
  • Clubber(4)
  • alkonaut(3)
  • 59nadir(3)

←back to thread

I just want to code (2023)

(www.zachbellay.com)
288 points SCUSKU | 48 comments | | HN request time: 0.002s | source | bottom
1. alkonaut ◴[] No.43818348[source]
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?
replies(14): >>43818401 #>>43818404 #>>43818413 #>>43818559 #>>43818913 #>>43819720 #>>43819740 #>>43819901 #>>43819943 #>>43820066 #>>43820338 #>>43820790 #>>43823327 #>>43823734 #
2. stepbeek ◴[] No.43818401[source]
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.

replies(1): >>43819300 #
3. makeitdouble ◴[] No.43818404[source]
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.

4. cess11 ◴[] No.43818413[source]
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.

5. ramon156 ◴[] No.43818559[source]
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)

replies(1): >>43818724 #
6. zeroc8 ◴[] No.43818724[source]
It's not a cushion job. At least not when you are working on a huge codebase together with lots of other developers.
replies(1): >>43819503 #
7. Arisaka1 ◴[] No.43818913[source]
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.

replies(4): >>43819140 #>>43820105 #>>43822469 #>>43823642 #
8. yapyap ◴[] No.43819140[source]
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.

replies(3): >>43819928 #>>43820441 #>>43821302 #
9. p0nce ◴[] No.43819300[source]
This is real, anytime I code I'm obsessed about RoI
10. sethammons ◴[] No.43819503{3}[source]
What other jobs have you had? I have been a photo lab assistant, a sign maker apprentice, a graphic designer, an insurance agent, a financial advisor, a construction worker and manual laborer, an inner-city math teacher, a software developer turned manager turn developer, now at the staff level.

Software is the most cush job I have had. More money for less work. Better perks. Less stress overall. Constantly learning, yes. Often frustrating, yes. But having financial resources beyond what the other jobs could provide is a thing. Other jobs I could leave at work, sure, but others I couldn't. I would never go back to being a public high school teacher; that shit was the suck. So was selling stocks. Software is a dream in comparison.

replies(3): >>43820525 #>>43821449 #>>43824701 #
11. mrkeen ◴[] No.43819720[source]
Sure. I used to enjoy playing the Sims until I had that gut realisation that I was trying to get them to grind out better lives, when I should just spend that time doing it for myself.

I also bought Shenzhen I/O, because the idea of being able to program in a game seems fun. But after reading more, I didn't end up playing it because it would involve too much study of how the in-game computers work, and I'd get much more long-term satisfaction from studying real assembly languages etc.

12. ◴[] No.43819740[source]
13. ZaoLahma ◴[] No.43819901[source]
When I was younger, early in my career, I coded to learn more about what I was doing at work. Pure career progression.

The older I get, the less I care about career progression and the more I allow myself to just use code to explore thoughts or ideas.

14. john_the_writer ◴[] No.43819928{3}[source]
blockchained api for AI with anti-mushroom (non-fungible) recursion.
15. Clubber ◴[] No.43819943[source]
>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?

I absolutely do. Money and power is a great motivator. I don't feel bad about any of it. I took my shot and continue to do so.

>What a miserable existence that must be. How do you get that way? Should we blame LinkedIn or what is it?

It was not. I made some good side money. I always joke that I program to feed my computer habit. The benefit of it is you actually code like you are making a product, and there is usually a big skill difference between someone coding for fun and someone coding to make an actual sellable product; it's the 80/20 rule. That last 80% is what separates the good from the great. Like Jobs said, "Real artists ship."

replies(2): >>43820153 #>>43829896 #
16. nicbou ◴[] No.43820066[source]
Coding is a small but very fun part of my business. I code for fun because I can afford to, but most people need to put bread on the table, so they must remain competitive.
17. nottorp ◴[] No.43820105[source]
Related: Historically, most "universal men" that greatly advanced science before the last 1-2 centuries were independently wealthy.
replies(1): >>43820779 #
18. onion2k ◴[] No.43820338[source]
What a miserable existence that must be.

This ignores the fact that people are motivated by different things. If you're someone who thrives on the intrinsic 'do this for the love and joy of it' motivation then you should absolutely just write code for the fun of it. But not everyone is like that. Some people need an extrinsic motivator to drive them to do things - that's usually money, or praise, or a punishment for failing. There is nothing wrong with either approach. Neither is better.

replies(3): >>43821092 #>>43821677 #>>43822430 #
19. leansensei ◴[] No.43820441{3}[source]
This is The Incredible Story of Deft... https://leanpub.com/deft
20. codebastard ◴[] No.43820525{4}[source]
That is from the viewpoint of the top 10% earners if you look at the european market or small / local business than you are looking at people doing the job of multiple departments and getting blamed if something does not work or for their salary if everything works.

And the salary is most of the time lower than anyone from the HR or Marketing department whose job if you are unlucky you also have to do because the tools they use are too complicated for them.

And if take the freelancer / remote work market into consideration everyone wants to pass all the work to the lowest bidder and some of them get lucky with skilled workers whose salary may be in the median considering their location after substracting the share of the middleman.

21. PhilipRoman ◴[] No.43820779{3}[source]
This also depends heavily on the field, some sciences need particle accelerators and mass spectrometers, meanwhile we can get by on a $200 pc and free wifi. This means you can bypass a lot of traditional university/lab structures.
replies(1): >>43829301 #
22. hombre_fatal ◴[] No.43820790[source]
Seems reasonable that you would struggle with the opportunity cost of your time when you're writing software for fun since you could also be working towards a greater goal of launching something that might make money.

Software is relatively unique because of the multiplying effects of software (without banking on a moonshot) unlike, say, carpentry or strumming a guitar. So the opportunity cost can be even higher.

You should always be cognizant of opportunity costs because they're always in play. And I can see that getting away from people, especially if you haven't already achieved your financial life goals.

I feel similar when I try to play a game in my 30s. It feels like a huge waste of time compared to something that would advance me towards my aspirations. But I think that's just part of being an adult. Just be aware of the trade you're making.

replies(2): >>43821118 #>>43829851 #
23. spicyusername ◴[] No.43821092[source]
I mean... one is definitely better...
replies(1): >>43823057 #
24. mibsl ◴[] No.43821118[source]
Being always cognizant of opportunity costs also has an opportunity cost in terms of mental health and life satisfaction.
replies(2): >>43821312 #>>43821564 #
25. Fripplebubby ◴[] No.43821302{3}[source]
> Tech needs to keep innovating to keep investors happy and keep investing.

It's nice to think that this is just a "tech" problem but unfortunately this is a wider problem in the rich world - it just so happens that "tech" has been the answer for finding huge economic growth for the past few decades. The whole economy is addicted to tech growth at this point (including your 401k if you have one, those of your your friends and neighbors).

26. hombre_fatal ◴[] No.43821312{3}[source]
Depends on what you do with that information, doesn't it?

I think you want to embody both awareness and acceptance. And probably make a deliberate choice in the matter instead of just drifting.

27. pc86 ◴[] No.43821449{4}[source]
100% - my friends who have only ever written code think it's a "hard" job in the objective sense. That among all possible jobs, it is on the difficult side of the spectrum.

I've been an EMT, a line cook, a dishwasher, a waiter, sold insurance, and worked on political campaigns. The easiest of all those is 10x harder than the hardest day of writing code.

It's frustrating at times, sure. There's office politics, sure. We probably have to deal with a disproportionate percentage of weaponized autism, sure.

But it is a cushy job and the "money per unit of effort" metric is off the charts compared to basically every other job I can think of, and definitely every other job I've ever had.

replies(2): >>43821742 #>>43822290 #
28. StefanBatory ◴[] No.43821564{3}[source]
I ended up on SSRI because of that, personally.
29. 59nadir ◴[] No.43821677[source]
While it's not wrong to be extrinsically motivated (it's not morally wrong, or a value judgment), it's definitely worse and more fickle (it will produce worse results in most cases). Intrinsic motivation is much more likely to lead to long-term growth even in the face of adversity and in general be more resistant to changing circumstances.
30. Izkata ◴[] No.43821742{5}[source]
I don't have much experience in jobs like those, but a family member who jumped between whole different professions for years does. He always got bored of them because, at least according to him, all of them had one failing: you learn everything you need in a couple of months or so, then it's pretty much just getting better at doing those things repeatedly.

Eventually he tried out programming and found there's no real end to the amount of things to learn. It was the only job he found that he wouldn't get bored on. He only eventually left because of bad bosses.

I think that might be the factor that makes it hard vs easy compared to others - that for a lot of people, continual learning (which they thought they'd left behind when they finished school) is why it might be harder than the other jobs ones you listed. Though I know I'd find those ones harder for other different reasons.

31. bigstrat2003 ◴[] No.43822290{5}[source]
Yeah, I definitely agree with you. Any time you see someone saying how hard it is to write code as a job, you can tell they've never had a "real" job. I grew up working on a farm every day - I would take programming every day of the week. Even on the days when I'm frustrated or dealing with difficult people, it's better than hard physical labor which wears down your body, is fairly gross (lots of poop!), and doesn't even pay 1/2 of what programming does.
32. retropragma ◴[] No.43822430[source]
Important to note that it's not a dichotomy as long as you're not an "extremist" of either side. Build for yourself and a big market. Take pride in competing at a high level. If you view "hustling" as an 'all work, no play' experience, you're engaged in absolutist thinking.
33. gh0stcat ◴[] No.43822469[source]
I went through this exact thing. I became so depressed and stressed out during my last real software development job, after making it to a pretty respectable senior software engineer. I quit as a life saving decision, and now it seems that those 5+ years I put in just don’t matter, as I had been getting to the final hiring stages and then getting passed up constantly. In the other hand, I have been able to get into graphics programming, painting, 3d modeling, etc, because I don't have to come home and force myself to learn the new frontend/backend framework, I have a lot less stress and I have no desire to get back into the hamster wheel of the tech world. I love creating and building, it gives me a reason to live, I now know that I was preventing myself from this very important life satisfaction, which led me to my huge career impasse/quitting my job. I think some of us are just not built for the hyper optimization and materialism of the modern corporate tech world. I err personally more toward the artistic side, and that quality is not appreciated by the vast majority of recruiters and hiring managers. Like you, I am hopeful for the future, but I also no longer hold the delusion that I can find life satisfaction through the job alone, as I so naively pursued before. It’s so much harder to measure success when its not based on those simplistic metrics like company status or income, but maybe that’s because it never should have been the concern. :)
34. Clubber ◴[] No.43823147{3}[source]
You've made a whole lot of assumptions in that reply, all from 10 sentences. Maybe ask some questions next time instead of making assumptions that fit your preconceived notions. Your intuition is a bit off.
replies(1): >>43823929 #
35. analog31 ◴[] No.43823327[source]
Some of us do. The hobby may consist of simulating the professional experience, but to a limited extent and on our own terms. For instance in my own case, I play an instrument -- the double bass -- and I perform sporadically. When I practice at home, I'm aware of the qualifications and competency of a professional bassist, I measure myself against those standards, and try to keep improving.

This doesn't detract from the pleasure of playing, at all. If anything, it gives me some structure and motivation. And I still don't mind noodling for a while when I need a distraction that doesn't involve a screen.

But I only count the money that I make, because I have to report it. ;-)

36. milesvp ◴[] No.43823642[source]
I am a firm believer that the brain has finite resources. It is fundamentally no different than a muscle, in that, the muscle has resources at its disposal, and using those resources causes them to deplete faster than they can recover. This means, that at best, you can optimize how you use your brain, similar to how you can optimize how you use your muscles. You can train, to get "more" out of your brain, similar to muscles. But at the end of the day, there is only so much your brain can do. I have found, through fairly good time keeping, that I can do ~6 hours of deep work in a 9 hour period. Maybe 7 in a 12 hour period. This is the amount that puts me at the edge of burnout, and requires no other commitments in my life. 4-5hours in a 7.5 hour day is sustainable. Others may be able to do more, or less than this, but many people are fooling themselves if they think they are doing good work that is also deep for more than this, for more than say 4 weeks at a time.

That said, if you can find ways to use very different parts of your brain... well, then you can squeeze out more performance. In the same way that in the gym, if you find exercises that isolate different muscle groups, you can squeeze more sets in throughout your workout.

I have seen this with people who can produce a lot of output, they tend to not do the same thing all day, but find ways to work on unrelated projects. So, I'm not terribly surprised that you have an urge to code now that your brain is focused on non code related things for a large part of your day.

replies(1): >>43824971 #
37. lcnPylGDnU4H9OF ◴[] No.43823706{3}[source]
> I can teach someone who knows how things work how to glue libraries together when/if we do need it, but I can't teach someone who glues libraries together how to make their own things; it's simply not worth the time or effort because it's effectively like starting from scratch and I may as well start with a complete junior in that case.

I just want to point out that this goes beyond an argument explaining how hobby projects can be useful and enters the territory of personal attack. I presume you mean that whatever they made is substandard in some way ("[gluing] libraries together" is nonsense criticism; everything in software is someone's abstraction) but I don't see why you would think that.

replies(1): >>43824128 #
38. betenoire ◴[] No.43823734[source]
I do both of those, it's a constant battle in my own head. I'm always reminding myself that it's ok to make music just for my own enjoyment, and that don't need a potential monetary angle for some hobby.

I'm not justifying this mindset, which preceded LinkedIn. I don't like it.

39. 59nadir ◴[] No.43823929{4}[source]
I think I was about as charitable as your post deserved, and I stated my assumptions clearly. You can either address them (and the bigger point) or choose not to.
replies(1): >>43830907 #
40. 59nadir ◴[] No.43824128{4}[source]
For any given singular project "gluing libraries together" is not a particularly interesting critique, but as a default way of doing things it is very relevant to the resulting skill levels of people as well as their respect for quality. I have enough experience with former coworkers to understand which attitude results in which and it's with that backdrop in mind I've written the post. I stated my assumptions pretty clearly and why I've made them as well.

I absolutely think gluing libraries together is a substandard default way of working that leads to poor results, by the way. "[...] everything in software is someone's abstraction" is a cop-out that ignores the massive gap that exists between finding the lowest level you can execute (in many cases an OS call that cannot be split up into a smaller part, or calls into the lowest API you can find like OpenGL, Vulkan, etc., where we have to play by a driver's rules) and executing a function in a library that calls a library that calls a library that calls the OS or the like.

Taking on the cost of countless layers of function calls, potentially manager code, etc., just because "everything in software is someone's abstraction" is, to use your phrasing, a "nonsense" excuse for poor work and not taking ownership of the code that will execute.

I have a former coworker that elected to use a tokenizer/parser library that clocked in at about 6k lines of Rust code, where I personally decided to simply write one in about 600 lines (in Odin, which probably is considered more verbose). The 600 line one was faster, used less memory and naturally was easier to understand (easy enough to understand for someone who literally had never written a tokenizer/parser before to use and extend). It's defensible to use a library for a tokenizer/parser, of course, because "everything in software is someone's abstraction", but do you see the problem here where we get worse software and no one ever learns how to make better things if everyone just decides to `cargo install` readymade solutions?

I'm not saying that my colleague could at that moment have written the Odin solution in this case, but he would certainly be more likely to if he implemented things from scratch as a way of practicing, or decided to otherwise take ownership of the code that runs in work projects.

replies(1): >>43826516 #
41. aleph_minus_one ◴[] No.43824701{4}[source]
> Software is the most cush job I have had. More money for less work. Better perks. Less stress overall. Constantly learning, yes. Often frustrating, yes. But having financial resources beyond what the other jobs could provide is a thing. Other jobs I could leave at work, sure, but others I couldn't. I would never go back to being a public high school teacher; that shit was the suck. So was selling stocks. Software is a dream in comparison.

The problem is: there exists a very specific group of people who do software development as a job who are really passionate and idealistic about software (that's why they actually got interested in software development and decided to do this professionally). For these people, the whole "politics" about software devlopment, bullshit project management processes, not being allowed to make use of their full potential and skills, and office politics is (thus) hell on earth.

I thus very plausibly do believe that exactly for people who are incredibly passionate about software development, other jobs (that are outside their passion) can actually (paradoxically!) be more convenient.

42. Arisaka1 ◴[] No.43824971{3}[source]
>I have seen this with people who can produce a lot of output, they tend to not do the same thing all day, but find ways to work on unrelated projects. So, I'm not terribly surprised that you have an urge to code now that your brain is focused on non code related things for a large part of your day.

Funnily enough, I do still code for the largest part of my day (10am-10pm, with lunch/dinner breaks + 1 hour of gaming/Reddit), simply because I'm starting my hotel job in 2 weeks, making me technically still unemployed.

43. lcnPylGDnU4H9OF ◴[] No.43826516{5}[source]
> I stated my assumptions pretty clearly and why I've made them as well.

The first yes, the second no. If you had a reason for the assumption, I think it would not be an assumption.

> I have a former coworker ...

One might assume you are thinking more about your former co-worker than you are about Clubber. They could make that assumption because you describe in detail an actual instance of what you complain about in the absence of any other such description in Clubber's comment.

Should they assume that? Even if they have reasons? Even if they're right? What does it add to the discussion?

I think you could have made a good point about their assessment missing the mark because I agree that the skills you write about are improved by "finding the lowest level you can execute" more than "coding to make an actual sellable product". Still, they might consider the latter to be no different from the former (the former is certainly a more precise description, regardless). Your story about the co-worker is a good one on that topic. It's unfortunate that the assumptions make your comments easier to dismiss.

44. nottorp ◴[] No.43829301{4}[source]
The point is not that they could afford expensive tools.

The point is that they did their research sort of "for fun".

45. alkonaut ◴[] No.43829851[source]
I still don't get it. What I want to do is make software as a hobby that can never be sold. If I start writing some boring SaaS software instead then I'm losing my opportunity to do what I like?

I think it must basically be a funamental question of goals/aspirations to begin with. I never had an aspiration to be e.g. wealthy, retire early, or make very senior positions within my company. Is that the difference?

46. alkonaut ◴[] No.43829896[source]
The big difference for me is that what's actually fun (hard technical problems like e.g. writing an OS kernel, a db engine, a path tracer, an LLM from scratch...) is mentally challenging, and might progress your career, but it's not actually in any way sellable.

To make something sellable, you usually have to make it not-so-technical and not-so-complex. Simply because of the time constraints of hobby work and solo work. Your effort would go mostly to the market analysis and your product would need more polish meaning that for a personal project, it would usually be trivial (You can sell a shopping list iOS app, but you can't easily sell a 5 year hobby project making an OS). The sellable OS would be a 500 man-year product. What yo do by coding a kernel for 5 years is possibly that you can improve the product that is yourself.

So unless you actually enjoy the goal of marketing/selling/running a business, then the Shopping list iOS app won't be a good hobby.

replies(1): >>43830882 #
47. Clubber ◴[] No.43830882{3}[source]
>The big difference for me is that what's actually fun (hard technical problems like e.g. writing an OS kernel, a db engine, a path tracer, an LLM from scratch...) is mentally challenging, and might progress your career, but it's not actually in any way sellable.

I'm not saying it's worthless by any means. I assume this would be the baseline. The benefit of making an actual sellable product is you learn how to finish, which is often a lesson not learned from hobbyists. It's fun to work on new tech, but if someone never learns how to make a product that can ship, their value in an organization is probably more limited than someone who can.

>Your effort would go mostly to the market analysis and your product would need more polish meaning that for a personal project,

It's the polish that's valuable, I couldn't care less about the business side of it, leave that to business people.

Let's use your example of working on the Linux Kernel. If Linus just made a kernel and said, "this is great!" we never would have had the GNU/Linux revolution. It was packaged and installers were created and distributions were made and it was eventually able to be installed pretty easily by anyone. That's making a viable product, that is finishing.

>To make something sellable, you usually have to make it not-so-technical and not-so-complex.

Sort of, you have to make a not-so-complex wrapper so other people can use it. The complexity is still there, but you have to abstract it so devs without that knowledge can use it. I feel that if no one else can use it, where's the value?

“The definition of genius is taking the complex and making it simple.”

Another simplistic example is I'm working on making a custom domain specific model. Getting it to infer properly is great (getting there), but the value to the company is to make it fast, wrap it in a usable API, get it to log useful errors, and integrate it into our software. The first is the fun part, the second is finishing to make it useful. That's value.

48. Clubber ◴[] No.43830907{5}[source]
Nah, not worth the energy.