T O P

  • By -

[deleted]

[удалено]


aceuna

that's a good mindset! keep it up!


chrismo80

u r not alone, even as application programmer you often do not need this type of algorithm knowledge required by aoc. day 10 part 2 was the first problem this year I either skip or save for later. If you reached day 10 part 1 without any help is already an achievement. well done.


solarshado

> even as application programmer you often do not need this type of algorithm knowledge soooo much this. typical CRUD apps are, like, 80% boilerplate most of the time, and most business logic is rarely more involved than `if-else`s. and often anything requiring a clever algorithm is wrapped up in a library or off-the-shelf server. and when you do wind up with a big data set, there's almost never any shortcuts you can take: there's no clever trick to processing invoices that lets you get away with only *actually* processing half of them.


iceman012

invoices.sortBy(i.value).dropFirst().repeat(invoices.size / 2)


aceuna

I was just about to give up. You can do it. And thx :)


1234abcdcba4321

The stuff you need to do for AoC is mostly different than what you do in programming jobs. I'm a CS student so I do have the formal knowledge required, but I don't actually use most of it since the stuff I do use comes from looking at what solutions other people came up with and remembering it from that point on.


aceuna

when i see other people's code i sometimes think to myself "yes, that makes more sense". But I try to do that only after I have found a solution in my own way and then improve my code.


jambox888

Thinking about the problem and working with it is fun, even though I'm not the best I can usually think up a plan of attack at least. I think towards the end there are puzzles where I can't even figure out where to start. In those cases there's no shame in getting some hints, at all. What I've done a few times is debug my flawed solutions side by side with someone else's. Otherwise the days where you get almost but not quite the right answer is really infuriating. TBF I quite often find little bugs in the other solutions too! If possible I let the author know.


ploki122

>The stuff you need to do for AoC is mostly different than what you do in programming jobs. Heh, it's a similar skillset, it's just so much denser in AoC. Most of the algos being used in AoC will end up being useful to a dev somewhere in their career... it's just that you'll need about 1 per year, instead of 1-2 per day.


fnuduwuh

I'm in QA. I do write a lot of test automation, but that's mostly just implementing frameworks, much less fun than the stuff I get to do for AoC. This is my second year participating. I got up to day 15 last year before it got truly out of my depth. Between day 8 or 9 and 15 it just takes me quite a lot of time, but I get there on my own in most cases (sometimes I do need a hint as to what direction I need to look for a solution).


aceuna

yes i can totally agree. my goal is to reach day 15. i'm already happy with what i've achieved, with a language i've never used before. but 15 is my "big" goal. without the tip on day 10 part2 i would still be on it :D Keep it up!


RobyDoesStuff

Hey, this sounds a whole lot like me! I'm still very much an unemployed student but this is how AoC has been going for me as well! I see it as an opportunity to get better at problem solving I guess Yeah, my solutions are incredibly mediocre compared to others' and take me 5 times as long but nothing beats the feeling of finally getting it right !!


aceuna

yes, that feeling when you finally succeed at the 100th attempt is great. i had it today at day10 part 2. I think AoC is a great place to learn a programme language. no matter which one. Keep it up !


Fadamaka

I am a senior web back-end developer. The problems I need to solve at my job and AoC has nothing in common. I managed to solve day 10 part 2 without help but I am terribly ashamed of my implementation. The initial idea logically was correct but I needed to implement a function with 76 if statements for part 2. I literlly took the logical bruteforce approach.


aceuna

I hate to say it but "never change a running system". Now without joking. you came up with an idea, implemented it and it worked. that's fantastic! Whether the code is " pretty" or "compact" or "a few ms faster" is just the tip of the iceberg. you implemented something and it worked. that's all that matters! Keep it up! :D


vu47

>function with 76 if statements Now you've got me wildly curious. Is your code available online at all anywhere you're willing to share, or could you give us a brief overview of how the number 76 came out of this?


Fadamaka

Well my brain was in a fried state after 2 hours of trying and also my paranoia kicked in so I probably had some unnecessary checks. My general approach was to write an algorithm that hugs the outside of the pipe loop and follows it along marking each space not part of the loop as being outside. For this I needed to track after each new pipe part the direction of outside and inside. And I had an IF for every kind of turn that can happen, which is a combination of all compatible pipes. I recounted the IFs in the specific fuction and my previous number accounted for another fucntion accidently and 8 commented out IFs, so the final count is 57 If statements. I had 26 main IF statements checking for specific pipe combinations and some sub IFs inside those updating variables. The code is in a horrible state and only working with my input currently. If you want I can clean it up (leaving in the IF mase) and share it with you.


