top | item 43903003

(no title)

PixelForg | 9 months ago

Hopefully the future me is able to relate to this, because I really feel like I'm in a rut when it comes to working on personal projects.

I have many ideas that I want to build, but I'd have to learn new languages, yet I just can't sit and go through the documentation every day like I should. Still haven't finished the rust book.

The other way is start building already, and if you come across a block, then learn about that thing and move on, but I feel uncomfortable having gaps in my knowledge, AI exists but I don't want to use it to generate code for me because I wanna enjoy the process of writing code rather than just reviewing code.

Basically I'm just stuck within the constraints I put for myself :(, I'm not sure why I wrote this here, probably just wanted to let it out..

discuss

order

maxbond|9 months ago

I like to say programming is about knowing which rabbit holes to plunge down and which to step over. There's too much to know to go depth-first down every rabbit hole. Go breadth first and accept gaps in your knowledge - everyone has them. If something never comes up and never causes an issue you need to look into, and the project gets done, it doesn't matter. There's always an improvement that could have been made, but done is better than perfect because perfect never gets done. But the projects never getting done or even started - speaking for myself, that is corrosive to my motivation.

I've written a lot of Rust. I've read less than half of the Rust book. Your competence in Rust is a function of how many lines of Rust you've written; getting to the point you can start working with it is more important than completing the book. Jon Gjengset's videos were really critical for me there, seeing how he worked in Rust made it possible for me to develop a workflow. (I broke down what I learned in more detail at one point [1].)

Rust is an example I've honed in on because you mentioned it and I related to it, but this is broadly applicable. Dare I say, more broadly than just programming, even.

(Also, note that I'm a giant hypocrite who shaves yaks and struggles with perfectionism constantly. I learned Rust 5 years ago to start a project, and I've written 0 lines of code for it. If I sound critical, that's my self criticism leaking through.)

[1] https://news.ycombinator.com/item?id=38020654

PixelForg|9 months ago

Thank you for your comment, especially for this

> I've written a lot of Rust. I've read less than half of the Rust book.

Just knowing that there's someone out there who has worked like this or has been in the same situation gives me enough confidence to go through it!(the just write code part)

I've gone through so many resources (including the book) and I never managed to finish any of them. But I think now I need to get comfortable with having gaps and just start writing code and not be afraid of writing non-idiomatic rust code, atleast for now.

vanjajaja1|9 months ago

> I like to say programming is about knowing which rabbit holes to plunge down and which to step over.

I like this a lot. I told someone once I avoid documentation like the plague and it just didn't have the same poetic ring as this line.

Sometimes you need to dive in, other times you need to hobble together something to step over

jerf|9 months ago

I think another important view is to consider how much you've already covered. As a young developer, I recommend spreading a bit wide. Try many technologies. Play with a new language every year. Focus on things you haven't done before, like, don't go from Python to Ruby, go from Python to C# or C++ or something.

But as you get older you want to shift from exploration to exploitation. It is hard to make progress on anything, both professionally and personally, if it first comes with another couple of person-weeks of learning something new, let alone person-months. Even though I find learning new things easier than ever because of the breadth of things I have covered, I find myself having to be ever more skeptical of what I will invest in in that way, because unlike a fresh developer with no skills who has little better to do than learn their toolset, I have skills that can be exploited to good effect. As a mature developer, I need to trade off not so much "what might this be useful for in the future versus the effort of learning now" but "what could I be doing right now with the skills I have rather than learning something new".

Particularly when the "something new" is a variant of a skill I've already picked up. It'd be great if I never again had to learn a devops deployment system. I've already had to learn three. Unfortunately I doubt I'm going to get away with that. It'd be great if I didn't have to learn another scripting language to do something, but I doubt I'll get away with that either. Your mileage will absolutely vary but it'll be something.

I know there's a memeset of the "old fogey who doesn't want to learn", but I really do see the learning costs now as the opportunity cost of using that time to exploit the ones I already have, rather than just grumbling about learning in general. At the moment the things I can't escape even if I try have been plenty to keep my learning skills well-honed.

So bear in mind that as you round out your skills, as you cover "scripting" and "static language" and "database" and "HTML" and "devops deploy" and "shell scripting" and "functional programming" and all the other categories you may pick up over time, it is natural and desirable to pivot to exploitation being more of your time than learning.

After all... what is all this learning for, if not to exploit the skills to do something, not just learn the next skill, then the next, then the next?

liefde|9 months ago

What you're feeling is not laziness. It's the quiet ache of misalignment between your values and your current energy. You love the craft. You want to savor the process. But the weight of “shoulds” — finish the book, learn the language, do it the right way — has turned your joy into pressure.

The discomfort of having gaps in your knowledge is not a flaw. It’s a sign of integrity. But perfectionism disguised as discipline can become a cage. You’re not stuck because you lack ability — you’re stuck because you’ve built a narrow path and called it the only way forward.

There is another way: give yourself permission. To build messy. To learn sideways. To follow joy, not obligation. To trust that your curiosity is enough.

You wrote this here because something in you is ready to shift. You’re not asking for advice. You’re asking to be seen. And you are.

shoemakersteve|9 months ago

Damn, not only is this great wisdom but your writing is honestly beautiful... Are you a writer by any chance?

kunley|9 months ago

Very well said, to enjoy the process of writing the code.

I don't understand why so many people suddenly started to insist on taking this all away, and they totally seriously proposed to become a janitor of a hallucinated output of some overhyped tool. That's the most frustrating thing one can imagine about programming, yet people insist on it.

CivBase|9 months ago

I don't want an AI to write my code. Coding is one of the only things I enjoy about my job and I barely get to spend any time doing it right now.

6LLvveMx2koXfwn|9 months ago

And even if it is correct output from said overhyped tool it still detracts from the enjoyment of building/fixing stuff. I used to love going over the code I wrote to fix a specific issue, now not so much as half of it was written by AI so half of the satisfaction has gone too.

throwanem|9 months ago

> I feel uncomfortable having gaps in my knowledge

Understanding why I feel this, when I have, has always proven enlightening. I find it never has to do with the gap or what would fill it.

wonger_|9 months ago

Same. For me, I think the discomfort comes from perfectionism, and anxiety about job-hunting ("I need to fill in all my weaknesses"), and fear of missing out on some cool niche.

funkydata|9 months ago

Don't be hard on yourself. We're in the same boat.

There is two things I validated from reading Barbara Oakley and Kató Lomb is that a) it's okay to be a slow learner b) it's okay to learn differently.

