Less noise, more data. Get the biggest data report on software developer careers in South Africa.

Dev Report mobile

Choosing Languages Wisely: How JavaScript Helped Me Keep Up

6 August 2018, by Tumiso Marebane

How does a developer ensure that they’re learning the right things to keep up with the ever-changing software industry? In my personal experience, one of the most useful things to do is to identify and pick a language that keeps up with the trends and allows easy access to resources. Here’s how JavaScript helped me stay afloat.

Inner-image-1

Learning a programming language can be daunting, especially when, like me, you are coming from an entirely unrelated field. JavaScript helped me ease into the swing of things right from the get go because the community and documentation gave me a clear idea of where to start and how to go about my learning journey. How? The most important aspects of JavaScript that helped me are:

  • Its accessible ecosystem,
  • Being at the forefront of cross-browser development,
  • Having the ability to do both front-end and back-end coding, and
  • The ability to transition into mobile seamlessly.

Here’s how that looked like for me:

JavaScript’s ecosystem

Freely accessible resources

In the beginning, your most important ally is an easy to understand instruction manual. JavaScript and AJAX for Dummies, written by Andy Harris, was the book that started it all for me. At the time it was free and came with links to example codes and illustrative pages. This was very useful, because at the time, I was a truck driver at a glass recycling company - not exactly Bill Gates. The free code examples in the book allowed me to experiment and practice as much as I wanted.

Open and welcoming community

Learning programming introduced me to a new world. As such, it came as a very pleasant surprise when I discovered that the JavaScript community was a friendly bunch that participated a lot in open forums and networks. Through these, newbies like me could ask as many questions as their data providers allowed. (Maybe I should apologise for all the annoying questions over the years :P)

Native Web Usability

Back in 2009, most online interactions and transactions were done on websites and not on as much other devices as it is today. Through JavaScript, I was in a prime position to build web applications, because all the major browsers came with JavaScript already built in. In addition, the fact that JavaScript is used to manipulate the Document Object Model (DOM) forced me to also learn XHTML and CSS2. This helped broaden my knowledge base right at the start and exposed me not only to combining various languages, but also to building rich and dynamic user interfaces.

Cross-browser development

As the web got better and strengthened its reach, so did web browsers like Chrome, Firefox, Opera and Chromium. Cross-browser development became such a big thing that every application had to be able to perform and look the same across all major browsers. That’s why developers had to be able to build for each of them.

The JavaScript community came up with libraries and frameworks to address this cross-browser issue. They also built frameworks in partnership with other languages such as HTML and CSS.

Lucky for me, a popular JavaScript library named jQuery was leading the charge towards a status quo that would allow to have one code base for all browsers. It meant I didn’t have to learn everything that was out there, but could instead stick to perfecting my proficiency in the language. As I jumped onboard jQuery, so did over 50% of the web. Again -the amount of help I got from online forums was enormous.

Enabling both front-end and back-end work

At some point, the software engineering world started emphasizing the differences between front-end and back-end work. Now there are developers that do just one or the other which makes those that can do both particularly popular.

Initially, JavaScript was not able to meet the demand to differentiate this way. There was nothing to help with back-end work so JavaScript developers had to learn other languages, in my case PHP, the popular server-side scripting language. However, the JavaScript community soon came up with NodeJs, a JavaScript runtime build on Chrome’s V8 engine. All of a sudden, I could do back-end work in a JavaScript server environment.

The Node Package Manager (NPM), the module manager for Node, helped a lot with things like managing package versions, using build tools, and integrating unit testing. This was a major game changer for me, as I could now spin an entire website off of one language without breaking a sweat. I’d become a full-stack developer, using only one language!

Going mobile

With these tools at hand, a developer was set to conquer the world. But then... the world changed. Devices got smaller, mobile phones got smarter and even though the world still stared at screens for online interactions and transactions, the preferred screens were now a lot smaller than the desktops I had gotten used to. By now, native mobile apps have gained so much traction that they are part of the package for every online software products.

At the dawn of this mobile predicament, the JavaScript community initially seemed a bit lost. Once again we went out to learn other languages in order to develop mobile apps or use web views. There was just nothing for JavaScript in this world. But after a long period of fairly suboptimal attempts, the community came up with a couple of frameworks that allowed for a truly native mobile app experience: Tools such as ReactNative and NativeScript can now be used to build mobile apps in the same manner as Object C or Java.

I must admit, I didn’t think that JavaScript could enter into this mobile app development world at all and I’ve only really built test chat apps with both these frameworks. That said, I immediately noticed the amount of time I saved, just in the setups alone. This was a breath of fresh air: I didn’t have to learn any other language to get a mobile app going after all! Add to that the ease of development and testing and this developer was close to tears of joy.

Conclusion

Trying to build everything and learn every language is a self-defeating task. At some point, a developer has to decide on a direction in order to be able to build a core stack. This is what will eventually become their identity, their north star for a continuous learning journey and, hopefully, their source of bread.

I understand that there will be some objection to picking JavaScript for this all-important journey. Please, feel free to choose any language you deem worthy. Find something that you truly believe will aid you in your overall growth as a developer. For me, JavaScript was my beginning, but I kept at it because I noticed its ability to keep me on my toes.

Resources

Strip-5


Tumiso is a Software Engineer at Superbalist.com. He mostly works on web apps, but also dabbles a little in other sections of engineering, including mobile. He loves to learn and most of his days are spent obsessing over some new tech and how to use it. He recently created a PHP blog, where he aims to teach people how to build a website from scratch. His ultimate programming goal is to build a piece of software that can run everywhere.

Source-banner--1-

Recent posts

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.