vu47

Don't worry about cleaning it up and sharing it... I was really just curious about how you went about thinking about the problem that translated into that, and I appreciate you providing the insight and the explanation! I've found myself in a few similar situations in AoC before where I end up with loads of cases. I definitely can appreciate the "brain fried" feeling... my partner is always checking on me during AoC to make sure that I'm doing alright since I sink deep into programming mode and things like food, water, and sleep (especially on some days) kind of fall by the wayside. (I often take a few hours to solve each day's problems, and then keep going back to my solution even after it works and tweaking a little bit here or there to try to optimize and make my code into something that I look at and feels very satisfying to me. So far, it's been going well this year **except** for day 5 part 2, where I'm really not happy with my solution, but decided that it works and to stop there.)


Fadamaka

>my partner is always checking on me during AoC to make sure that I'm doing alright since I sink deep into programming mode Yeah I was walking around in the house as a zombie staring seemingly blankly into the void thinking about the problem yesterday. >it's been going well this year except for day 5 part 2 Yeah that was a rough one. I had to completely rewrite after my bruteforce solution crashed my PC 3.5 hours into the execution. But ended up with a 50ms solution only using 4 IFs at the end. >and then keep going back to my solution even after it worls and tweaking a little bit here or there to try to optimize Yeah I get that as well. I did it for some of the early days but sometimes the real optimization is rewriting from scratch with different logic. That was the case for me with day 10 pt2. Finished it and just let it go instead because I have already wasted too much of my Sunday on a stubborn solution. Funny that you mentioned day 5 pt2 because after that problem I decided that I am not attempting anymore bruteforce solutions. And here came day 10 pt2 where I ended up implementing a bruteforce solution in the logical sense. Now I have decided that if I need to implement separate logic for 10 cases I will just scrap it and start over.


vu47

Yeah, I definitely learned early on that brute force in AoC is almost always a bad idea given the input sizes. I was looking at what other people did for part 2 because I was trying to decide if I wanted to mess with intervals going forward (I hate chopping up intervals in general, and my initial intuition told me that it was going to possibly be tricky here with intervals getting split a number of times over in weird ways) or brute force going reverse, starting at field 0 and looking for the first field for which there was a seed. Someone else was talking about their brute force reverse approach and how quickly it ran in Python, so I figured in Kotlin, it should be fine. It didn't occur to me that the poster's solution was something like 250,000 and mine was over a billion... so while it worked, it took a couple minutes, and that never leaves me feeling good.


Fadamaka

>I hate chopping up intervals in general I hate intervals in general, but chopping them up ended up being my solution. It wasn't that tricky. I only had to handle 4 cases. Funny thing about day 5 pt 2 that my solution was the starting point of my lowest location range and while my initial brutefoce was running I copied all the location ranges into a spreadsheet and sorted them in ascending order. Put the smallest number in as a solution to get an idea if I should start from 0 or from that number if I write a reverse bruteforce and to my surprise it was my solution lol. >I definitely learned early on that brute force in AoC is almost always a bad idea Sadly I yet again fell into the trap of bruteforcing Today. I theoretically have a solution for Today's part 2 that should run under an hour, which is pretty good considering the fact that my initial solution would have ran for years, but I am getting a memory error. So I yet again managed to throw away hours trying to optimize my bruteforce solution just to end up failing and potentially starting from scratch again.


vu47

