[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"sanity-d23Xd15W3oG7gGsqnl3iCY2ejVGqRr28AFQd--LPZm8":3},{"data":4,"sourceMap":-1},{"info":5,"latest":14,"pinned":105},{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"descriptionText":10,"slug":11,"title":13},"2023-05-23T16:43:21Z","wp-tagcat-dynamic-programming","9HpbCsT2tq0xwozQfkc4ih","blogTag",null,{"current":12},"dynamic-programming","dynamic programming",[15,51],{"_id":16,"author":17,"commentCount":28,"comments":29,"excerpt":30,"featureTag":10,"image":31,"publishedAt":34,"slug":35,"sponsored":10,"tags":37,"title":50},"wp-post-21495",[18],{"_id":19,"avatar":20,"name":25,"role":10,"slug":26},"wp-author-cap-18115",{"_type":21,"asset":22},"image",{"_ref":23,"_type":24},"image-8cf69a05d6ef9dfd6db2ac2da2518a7d5e4b90d1-386x426-png","reference","Daniel Orner",{"current":27},"daniel-orner",3,true,"Dynamic languages allow for a lot of flexibility in typing — sometimes too much. Here's how to add some guardrails to your code. ",{"_type":21,"asset":32},{"_ref":33,"_type":24},"image-66dfd6f102b260dd3adb4278115f43e83e622d69-2560x1344-jpg","2023-01-19T14:00:00.000Z",{"current":36},"adding-structure-to-dynamic-languages",[38,43,45],{"_createdAt":6,"_id":39,"_rev":8,"_type":9,"_updatedAt":6,"slug":40,"title":42},"wp-tagcat-code-for-a-living",{"current":41},"code-for-a-living","Code for a Living",{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":44,"title":13},{"current":12},{"_createdAt":6,"_id":46,"_rev":8,"_type":9,"_updatedAt":6,"slug":47,"title":49},"wp-tagcat-static-types",{"current":48},"static-types","static types","Minimizing the downsides of dynamic programming languages",{"_id":52,"author":53,"commentCount":62,"comments":29,"excerpt":63,"featureTag":10,"image":64,"publishedAt":67,"slug":68,"sponsored":10,"tags":70,"title":104},"wp-post-19496",[54],{"_id":55,"avatar":56,"name":59,"role":10,"slug":60},"wp-author-cap-19500",{"_type":21,"asset":57},{"_ref":58,"_type":24},"image-1a35ac25107b0af6163c992f8b6e7c71430227dd-1025x1025-jpg","Wayne Bishop",{"current":61},"wayne-bishop",16,"Dynamic programming isn't about design patterns; it's a way of thinking that breaks down a problem into individual components. ",{"_type":21,"asset":65},{"_ref":66,"_type":24},"image-7482240dcf294374dcdc017e05110da9547582ad-2400x1260-jpg","2022-01-31T14:48:08.000Z",{"current":69},"the-complete-beginners-guide-to-dynamic-programming",[71,73,75,80],{"_createdAt":6,"_id":39,"_rev":8,"_type":9,"_updatedAt":6,"slug":72,"title":42},{"current":41},{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":74,"title":13},{"current":12},{"_createdAt":6,"_id":76,"_rev":8,"_type":9,"_updatedAt":6,"slug":77,"title":79},"wp-tagcat-software-development",{"current":78},"software-development","software development",{"_createdAt":81,"_id":82,"_rev":83,"_system":84,"_type":9,"_updatedAt":87,"description":88,"slug":100,"title":103},"2025-04-24T16:28:57Z","797b8797-6e65-4723-b53f-8bc005305384","IpfPEqg1c3Byvj9RrB3Xaj",{"base":85},{"id":82,"rev":86},"oc42Nphz1oZNOg9ttSv7Tn","2026-05-07T14:43:30Z",[89],{"_key":90,"_type":91,"children":92,"markDefs":98,"style":99},"bb32f75814b4","block",[93],{"_key":94,"_type":95,"marks":96,"text":97},"dbcf27ef29b3","span",[],"Community-generated articles submitted for your reading pleasure. If you’re interested in seeing your work here, log in with your Stack Overflow account and click the link below. Articles will be licensed under a CC BY-SA 4.0 grant. ",[],"normal",{"_type":101,"current":102},"slug","contributed","The Heap","The complete beginners guide to dynamic programming ",[]]