Websites and Various Additional Questions

Viewed 550

I've heard that Go is very good for web development and microservices. So I have a few questions:

  1. Is there a chance this website is created using Go?

  2. Are there any good resources for Go and Web Development?

  3. What are microservices? And what are some of the highest use cases for it?

  4. I have some experience in Python, and various other "scripting" languages PS, AutoIt, etc.. but it's been quite some time since I've been serious about programming. I've always just developed Discord Bots for projects to learn languages (e.g in Python I've written a bot to integrate ollama and discord - and then rewrote that in Go)

  5. If I want to seriously consider becoming a professional developer for GoLang [ I'm 31 now and I feel like my time is running out ] - what are some of the things I absolutely need to know? I have no education and have only programmed as a hobby / for fun. I know I lack the typical stucture that you would see outside in a professional setting. I want to think in the mind of a programmer but lack a lot of knowledge and simply scrape together things to achieve my goal using the limited knowledge I have so any pointers would be nice here.

I know it's a long post thank you for taking the time!

3 Answers

Hey this website is actually powered by answer.dev. We've made a few minor changes, but nothing major. It's an open source apache incubator project written in go. The backend is using gin framework. The frontend is written in react. If you look at the answer.dev github repo you'll see a /ui folder. That folder contains the react frontend. The build process generates a single binary file which embeds the frontend. So when it's deployed we essentially generate a single file that contains both the backend + frontend that's ready to go.

We deploy to kubernetes which is written in go. Also using docker which is written in go. We build a minimal docker image that contains the binary I mentioned and we push to a container registry. Then kubernetes pulls the image from registry on deployment.

You can do a lot with the standard net/http package.

There's also quite a few web frameworks you can check out as well. Here's a few:

During my day job we are using fasthttp which handles serious traffic. 50k+ HTTP(s) requests per second on our network no problem. Fasthttp is what fiber uses, but I'd probably not suggest it unless you're dealing with extreme traffic.

Go is amazing for web development.

Many cloud native computing foundation projects are written in go:

As for age, 31?! You're still young. I didn't start learning go until I was 35. Don't let that stop you. I would suggest starting simple and expanding incrementally. You don't need a fancy project to start learning. I've always felt the best way to learn something new is to do it for yourself. When you hit a wall, research it until you solve it. If you can't figure it out then ask for help. Rinse and repeat.

Having a formal education does help you build a solid foundation, but I was in the same position as you when I got my first job. Purely a hobbist building websites for fun. I've been doing web development full time for 15 years now. All the tools you need are readily available on the internet to upskill. The most difficult part is keeping yourself motivated and realizing that there is always something new to learn. Part of the career is being a professional learner.

Is there a chance this website is created using Go?

Maybe. The only thing I see is HTML, CSS and Javascript. And builtwith does not gives any answer. But I am pretty sure that it is not built using Wordpress or Discourse. Good work IMO. Clean.

Are there any good resources for Go and Web Development?

The Go community is not web focused, so there are not much of resources that I have found. But my opinion is that it is faster and smaller than any interpreted language. And the Go HTML templates are very powerful. I find it a way better web tool than Angular for an example.

What are microservices? And what are some of the highest use cases for it?

Instead of a big monlith application with all code in one application, you create a bunch of small services (mini applications) that works together as one unit. Communicating with each other using REST or another APIs. It is both simpler and harder at the same time. Harder to set up, but easier to maintain IMO.

If I want to seriously consider becoming a professional developer for GoLang [ I'm 31 now and I feel like my time is running out ] - what are some of the things I absolutely need to know?

Programming is not only coding. My perspective is more why do you want to code? Who do you want to help? Do not focus on which tool you use. Focus on the result. Speed, simplicity and maintainability etc.

I know I lack the typical stucture that you would see outside in a professional setting.

My working structure is simple. To eat an elephant you must eat it bit by bit. Being stubborn is a good thing to be.

I like to see the things I create take form, that's what I strive for. As far as who I want to help, or what I want to do with it. I just want to make fun things; I want to see things come alive and work. I don't care who it's for as long as I can have fun doing it and seeing it come to life. That is my goal in getting into programming. Creating things, and hopefully creating things people like to use or seems useful for them. My ultimate goal is to take this hobby I've enjoyed for so long on-and-off and hopefully make it a living because I find it fun, it's like a puzzle, or a game you put together it never really seemed like work to me so to be able to do that and push myself to get into a better position to be able to create these awesome things I see in my day to day life would be absolutely mindblowing. I'm not sure any of this makes sense but it's how I view it. I feel the same way about pen testing, and computer security. It's always been fun to me. HackTheBox is incredible - though I wish I was better at that too.

Anyway I'm ranting but thank you for your insight - the microservices thing makes a lot more sense to me now. I had to create a new post since this one ended up being so long but Id like to thank you both for your insight - it really gives me hope that I can become better at programming in general and pushing myself into areas that I'm not necessarily comfortable with.

Thank you again!

linx