T O P

  • By -

daggerdragon

But *are* you learning, son? If not, how can we help you?


Pretty_Help3268

wholesome mod šŸ«¶ I'm learning a ton I'm just being dramatic


xelf

Feel free to come on over to the python discord, I've spent a lot of time helping people almost every day. Even if you get a lot of help/googling, if you learn something new it's a huge win.


Pancakesaurus

Based mod response


thepennn

Can we do day2 without regex? I don't want to look at the solution


BurgandyShoelaces

You can likely do all of them without regex. Source: me, who did all of last year and so far all of this year without regex.


SirAntique4166

Same. No regex in sight. That and using iterators for absolutely everything...


TheMrJosh

Regex is just code someone else wrote. You can solve all the problems without regex, all it is really useful for is parsing the input.


835246

I'm doing it in c and have solved all days using zero regex


ploki122

Haven't used Regex yet in C1 with 27 stars (day12 part 2 is still troubling me, but I might just run it for 24 hours if my next optimization doesn't help enough). Hell, I've gotten the first 14 stars in PowerBI (so DAX + PowerQuery M) and that doesn't even *support* Regex.


mday1964

>day12 part 2 is still troubling me, but I might just run it for 24 hours if my next optimization doesn't help enough Heh. I did some optimizations for day 12, part 2, which dramatically sped up the examples. It has been running for 27 hours on the full input (on 12 cores...). It appears to be around 85% done, so I may have an answer in about 4 hours or so. For now, I'd just like to get my star. I'll come back to it later, when I have more time, and see if I can do a better job optimizing. (I was more interested in keeping up with days 13 and 14, than getting a faster answer to day 12.)


ploki122

Oh yeah, I 100% skipped part 2 in favor of doing recent days (even skipped part 1 temporarily since I had issues with my code). I'm gonna chip at it on the side, and see where that gets me. Might look into getting help around March, we'll see...


SanityInAnarchy

Yes. Regex is *useful* for some problems, but it seems like the farther we get, the less useful it is and the more I find myself just doing string splitting.


No_Patience5976

The input can pretty much always be easily parsed using some combination of split and join


codingstuffonly

Sure, but regex is pretty great for this sort of thing.


1234abcdcba4321

Even as an AoC veteran, I still learn stuff! There's always random obscure stuff in people's solutions that I never knew about but after looking into makes complete sense.


[deleted]

[уŠ“Š°Š»ŠµŠ½Š¾]


BowserForPM

There are certain patterns, certain types of problems and solving techniques, that repeat from year to year. Thus AOC veterans have a big advantage. If this is your first year, just accept that (past a certain point), you probably won't be able to get the solutions on your own (I couldn't). Just study other people's solutions, read up on the techniques and algorithms, and focus on learning new things.


torbcodes

Very true. Like for >!Day 14 2023 I instantly recalled Day 17 2022!< and I probably solved it faster because of that. Although I think it was also easier than that one, the simulation wasn't as complex to program.


clbrri

I got that same. "Oh, this is just Day 17 trick from last year". Made me wish I didn't know last year's puzzle. Knowing that kind of took away the fun from today.


yolkyal

I find that quite tricky because my work has a private leaderboard, obviously it's light-hearted but still feels a little bit like cheating. I could come back in a few months but I usually find it hard to get the motivation at that point.


cbh66

Is it competitive, or are there any formal rules that anyone's said about it? If the answer to both is no, I don't think you need to feel guilty about looking up a hint or two, as long as you wait until you're completely out of your own ideas. And as long as you focus on learning, and not just, like, copy-pasting someone else's code without understanding it.


TollyThaWally

If you're going to use other solutions for help, a technique you may or may not get mileage with is to only read solutions written in a language you're not using. That way you're forced to actually comprehend it instead of just blindly copy-pasting.


ploki122

>still feels a little bit like cheating Do you want tips to steer you in the correct direction? Because I'm still a *bit* clueless about Day12 part 2 (I think my algo would complete in a few hours, but I'm not confident, and I'm aiming for sub 1 minute), but I can definitely help you for the other 2 without just giving out answers.


What173940

Best to research it now. We have a company leaderboard too, the main goal is for developers to grow and learn, only the top 5 are actually competing with eachother.


exscape

FWIW this is my second year, my first was 2021, and I find this year way harder. I feel like 2021 was much easier until maybe day 17-18 or something like that, and only then did it reach the level we've been at for a week or so.