Just do your thing.

sanderjd|9 months ago

Hey! I relate to this! And thank you for sharing.

This happened to me when I was going through a similar transition as the OP is highlighting. At first, creating software was difficult and novel. Then after getting over that first learning hump, I spent a pretty long time feeling drunk on the power of being able to get computers to do exactly what I want. But familiarity breeds contempt, and eventually it felt more like "this is it?" and the pure act of creation for creation's sake lost a lot of its appeal.

I think this is a pretty common transition! For me, the path out of the doldrums is two fold: 1. I have a lot more going on in my life now that has nothing to do with computing (mostly family, but also other interests), and 2. I'm a lot more focused on what I'm creating and why it's useful than in the act of creation itself.

This almost certainly not what you want to hear, but this is why the quickly developing gen AI tools are increasingly exciting to me. I believe they open up the world of what can be created within a given time constraint. They also definitely (at least for me) make the act of creation itself less enjoyable, and I lament that. I'll probably always feel nostalgia for how I felt about the craft of programming a decade or two ago. But my perspective has just shifted from the "how" to the "what".

nonrandomstring|9 months ago

You have "epistemic integrity'.

I heard someone say "epistemic humility" the other day to mean fallibilism [0] and the conversation got interesting when we moved on to the subject of "what one can and should reasonably claim to know". For example: should cops know the law?

Not every programmer needs to be a computer science PhD with deep knowledge about obscure data-structures... but when you encounter them it's a decision whether to find out more.

Integrity is discomfort with "hand-waving and magical" explanations of things that we gloss over. Sure, it's sometimes expedient to just accept face-value and get the job done. Other times it's kinda psychologically impossible to move forward without satisfying that need to know more.

Frighteningly, the world/society puts ever more pressure on us to just nod along to get along, and to accept magic. This is where so much goes wrong with correctness and security imho.

