Stack Overflow Developer Survey 2020
These were just dry figures, let’s talk about the concrete things that led to them.
Frontend development has been developing very fast in the last 10 years and new technologies and frameworks are appearing almost on a monthly basis. So when choosing a technology for your next project or career, you have a lot of choices, but you still need to consider a few things such as project specific features (which technology would solve its problems best?), number of people on the project, technology stability and future support, technology knowledge if you used it before, market situation for that technology.
Currently the most popular frontend technologies among others are ReactJS, Angular, VueJS, Ember, Svelte. By knowing some of these, you can get a job in almost all major IT companies.
Thanks to many tools developed on top of NodeJS such as Express, Koa, Meteor, Sails, project development in NodeJS is very fast and some things can be obtained out-of-the-box with these tools, or with very little extra effort.
Many world-famous companies use NodeJS in production: Netflix, Uber, PayPal, Trello, LinkedIn, Yahoo, Mozzila, Ebay.
Although there has been less talk about desktop applications in recent years, they are still very relevant. So, if you have some frontend development knowledge and experience you can use technologies like Electron, Proton or NW.js to develop multiplatform desktop applications. You probably heard of or even used some of the applications developed using these technologies: Slack, VS Code, Atom, WhatsApp Desktop.
How they actually work? These technologies run main file (usually named main.js) that creates application windows which contain rendered web pages with the added power of interacting with the native GUI (graphical user interface) of your operating system. In other words, these are web applications wrapped in a desktop windows.
In last two decades there was tremendous rise in using mobile devices. People use them now more than PCs, which shifted companies’ focus slightly from desktop and web to mobile users. Different phone manufactures use different OS for their phones, which makes it more complex and more expensive to develop mobile application that will be available to users on all platforms.
Technologies like jQuery Mobile, PhoneGap, Apache Cordova, React Native, NativeScript, Ionic, Titanim let you write your application using HTML, CSS, and JS, then they create build for different mobile platforms. The frameworks have special modules that let them use native mobile features, like camera, GPS location, swipe interactions, etc. They also let you maintain one code base for several different mobile platforms.
Although these technologies enable faster and cheaper development of mobile applications, they are not suitable for every project. They are widely used by startup companies, because of the things mentioned above, but there can be complications with applications that use many native OS modules, or some modules that doesn’t have implemented support for technology at all. On the other side, they are very suitable for projects that in some way consume data obtained from backed APIs and use little or no native OS modules at all.
Every month we see a new smart device developed for our car, home or office. We can have them all connected to our PC, mobile phone or tablet and communicate with them to ease our work. IoT is definitely disrupting many industries, and companies invest more and more resources in developing software for their devices. IoT devices usually have limited hardware and software capacities so companies must pay close attention to choose the right technology for writing programs for it.
- Node.js is open-source and can be used to handle a large number of requests generated by IoT devices such as sensors, beacons, transmitters and motors
Some popular and used technologies and frameworks for IoT programming are: JerryScript, IoT.js, Cylon.js, Johnny-Five.
Using ML in the browser opens up many possibilities as browsers “communicate” directly with client: product can have access to events of different devices like webcams and microphones, which can provide video and audio input for ML model.
After simpler projects start developing slightly more complex projects. In this phase you can start using node and npm, and some library or framework.
After that, learn the basics of TypeScript and start learning the technology for your dream job. If you have not yet decided what you want to do in life or you just want to get programming job, start learning some of the currently most popular technologies such as ReactJS, Angular, React Native, which will lead you to decent job the fastest.