Software Dev Weekly Update #4: New Tools, New Community
Tags: javascript, beginners, webdev, node
Published: 2021-08-19 00:00:46

This week saw the completion of sections 32, 33, and the start of 34 (out of 60)! I'm really hitting a stride and it's exciting to see the progress made!

I spent time connecting with other developers thanks to [Danny Thompson](https://twitter.com/DThompsonDev), a self taught developer who made his way from gas station fry cook to developer at Google. He hosts regular virtual meetups through [Twitter Spaces](https://twitter.com/DThompsonDev/status/1426937080953835521?s=20) and most recently he put together a panel for new developers to pose their questions and get real answers from industry professionals. It was an incredible conversation and thank you so much to everyone involved!

![Google Developers Logo](https://res.cloudinary.com/startup-grind/image/upload/dpr_2.0,fl_sanitize/v1/gcs/platform-data-goog/contentbuilder/logo_dark_QmPdj9K.svg)

I also attended a virtual meetup with [Google Developer Group New Orleans](https://gdg.community.dev/gdg-new-orleans/) and participated in their [Eleventy](11ty.dev) demo. [Sia Karamalegos](https://twitter.com/TheGreenGreek) led the discussion as we worked through what HTML templating can do and how she's utilized it in her blog, [Sia.codes](https://sia.codes/). This talk directly relates to what I've been studying this past week, Creating Dynamic HTML with Templating!

**Creating Dynamic HTML with Templating**
So what is templating and why would you use it? Templating is the creation of HTML files that share the same (or similar) element pattern. Think of reddit pages, the sizing or the theme might be different across subreddits but they all share the same basic structure. 

So why manually write a page for each new subreddit and post? With templates we can dynamically generate HTML pages and swap out the information as needed but retain the shared elements such as 'upvote', 'downvote', the comments and share buttons.

![Eleventy Logo](https://repository-images.githubusercontent.com/112150776/57c07300-6132-11e9-992f-604a24e67c83)

To take a closer look at templating check out [Sia's 11ty blog repository](https://github.com/siakaramalegos/11ty-sia-blog) where she outlines how to implement your own blog and [The Eleventy Meetup's *Templating Superpower* video](https://www.youtube.com/watch?v=rZyNBd1WgVM&t=1s) where they review how to use templating to make your static site feel dynamic!

**Creating Servers with Node**
As part of this week's lessons we learned how to configure and operate a localhost server using node.js in conjunction with the [express](https://expressjs.com/) and [nodemon](https://www.npmjs.com/package/nodemon) packages.

#####Express
A minimalist web framework that allows us to design and build web applications quickly.

*You can think of Express as a utility belt for creating web applications with Node.js. It provides functions for pretty much everything you need to do to build a web server. If you were to write the same functionality with vanilla Node.js, you would have to write significantly more code. - [Jondlm, Stack Overflow](https://stackoverflow.com/a/19411563/11545799)*

#####Nodemon
*"A tool that helps develop node.js based applications by automatically restarting the node application when file changes in the directory are detected." -[Nodemon Module Description](https://www.npmjs.com/package/nodemon)*

This allows up to makes changes on the fly and reload the server to review our pages automatically! It may seem small, but it's a wonderful tool :)

![Nodemon Demo](https://i.imgur.com/kgf8xHE.gif)

**Week In Review**
![Forest](https://i.imgur.com/y0B0Fsc.jpg)
I had a great time connecting with other developers and exploring different node modules. I'm realizing how many helpful resources are out there and I'm excited to share what I've learned. See you next week!

---
I hope you enjoyed the read!

Feel free to follow me on [GitHub](https://github.com/RealNerdEthan), [LinkedIn](https://www.linkedin.com/in/ethan-goddard-a4376952/) and [DEV](https://dev.to/realnerdethan) for more!