About the Author

I'm Scott Frees - the author. I've been teaching Computer Science at Ramapo College of New Jersey since 2006. I am currently a Professor of Computer Science, and the Director of the Master's in Computer Science, Applied Mathematics and Data Science degrees at Ramapo. I am also the chair of our Computer Science and Cybersecurity departments.

I completed my PhD at Lehigh University in 2006, where I developed new ways for interacting within immersive virtual environments. Virtual Reality has come a very long way since I was doing this work (that's me below).

Me using VR in 2005

While completing my PhD, and ever since, I have been an active consultant and freelance developer. It's a passion of mine, because what I really like about computer science is building things people actually use. I've always liked user interface design, but I've also been drawn to building systems - the backend of a software application. Freelance development has given me the opportunity to do all this, in a lot of different domains. I've created software to design oil and gas industrial equipment, track and detect aircraft using 3D cameras, and analyze genomes. I've gotten to develop computer vision-enabled security camera systems, IoT network protocols, mobile apps to manage construction sites, finance/trading platforms, and a bunch of other smaller (and just as fun) projects. Every one of those (except the aircraft detection...) has been a web application at it's fundamental core - but they've all contained a boatload of complexity outside of what is typically considered web development. This is why I think it's so important that every software developer learn web development - it broadens your impact, and it doesn't take away from developing large systems.

I've tried to combine my passion for building things with my love of teaching. In 2015 I created a blog and later an ebook that covered a professional niche topic that I had been doing a lot of work in - Node.js C++ integration. For anyone looking to get into freelance software development - my best advice is do something like this. It's called content marketing, and it's led to lots of opportunities for me. The time I put into writing the book has been repaid many times over from the projects that grew out of help I was providing readers.

I created the Web Development course at Ramapo College in 2007. My experience at that point was mainly in the Java world. The Java web development world in the early 2000's wasn't a wonderful place - web development was hard, and it was without a lot of best practices. The course evolved with me, over almost two decades. The course adopted jQuery for a while, and dabbled with ASP.NET (mainly because we had a C# course that our students already took, making .NET attractive). By 2014, the course had shifted to Node.js as the backend language with Express as the framework of choice. The course design was innovative at the time, fully leveraging the Node.js ecosystem and the MEAN stack to teach undergraduates. Since then, I've stopped covering the M in the MEAN stack (MongoDB), as the industry (and me) have circled back to the tried and true relational database for most use cases. The A in MEAN has also gone away - I don't teach Angular anymore (or jQuery). Modern front end JavaScript is vastly superior to what it was when I started, and most of what we cover in class is now just straight up JavaScript - although I still cover modern reactive frameworks to some extend (i.e. Vue).

If you are a software developer who likes to have people use your work, then you should consider becoming a web developer ;) Targeting the web lets you deliver your work to everyone, directly. It's an amazing experience to have people really use your work - and my hope is that this book can be a helpful tool for you along the way to reaching that goal.