those examples all sound like very good parallels. you're building something "by hand" to learn how they work/are constructed. the software you ship you will still build using "robots" (eg linux, nginx, your framework of choice) but do so remembering the lessons you learned.