Article

8 essential skills for Angular web developers

By Brice Wilson    |    January 16, 2019

There was a time when mastery of a single technical skill practically guaranteed years of secure employment. However, modern software development requires much more than knowledge of your favorite programming language. This is particularly true in the world of front-end web development.

Being a successful Angular developer requires you to develop several different skills and apply them at the right time and the right place to create an application your users love.

Here are eight essential skills you need to succeed as an Angular developer.

1. npm

The Node Package Manager (npm) is practically a required tool for all web developers these days. Even if you’re not doing Node.js development, npm is the primary tool used to install thousands of client-side web development packages–including Angular. The entirety of Angular is spread across multiple npm packages and it’s very likely you will eventually have a need to install other useful, non-Angular packages as well. Therefore, knowing how to install what you need when you need it is valuable.

2. Angular CLI

The first Angular package you should install with npm is the Angular CLI (Command Line Interface). Although it’s certainly possible to install Angular packages individually and write all the code by hand to configure your new app, the CLI makes that process much easier and ensures that your app will adhere to accepted best practices.

The benefits of using the CLI extend beyond the creation of a new application. You can also use it to add new components, services, modules and more to an existing app. This will save you lots of typing, ensure you follow Angular coding guidelines and guarantee you don’t forget the little bits and pieces that can mean the difference between functioning code and hours of head-scratching frustration.

3. HTML and CSS

Frameworks like Angular don’t eliminate the need for a thorough knowledge of the most fundamental web development technologies. Angular provides the building blocks you need to build fast, functional apps, but those apps still must be rendered in a browser and that means building user interfaces with HTML and CSS. Angular Material and other style libraries are great at helping you quickly deliver beautiful apps, but you need to know how and where to tweak things to achieve the precise look you’re trying to deliver. Frameworks come and go, but fundamentals like HTML and CSS are forever!

4. Angular

This one is obvious, right? You can’t be a good Angular developer without a solid understanding of the Angular framework itself.

Angular is a large framework and it will take some time to learn all the different parts and how they fit together. However, the good news is you don’t need to know everything to get started building useful applications.

Just about every Angular application will need forms, modules, components and services. Learn how to add and connect these pieces and you’ll have the skills necessary to build full-featured production applications. You’ll also have a solid foundation for continued learning and the implementation of increasingly sophisticated solutions.

5. TypeScript

Client-side web applications have traditionally been written with JavaScript. TypeScript is a superset of JavaScript that includes support for strong typing. Angular is written in TypeScript. It’s the recommended language for creating apps with Angular.

There are lots of reasons to use TypeScript instead of JavaScript, but at the top of the list are reduced bugs and an increased ability to confidently refactor your code. By taking advantage of strong typing, you can be sure you and your team are using variables and functions as they were intended to be used. This will undoubtedly reduce bugs in any large codebase. Also, using the power of TypeScript to confidently refactor your code means your app can continue to grow and evolve as the needs of your users change. You won’t find yourself stuck with large chunks of code you’re afraid to modify for fear of breaking existing functionality.

6. RxJS

RxJS is a library for reactive programming with observable streams. It exists independent of Angular but is bundled with the framework and used for many common tasks such as making HTTP requests for data. Angular uses observables and the other features of RxJS to provide a consistent API for performing asynchronous tasks.

7. Git

Building even simple applications without source control is a risky way to work. Just as TypeScript lets you refactor your code with confidence, Git lets you experiment with new application features and coding techniques with confidence. Knowing you can quickly and easily use your Git repository to return to a previous (working!) version of your code gives you the freedom to test out crazy ideas or build a proof of concept your users may find helpful. Software is always evolving. Using Git helps you evolve your apps safely with no fear of losing work or breaking existing functionality.

8. Empathy

There’s more to building great software than technical skill. Think about your users and the goals they’re trying to accomplish. Where does the app you’re building fit within the rest of their workflow? How will it be prioritized among the other demands for their attention? Talk to them and try to place yourself in their situation. It’s likely you come from very different professional backgrounds. Even brief chats may give you a perspective you wouldn’t otherwise have.

Empathy for other developers is also essential. Being a software developer isn’t easy. The tools and technologies change often, and it can be difficult to keep up. Remember that the developers on your team all came together with a different set of skills and experiences. Take some time to consider that and find the ways you can learn together and complement each other to create great software.

Wondering how your Angular skills stack up? Get clarity with your Angular Role IQ

About the author

Brice Wilson has been a professional developer for over 20 years and has used many tools and programming languages during that time. His current interests are centered on web services, single-page web applications and native mobile development. He has worked as a developer and architect for a number of large companies and enjoys learning, experimenting with, and teaching new technologies. He also blogs at BriceWilson.net.