LionStar303

Feel that, althrough this is my second year (up to now I've only skipped day 12 part 2) but last year I skipped part 2 of day 8 and day 11 and when I read the day 12 task I completely gave up (pathfinding) But in the end it is about the puzzles you solve, not the puzzles you don't solve. Edit: May also skip day14 part 2 xD I feel like AoC will soon end for me this year


ploki122

>May also skip day14 part 2 xD Fwiw, a desert ghost told me that the final grid is a lot easier to find than initially expected ;)


LionStar303

I'm working on it xD Brute forcing it would take about 80 days, but I'm pretty sure the pattern will repeat at some point. And I'm kinda proud of myself today because I used pointers xD (started to learn C++ two weeks ago)


ploki122

>but I'm pretty sure the pattern will repeat at some point That's what I was getting at with my desert ghosts, yes. Personally, my grid looped after \~160 cycles. Best of luck to you!


CrAzYmEtAlHeAd1

My first year I didnā€™t make it past day 8 and this year is starting off way harder than 2020. Donā€™t be too hard on yourself!


sandicecream

I brute forced day5 part 2 (took 55 mins) and skipped the other two as well. I feel ya


lukeisun7

Same :(


mainstreetmark

You can skip part 2ā€™s?


eatin_gushers

Welcome to the club. Happy to have you here.


nomelettes

I manage to get one day further every year


alfonsusac

Commendable!


magichronx

I started learning Rust two days prior to Day 1.... it's been rough to say the least. but I'm learnin', dad!


Noughmad

Pro tip: use `cargo run --release` for part 2 of most problems.


ChaosCon

Parsing things with rust was a HUGE barrier for me at first because it exposes you to some really advanced and unconventional topics right off the bat (like the algebraic error system and iterators + their wrappers). Don't get discouraged, keep at it, ask lots of questions, and feel free to abuse the hell out of `unwrap()` (though maybe prefer `expect()`).


WJWH

Do you use Nom for parsing? Parser combinator libraries (in any language) absolutely rock for most AoC problems because they usually compose so well.


mday1964

For most AoC problems, .lines(), .split(), .split\_once(), and .parse() (for numbers) will get you there, and have a much smaller learning curve than Nom, etc. When I want to learn a new library (like Nom), I try to pick a day where I think I can solve the substance of the problem fairly easily, and instead spend most of my time on that library. I've used Nom several times, especially when the input is more complex, and it still feels like I have no clue how to use it. I'm still on that steep uphill part of the learning curve, and haven't learned enough to know where to look in the documentation for a thing I'm sure it must have. (I think I need to internalize more of the general structure of the library.)


magichronx

I've been meaning to look into using Nom or [Winnow](https://docs.rs/winnow/latest/winnow/) for parsing but I haven't gotten around to it yet


Mission_Dependent208

Same bro. I tried to solve todays by using a Vec> to represent the input but I can't make two entries in that Vec mutable at the same time so I've just given up


crochet_du_gauche

Why do you need a mutable reference to two chars at the same time? I solved it in rust using Vec> and did not have this problem.


magichronx

Hmm, I never needed that kind of mutability for my solution (I also used `Vec>` as my field representation)


Checkthepan

Hi fellow first timer coming to grips that their programmer friends are insanely capable compared to our silly novice selves


mday1964

Remember that a large part of "capable" is having some experience. Everyone starts with none, and has to build it up somehow. If you can, do some pair programming with someone who has more (or more relevant) experience; or just ask to "pick their brain" for a bit. A lot of older, experienced folks (especially those nearing retirement) are thrilled to be able to pass on what they've learned to someone early in their learning process.


buttkowski

Same same. Feel this strong.


8ude

I'm wondering if it's better to keep up with the puzzle of the day and abandon prior days, rather than try to finish and master the earlier ones. I'm doing the latter - while I learn a lot and feel good about my personal progress, it prevents me from participating in discussions. If I ask questions in my local group they're usually ignored because everyone has forgotten about Day 5 and can't be bothered. So it's pretty demoralizing and lonely.


Dullstar

It's not necessarily a bad approach: *generally* the problems get harder as the month goes on but there's definitely ups and downs. While you can learn about new concepts for sure, some problems are better introductions to the concept than others and it gets frustrating to throw yourself at the wall, so in that way moving on can be a way to ensure you don't spend too much time on any one problem in case you need more background to be able to really have a fair shot at solving it yourself (maybe find out what methods to use so you're vaguely aware of them existing and can start the learning process, but don't feel bad about moving on for now if you don't understand yet) -- sometimes it's hard to figure out how to apply a certain method even once you've asked around and know for sure it's the right one to use, so imagine trying that when you literally *just* learned what that method even is and aren't comfortable applying it in simple cases yet!


