Programming and DIY

Talk about computer programming and DIY projects

Reply to thread

Anonymous 2017-11-13 04:15:35 No. 28

Lessons Learned

Post lessons that you've learned here. Maybe your pain will help someone else (it won't).

- Look at the big picture when making changes.
I was working on a patch for a FOSS project, and some of the decisions that I made were just silly. If I had looked at where the code I was changing was being used in the codebase and thought about how it was being used, I could have made better decisions.

- Start small and build up to bigger things.
Recently I've been working on an interpreter, and my plan was to make a bytecode interpreter. I spent a lot of time trying to figure out how to do that, when I don't think I understand how a basic interpreter worked very well. I started getting frustrated that I wasn't able to do anything. As soon as I decided to start with something simpler, I was able to make a lot of progress.

Basically, I think the lesson to take away from this is that no one becomes an expert instantly. As an example, someone who is a very talented artist but has never done oil painting before can't make the Mona Lisa on day 1. Although they understand a lot of the necessary skills, they'll lack a feel for how oil painting works. The same sort of thing happens with programming. Skill in one area is not indicative of skill in another area. You really need to spend time with the basics.

Anonymous 2017-11-16 21:22:47 No. 31

Something that I've realized recently is that if I don't like something about the software that I'm using, I can change it. This has given me a new appreciation for FOSS.

I think that this might be something that you can't really do until you've been programming for a while. I think that you might get overwhelmed trying to figure out how to change things.

Anonymous 2017-11-30 01:19:01 No. 33

I thought this article was quite good, with this conclusion - "The point is, most of these ideas are simple and obvious in hindsight, but I had to make a lot of mistakes to find them. It's nearly impossible to coalesce good design decisions straight from the ether. The only reliable method is iteration and trial and error."

Anonymous 2017-12-03 12:46:49 No. 34

I've been doing Advent of Code 2017, and found Day 3 part 2 to be quite challenging. I still haven't "solved it", but it turns out that it involves a known integer sequence.

Their is a database of integer sequences available at

I'm not sure how applicable it will be in day-to-day work, but I guess there is a more general lesson to take from this. The lesson is that a similar problem to the one you are working on has probably already been solved. Having lots of resources to consult for similar problems can save you a lot of time.