Thursday, January 29, 2015

An interview with the author of Dart for Absolute Beginners

There are many books about the Dart language and libraries, but most assume some knowledge of programming. For people that are brand new to software development and want to learn Dart, there is now Dart for Absolute Beginners (Apress).We sat down with author David Kopec, to learn how people can begin their programming journey with Dart.



Q) On behalf of the Dart team, thanks for writing Dart for Absolute Beginners! So, how did you discover Dart?

David: Working in the startup world, I always try to keep abreast of exciting emerging technologies in the sphere of software development that may ease the lives of developers like myself. I first came across Dart in late 2012 while trying to get a consumer automotive web startup in LA off the ground. Dart was still in its early phases, but I was quickly enamored with its clean design and potential to ease Web development for both professionals and novices alike. I took a mental note and thought — this is something I need to come back to!

Q) What made you want to write a book about Dart?

David: I think when one is the solo author of a book about an emerging language/platform, more than anything else, you need to believe in its potential. I see Dart as an opportunity for a clean slate. It’s a fresh start incorporating all that we’ve learned about best practices for language design over the past 20 years. I see the industry spending a lot of time shoehorning older web technologies into places that they don’t necessarily fit well at scale. Dart is a better approach.

Clearly, I wanted to be a Dart advocate, because I truly believed that it’s a better way forward for the Web. The book was the natural offspring of my belief in Dart, desire to write a beginner’s book, and opportunity in my career time-wise to do it.

Q) Who should read the book? Who is the book for?

David: Dart for Absolute Beginners is truly designed for absolute beginners - individuals with no programming experience. It aims to be a broad introduction to programming, the Dart language, selected parts of the Dart platform, and the technologies behind the Web. In short, readers who want to learn Dart as a first programming language are the intended audience.

With that said, I have also received positive feedback from programmers with some experience that seek a Dart book with an eased learning curve.

Q) Why should people new to software development start with Dart?

David: Dart is a beautiful, clean, modern language, that comes with a batteries-included platform. Many people want to start their programming journey on the Web because of its immediacy and cross-platform compatibility. Yet, they end up having to tackle a hodgepodge of technologies, libraries, and frankly, a language, JavaScript, that has many inconsistencies.

Dart delivers all of the benefits of developing for the Web (immediacy, compatibility) but in an elegant, consistent package. New programmers don’t need to worry about language gotchas, because the language is clean and consistent. They don’t need to worry about what libraries they need for their project, because the Dart standard library is comprehensive. They don’t struggle with including additional functionality, because pub is so easy-to-use. They don’t need to worry about browser compatibility (too much) because the Dart team handles that for them as part of the unified platform. They don’t even need to think about which IDE/text editor to use because the platform comes with an easy-to-use one.

Another point worth mentioning, is that Dart includes modern object-oriented features that are nice transferable skills for when a new programmer wants to learn a second modern language like Java, Swift, or Ruby. Some of these advanced object-oriented features are sorely lacking in JavaScript. As a beginner, it’s nice to start in a place with your feet pointed towards the future.

Q) What makes Dart for Absolute Beginners special?

David: Dart for Absolute Beginners is the only book about Dart as a first programming language. All of the other books on the market assume at least a little bit of knowledge about another programming language. They are introductions to Dart, but not introductions to programming, Web technologies, and modern software development techniques for absolute beginners.

Beyond being an introduction to programming, Dart for Absolute Beginners also aims to be a broad introduction to modern Web software development techniques, in the sense that by the time the reader is done he or she will get a taste of version control with Git, unit testing, and even a basic understanding of HTTP. But my favorite feature is an included interview with the Dart project’s founders.

Q) How do you use Dart today?

David: I use Dart for client-side Web projects. I encourage consulting clients to have their projects built in Dart. I have not yet fully explored server-side Dart but it’s an area of future interest for me.

Q) What advice would you give to a developer learning Dart for the first time?

David: Beginning programmers often get frustrated by how far it is from Hello World to say making a graphical game. Don’t give up! Like anything else in life, programming takes time, practice, and dedication. Also, make sure you can walk before you attempt to run. I’ve seen beginners try to jump right into making a complicated Web app before they have mastered the basics of loops, data structures, and functions. That only leads to frustration. No matter what language you’re learning, the key is to have a solid foundation that you can build from. It’s not important to memorize all of the API calls in dart:html. You can always look those up. Memorization in programming isn’t especially helpful in the age of the search engine. Instead, beginners should work on building an understanding of language concepts.

Q) Where can developers follow you and your work?

David: My blog is Observational Hazard and I’m available for consulting projects through Oak Snow Consulting. You can also follow me on Twitter, G+, and GitHub.

Thanks David! Developers, new and experienced, can find Dart for Absolute Beginners at Amazon or Apress.