Cover image by Drew Streib on Flickr
For the better part of my 12 year developer career I worked as a front-end dev. I did a few APIs in my time, but my focus was on UI development and UX. Last year I got into mobile development with the help of React-Native and it showed me that learning new things can be much fun and also finacially rewarding.
So my plan for this year was to go full-stack.
After looking into a few technologies, I decided that the new Serverless movement of the Cloud providers is probably the right point to start. As I said, I have written a few APIs, but by no means I'm a skilled administrator, so managing as few parts of a stack as possible is probably the fastest way to get things going on a level that matters.
What
Since most of the serverless tech is build on the base of one of these cloud providers I had to choose one to start with.
There are a few Cloud providers out there, but it seems that AWS is by far the biggest and going with the tech that has the highest market share has been a good decision in the past.
How
First I got a few books to get started with. Designing Data-Intensive Applications, High Performance Browser Networking and Serverless Architecture on AWS. These were a good start on theory, principles and practical examples.
While the first one were kinda timeless, Serverless Architecture on AWS was kinda outdated, so I stopped with books at this point.
But the gist of them was basically: latency is the devil, just if you want to know, haha.
Anyway, the next step was to search for online courses or something. For front-end stuff I did egghead.io stuff which was pretty eye opening, even on the topics I worked on for years now.
So why not use this to get into backend/cloud/serverless?
I found acloud.guru and besides the topic courses on stuff lile serverless or specific AWS technologies (DynamoDB, etc.) they offered training for AWS certifications.
I was a bit baffled, coming from the front-end certifications weren't much of a thing in my career. After reading about the different certifications AWS offers and looking into the courses acloud.guru has, it seemed that these were the right point to get started with.
While the certification training courses focus on getting the exams right they featung rather much hands on stuff, think creating a wordpress site on EC2, with AWS managed MySQL and load ballancing etc.
At the moment I'm learning for the three associate certificates: Solutions Architect Associate, Developer Associate and SysOps Administrator Associate. Which pretty much covers the theory and operation of the core AWS services as how to develop software for them.
They have about 40-60% overlap, so it saves time to do them at once. Also the next PSI test-centers are a few hundered kilometers away from me, so I don't want to travel a few hours just to do a 20min exam, haha.
First I just wanted to look into this stuff via the Certified Cloud Practicioner, the easiest of all AWS certs, but well, I won't travel for this.
But if you have a PSI test center in your city and want to try, the free 7 trial period of acloud.guru should be more than enough to get this certificate done. But beware: AWS charges $100 for this exam and you can't take it online.
Conclusion
Video courses are a good and cheap way to become a better developer. They are the perfect starting point for new topics and even if you know the topic, you can learn another thing.
For front-end I'm using egghead.io and for backend acloud.guru
If there are certifications for the skills you aquired, they're a good way to show potential employers or customers that you know your stuff. If a company wants to become an AWS partner, they even have to have employees with these certs.
Top comments (5)
I have also been using acloud.guru to learn basic concepts of the cloud and to get my hands dirty building things. I really like the smaller courses and labs that they offer where you actually build (very small) things. Currently, I'm using the lessons I've learned from there and apex to run Rust on lambda. Since Rust has some great WASM targets, this may be something to look into also. You can even package up the wasm and publish it to npm!
Sounds nice.
I played around with Rust on Lambda via Neon
Question is, what would be better/faster?
Does the AWS version of Node.js support WASM? Could it be run directly without a JavaScript wrapper? Is a non-WASM native Rust binary wrapped via Node.js faster? Could Lambda run *.node files directly?
The approach with Neon is interesting. I've been using apex to package up my Rust binary, which is invoked from a node handler.
I've been using the lambda image to build my Rust binary and then node takes care of calling it. As I understand it, there is overhead to call the Rust code from node, but once the function is warmed, that overhead is dramatically reduced.
As far as WASM goes, I'm not sure if lambda supports it or not. But to me, WASM seems to be more front-end focused and lambda doesn't appear to be the best fit for it. Instead, I would use WASM for any front-end stuff and straight Rust for the back-end. I feel this way mostly because of Rust's strengths, like strong static typing and memory safety.
Cloud guru offer good value for money. I bought their AWS Solutions Architect certification course from Udemy and was quite happy with it (I passed the exam)
The exam itself was bit stressful though - the invigilator was quite strict but I guess it's a good think since it boosts the value of the certificate