How do you learn ES7/Next features
without jeopardizing existing work?
“That's great! I'll just install the latest, unstable Node.js release, update my Babel.js version and plugins, and download an experimental browser versions that might support this syntax if I use command-line flags when starting it!”
If you're like me and millions of other developers, this isn't even a remote possibility. It's just not going to happen.
Because you have existing projects that need tried-and-true, stable, well-tested and supported versions of all these things. And the risk of installing new, unstable and experimental versions of Node, Babel or any other runtime, and having it break your actual work is far too great.
This is unfortunate, though. You've read so many blog posts and have seen such great syntax in ES6 and in what's coming down the line with ES7 and beyond:
- rest / spread params
- async / await functions
- iterating over object keys and values
- native proxies and class syntax
- … and so much more!
These aren't just hobby-project features to mess around with in your spare time, either.
Of course there are options that you've tried in the past.
You Could Install the Latest Node.js, Anyways
But, manually reinstalling node is a pain – a constant pain, over and over again, when you have projects running on older versions.
The last time you tried that, it cost you more time than it was worth as you had to uninstall your current version of Node, install the new one and then re-install your build tools and project dependencies to make everything work. Then when you were done, you had to do that in reverse so you could work on your projects, again.
Having to constantly explain why you were spending several hours a week installing and re-installing Node, was not something you enjoyed. Your project had real deadlines, coworkers that depended on you and your code, and a project manager always looking over your shoulder. It hard to justify this when it had so much of an impact on your productivity.
Then there was that time you forgot that had installed and were using the latest version of Node.js when you were working on your actual project.
That commit was dead in the water.
The build broke. Coworkers complained endlessly. Management asked even more questions than usual. And you spent another late night at work to fix it, instead of heading out to a fun evening with friends.
What a nightmare!
Then There's Virtual Machines… With Real Problems
And the experiment with virtual machines to run the latest features? That was great! For a while, at least. But you quickly realized how painful and tedious it was to duplicate your entire development environment into a second machine.
Your editor with all of it's configuration… your color schemes and fonts to ease the strain on your eyes … source control and repositories with access rights, passwords and security certificates… even your command-line tools and shortcuts to help you reduce mistakes and speed up your efforts. All of these had to be duplicated.
Over time, the amount of drift between your actual machine and the vm took almost as much effort to manage as constantly reinstalling Node.js.
What's A Developer To Do?
It's almost enough to make you give up on learning the latest features. Almost. But that voice in the back of your head won't let you. It keeps telling you that you need to learn this, that your job and your code will be so much better when you do.
You can't help but wonder, though:
Is there a way to isolate your current project from the experiments you want to do? Can you write code in a separate sandbox, where the updated runtime and library configuration won't cause problems for your actual work or your team? And is it possible to use your already-configured editor, debugger and other development tools?
In a word: YES!
Learn ES7 Without Risking Your Current Projects!
- Learn the latest syntax and be ready to update your projects when the feature is stabilized in browsers and in Node.js
- Run Node.js v7.9.5 without replacing your system's Node.js version, or using any node version management tools
- Use Docker to isolate your experiments from your real projects. Never again worry about breaking your current work
- Work with your editor and your configuration. No more duplication of settings and tools, between machines. Save countless hours by not having to manage two development environments
Watch this intro to learn more about the webinar!
- Async Functions
Take multiple layers of nested callbacks, and dramatically improve it! Remove all the nesting, and make every call asynchronous, easily
- Object.keys, Object.values, Object.entries
Iteration – it's not just for arrays, anymore! Learn how each of these works, and the benefits / drawbacks compared to each other
- Destructuring Assignment
Take an array or an object and turn multiple values from it, into multiple variables with a single line of code
- Object Rest Properties
Destructure a few key-value pairs from an object into variables, with the remaining key-value pairs in a new object
- Object Spread Properties
The reverse of Object Rest: structure multiple variables and objects into a single object. Use this for a built-in shallow-copy of objects – and learn the pitfalls to avoid when doing this!
With a simple set of tools provided by Docker, combined with the done-for-you configuration that you'll receive from this session, you'll have no problems learning and using new syntax and language features. And you'll never again have to worry about affecting your current projects!
Here's how …
A Better Way To Develop
In spite of it's relatively young age in the software realm, Docker is taking center stage and pushing many existing technologies into the “legacy” arena.
Tools like chef, puppet and ansible have been incredible to work with in recent years, greatly simplifying a lot of deployment scenarios. But they are quickly being phased out while Docker is gaining ground, dramatically changing the world of deployment and operations again!
Docker isn't just for DevOps, though.
In fact, the value that this “cloud scale” tool brings to developers – working on their laptop or desktop computer – is perhaps greater than that of the operations world.
Works On My Machine: Solved
As a developer, one of the greatest problems you have is “Works On My Machine”. That plague of problems where you've built, tested and re-tested a solution hundreds times. But when you move it to QA, or worse – straight to production – it doesn't work. At all.
There's nothing more infuriating than knowing you got it right; knowing that your code works and yet something, somewhere has failed. Again!
Docker solves this problem by encapsulating every aspect of your application – from the code itself, to the runtime environment, libraries and dependencies, and configuration – into an easily distributable binary image. Every process in your application can have a sandbox around it, letting you decide what it needs, individually.
Does one process need Node v4? Done. Another needs Node v6? And another needs PHP or Ruby or Go? No problem. With complete process isolation, distributed through a binary image that encapsulates every aspect of the individual process, you'll never have to worry about the needs of one app instance conflicting with the needs of another.
It's through this level of isolation that Docker allows you to work with ES6, ES7 and beyond, with zero risk to any of your current projects.
Virtual Application, Not Machine
Unlike a virtual machine, Docker doesn't require duplication of your development tools or environment. You'll never have to deal with one machine's configuration drifting away from another, because you're not dealing with a full virtual machine.
Docker isolates at the application level, not at the machine level.
Every Docker container is an instance of your application created from an image – an immutable, pre-configured copy of a single application process with all of it's supporting runtime libraries and configuration.
It's like having a printing press for application processes. You need another HTTP server? Stamp it into existence from the image, and you're done. Everything you need for your application – a full web server, microservice, or just an experimental version of Babel and Node.js to learn ES7 features – will be ready to roll in a matter of seconds.
What you won't find in your image or container instance, however, is an IDE or source control or other common development tools in your container. You already have these on your machine, and you should use the ones you know so well.
Bring Your Own Dev Tools
You know your editor. You know the configuration, the plugins, the way it works.
It's this knowledge and experience that makes you productive in your IDE. And no one should ever take that from you – not when you're building an application for a client, for your team, or just for yourself when you want to experiment with new language features.
With Docker, you'll continue to work from your favorite editor with all of your favorite plugins and configuration. Yet you can still work directly in the container instance through a few bits of configuration that are easily added to your Docker container.
You will easily run ES7 features through the latest and greatest Node.js version, with Babel.js and any other libraries or runtimes that you need.
And you will never once endanger any code or library in your current project, because you won't install any of these new, unstable or experimental libraries and runtimes directly on your computer.
The best part, though? With the WatchMeCode: Live! session on ES7 and Beyond You don't need to be an expert on Docker before you run the latest and greatest tooling and language features.
No Docker Experience Necessary!
In this session on ES7 and Beyond with Docker, you'll learn how to take advantage of Docker in a matter of minutes, with a done-for-you project from which you can start immediately.
You'll see the core concepts behind Docker, wrapped up into simple commands with npm scripts:
- npm run build
Encapsulate the “docker build” command, with a complete Dockerfile to define your Node and Babel sandbox
- npm run es7
Hide the details of “docker run” – with it's myriad of complex command-line options and values – to start your Docker sandbox and create a shell in which you can work
- npm run es7-shell
Need a shell into your existing Docker sandbox? No problem! This command wraps up the “docker exec” command to create that new shell instance quickly and easily
- npm run clean
When you're ready to tear it all down, this command encapsulates several Docker command-line tools to clean everything up.
And you'll get more than just these commands. You'll also receive an overview of each in the main presentation, describing what these commands do, why and how.
These scripts – along with the complete code and configuration shown in the session – will make you look like a Docker pro even if you've never touched it before.
A Solution For Developers, From A Developer
Dear developer, longing to try ES7's new syntax,
My name is Derick Bailey.
I’m also a speaker and a published author. I've been writing code since 1988, have been a prolific blogger since 2004 and have been delivering world-class training to developers like yourself, through on-site classes, screencasts, ebooks and more.
I've spent a lifetime (more than 20 years) building software for leading financial organizations and airlines, the U.S. government, and more. I've created critical systems for large healthcare organizations, saving them millions of dollars a year. I've helped small-town, independently owned businesses improve their bottom line with simple software solutions and complex process automation.
And I've helped countless developers through sites like Stack Overflow, writing sample code for Microsoft's MSDN library, by publishing dozens of leading open source projects, including the most widely used add-on for Backbone.js (Marionette.js) and more.
Through all of this, I've done my best to stay up to date with language features and syntax. But around 1 year ago – April of 2016 – I wrote a blog post lamenting the high barrier to entry for ES6 (ES2015) features.
Only … how was I supposed to work with them?
To use that new library, I would have to install a new version of Node.js, upgrade my Babel.js instance and run a ton of build tools that I have no experience configuring.
The cost of entry to use this new library was too high, so I packed up and left, feeling that I was missing out on something great – both in syntax and in the feature set of the library.
Over the next year, I saw ES6 features make their way into stable versions of browsers and Node.js. But at the same time, I saw ES7 features coming down the line and knew that I would run into the same high cost again if I wanted to try them out.
But then I realized something – that the same tools I've been using to isolate my Node.js v4 applications (yes, I still run Node v4 for some projects) from my Node.js v6 applications, could be used to isolate the latest and greatest versions, allowing me to try out the new syntax and features!
It was like a cool drink of water on a hot summer day – the most invigorating and refreshing thing I could have possibly asked for at the time!
And now, with this experience under my belt, I want to show you how you can take advantage of ES7 and Beyond with Docker.– Derick Bailey
– Creator of WatchMeCode.net
What Developers Say About Derick's Docker Training
“Thank you! Best docker resource I come across!”
“[the Docker cheatsheet] was useful, even though I've been
working with docker a while. Thanks for sharing that.”
– Oliver A
“Thank you so much for this cheatsheet –
it help in my start learning of docker.”
– Evgeny S.
“Yes. It's very good table to remember
the commands. Very useful! Cheers.”
– Arthur A.
“Thank you for the tips and advice. 🙂
Can't wait for more videos! keep it going! Thank you”
– Fabio F.
“Thanks Derick! I liked all the docker cheatsheets
with the graphic and short description it is perfect!”
– S. Thomas
Safely Work with ES7 and Beyond, in Docker
Build Docker images. Run containers. Use ES7 features and make it look easy (because it is)!
Get the latest Node.js version delivered straight to you, set up and running, ready to go in a matter of seconds. And know that you'll have a full set of resources to support your efforts and show you how to make Docker get out of your way so you can safely work with ES7 features like you want to do!
Here's What You'll Get
The live event was recorded with a runtime of 45 minutes for the main presentation followed by 25 minutes of live Q&A time. And now, you can own the video and resource bundle from this session!
Buy now, and receive:
- The webinar video
- The Q&A video
25 minutes of live Q&A from the audience
- A complete transcript of the video, after the live session
With timestamps for video locations so you’ll never be lost between the video and the transcript. Instantly find the location you need!
- Full Code and configuration from the video
Including both the beginning and end state shown in the video. You’ll have everything you need to get started, in a single git repository!
Once the live session is complete, you’ll also receive:
- A short list of ES6 and ES7 features you should learn now
- A full list of resources mentioned in the webinar and Q&A session
Find additional information and what you should be reviewing, next, to keep your Docker skills moving forward
- The complete set of Docker Cheatsheets from WatchMeCode
Never again scroll through endless pages of online documentation. These cheatsheets will show you the most common command-line options and Dockerfile instructions
- Opportunity to attend other live sessions at a discount
With the on-going series of live Docker webinars, you’ll have early access to the registration for each session at a discounted price
My webinars with all of the resources mentioned above normally sell for $49.
BONUS: 7 Docker Screencasts!
Buy now, and you'll receive not only a seat at the live webinar and Q&A session, the complete transcript and resource listing, the list of ES6 and ES7 features to watch, the Docker cheatsheets, and the full code and configuration to quickly get started… but also a FREE bonus of 7 additional screencasts that will teach you the basics of working with Docker!
With the “Docker Installation and Management” screencast series from WatchMeCode, you'll learn:
- How to install Docker on any operating system: Windows, macOS or Linux
- How to download and run Docker images to get up and running quickly with thousands of images to choose from in DockerHub
- The real difference between an image and a container and what that means for your work with Docker
- Command-line management tools for your images and containers, so you don't end up with more than you need on your machine
- Visual management tools for those that prefer a sleek UI over command-line tooling
- … and more!
This 45 minute series of screencasts will introduce you to the core of working with Docker, and help you better understand what you'll see in the ES7 and Beyond with Docker webinar. And when you buy the videos and resource bundle for WatchMeCode: Live! session, you will receive instant access to the Installation and Management screencast series, so you can get started right away.
It's a $49 screencast course, and it's yours FREE with your paid registration for the ES7 and Beyond webinar!
Buy Now and $Save$
Between the live session and the screencast bundle, and other resources, there is more than two complete courses worth of knowledge in this deal. But you won't have to pay even a single course' price to get this knowledge!
- The ES7 and Beyond webinar: $49
- The Docker Installation and Management series: $49
That's a $98 value, before you toss in the additional resources like the Docker cheatsheets.
With your registration, today, you won't even pay half what it would take to buy it all separately.
Your Price, Today: $49.00!
Your webinar video, transcript and other bonus materials will be delivered to you immediately, via email!
Derick's 100% Money-Back, “Works-On-Your-Machine” Guarantee!
Plus! You'll keep everything – the ES7 and Beyond video and resources, and the FREE bonus of 7 additional screencasts in the WatchMeCode series on Docker Installation and Management!
With this guarantee – that you will have a safe environment in which you can learn ES6, ES7 and beyond – you have nothing to risk, unless you decide to pass up this offer!
There's no better way to try new language features, and you will never find a better deal on the knowledge that this live session and screencast bundle will deliver.