Weekly Dev Update 0
Weekly Dev Update
Building a Web Server & Creating This Blog
- Building a Golang Web Server from the ground up I turned a basic empty Golang project, into my first attempt at building a web server. This has been much harder than I thought. There is so much about building a Golang web server that is significantly different from the API’s I built in Java in the MVC design pattern. On top of learning new Go concepts, learning a new folder structure, the terms that go along with this kind of project has been seriously jarring. Several stages of getting discouraged, needing to realign my expectations on myself, and reminding myself that it’s okay to be stupid… Being stupid is the first step to becoming better… If I want to get better, I have to be willing to be stupid.
One of the interesting challenges is learning about routers, handlers, and the ability to have seperate handlers that trigger on the same request. One handler to perform actions on the database, another action to send up the proper html. Somehow, this process felt well hidden from me during my tenure of building Java & Vue full stack applications. But building it in Golang, all on one backend, has felt much more fundemental and given me a better understanding of what the large front end frameworks are doing. This feels like a necessary learning requirement for being able to properly understand, and demystify how web servers work. All of this came through hours of untangling, building, deconstructing, and building better after some more research once I realized my way was incoherent in way way or the other. Still, it feels like a releif to uncover more puzzle peices. With this, I can feel myself growing again. I’ve been having ideas around this. How I am spending time learning more fundemental computer science concepts, instead of becoming competent in a powerful sbatraction tool, like React, for example. While React is a very useful skill, I think, without the fundemental understanding to back it up, you have a limit to how far you can advance as a programmer. Instead, I am trying to challenge myself constantly, which creates a lot of friction. But that friction creates the framework where I can learn a new tool, and be much more competent, in a much shorter timeframe, and without the limiter on my skill level. I am very appreciative for this phase of growth. They come and go, but every time they come, I feel much stronger on the other side.
- Building the blog. I have been building the blog this week. I had started creating a web server to build a blog, but I found Hugo, a static site generator, written in Go, that does precisely what the app I was considering building does… Not that that’s a great reason to not build things. But my larger priority is to learn through building projects, and blogging. Whereas if I built a custom version of Hugo myself, I would have learned a ton, but I would have missed out on weeks or months of creating blogs, and beginning the process of learning to articulate my ideas. So this time I chose Hugo, and am happy to begin blogging!