My work involves speaking with developers throughout the world. We have a platform for developers to share their knowledge with their peers in the format of text-based courses, and my job is to find content creators. So I get to talk to a LOT of developers. For example, in the last four months, I've spoken with 80+ developers and engineers who work in the following areas:
AngularJS, AWS, Bash, CSS, Dart, Data Analytics, Data Visualization, Design Patterns, Docker, EmberJS, Ethereum Blockchain, Firebase, GatsbyJS, Git, Golang, Java Spring, JavaScript, Kotlin, Kubernetes, Machine Learning, Microservices, MongoDB, Next, Node, Objective-C, Perl, Python, R, React, Serverless, Swift, Systems Design, TypeScript, Unit & Automated Testing, VueJS, & Web App Architecture
Recently, I presented to a local JavaScript Meetup group about what I've learned from conversations pertaining to JavaScript, so I decided to share my learnings in the form of this post as well. What's neat about my conversations is that they span both developer tenure and geography: from junior front-end engineers and full-stack developers to 20-year veterans of embedded systems. These professionals come from the following countries: 🇦🇺🇦🇹🇧🇷🇨🇦🇭🇷🇫🇷🇮🇳🇮🇪🇮🇱🇩🇪🇱🇧🇲🇾🇳🇿🇳🇬🇷🇸🇪🇸🇬🇧🇺🇸🇿🇲 (that's Australia, Austria, Brazil, Canada, Croatia, France, India, Ireland, Israel, Germany, Lebanon, Malaysia, New Zealand, Nigeria, Serbia, Spain, the United Kingdom, the United States, and Zambia, with hopefully many more to come). About twenty of these conversations have centered on JavaScript.
Want to learn JavaScript development or land a great JavaScript job? Check out Become a Front-End Developer, React for Front-End Developers, and Ace the JavaScript Coding Interview to see if Educative can help you on your journey.
Here are some of the insights and opinions I've gleaned from JavaScript developers worldwide.
What Keeps Coming Up in Conversation?
The languages that have most come up are plain JavaScript and TypeScript. On the framework side, there's been a much longer list: Angular, Ember, Express, Gatsby, Next, Node, React, React Native, and Vue. Related tools and applications have included Jest to test the Vue framework; Firebase for connecting their JavaScript applications to a cloud-hosted, realtime database; and Redux to manage state.
This brings me to how these developers are using JavaScript in their daily work and in side projects.
How is JavaScript Being Used?
Here are a handful of the use cases I've encountered, all of which will be familiar to JavaScript developers:
- building backends with Node, important because JavaScript itself has classically been a front-end language but Node extends upon that
- creating web3 blockchain applications with React as the interface between existing web2 architecture and web3 backbones like Ethereum
- visualizing large volumes of data using libraries like p5
- creating responsive or static websites with Gatsby, GraphQL + Gridsome, or React + Next
- with React Native, building mobile business applications that are optimized for high traffic & high API call volumes
- functional programming in JavaScript with the Ramda library
- building realtime apps and serverless applications
And a lot else.
Why Do JavaScript Developers Love JavaScript? :)
Developers gravitate to different languages for many different reasons. If you're building backends for critical automotive applications, compilers for large social networks, or mobile front-ends for fintech startups, the languages you learn and use will be way different, ranging from C++ and C# to JS. If you're steeped in Kubernetes, you likely know Go. And if your dream is to build next-gen mobile apps, then Kotlin and Swift are on your menu. Besides industry and type of software, other things like personal preference and how good the technical documentation for a language is matter too. This could be its own language-spanning article, but here's what JavaScript developers have mentioned as reasons they love it so much:
- JavaScript is easy to grasp, easy to build things with, and pretty
- JavaScript has many frameworks, which gives developers flexibility in what they build and how
- The JavaScript language and framework ecosystem changes rapidly. For example, React Hooks came out as a feature of React 16.8 just five months ago, yet it already offers some developers an alternative to Redux
- As mentioned earlier, JavaScript can be used alongside graphics libraries like p5.js to represent huge amounts of information, which is attractive to data scientists who prefer working with JavaScript over Python
- Since the V8 JavaScript Engine used in the world's most popular web browser (Chrome) is "optimized as heck", JavaScript runs very fast on devices used by billions of people. I'm also told that JavaScript handles things like event loop queues well, which creates fewer bottlenecks for web applications and attracts engineers and developers who are conscious of performance
So JavaScript developers love JavaScript for reasons that extend beyond the language itself: it isn't just the ease-of-use, flexibility, and keep-you-on-your-toes freshness it affords its adopters. It's also that because so much of the modern world's technology stack runs—and runs well—on JavaScript, the language is a great choice for building in today's web-connected era. This seems to be the synopsis of sentiment about JavaScript from many.
What JavaScript Developers are Saying about...
Here are a few opinions and observations I've encountered regarding the following:
- the TypeScript language
- the JavaScript-friendly functional language Elm
- the static site and progressive web app framework Gatsby
- the UI and single page application framework Vue
- the topic of testing
TypeScript
One developer I spoke to mentioned that because JavaScript was originally built so quickly—"it was made in a week"—it has always been a little rough around the edges. So “TypeScript tries to smooth out the rough edges of JavaScript". Additionally, TypeScript has become popular with advocates of type safety, as more developers embrace its importance for their code. And despite TypeScript being fairly new, released a mere six years ago, it's already matured to a point that some developers are using it alongside languages like C# to build complex systems, to assemble offline tools such as command line interfaces, and to create advanced user interfaces and web apps in Angular, per some of the examples I've come across.
Elm
Some JavaScript developers have the opinion that Elm may someday be to TypeScript what TypeScript today is to JavaScript. In this view, a functional programming language like Elm confers a huge working advantage to front-end programmers because it interoperates with JavaScript and can be used to build high-performance graphical user interfaces (GUIs) for web browsers, perhaps for lighter use case scenarios than one would pursue with TypeScript and vanilla JS. So it may be worthwhile to get a head start by learning Elm today if you wish to build the front-ends of tomorrow. On that note, JavaScript developers who want to take on that challenge might enjoy this tip: since Elm inspired Redux, learning Redux first may acclimate the newcomer to Elm faster.
Elm developers for the time being do face a challenge, which is that the Elm community is still very small at a time when communities in other languages and frameworks are experiencing rapid growth.
Vue
Speaking of community, adoption of the Vue framework is growing globally, with large hubs of users in China, Eastern Europe, France, and Nigeria, among other places. One reason Vue is growing so quickly is how easy it is to learn compared to other frameworks for single page websites and user interfaces. The Vue community also exudes an inclusive, welcoming vibe that socially surrounds and engages its members both online and offline. This makes a lot of sense and is true of any space: when it's easier to come by answers and developers are willing to help you, it becomes easier to start creating and continue solving problems.
Some Vue developers also add that Angular is harder to learn than React and React is more difficult to work with than Vue, making Vue the default best choice for some. Developers who feel this way still praise Vue for supporting advanced use cases and having functionality (e.g., lists) that some frameworks don't have. The Vue developers I've spoken to seem pretty bullish on the upsides Vue offers their work.
Gatsby
Whereas Vue is used to build single page apps and web interfaces, Gatsby is used to create static and responsive websites. Gatsby adopters are saying that they're having a great time building static sites with low computational overhead, solid caching, and great performance. Gatsby also makes creating cross-browser progressive web apps easier for them. It seems to be developing a reputation as a beloved JavaScript alternative (or analogue) to the excellent Ruby-based static site generator Jekyll.
The Importance of Testing
Last, and on a non-framework-related note, many developers will rightfully say that every programmer should be able to write testable code and be able to demonstrate that they can do so. This is especially important for developers who aspire to lead development teams, because testable code leads to fewer bugs, regressions, and other problems that get in the way of consistent, reliable, scalable user experiences. In other words, if you want code that performs well, you have to test the code well also. Generally speaking, it's probably wise to invest time understanding topics like manual and automated testing, the tools to use for both, and how to write good tests with such tools.
Accordingly, there's a growing need for JavaScript-specific unit testing and automated software testing knowledge, because with the growth of JavaScript, more JS developers are advancing in their professions. As they become more senior, they are being gauged in part on whether or not they can write and ship code that can be continuously tested and improved.
So what are JavaScript developers saying about testing? That being able to use tools like Jest to test their Vue apps, and state management libraries like Redux to make their code more testable from the get-go, is important to their development work. That their industry peers need to know about general and JavaScript-specific unit testing, performance testing, automated testing, and QA. Unfortunately, I've also heard that there isn't yet the same volume of quality learning material available for testing as there is for technology areas like Docker, Kubernetes, cloud infrastructure, and web app architecture—but hopefully this is about to change. For example, in the last few weeks, several developers (which we call Authors on the Educative learning platform) have told me they plan to create courses dedicated completely to testing.
Want to learn more about JavaScript testing? See if Testing Vue.js Components with Jest or Learn Vue.js from Scratch: Building & Testing a Movie App can help.
Now that we're on the topic of advice from developers to developers, let's see what my JavaScript contacts are learning about and think others should be too.
What JavaScript Developers Say JavaScript Developers Need to Succeed
I've saved the best part of my share for last: what JavaScript developers throughout the world feel their peers should be learning in order to stay ahead and advance the art.
The first perspective JavaScript developers have shared is that if you're switching from strongly typed languages like Java, Kotlin, or Objective-C to a weakly (loosely) typed language such as JavaScript, it can be difficult to make the context-switch. The learning curve for JavaScript can therefore be steep, even for seasoned developers, so invest time into learning how to make that switch, and develop the mental models needed to make the most out of JavaScript. This is an important point for both newcomers to JS and experienced developers looking for fresh challenges.
Some JavaScript developers also argue that their peers from non-traditional backgrounds who learn JavaScript without formal training in computer science will benefit from making time to learn formal language theory. The view here is that developers who self-teach JavaScript at some point need to tussle with formal language concepts, after which they can push JavaScript to its true limits and advance further and faster in their programming careers. I like points of view like this that respect the intrinsic hands-on, learn-by-doing nature of software development while also acknowledging that conceptual theory can help developers transform what they're able to do with their skills. This seems like a balanced strategy.
On a third and more tactical note, multiple developers have mentioned how important it is to understand and implement promises, which are objects you can program today that are capable of returning values in the future. Knowledge of promises—what they are, how they work, when to use them, and why they're powerful—has been described as a must-have in every JavaScript developer's toolkit.
Here are a few more examples of areas JS developers are finding valuable to learn about and recommend to others for further study:
- web components & web sockets
- progressive web apps (PWAs)
- serverless backend frameworks (in Node)
- JavaScript-specific interview skills
The "Five-figure Salary Impact" of Strong Interview Prep
I want to highlight that last one. For a lot of JavaScript developers, building amazing applications and becoming known and respected in their professional communities is its own reward, but if you're spending years of your life working hard to become great at what you do, then you naturally want to be well-compensated for your skills. As JavaScript developers climb career ladders and begin to field job offers from multiple companies, solid interview prep can actually make a big difference not only in reducing the time spent interviewing but also in enhancing the compensation packages and final offers extended. I've heard straight from developers that this can make on the order of a "five-figure impact": $$,$$$ more in salary for crushing your interviews. Our courses related to coding interviews, systems design prep, and data structures and algorithms for whiteboarding exercises are popular sellers for this reason.
In Conclusion
The global JavaScript landscape is large, varied, and filled with talent, ideas, and approaches. Developers and engineers in this space have diverse perspectives on how to build applications for web and mobile, on which approaches and frameworks to use, and on how to leverage related knowledge and tools to create awesome things. But every JavaScript developer I've spoken to is unified in this: they all have a passion for JavaScript itself, for continuous learning and experimentation, and for helping others grow along with them.
That about covers it for my first "Conversations with the World's Developers". If you'd like to stay in touch as I learn more from talking to the world's devs in JavaScript and many other languages and frameworks, shoot me an email or follow me on Twitter @alexoeducative. My team can be found at @Educativeinc as well. And if you want to see why 100,000 developers and engineers rave about our courses and tutorials and what our learning material is doing to advance their learning and their careers, check us out at Educative.io.
Teach Our Learners-Your Peers-What You Know
Also, if you have software development experience in JavaScript or in a language, framework, or topic discussed in this post, and if you think you'd like to teach a course on our platform, go ahead and send me a message. We have integrated compilers, an in-browser IDE, and a platform where students don't need to download anything: they just buy your course and start learning right away. Our content creation tools are
- welcoming (you've never built a course before? We've got you)
- text-based (you don't have a nice mic, an expensive camera, or video editing software? That's okay, your knowledge and a keyboard is plenty)
- accompanied by tons of free support from us during your content creation process to make sure your students end up with a great learning experience (you're not on your own :))
We'd love to have you join us as one of the first 100 developers in the world to release courses on Educative. Get in touch.
I'll continue having Conversations with the World's JavaScript Developers, so see you in about six months for Part 2! Thanks for reading.
Appendix: JavaScript-Related Resources Mentioned
- Angular
- Elm
- Ember
- Express
- Gatsby
- Gridsome
- Jest
- Next
- Node
- P5
- Rambda
- React
- React Native
- Redux
- TypeScript
- V8
- Vue
Liked this article? Heart and retweet this on Twitter:
Top comments (5)
Oh nice it looks like you discovered Dev.to it is honestly so much better than medium! Between here and Twitter and a little Reddit I rarely use other social media sites anymore lol
Jacob! What a nice surprise to see/find you on here! I hope your new work is going AWESOME. Great to hear from you. :)
oh yeah, I had been interested in this site for a while but after Medium got super greedy and even threatened Hacker Noon to try and force them to put up a paywall, I moved to more Reddit, Twitter and tried out this site and just fell in love with it and the community.
Great information to have!! Thanks!
You're welcome, Phillip! Glad you found this valuable. Thank you!!