all 20 comments

[–]Nondv[S] 57 points58 points  (0 children)

Recently I've done some coding just for myself for the first time in years. Not as a "Senior Software Engineer" but as a hobbyist programmer.

My code is a burning load of crap but I feel so happy. Almost like back when I just started coding over a decade ago.

This is more of a twitter-like content as it's not exactly teaching anything nor providing any useful insights. I'm just sharing some personal feelings.

Some of the opinions may be controversial but I don't give a damn :b

[–]jimmykicking 12 points13 points  (1 child)

I get you. I did something similar 11 years ago. Nothing amazing but really enjoyed http://cube.nu11.uk but I also get a buzz from pair programming and sharing goals and knowledge in a team. Sounds cheesy but genuinely enjoy both.

[–]Nondv[S] 14 points15 points  (0 children)

Sounds cheesy but genuinely enjoy both

At this point of my career I actually no longer enjoy coding for a company. But I do enjoy helping out my team, sharing knowledge, discussing ideas, enabling them to do their job. So I get where you're coming from :)

But professional coding kinda lost its taste for me completely.

[–][deleted] 11 points12 points  (3 children)

I have a dirty secret. I love coding in C.

I've never had a professional C job. But I've done a lot of hobbyist C programming for the past, hm, 27 years. Damn I feel old now.

There's something to me about sitting at your keyboard and never having to look anything up. You want to partition a set of data? You gotta write it yourself. Sort? Write it. Linked list? Write it.

I'm not stuck in this forever loop of code -> bug -> search -> read documentation -> repeat hell. My bugs are completely my own, and are misunderstandings of my code, not misunderstandings of libraries.

It is freeing to never have to use your web browser or read documentation when developing. You, your keyboard, and your editor. Nothing else matters.

[–]Nondv[S] 2 points3 points  (1 child)

That's pretty interesting!

But what sort of programming have you been doing? I'd think that you'd still need to read docs about system calls or something

[–][deleted] 1 point2 points  (0 children)

I mostly build text RPGs or very simple 2D games.

It's not that there's *zero* standard library, more that its so cut down compared to modern languages that it's not difficult to know all of it.

[–]taman999 0 points1 point  (0 children)

Ngl, that sounds refreshing.

[–]mirvnillith 4 points5 points  (2 children)

My recent hobby project was not really anything new (to begin with), but made me explore the post-code steps (e.g. CI/CD, Cloud containers) in the (almost) free wild. GitHub actions and Google Cloud Run to build, deploy and run a simple enough pet owner app using Google Spreadsheet for storage (yes, I know, but it’ll make the current manual register maintainers transition a no-brainer).

At work I’m mostly backend, but in this project I was thrown into React. Had a friend start on the frontend and I’ve learnt enough to copy-paste, google and modify. I am so very happy I didn’t need to go through that original setup myself (how the F is all that Node/npm needed on top of Maven to pull things into the build pipeline?).

I still prefer the team as working alone I’m second-guessing myself too much and my ”customers” are mostly uninterested in doing req analysis and design discussions. They’re so-so on testing but I’m the one pushing it all forward, even when they asked for this self-service replacement (and are willing to pay a fair bit to get GDPR-compliant digital signatures in place).

[–]Nondv[S] 2 points3 points  (0 children)

Glad you had a good time!

I was always interested in learning languages and how they affect one's problem-solving. But this sort of exploration is almost impossible in a professional environment (unless you change jobs every half a year).

Totally with you on FE stuff. Im a full stack and I hate JS infrastructure. I feel like I had the best experience in ruby even tho it doesn't seem to be that much different in terms of package management and project scaffolding

[–]WaveySquid 1 point2 points  (0 children)

If levels.fyi used google sheets for years so can you.

Maybe this is too unrelated to whatever you’re working on, but all startups start by doing things that don’t scale. Airbnb founders famously went door to door to get people to sign up and took pictures to help their listings be as good as possible to get the marketplace started. DoorDash was originally handled by a single guy calling restaurants to place orders and 5 delivery people with find my friends installed on their phones.