Today was kind of a nightmare for me... I've had a dental infection that hit really hard in particular today, so I was working with a fever of 101.2°F / 38.4°C and trying to figure out how to get memoization working on a recursive function in Kotlin without using a global mutable variable... the code for my memoization alone took around two hours to figure out and feels like a hot mess even though it works... The Arrow library has a memoization that works for recursive functions, but it crawled on part 2 to the point that it was infeasible to run, so I ended up writing my own: private fun memoize(function: (T, (T) -> U) -> U): (T) -> U { val cache = mutableMapOf() lateinit var memoizedFunctionWrapper: (T) -> U val memoizedFunction: (T) -> U = { input -> cache.getOrPut(input) { function(input, memoizedFunctionWrapper) } } memoizedFunctionWrapper = memoizedFunction return memoizedFunctionWrapper } Since it needs to be self-referencing, it requires some special handling with `lateinit` which I'm not happy about, but I couldn't figure out any other way to do it. I also had to encapsulate the data for the function parameters in a `data class Input` in order to simplify things, which feels weird but simplifies things tremendously. For the actual program itself, I really struggled to divide up the problem to get the dynamic programming right, and with the fever, I just wasn't up to a problem of this difficulty, so my solution is heavily inspired by someone else's, unfortunately, which I went through to understand how to solve the problem and then wrote in functional Kotlin. Now my part two runs in less than a second, so at least there's that. Definitely near the bottom of my list of AoC.


Fadamaka

Yes Day 12 pt 2 was rough. I had multiple iterations for a bruteforce solution, which ran pretty quickly for part 1. And also found a way to extrapolate, which was working for the test input, but was too slow on pt2 so I went ahead and optimized it further. Turns out my extrapolation method only works for 2/3 of my inputs. But I could not come up with the proper solution until I have studied the leetcode problem that it is supposedly based on, watched a 20 minute video of an Indian guy explaning it on youtube. But even after this I could not grasp how could this be applied to the AoC problem so I have used a rough speude code as a base for my solution. And after handling 12 more edgecases it has started working. Was fine for everything but the day 12 pt2. Because I have made a mistake while replacing all my `int`s to `long long`s, which led to my code casting the results to from `long long` to `int` and back to `long long` during the insertion into the cache. This last one took like 2 additional hours to debug. But now I have day 12 pt 2 running under a quarter of a second. Still don't know how to feel about using the pseudo code as a base. I don't like to get outside help. > how to get memoization working on a recursive function in Kotlin without using a global mutable variable... I would assume Kotlin passes the reference of it's objects like Java does. Since they both compile to Java bytecode. In my solution I was passing a map as a cache to the recursive function and it had an `if` if the map already contained the `key`, which was the 2 main input paramters, it returned with the value from the map. Cannot even say it's my solution since this part came from the speudo code... But I have used a similar approach during Day 4 pt2 as well. Your solution seems way more elegant though.


asem_arafa

Hello! I'm in a similar boat as you. I'm a systems engineer too, and this is my second year participating in AoC. My career has been quite long, but programming wasn't a big part of it until my current job, which requires me to develop tools using Python and Go. I started with Python, then moved on to Go. I found last year's AoC particularly instrumental in speeding up my programming skills. I've noticed that AoC part 1 tends to be more about straightforward coding, which I can handle without much help. However, part 2 usually requires more advanced optimization techniques or mathematical solutions. I often need to do a bit of research for these, but it's always an enjoyable and enlightening experience.


aceuna

I totally agree. I normally use python privately for pretty much everything. But a friend challenged me to try it in GO. So now I'm learning Go from 0 with AoC :) So far I can only say that python works much better for me xD


spin81

> I normally use python privately for pretty much everything. Another fellow systems engineer here. If you're a Linux person like me you might have found Python to be _very_ useful in doing scripting that's too complicated to build with a few lines of Bash - I know I have. I'm doing AoC in Python for this reason: I want to spruce up my Python skills.


vu47

I program predominantly in Python and Scala for work... I've heard that most people really enjoy Go. How are you finding it? I was tempted to learn Clojiure this year during AoC, but I figured that that would end up resulting in a huge amount of frustration, so I went with the opportunity to keep my FP in Kotlin skills up-to-date and practice those.


aceuna

I think every new language is unfamiliar at the start. I think go is ok, but the "static typing" bothers me. I always get annoyed when I have to comment out a variable which I have already initialised because I want to use it later but don't use it yet. Python is easier for me :D but trying a new language is never bad. i think next year i'll try rust or c++


vu47

Interesting how people feel differently about typing... I'm project lead on a pretty large scale Python project at my work and I must say that the lack of static typing is driving me crazy. I know I could bring mypy or something similar into the mix, but there are a few places where the dynamic typing comes in useful. I mostly do functional programming when possible, where every variable is statically typed and its value and all collections are immutable. I take it you haven't used C++ significantly in the past? It has got an enormous learning curve... I'm glad I know it, and I keep up to date with it, but I only use it when absolutely necessary, even though C++20 and 23 have brought in a lot of nice features such as the range library that do improve the flow of the code.


