DEV Community

Cover image for What's the most fun you've ever had coding?
Ben Halpern
Ben Halpern

Posted on

What's the most fun you've ever had coding?

Give this some thought and let us know!

Top comments (40)

Collapse
 
ben profile image
Ben Halpern

Here's what I can come up with:

As an entrepreneur, there are no shortage of fun programming moments as it's often the result of a lot of inspiration which goes beyond the activity itself.

In the early days of what became DEV, and then grew into Forem, I spent a lot of time thinking and then would code pretty quickly.

DEV was launched the day after I typed rails new. Rails came to fame from the famous "Building a Blog System in 15 Minutes" demo, so it sort of tracks that the beginnings can come together pretty quickly. It was the clarity on how it might be useful and grow that was more inspirational than the coding task, but putting it together was exciting.

Later on, features like comments, reactions, etc. were generally stuff I built in about a day. I actually built reactions while hanging out with @triketora in a little impromptu hack session when we lived in NYC. I definitely remember this more than anyone else, but I definitely felt like I wasn't really engaging in the conversation because I really felt on to something. πŸ˜…

At times I've overdone it on the inspiration-driven coding and it's not as useful as it once was for me, but it is one hell of a time.

Collapse
 
ben profile image
Ben Halpern

Current Forem team members and contributors over the years: "Yeah, I can tell a lot of this was built quickly, isn't always so much fun years later".

Collapse
 
cerchie profile image
Lucia Cerchie • Edited

Whenever I get to pair with someone on something really challenging, it's super fun! Having someone else to bounce ideas off of and help out is a great experience.

Collapse
 
ben profile image
Ben Halpern

Ohh good one. It is often the human element that makes the difference. For me it can go in either direction: The joy of doing something with the right people or the joy of doing something solo in the right way where the solo part is special.

I've engaged in just a bit of mob programming and it was a lot of fun.

Collapse
 
cerchie profile image
Lucia Cerchie

Yes mob programming is so much fun! I think you're right about doing something solo too -- it depends. :)

Thread Thread
 
grocker42 profile image
Grocker

What is mob programming ?

Thread Thread
 
cerchie profile image
Lucia Cerchie

Here's a strict definition -- usually when I use it I just mean pairing with more than one person agilealliance.org/glossary/mob-pro...

Collapse
 
ziker22 profile image
Zikitel22

I remember one time.
Greenfield project first beta version goes to production we are about to release it when somebody realise that we totally forgot about 404 page.
We pinged designers but it was close to midnight and they werent considered as critical members to do release so they were offline and probably drunk :)

All frontend engineers sat infront of the one computer for an hour and put together 404 page with faces of designers with totally crazy animations. I mean that thing had like 30 moving parts and would give you seizure.
Then we got drunk as well

Collapse
 
igor_bykov profile image
Igor Bykov • Edited

I started to learn PHP already having some experience in JS. So, do you know that thing when you're that lazy that instead of really learning a new programming language, you just try to extrapolate as much as you can from your previous experience? Here we go!

The second day of learning PHP I found out that linting was a somewhat complicated topic. Also, there was a test framework but there was not a test runner, really. So, you'd need to go & execute your tests.

So, without much evaluation I found something that was positioning itself as a "task runner for PHP".

After playing around with it for a while I found it super useful but there were some limitations. For instance, you could observe changes to only 1 file/folder at a time & you was supposed to be managing the entire process. For instance, the thing would run the linting command & try to output the file into a folder, but if there's a file with the same name there already - it will fail (why to output linted files into the build folder? Well, I don't know really! Because you need a build step? The point is that in-place linting surely wasn't an option because it was producing the code ugly AF πŸ˜‚).

So, after observing all that I said "not on my duty!" and extended the task runner with my own code!
Basically, I made it observing the entire src & built a light abstraction to be able to register callbacks for adding new functionality without writing much code.

That was completely pointless yet amazing. Felt like re-building webpack. Really badly. In a language you don't know. Well, actually it was exactly this!

I use this thing until now since it's integrated in a couple of projects that are still alive.
It still runs my tests automatically for me on each file change. I even taught it to pack files inside my dist into a gzip (luckily it was just a question of invoking a task runner function).