[0] https://iep.utm.edu/fallibil/

lelanthran|9 months ago

> I have many ideas that I want to build, but I'd have to learn new languages,

Why? Why, specifically, do you "have to learn new languages"?

So, sure, I can see that, for some product, you might need to learn a new tech (say ... some specific AWS/GCP/Azure service), or perhaps a new configuration language (YAML, TOML, whatever).

And, sure, for some ideas (for example a mobile phone app) you're forced into that specific ecosystem.

Other than the mobile exception above, why do you need to learn a new language to build your idea? There is nothing stopping you from implementing your idea in (for example) Python. Or Javascript. Or Java, C#, C++, etc.

A programming-language-barrier absolutely does not stop you building your idea.

You gotta make the call - are you interested in building $IDEA, or are you interested in learning $NEWLANG?

PixelForg|9 months ago

> There is nothing stopping you from implementing your idea in (for example) Python. Or Javascript. Or Java, C#, C++, etc

Except there is, my brain :), that's one of the constraints I'm talking about, I'm a frontend web dev and I only know JS/TS, and like some frontend web devs, I'm enamored by Rust because it seems so different. I already use JS/TS at work so I want to use something else for my personal projects. So I definitely would have to learn something new.

> You gotta make the call - are you interested in building $IDEA, or are you interested in learning $NEWLANG?

If I was only interested in building my idea, I'd have just used what I know and used AI to accelerate the process. However for me the journey is also important, I want to enjoy thinking and writing code (and this project is something only I'd use, so there's no hurry to release a prototype). The problem is I want to start writing code right away, but that has the issue that I've mentioned above (gaps in knowledge).

Nobody is at fault, other than me for setting these constraints for myself. I know the solution is to just suck up and go through the rust book, read a chapter daily and eventually I'd have all the concepts in my head that I can then just focus on writing the code. But whenever I go about doing this, my mind always persuades me that there must be a better way, or it finds some flaws in my current approach and so on. So I need to learn how to not listen to my mind in such cases, and stick to the goal that I set.

Edit - After reading a reply to my comment, I've decided to just start writing the code and not worry about having gaps, anytime I start having doubts again, I'd go through this comment thread

dakiol|9 months ago

I guess it depends. If they have been developing mobile apps, and now want to develop a web app, then they definitely need to learn something like PHP, or Go or Python kr Java. On the other hand if they have been doing web development and now want to develop a native app, they must learn Java/Kotlin/Swift. Same for databases (perhaps you never worked with one, then you must learn sql). Even html+css must be learned if you never used them before.

dspillett|9 months ago

> Hopefully the future me is able to relate to this, because I really feel like I'm in a rut when it comes to working on personal projects.

I've been there for a decade or more. It is part of my recent burn-out…

The trick is to prioritise and not care too much about too many things, to avoid the choice paralysis in choosing what to do next. Unfortunately I've not mastered that trick yet, or even come close. In fact I'm increasingly of the opinion that dropping tech projects completely, accepting that is no longer a hobby and no longer something that will ever bring me joy again in future, is the prioritisation I need to perform, so I can instead have more mental capacity for other hobbies (and, of course, commitments in life).

You are far from alone in this trap!

allenu|9 months ago

As someone who's worked on lots of personal projects over the years, the constraints you put on yourself are really a major blocker. I used to spend more time planning rather than doing, but at some point something clicked in my head and I realized that I was just avoiding imperfection and doing things "wrong" by constantly researching and planning how best to do things.

Once I was okay with maybe doing things wrong and just hacking things together, it really unlocked my productivity. In my case, my perfectionism ended up being an excuse to procrastinate and avoid the pain of failure, but once I was okay with failure, everything else got easier. Even if I don't know how to do something, I'm more confident that I can plow ahead and figure out how to handle unknowns later.

Momentum is a big thing as well. Once you start having bits and pieces of your idea working, you'll quickly find a way to overcome knowledge gaps because you are hugely incentivized to see more of your vision become a reality. If you don't have anything working yet, it's much harder to motivate yourself to just read up on how some tech works because it doesn't necessarily translate to something immediately working.

monkeyelite|9 months ago

To me this doesn’t sound like you find programming very fun - but as a chore to get to something else.