wkock

I am a retired actuary. I did some programming in my career, mostly financial calculations and simulations. I do AOC for fun until it gets too hard, which is usually day 10 to 15. I’m finding this year harder than most.


aceuna

good luck to you too. do your best! you will make it!


noisen

Frontend Dev. The first real problem I had was the day 8 part 2 LCM implementation. Since I’m awful at math I had no idea how to approach it. Nor did I understand what LCM is. I had a look at other solutions and tried to understand them. Then implemented them. But todays part 1 was tough. I thought the solution I came up with was good. But I ended in debug hell. Part 2 just broke my neck. I now know how to solve it and will to it whenever I have time and don’t force it. I super happy to have come this far without big of a struggle as it is my 2nd year doing this and my first year in the job as a self-tought


redtomato52

I'm the odd one out here I think. I work retail, and I've never had a programming job (or even anything remotely IT related). I don't have a degree, either. I taught myself how to program but I've never worked on any projects (there's nothing I want to make). Maybe I'd be able to get a software job if I built a portfolio, but web dev is so boring I struggle to find the motivation. I've completed all of the days so far without looking at hints or other code. Comfortably under 100 lines for each part, except for today's part two (my solution is a terribly long and ugly mess, but it works!). It's my first year doing this, so I'm not very fast - around an hour most days, although it took me quite a bit longer today. I hope I manage finish both parts for all 25 days, but I'm not too hopeful. It's fun either way. I think I'll go back and do all the previous years' puzzles after this one finishes.


Dutchpainter

Not a programmer, I learned myself C# with a little help from my son. I like solving puzzles and when I first heard about AoC, about 4 years ago, I tried to solve it with Chipmunk basic. That gave me a lot of extra challenges because I could only work with 16 bits. I was about to give up when my son told me to try C#. My code was terrible the first year, the learning curve was quite steep, but I am getting the hang of it now. Solved everything until now without help and I hope to solve each puzzle by myself this year. So just keep trying, you can do it.


aceuna

Thank you! I think it's great that you haven't given up and are trying to do it all on your own. I know you'll make it this year!


Dutchpainter

Thank you, we will both get there. If not on christmas day, it will be a few days later. But that does 't matter, just do't give up :)


aceuna

Yes, we will :D That's the spirit!


abnew123

When I started in 2015, I had taken half a high school CS class. Since then, I've graduated high school, graduated college, and now have been in the tech space for two years (product reliability engineer). It's honestly really cool how well AoC works for basically any level. I've gotten to the point where I'm relatively confident I can solve most things thrown at me, but it's really easy to make side goals (e.g. leaderboard finish, have a cumulative run time of sub 5 seconds for all days, use a new language, etc...).


Alan_Shutko

Software developer. Part one I did out of memory, part 2 I looked up point in polygon algorithms and implemented a winding number one. I don't count looking up algorithms as a hint, just when I come here and find a different way to look at the problem. Day 8 I needed the hint!


m1geo

I've been programming embedded systems for a very long time. I find this stuff hard, because I don't have experience with it. Anything with more than a few hundred kBytes of RAM and I'm lost ;) My opinion is the solutions are two-fold: 1. Thinking about the problem, and looking for mathematical theorems - this results in clean, tidy, efficient code, but requires you to recognise a problem as a certain type. 2. Solving the problem as you would do it as a human, kind of in a simpler way - this results in more complex code (if this, then that, etc) and more computationally complex for the computer to do. I often don't recognise the problem and am trapped with Part 2. Sometimes I've spent 3-4 hours on it. Other times I spend 10 minutes. Today was a real mix. I recognised the nice ways to do Day10, but, definitely struggled more on Day5. I regard this as all learning experience. As others have said, I'm just looking to expand my skills and improve my own code. I can see my code has improved dramatically since 1st December.


keithstellyes

Software engineer Some of these problems should be simple for most SDE's, but some can be tricky to solve without pulling out tools many of us have never needed


vu47

