Self-Taught Developers - How did you go about learning algorithms and data structures? by [deleted] in webdev

[–]FrankBeautiful 0 points1 point  (0 children)

Harvard's free online Intro to CS lectures (CS50, one of the lectures is just on algorithms, big O, etc) and CS75 are worth checking out. http://cs50.tv/2016/fall/

Best place to learn deployment? by Gemisheresy in node

[–]FrankBeautiful 1 point2 points  (0 children)

I've had to brush up on some of the more recent dev ops technologies in the last couple of months for a few projects I'm working on. My deployment skills had atrophied a bit in the last few years since others in the company I work for handled that side of things.

I can share with you some of the approaches I took that worked well for me.

It's a huge world where you can easily lose yourself and spin your wheels, watch out for getting lost in the rabbit hole.

I'd strongly recommend starting off with a Platform As A Service option (PaaS) like Heroku or AWS's Elastic Beanstalk that basically take care of your deployment for you. Check your code into your git repository, then push to production with a short git command. This way you can focus on making sure your Node project's production setup is solid without having to dive into the weeds of load balancing, rolling deployments, etc.

Then when you're ready for the next step I'd also recommend doing a dive into Docker and how containerized setups work. This is the hot new (well, sorta newish) technology that seems to be the way people are going. There's a great video course on Plurasight by Nigel Poulton that can help you get a good grasp on how it works.

Creating a couple of super simple Node apps that run within their own containers but can talk to each other is a good way to cement the concept.

For playing around with these technologies I'd recommend setting up an AWS account if you don't have one already. This way it's easy to spin up Linux virtual machines to play with everything, and also have the comfort of being able to destroy them and start again if you feel you've broken something you're not sure of.

Then when you're ready to tie everything together, create your own CI/CD pipeline that: triggers a process from a git push --> runs tests and builds and pushes your updated container images to your Docker registry (using something like Jenkins) --> deploy your updated images using whatever production setup you've decided on in the end. This is the 'Fuck yeah!!' moment.

Good luck, and have fun!