creative-coding.7 (1846B) [raw]
1 .Dd July 18, 2021 2 .Dt CREATIVE-CODING 7 3 .Os 4 .Sh NAME 5 .Nm creative-coding 6 .Nd learning through creative limitation 7 .Sh DESCRIPTION 8 I was talking to a friend recently about hobby coding 9 and ways to code creatively. 10 In the course of that conversation, 11 I was able to put a name to one of my favorite tactics: 12 creative limitation. 13 .Pp 14 A quick internet search seems to associate the term with Phil Hansen 15 and more traditional art, 16 but I think it applies nicely to coding too. 17 For example, 18 with this site, 19 I've chosen to restrict the tech stack to the OpenBSD base system. 20 It wasn't the initial goal (which was to learn 21 .Xr mdoc 7 ) , 22 but I quickly realized that restricting to base would give me 23 a better chance to learn base. 24 .Pp 25 Overall, I'd call it a success. 26 .Xr jam-tuesday 7 27 gave me a chance to learn some 28 .Xr sh 1 29 and 30 .Xr sed 1 , 31 .Xr blog 7 32 was a chance to learn 33 .Xr mdoc 7 , 34 and the site's build system helped me brush up on BSD 35 .Xr make 1 . 36 .Pp 37 I'd encourage you to try it \(em 38 set an arbitrary restriction and see where it takes you! 39 Here's a few ideas to get you started: 40 .Pp 41 .Bl -bullet -compact 42 .It 43 Write your own X window manager in as few lines of code as you can 44 .It 45 Write a version control system with 46 .Xr sh 1 , 47 .Xr diff 1 , 48 and 49 .Xr patch 1 50 .It 51 Write a blogging engine updated via email 52 .It 53 Write your own templating language (and parser) 54 .El 55 .Pp 56 The goal, for me, is to choose a challenging project that helps 57 me understand a technology I use daily but may take for granted 58 (windowing systems, VCS, email, parsers, etc). 59 .Pp 60 Restricting size helps understand what the core definition of 61 a technology is. 62 Building clones can help teach edge cases and design decisions one 63 might otherwise overlook. 64 And in all cases, it's a good chance to learn a new language! 65 .Sh SEE ALSO 66 .Bl -bullet -compact 67 .It 68 .Xr blog 7 69 .It 70 .Xr my-old-man 7 71 .El