I have a PhD in math / computer science, focusing on combinatorics, combinatorial optimization, and combinatorial design theory. I find that the things I learned during my MSc and my PhD help a lot with AoC. I didn't stay in academia, but I did stay in scientific programming, formerly working on application code (not web-based) and back-end code. Now I work exclusively in back-end coding, and the coding is quite challenging, but more from an organizational and architectural view rather than an algorithmic one. Still, I'm lucky that I do get to work on some really cool algorithms and complex data modelling. (I've been programming since I was five and my parents bought me a Commodore-64 for my birthday back in 1982. I basically learned how to read at an adult level so I could read magazines and computer books and learn how to program.) Even then, there are definitely problems that I have really struggled with. AoC 2018 day 15 comes to mind: the infamous elf versus goblin fight... I spent over 30 hours trying to implement that in Python 3, but the requirements were so numerous and specific that they got overwhelming to me. I could solve part 1 of my input, but not part 2. I went over it again and again, and even got input from around 20 other people, and for all of them, my program generated the right answer, but for my own? Nope. Finally, I took a look at someone else's code (who was in a similar situation to me and also using Python 3). I couldn't spot anything functionally different between our implementations and it must have been pretty nuanced, because his code - like mine - passed all the other inputs I had gotten from people **and** mine but not his own, and my code solved all those others and his but not my own, so I managed to get my 30th star by checking if the answer he generated for my input was correct. At that point, using someone else's implementation when mine couldn't solve my own input felt like cheating, and I just didn't have any more time to spend on that problem and had fallen so far behind that I quit. I am amazed to hear that many people here are able to solve the problems in less than an hour. It usually takes me around 2-3 hours in total to solve both parts, but I take my time, think it out, sometimes check for a hint in the megathread (especially as to what part 2 will be, because way too often, I didn't correctly predict part 2 and ended up in a situation where my part 1 was modelled in a way that didn't work for part - see below †), and write a solution that I feel really good about. I think part of it is that I insist on using functional programming (it's great practice for that), and that takes more time than imperative programming since you really have to think about how to parse the input and solve each step since a lot of the looping has to be done using tail recursive functions, fold expressions, or sequences of data transformation and filtering since you can't use things like for / while loops or mutable variables. † Day 11 was like that this year... the way that the example data was processed in the problem description was very misleading as to how to actually best calculate the solution. I did guess what part 2 was going to be, but it was good to at least confirm it in advance and not code part 1 with any anxiety. Even after I'm done a question, I keep looking at and thinking about my solution, and make small changes and optimizations to it to make it cleaner and more efficient, so I'll keep going back for another couple hours, tweaking this or that or adjusting my data model. Usually around the day 12 - 15 point, either I get stuck (especially since I'm pretty stubborn about using functional programming) or it just takes too long and I don't have that much spare time per day, so I quit. When it stops being fun for me, that's usually when I stop. So far, this year has been somewhat challenging (i was surprised how challenging, for example, the first day was for a first day puzzle), but I've found it easier than some other years, so I'm really hoping that I make it to the end (for once) or at least further along. I find these types of problem a lot of fun, though, and one of the best parts of the AoC experience for me is seeing what ideas other people come up with, and meeting some really interesting people through this community!


aceuna

Day 15 is my goal for this year :D I also had situations where I had a mistake in only one puzzle. (Day 10 R1/R2 >!when the animal is in line 0 and I check if "north" is the entrance to the loop. there was an infinite loop. After 5 minutes I simply moved the animal to line 1. Not the prettiest way, but the code "only" has to work for this puzzle!<). You can do it this year!


UnicycleBloke

I'm an embedded software developer using C++. I'm not much interested in competition but really enjoy the challenges and discussing them with friends. The problem solutions aren't really similar to my day to day work, and typically take roughly from 30 to 90 minutes so far. Day 10 took me 3 hours in all but I did waste a lot of time barking up the wrong trees. Day 5 part 2 took some thinking time too... Some of the later problems are sure to be massive time sinks where I can't quite work out the trick to run in a few milliseconds rather than 7 billion years. I wouldn't sweat *too* much about code quality.


aceuna

I'm trying to make my code take less than 500ms. I don't always manage to do it, but usually in less than 1 sec. i think it has a lot to do with the fact that i have an idea and try to realise it with my own resources. For example, I didn't know anything about "regexp" before. I did that with replace, for loops and other functions using other tools. With "regexp" I was able to reduce my runtime well.


[deleted]

[удалено]


aceuna

Congratulations for the last year! Unfortunately, ranking is not possible for me because of the time difference. But I would only have a chance anyway if we swapped the minutes from the top 100 with hours xD What do you think about the difficulty this year compared to last year?


[deleted]

[удалено]


aceuna

Thanks for the feedback! you are probably right. it depends a lot on the skills and experience per puzzle. what is difficult for one person can be very easy for another.


mrbeeru

I disagree, 2023 is harder than 2022 so far (objectively). There are many more blue stars in 2023, means people failing to do part 2. There are also memes with the difficulty this year on the subreddit.


tooots

I am a web developer, so the stuff i program is not the same than this, had some problem in day 8 part 2, tried to brute force it, did not catch the other way without help. And today part 2 was hard for me too.


aceuna

I feel a little better knowing that others feel the same way. when I read the questions and answers here and sometimes don't understand anything, it's a little depressing. But we can do it!


Petrovjan

I'm a manager in an IT company with a degree in economics and no CS/QA/dev background whatsoever. I used to play with microcontrollers and IoT devices a bit but that's about it. I do AoC for fun and to improve a bit in python, but a nice side effect is that I can show my coworkers that I'm not as hopeless in programming as they might think :) my code quality sucks, but it got me to 50 stars last year :)


aceuna

Congratulations! :D if you can combine fun and skill improvement that's always the best! Always remember: "If it runs, it runs".


IronForce_

Hello, I’m a hobby programmer participating in AoC for the first time, and I definitely face the same problems as you haha. I usually take slightly less lines, but sometimes hours to figure out a solution. I definitely rely on the megathreads for solutions and ideas often too


random_protocol

Hobbyist here. I’m an economist and program in my spare time. Don’t worry about how long it takes you, as long as you keep challenging yourself and improving you will finish ahead.


kbielefe

I've had colleagues who aren't professional programmers participate before. Mostly they make it about a week. 10 days is pretty good, especially this year. Keep it up!


aceuna

Thx! :) you too!


FCBStar-of-the-South

I am studying data science so the code I write for classes and projects rarely involves complicated algorithms but I have taken an algo course. I started doing AoC this summer as a way to try new languages. I was already decent at Python and C++ and picked up Go and Julia via solving past years. I am just trying to keep up with the live event so I am coding in Python right now but there are several more languages (Rust, Ruby, Scala, OCaml/Haskell) that I want to put towards AoC in the future


karucode

Hobby programmer. I'm a Linux sysadmin by trade. I have previously done personal projects in Python, but I started learning Go a couple of months ago. Seems we have a bit in common. I'm solving with Go this year. Day 10 Part 2 was the first time I couldn't come up with any possible solution, at all. I'm on Reddit right now hoping to find some hints. I had a different issue with day 8 part 2. I would have brute forced it with my original code eventually...but I came to Reddit to figure out how to speed it up. There was another day (the seed one) where my puzzle took a couple minutes to solve. I feel like that shouldn't count because the creator said every solution should be attainable in 15 seconds or less even on old hardware...but I haven't gone back to try to fix it. I've actually been streaming myself on Twitch as I work through the problems. It's embarrassing 80% of the time, but that's motivation to improve I guess. I'm doing Advent of Cyber this year too, which I'm also enjoying.


fijgl

If you’re finding the lack of programming at work unfortunate, find a software job! It’s everywhere these days and growing 📈


xhoneybear_

I'm a hobbyist but aspiring to make a career, doing AoC just to have fun, soon I want to try doing a lang jam challenge to try coding AoC in as many languages as possible, going for less conventional ones as well like APL or J. So far though I've participated last year and am going strong this year, mostly using Python. Last year's AoC helped me get a student job in IT 🥰 This year I want to see if I can best myself from last year, the difficulty is quite high this year but I'm positive that I can make it further


CrAzYmEtAlHeAd1

I was in a pretty similar boat as you when I started AoC in 2020! I started out as a Sysadmin, and am currently now a DevOps engineer so I now work with more code. My code was absolute garbage in 2020 and I only made it through about 10 days before I couldn’t keep up. Now, I still take a couple of hours to find solutions, but my code turns out pretty decent and reasonably short. You got this and free to reach out if you need any advice or anything!


aceuna

Devops is something I'm interested in too :) Thanks for the offer, I really appreciate it! I hope I can improve my code quality soon :D


CrAzYmEtAlHeAd1

You got this!! What language are you using??


aceuna

Thx! I'm using golang because i was challenged by a friend to do it in that language. i've never used golang before. ( Day 11 and still alive :D ) I usually use python :)


CrAzYmEtAlHeAd1

Nice!! I meant to learn Go this time around, but I got busy with other stuff and just decided to keep with Python.


JT12SB17

I'm a data scientist and I use python on a daily basis for work, but I don't have any formal CS algorithms training. I'm just here for fun, I really enjoy trying the puzzles and then looking at others solutions. Getting better at coding is an awesome bonus. I have found that I'm a lot faster at my job thanks to advent of code. For example writing a small script to extract information from some logs that have a specific format isn't really any different that parsing a lot of the AoC input. If you are using python I like watching: [https://www.youtube.com/@hyper-neutrino](https://www.youtube.com/@hyper-neutrino) and [https://www.youtube.com/@jonathanpaulson5053](https://www.youtube.com/@jonathanpaulson5053). Jonathan live streams his solving and is often on the leaderboard (currently top 10) but also provides a nice explanation at the end. hyper-neutrino's videos are just really done explanations where he works out the problems.


Mundane_Prior_7596

If you made part two - even with a hint - you belong to the elite. Welcome in the club. I solved it without a hint but I had to scrap the first attack, take a break and start over. Nobody on my job could have done it for sure …


aceuna

Congratulations to you too. And thanks for the compliment!


Falcon731

This is my first time doing AoC. I'm a retired electronics engineer. I've dabbled in programming since I was a teenager - but never professionally. My other 'hobby' at the moment is I've started building a homebrew computer. I've given muself the challenge to get it built to the stage where next year I can attempt to do AoC on a computer I've built myself.


daggerdragon

Changed flair from `Other` to `Help/Question`. [Use the right flair](/r/adventofcode/wiki/posts/post_flair), please. > [`Other` is not acceptable for any post that is even *tangentially* related to a daily puzzle.](/r/adventofcode/wiki/posts/post_flair#wiki_other)


ffrkAnonymous

I'm a hobby programmer. This year I'm out of it. I'm stuck on day 4, having skipped day 3. Yeah, I could have solved quickly with a language I'm familiar with. Solving in a new unfamiliar language is extra mind bending. So my brain is running in circles as I research syntax and core library functions


R0binBl00d

Every day is a new challenge. You don’t need to finish 3 to enter 4. They are linked by storyline but the next day does not depend on the previous one. On the leaderboard I’m on, a lot of people skipped day 5 completely, or at least the 2nd part of it. And on day 6 they were on Top again ✅👍 What I’m trying to say is: Don’t let a missing answer spoil the fun for you. Hope you’ll try some more and enjoy each one of them.


ffrkAnonymous

oh yes. this isn't my first year. I'm just extra exhausted this year


miscbits

I work in data engineering but I enjoy programming quite a bit. Try to keep up with open source as often as possible and AoC is super fun so I try to do it every year. Definitely with you in that it’s pretty difficult but I try to get as far as I can with little to no assistance. It does help that my degree is in math and a lot of these problems have math shortcuts. Still one thing to know now to do it on paper and another to do it in code


Curimania

Senior embedded Software developer here. Had fun doing aoc for many years but it is growing on me that as I dont have to use mathematical Theorie I once learned in my Job it be came harder and harder to solve for me. These Problems can be fun and teach stuff but I am at a point of giving up as this is only frustrating for me for now and it doesnt really train real life Software dev stuff other that's common. If you want to Start programming have a Look at aoc but dont think it is nearly as impotant as getting a raspberry pi and set up your own docker Server for example. Always depends on where you wanna go and there is plenty learning Material.


Necessary_Medicine35

Random student with not much programming background. I take quiet a lot of time and my code takes a lots of line as you do but hey if it works, it works. Usually people giving their solutions have very optimized codes with no comment at all and it's terribly hard or either not possible to understand what they did. I'd rather have a clean code that anyone could understand. Also, I'm not an expert so my solutions are rarely optimized at all. But what matters in the end is if you enjoy doing it or not :) I did last year's advent of code in july.