The vignettes provided with the R survival package are a good place to start. The main survival package vignette succinctly explains the principles of many different flavors of survival analysis. Examples are illustrated with the package's functions (whose open-source code is available for inspection). It's succinct, but most of the important issues are covered. The time dependence vignette addresses time-varying covariate values and proportional hazards assumptions in Cox models. Other vignettes go into more detail with issues like multi-state survival and competing risks. The presentation necessarily emphasizes the regression modeling approach used in that package, but the principles apply to other machine-learning methods.
The python lifelines documentation also gives a useful overview of the principles of survival modeling. Its organization might be more in line with the step-by-step approach you seek than the R survival
vignettes.
References to book-length treatments are described on this page.
In response to comment:
These references are admittedly regression-centric. If you learn the fundamental principles of survival analysis from these references, however, it's a very straightforward extension to what you consider to be "machine-learning" methods. As much of survival analysis was developed in the regression context, explanations from that context will typically have a strong grounding in basic principles.
The main principle you have to learn is how to set up the proper objective function in situations where you need to deal with censoring or truncation of event times. For survival analysis, this means maximizing the likelihood (for parametric models) or partial likelihood (for semi-parametric models), or minimizing the (partial) deviance as a loss function. The formulas are fairly straightforward, but knowing when to apply each of them isn't always obvious. As survival modeling is based on covariate values in place among cases at risk at event times, there are also issues in the proper handling and coding of covariates whose values change over time, including how to avoid the dangers of survivorship bias.
Once that's mastered in the regression context, it's just a matter of using the machine-learning approach of choice to minimize the loss function. Approach this like An Introduction to Statistical Learning, The Elements of Statistical Learning, or Statistical Learning with Sparsity and similar texts approach things: start with regression models to develop the principles, then use random forests, boosted trees, neural nets, etc., to do the same optimization in more flexible machine-learning ways. The CRAN survival task view has links to many such implementations of survival modeling, often with vignettes that illustrate the particulars.