Reply To: Reflections
A Tale of 2 Secrets › Forums › T.E.M.P.E.S.T. › Reflections › Reply To: Reflections
To echo and add to what @madness said above, one thing that helped our team a lot was treating this more like a long term project than a series of isolated puzzles. So if you’re in a team, it might be helpful to split the work and have people focus on different areas (e.g. substitution, grid ciphers, vigenère, hillclimbing/scoring).
It’s also useful to somewhat speed run old competitions with your program. Not necessarily to solve them properly, but more to see what works/doesn’t work. You learn very quickly where the gaps in your code/thinking are. Something we also did was make a shared codebase on GitHub so that we could track progress and see which section each of us was working on and help each other. Obviously you won’t have time to write a decrypt for every cipher in existence, but looking at past years and noting which ones appear repeatedly (vigenère, Polybius/grid) and making sure you have a robust program to break those is a good use of time. Writing deciphers is an extremely good way to learn programming as I hope many people here can attest to, and it makes for a good summer project too as a “break” from school work.
In terms of programming, using a more modular or OOP style can also be helpful. Eg: you can write say just one hill climb script and annealing script and then modify the parameters based on the cipher. This makes it much easier to reuse code and tweak things when the challenge is a modified version, because expect the final challenge or two to be a modified in some way, so it won’t all be straightforward, but at least you/team will have some code in advance you can play around with.