6 ms·
The thing that has changed most for me was recently discovering formal specifications and learning to think about how to model systems first before trying to co
by agentultra 11y ago
The thing that has changed most for me was recently discovering formal specifications and learning to think about how to model systems first before trying to code them. Seeing how wrong people can write binary search was pretty astounding.
It took quite a lot of things to go right for me to finally try it out but I'm glad I took the plunge. Writing specifications in plain human language is a good start but formal methods have shown me how sloppy my thinking is. It forces you to be rigorous!
I've been having to "unlearn" quite a lot but it's starting to turn around and coming back to where I was is going to be amazing.
10 years ago I would have scoffed and said you didn't need math in order to be a good programmer. I couldn't have been more wrong. If I knew then what I do now!
- Flemlord 11y agoDo you have any recommendations on how to write formal specifications?
- vicentereig 11y agoIf they fall into the formal specification category, I've found Writing Effective Use Cases by Alistair Cockburn to be very helpful.
- agentultra 11y agoShort answer: try starting with TLA+. I'm working on this. My colleague, who is mentoring me, is the one who's finishing his PhD in software engineering. It's his guidance that has helped me so I don't have a good answer for how to teach yourself yet. We're working on a project to create specifications for Openstack and are learning a lot by working together on how formal specifications could be taught to hackers and developers with no formal mathematics training, etc. If you want a brief introduction to the ideas try some of Leslie Lamports talks on TLA+: https://www.youtube.com/watch?v=iCRqE59VXT0 https://www.youtube.com/watch?v=iCRqE59VXT0 https://www.youtube.com/watch?v=-4Yp3j_jk8Q https://www.youtube.com/watch?v=-4Yp3j_jk8Q