this post was submitted on 02 Aug 2024
15 points (100.0% liked)

CSCareerQuestions

967 readers
1 users here now

A community to ask questions about the tech industry!

Rules/Guidelines

Related Communities

Credits

Icon base by Skoll under CC BY 3.0 with modifications to add a gradient

founded 1 year ago
MODERATORS
 

I currently work as a Junior Web Developer at a medium-sized company and enjoy my job. However, after taking a Distributed Systems course at university, I developed a growing interest in the infrastructure side of technology.

In my search for infrastructure roles, I’ve noticed that cloud-related positions dominate the listings, especially for someone at my experience level. I’m considering a switch to this field but need some clarity to ensure it’s the right decision.

First, regarding certifications, I’m aware there are many options for different experience levels. However, I find the preparation for these certifications to be a hassle. I prefer learning by building projects at my own pace rather than through lengthy theory texts or video courses. Additionally, exams tend to cause me a lot of anxiety. How essential are certifications in this field? Can I pursue a career without them or with only a few to kick-start my early career?

Second, as I said before, I'm very interested in the infrastructure part and... I don't know if I want to stay my whole life working on Cloud, I'm afraid that if I enter this field I'll get stuck with only a few ecosystems (like AWS or Azure), ideally I'd like to work with actual computers rather than with cloud, so would it be possible to make a switch from Cloud to on-prem infrastructure in the future?

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 4 points 3 months ago

Start with learning about containers. Docker will be good to start with. Learn how to build images, how to run containers, how to connect multiple containers, etc. Next jump to Podman and learn how to run containers as systemd services. It will give you the idea how stuff works behind the scenes.

Next step would be learning about AWS. Since you prefer the hands on way of learning, create a simple project, e.g. a blog, put it in a container and move it to the cloud. ECS would be a good place for that. Once you have it up and running, add more things to the project - Cloudwatch logs, metrics and alerts, Cloudfront to serve static assets from S3 bucket and dynamic content from the ECS container. Next add more stuff like "background" container to handle asynchronous tasks like sending emails, processing image uploads, etc. You could also use Lambda for that. From there you might want to jump to VPC and learn how to hide your containers/Lambdas from public access.

Now, knowing how the basic things work in the cloud, it's time for some devops learning. Learn how to deploy infrastructure using Terraform of Cloud Formation. You could also look at Ansible for configuring your servers. Good thing would be to learn about different tools for logging and monitoring like Prometheus, Loki, Grafana, etc.

Last but not least - CI/CD. Learn about different tools, learn how to automate various processes like deployments, tests, etc.

All those things are just a top level view on cloud. You will also need to learn about Route53, IAM, databases (RDS, DynamoDB, Elasticache, etc.) and whatever you find useful in your project.

Keep in mind that using AWS is not free so always check the price and free tiers.

I know it sounds like a lot but you won't have to learn all of it at once.

As for the certificates, I never was fan of those. I never took any exam as none of my employers required one. More important was hands on experience and projects I could show as a proof of knowledge.

I don’t know if I want to stay my whole life working on Cloud

I was lucky enough to start my career before cloud was a thing so I have experience with bare metal and virtual machines. Nowadays it's little harder to learn this stuff but nothing stops you from setting up a virtual machine and learn how to configure various system services and 3rd party products like http servers, proxies, databases, etc.

ideally I’d like to work with actual computers rather than with cloud

For that I like to tinker with various Raspberry Pi based projects. It allows me to play with electronic circuits, Python, low level system setup and various hardware. I know it's not directly related to managing servers but teaches me to look at a problem from a different perspective.