Each time I run it, I hope it still works (I didn't touched its code for 3+ years) since I will surely not be capable to fix it if it doesn't.

Collapse
 
nicolasini profile image
Nico S___

It was many years ago, during a company Hackathon.
We developed a Chatbot that integrated HipChat with our CI/CD system to tell us the state of builds. It could also tell you what builds were deployed to what environments.
A clear case of "scratch your own itch".
This is back in 2015, very early adopters of the chatbot hype. So tooling and tutorials were very slim. It was a great coding challenge for the group.
Needless to say, we won the hackathon πŸ’ͺ🏻

Collapse
 
andrewbaisden profile image
Andrew Baisden

Greenfield projects give me this most fun. Anything that lets me use my preferred technical stack.

Collapse
 
jeremyf profile image
Jeremy Friesen

Perhaps not the most fun, but perhaps it was.

I had to migrate a site from an in-house CMS backed by an Oracle database to a CMS built on Rails. I tried to get a data dump from the Oracle DBAs, but alas, they couldn't help me. So I curled the site. I then used Hpricot (a precursor to Nokogiri) to parse the HTML and grab the (inner) nodes that I wanted for the new pages.

We knew the client was particular and exacting, so I built the outer elements exactly like the old site. I then wired up our CMS to render the inner nodes. I then curled our CMS to get the pages.

I ran a character by character diff against each page on the two different sites. They were the same. The client came back and said things were broke…so I pointed them to the old site where they were broke. Then they fixed the new site and while not happy, at least accepted that we had completed a high fidelity migration.

Around the same time, we had another client who said "This thing has been broken for months" or some such hyperbole. So I wrote a shell script that would exit 1 if broken and 0 if not broken. I then used the almighty git bisect to test when exactly we had introduced the bug. It was 1 day prior to their complaint. I equipped my director with that information, and he pressed back. That press back helped move the relationship from transactional to partnership.

Collapse
 
kspeakman profile image
Kasey Speakman

For me it was creating a work queue with simultaneous workers and dependencies between work items. It processed CSV files, put the data in query-able tables. Some tables depended on data from other tables. And the data was not necessarily clean so I had to validate it and store the validation problems. It was interesting to explore the multi-threading aspect, solve queue dependency ordering, and other challenges. At one point I was able to completely saturate our database's CPU and remember feeling proud of that. (Although I think that turned out to be something I fixed later.)

Collapse
 
pengeszikra profile image
Peter Vivo

When I meet Multi Line Task javascript kata in code.wars (and solved)

Description:
You need to write a function f that returns the string Hello, world!.

Requirement: Every line must have at most 1 character, and total number of lines must be less than 145

[
,
m
,
,
b
,
,
H
,
,
l
,
,
o
,
,
V
,
,
S
,
,
w
,
,
F
]
=
// .... + few more lines
Enter fullscreen mode Exit fullscreen mode
Collapse
 
blag profile image
Alvaro (Blag) Tejada Galindo

Well…not sure it was fun 🀨 but when I was learning Miranda…my mind went through a lot of stages…curiosity, anger, frustration, denial, happiness and finally rest…haven’t code in Miranda since that time πŸ˜…

Collapse
 
steelwolf180 profile image
Max Ong Zong Bao • Edited

Playing with Sonic Pi while I have little to no musical talent and getting paid teaching kids programming through this or Minecraft using the raspberry pi.

Collapse
 
cchana profile image
Charanjit Chana • Edited

It’s been a decade but I still think fondly of 10 day period I spent on a project. To this day, still the most fun I had coding on any project and in any team I've ever worked in.

I joined forces with another member of my team to refactor a project that has only just been completed. Our character count at the end was -10,000 characters which is insane when I think back to how small the project was. Every commit was celebrated.

Collapse
 
sjustesen profile image
Simon Justesen

I'm having fun with most projects :P But one that stands out in my memory was a webshop I wrote back in the early 2000s. A friend and I had just founded our first web company, and we were approached by a guy who ran a small shop selling carpet cleaning solutions. He needed a webshop. Back then, there wasn't really anything like Shopify, etc. so my younger self was stupid enough to think that it would be an easy task to build something from scratch. Oh dear...

Armed with a little knowledge about PHP and Javascript I managed to hack something together in few months. It might sound easy, it wasn't - I was ready to throw in the towel multiple times, but then I would have wasted a lot of time and have nothing to show.

During that time I was constantly in crunch mode. I have vague memories from a summer holiday, but most of the time was spent coding during that summer. I got it done, and the webshop I built was, much to my surprise, in operation until around 2016, where I decided to stop supporting it. At the time it had been running for more than 10 years, which is like an eternity in the IT business.

Since then I've written online signage designers and label designers for the .NET platform, which also were very fun projects, when I think of it.

The most fun project right now is probably my attempt to make an online collaboration platform for the Open Source desktop publishing app Scribus. The project is still very much in it's infancy and I expect it to take a least a year, before it's in a usable state. I haven't announced anything publicly, as I have a terrible track record of abandoning projects, so I don't want to get peoples hopes up until there's something to look at. But I'm having loads of fun, as I venture into uncharted land.

Collapse
 
valeriavg profile image
Valeria

There was a lot of projects that were challenging or fulfilling, but the most fun was to train a neural network model. It was supposed to determine makeup brand and color from a picture and it turned out pretty horrible 😁, but seeing chaotic numbers organise themselves into a sophisticated math model for the first time was pure fun. I didn't do any ML since then, and if I would I'd definitely go with Tensorflow or sorts, but building that project from ground up taught me a lot and made feature projects way more fun as it showed me that one can achieve incredible things by trying over and over and learning from mistakes

Collapse
 
janmpeterka profile image
Jan Peterka

Not sure about most fun, but some moments/aspects stand out:

Definitely coding with someone. I'm currently helping my friend (re)build webapp (moving from spaghetti PHP to nice Flask app, adding new features on the way), I'm more in "mentoring" role as I have experience with this framework. I enjoy when we are together thinking about concepts, and then making them into code. Also I enjoy when I'm looking into some deeper problem - not building views or controllers, but some handler or helper or mixin or something.

When I have clear vision in my mind, and just see it become "real".

Recently when I started using Turbo (thanks to turbo-flask). It's so cool! And Stimulus.js too.