this post was submitted on 24 Nov 2024
40 points (93.5% liked)

Advent Of Code

981 readers
36 users here now

An unofficial home for the advent of code community on programming.dev!

Advent of Code is an annual Advent calendar of small programming puzzles for a variety of skill sets and skill levels that can be solved in any programming language you like.

AoC 2024

Solution Threads

M T W T F S S
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25

Rules/Guidelines

Relevant Communities

Relevant Links

Credits

Icon base by Lorc under CC BY 3.0 with modifications to add a gradient

console.log('Hello World')

founded 1 year ago
MODERATORS
 

Last year I used mainly crystal. This year I'm thinking pharo smalltalk, if I can pick it up in time

I also want to do visualizations, not sure how possible that is with smalltalk.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 8 points 1 month ago (2 children)

New Years resolution the past 5 years: I will get better with Rust.

...and I do get better but somehow it always feels like it's not enough. Like, I'm still an imposter.

I can program an entire embedded USB keyboard/mouse firmware from scratch that can do all sorts of things no keyboard has ever done before yet I still feel like a newbie somehow. Like there's all these people that talk about traits and mutli-threaring with async and GPU and AI stuff and I'm like, "I wrote an embedded_hal crate that lets you use both 8 and 16-channel multiplexers simultaneously!" or, "I wrote an interface that let's you use the extra space in your RP2040 flash memory as a filesystem!"

Yet everything I ever write in Rust always just uses the most basic and simple features because I still have trouble with complex lifetimes (passing them around quickly gets too confusing for me) and traits that work with non-basic types (because in the world of embedded 'static is king).

[–] [email protected] 6 points 1 month ago

Good news: if you’re writing #Rust and only using basic features of the language, you’re doing it right.

People who use the advanced stuff either have unique, interesting challenges, or they’re over-engineering. Since the former are overrepresented in the blogosphere, you’re probably comparing yourself to them. But just because their problems are interesting doesn’t mean yours are not! Nor does it mean you have to use the same solutions.

If you can solve interesting problems (it sounds like you can!) and keep the code simple, more power to you!

[–] [email protected] 5 points 1 month ago (1 children)

Maybe you should work more on you self-esteem instead of rust?

Doesn't seem healthy to be good at something and not recognizing it as an accomplishment.

[–] [email protected] 4 points 4 weeks ago* (last edited 4 weeks ago) (1 children)

Haha, well... I have plenty of self-esteem but not Rust-specific self-esteem. I still have imposter syndrome with that language.

I'm a top notch expert in Python and JS though! 😁👍

I wrote PyMinifier which required such a deep understanding of Python it kinda broke my brain writing it for a while, haha. I eventually figured everything out though and got an even deeper understanding of the language and its features.

For JS it has just been years and years and years of knowing 100 ways to do what I want in JS but none ever seeming to be, "correct". Then eventually I realized there's no best way to do basically anything in JS and that's when the true enlightenment came 🤣

If you look at anyone's JS code and think to yourself, "ugh, there's got to be a better way to do this" chances are you're wrong. All the ways will be equally shitty for any number of different reasons! 😆

[–] [email protected] 2 points 3 weeks ago (1 children)

I am glad to hear that :) I have friends who don't cherish their accomplishments so maybe I was just in that headspace. Sorry for assuming.

Yeah, I started to learn to code with JS and the whole thing seemed to be, and I don't intent to be insulting, amateurish. Not something I would expected from engineers who try to be efficient and pride themselves with that.

Kinda lost interest in the whole thing because everything seemed so needlessly complicated and fast changing.

But a few weeks ago I started to pick up rust and it seems to have a lot more thought put into it.

The installation process is straight forward, the compiler pretty much tells you what you did wrong, tools are easy to set up and the name of the language is cool^^

[–] [email protected] 1 points 3 weeks ago

fast changing

This happens because JS is such a shit language! There's no best way (or even good way) to solve any given problem. This results in everyone reinventing the wheel every goddamned day.

Someone like you and me thinks to themselves, "this is such crap!" And they're right! 🤣 So they come up with a new way of doing things that's just a little bit better and they post it publicly.

Then some huge amount of new JS developers (there's always a steady stream) and a few old ones think, "hey, this isn't a bad idea!" So they start using the new thing. Then it becomes the hot new thing and suddenly huge amounts of JS code is depending on it.

Then people start to realize that this new way doesn't quite work so well in certain situations so they add on to it by making new utilities/GUI libs. Others see the wisdom in this and adopt these new tools.

These new "solutions" build and grow in complexity until new JS devs working with the new paradigm think, "this is such crap!" And they're right!

😂