That’s not a bad thing - just find out which part you actually want to do

strangegecko|9 months ago

Responding to this as someone who has struggled with similar inner conflicts, the "chore to get to something else" rings true for me.

In my case, being good at programming was my means to feeling valued and valuable, and the sense of "I should" came from feeling useless and not needed, specifically after being forced into early retirement. (but the same pattern has been with me since childhood)

Not having a family or passion project (which fills those gaps for many people as far as I can tell) made all of this feel very urgent and threatening.

> which part you actually want to do

Which sounds like such a simple question, but I found it hard to answer. For me, it quickly turns into "what is worth doing", which is a bit of a monstrous question. I'm still trying to figure out whether this is a result of being mostly estranged from myself and the question of "what do I want" due to being so overwhelmed with trying to succeed with the external constraints and demands the world places on us.

hinkley|9 months ago

There was a recent study that suggested that some people are good at solo projects and some at team projects. And not so many that are good at both.

nico|9 months ago

Maybe try using AI to jumpstart your process and get the basics up and running

For me, it’s brought back the joy of coding and building things: I feel like I was in a rut for years before that

Also, finding people to share the stuff with helps a lot too. Even if they are personal projects, it’s nice having others to show it to, appreciate it and give feedback

rmonvfer|9 months ago

I very much relate to this feeling (and I haven’t finished the rust book either!). In my case, I do use AI a lot (especially o3 and Sonnet 3.7), not to write code but to help me understand things that would’ve taken me a week, in a matter of hours (the conversational aspect is a game changer for me).

jrib|9 months ago

My advice would be to build with what you know.

Even if you need to really shoehorn a component of the system in, just make a note about it and keep building. When you're done, you can go back and focus on replacing that one piece.

My view is that you learn a lot through the process of building this way.

theptip|9 months ago

You’re getting a lot of advice here, I’d just echo the sentiment of trying to give yourself permission to have fun.

In my experience the best way to learn is by doing; that “uncomfortable having gaps” is there for most folks to some degree. That mild discomfort is a good indicator that you are in the growth zone, maybe you can shift your perspective to perceive it as a positive signal.

AI is also great to ask questions and accelerate the process of learning a new language, but if you’re doing this for the craft then you are free to choose the constraints and rules that make it fun.

tpoacher|9 months ago

You are not alone. I feel the same way.

xandrius|9 months ago

Just for info, you can use AI to teach you the code fundamentals you're lacking, not just to write the code for you.

Say, you have to use a new IDE and don't know how to use it, ask the LLM the steps to perform whether action your want to take.

The worst you can do is nothing at all.

speedupmate|9 months ago

Don't code, validate your ideas first (to first 1000 paying customers if monetization motivates) and 99% is not even worth to be started with, life is just too short for that.

With AI there's nothing to be ashamed of as it is "what you can dream of, you can get today". There's not much left in programming in most of the projects (that are just repeated code, output, what not over and over) after AI , tools are just too powerful today.

brulard|9 months ago

This is so much out of touch with reality. You somehow assume OP is interested only in profitable projects and that idea validation is easy. It's not. For technical person it is much easier to code a prototype/mvp than to try to get potential paying customers by any other fake landing page means. 1000 customers? You are dreaming.

rcfox|9 months ago

How do you validate an idea with 1000 paying customers if you don't have a product?

linsomniac|9 months ago

Try vibe coding, I'm serious. Codex and Claude Code this past week have allowed me to:

- Build a local storage web app that can track my responses to the Sino-Nasal Outcome Test over time to journal my ongoing issues with chronic sinusitis.

- Build a web app that grabs Northern Colorado houses for sale, presents them on a map, and lets you search and browse them, with everything being cached for use offline in local storage. The existing site, coloproperty.com, has severe issues if you are out looking at houses and have spotty Internet connectivity, it's effectively useless.

I've been developing software for 40 years, but I'm not really a frontend guy. The first one Claude Code was able to basically one-shot, and then I asked for 3-4 refinements. The second one took me probably 40 back-and-forths to get going, but eventually was a fully working prototype using Codex.

It's the difference between using hand saws and chisels and planes, and using power tools. Hand tool woodworking is an amazing craft, but the right power tools can let you build nice things quickly.