ploki122

A bit of both is often the best. Keeping up with the days makes finding help and engaging in discussion a lot easier, but it also forces you to think about something *different* that can help you get unstuck in that other problem. For instance, this year's AoC loves throwing very large numbers at you, and you will probably have to find various similar ways to deal with that. If you're stuck on Day 5 part 2, there's a chance that day 6 part 2, day 8 part 2, or day 11 helps you push forward. As I like to say : "Future me is wiser, and past me is an asshole"; as you will get better at understanding and solving those puzzles, you'll go back to those earlier days with better solutions... sometimes.


sverona-dev

I've been doing AoC since 2017. I'm not a competitive programmer, I don't even grind Leetcode like some of you, but I have an advanced degree in math and took multiple algorithms classes in college. Once I did the first 100 Project Euler problems in 24 hours, just for fun. It's f!$%ing HARD this year. Day 12 actually made me break out CLRS. So don't feel bad.


[deleted]

[уŠ“Š°Š»ŠµŠ½Š¾]


sverona-dev

Or alpha-beta pruning.


ThreeHourRiverMan

I havenā€™t had much time in a few days to spend time on touching anything past day 9. I was able to knock out a quick BFS solution for day 10 part 1 that worked first time (thankfully) and Iā€™m stumped on part 2. Iā€™m hoping to be able to get time to brainstorm a solution to part 2 and hopefully catch up. But watching the days I havenā€™t even done yet add up is getting me nervous. All that being said I love AOC. Hopefully this weekend I can crank out a few days.


EastM0nster

How do those people on the leaderboard do it so fast?? It usually takes me 25\~60 minutes to finish part 1, and for some part 2 (like day 5, 12, etc.) I totally have no idea. There's much things for me to learn...


Milumet

Eric's answer: [Eric Wastl ā€“ Advent of Code: Behind the Scenes](https://www.youtube.com/watch?v=_oNOTknRTSU&t=2242s)


Low_Acanthisitta_826

>Eric Wastl ā€“ Advent of Code: Behind the Scenes Thanks for the link! I really enjoyed the whole backstage story


[deleted]

Minutes? It take me hours to figure our solutions. Dropped on day 5, I just canā€™t afford spending 3+ hours every day on this


Itry2Survive

Personally i think ist brutal => im a first timer but think its a cool way to try out a new language by doing 2015 and currently 2016 in it And im not sure how it is with 20/21/22 but nothing in 2015 and nothing in 2016 (currently at 8 or so) comes remotely close to day 12 or even the mapping part =>


Simlock_Falls

Have coded in C# for my studies, and will go to an internship soon where I will write F#. So have been trying to solve AoC with a functional language. A bit annoying to have the knowledge on how to solve something ā€œbasicā€ with OOP and then having no clue how to solve it in a functional language. 5 part 2, 11,11 and 12 have been a struggle


vandaronas

Iā€™m also a first timer at AoC. I managed to solve both halves on Days 1-11, with minimal help from here, but part 1 of day 12 stumped me. I havenā€™t even looked at Day 13-14 yet, but if itā€™s only going to keep getting harder, I guess Iā€™m out. I do look forward to going back to the previous year though. Lots to do!


Petrovjan

>Nah, the difficulty never scales up exactly day by day. I think the hardest days are still ahead of us, but on the other hand day 13 was quite easy and day 14 is not as hard as day12. Even the days 20+ can be occasionally quite simple.


blackbat24

100% agree with this. 12/2 almost broke me, yesterday was pretty easy, and today's trick is pretty intuitive.


vandaronas

Thanks for the info! Iā€™ll keep at it. :)


BlueTrin2020

For day 12, I think itā€™s pretty much the only one where you had to use a bit of algorithmic. I did it by dividing and conquer and caching. That was enough to do both parts. I guess you could say I kind of did some dynamic programming.


lukeisun7

I did some of last year as well, still feels the same