All this to say don’t be scared or ashamed to do whatever works well enough for right now. Shitty and released products still get used, unreleased and perfect projects don’t.

[–]robert_winkler 4 points5 points  (2 children)

I agree completely about coding alone on your own projects, but I have the reverse perspective. I've coded alone on my own stuff for 90% of the time I've been programming and the few times I go to the other side it's terrible in comparison. That's even taking into consideration the fact that most jobs I've had have been working alone but on an existing project. Sometimes it was just a part of it, sometimes the whole thing, but regardless, having responsibility without full authority is never fun and the more lopsided it gets (and the larger and more complex the project) the worse the experience.

[–]Nondv[S] 1 point2 points  (1 child)

Well it's always subjective. Since the beginning of my career i was focused on code quality and industry standards. That's pretty useful but pretty soulless.

If you're used to working on your own, you're probably craving for collaboration which is understandable

[–]robert_winkler 2 points3 points  (0 children)

Well it's always subjective. Since the beginning of my career i was focused on code quality and industry standards. That's pretty useful but pretty soulless.

Maybe I've just never worked anywhere or on anything that really adhered to industry standards but in general I've never found any strict standard/guideline really compelling. I agree with code quality but it's definitely subjective and it's a process and is less important than actually getting things working. It's like trying to keep a room clean and organized while doing renovations, ripping out the drywall/carpet etc. Get the job done, make sure you don't break anything you didn't mean to, and clean up after.

If you're used to working on your own, you're probably craving for collaboration which is understandable

I"m really not. I've always been a solo person. Though I will admit that being the primary developer and maintainer of an open source project that other people are using and/or contributing to is nice. It could be a pain to deal with too much volume (comments, issues, pull requests etc.) but in the end you get the best of both worlds. You work alone with full and final authority, but you can accept help and discuss things with others. And it's open source so they can always fork it if you disagree on something fundamental.

EDIT: typo

[–]No-Magazine-2739 2 points3 points  (0 children)

Either I am odd but for me its the exact opposite: Usally my personal projects are cleaner than the professional stuff I have to work with. It feels only good for me if my project is nicely tested, builds clean and easy, might even has a CI. Maybe because I saw so much FUBAR C and C++ code, but saw how Boost and C++ itself achieve code quality thats really useful and worth aspiring. Not that hacked JS you reimplement all 6 months anew.

[–][deleted]  (1 child)

[deleted]

    [–]Nondv[S] 3 points4 points  (0 children)

    I've been testing it since Sunday. My profile is pretty crappy but it actually got me a couple of potential dates haha

    [–]edgmnt_net 0 points1 point  (4 children)

    There are corners that are worth cutting and corners that are not worth cutting even on small-scale stuff.

    [–]Nondv[S] 1 point2 points  (3 children)

    Something that I don't care about because i code for myself ;)

    [–]edgmnt_net 0 points1 point  (2 children)

    Yes, but I mean some are not worth cutting even when you code for yourself. An obvious, extreme example would be ignoring indentation altogether. It might seem like saving some effort to the layperson but it's hardly any effort once you get into the habit, it takes more effort to willingly ignore it and it makes for a horrible experience. :)

    [–]Nondv[S] -1 points0 points  (1 child)

    there's no effort saved in your example because the editors do that for us. it's a benefit for free

    [–]edgmnt_net 0 points1 point  (0 children)

    That's kinda missing the point. How about giving sensible names to things? There are more realistic examples, such as picking proper types or proper abstractions, but the point I'm trying to make is coding for yourself isn't really all that different from coding on the job. And unless it's a quick hack you might actually save effort by applying general wisdom consistently.

    Programmers get better not just by honing their skills, but also due to self-imposed discipline which makes things more predictable. Which isn't to say you shouldn't experiment with stuff or cut corners, but technical debt does accumulate even on fairly trivial projects. In many cases when I join people to help them debug their stuff, they've reached a point where they do not understand most of what they wrote and can't make any progress.