I just started contributing to a great site called Career Dean. It offers a forum where students and new college graduates can learn from those with established careers in industry.
Join 28,000 others and follow Sean Hull on twitter @hullsean.
A recent question…
Application infrastructure is not something we learned in my college, and it’s definitely not something I will learn anytime soon in my current job (I work as a mobile developer for a mid-sized startup). I also think it’s not something you can just goof around with in your own computer.
Do companies prepare their software engineers when hiring infrastructure engineers, or do they all expect you to know your skills and tools?
Also: Is automation killing old-school operations
For example, My guess is that Facebook has a huge infrastructure team making the site usable and fast for as many people as possible. Where can you learn that skills, or get prepared for that time of job? Do you think it is possible to self-learn those skills?
Here’s my take on some of this. Since the invention of Linux, experimenting with infrastructure has been within reach. In the present day there are some even better reasons to experiment & teach yourself about this important aspect of devops & backend server management.
Early Linux circa 1992
Before Linux (in the 80’s we’re talking about) it was a lot harder. Into the 90’s Linux came on the scene and you could cobble together parts, video, motherboard, memory, ide or scsi bus & disks & build a 486 tower. You could then start building linux. I mean because of course everything had to be hand rolled (compiled by hand & debugged usually)!
Present day virtualization
Fast forward 20 years, and it’s an incredible time to be messing with infrastructure. Why? Because virtualization means you can do it all right on your laptop.
Also: Are SQL databases dead?
What to learn
Start learning Vagrant. It automates the provisioning of virtual machines on your own desktop. You can boot those linux boxes to your hearts content, network between them, hack them, run services on them, build your skills.
I’d also recommend digging into docker. It is the lightening fast younger brother to Virtualization.
You really need those fundamentals. Build some 1.x Linux kernels and see if you can get ’em running. That’ll teach you some hacking & troubleshooting skills. Find forums to get answers.
Also take a look at CoreOS. It has some really cool stuff around infrastructure management & automation.
After all of that, you might want to play around with puppet or chef. Learn how to setup continuous integration, jenkins etc.