--- Title: Good Projects to Do Date: 2023-05-14 Sequence: 4 Tags: ["beginners"] ---
Writing a gopher client is a good way of getting started with network programming and seeing how a protocol works. The great thing is that it is all text and the displaying of the text is quite simple. Writing something to display a website would use what you do for a gopher client but add extra rules about how css works.
In my eyes writing a web server is one of those things that will really show you how a language works and what the key ideas are. The core of a web server is that it needs to listen for requests on a port and parse and response to those requests. This will require all sorts of string munging and various data structures like hashmaps.
Writing a text editor is something that is useful to do because you can start very small and slowly expand the scope of it. You start with just displaying lines on the screen and then you can add a cursor and the inserts and then the editting of lines and saving the file. Each piece is modular enough that it is something that it can snowball into something very complex.