great online book for software development “How to Design Programs, Second Edition by Matthias Felleisen, et al. The online book is released in 2018 under Creative Commons license - therefore the link is free to share at https://htdp.org/2018-01-06/.
About the book: “This introduction to programming places computer science at the core of a liberal arts education. Unlike other introductory books, it focuses on the program design process, presenting program design guidelines that show the reader how to analyze a problem statement, how to formulate concise goals, how to make up examples, how to develop an outline of the solution, how to finish the program, and how to test it.”