4 Resolutions towards Being a Better Developer

Last year was something of a transition year for me. Not being fulfilled at work, I went back to the drawing board and rediscovered the things that actually contribute to my wellbeing, regardless of their impact on my resume.

The new year brings with it an opportunity for us to better ourselves. This article will talk about doing this from a developer’s perspective. There won’t be any mention of fitness goals or a diet plan although those are both important. Approach this article from the perspective of one developer sharing the steps that continually contribute to his growth.

1. Learn a new language

I strongly believe that the best things happened in my career when I forced myself to learn new languages. It allowed me to rethink best practices and discover new ones as I took on new perspectives, especially when transitioning to different programming paradigms.

I started my career with Java before a stint with C#. Eventually, I made my way to JavaScript and because of its general purpose design, strong community, and breadth of applications, I haven’t had much reason to budge. Now, I am on the hunt again with Dart firmly in my crosshairs.

I would not be the developer I am today without the perspective I gained from this journey, so with that here’s a short list of languages that are becoming increasingly popular.

Dart

My year began with DartConf and a challenge made by their core devs to be the language for all client development. I thought it was a very lofty goal a few years away from realization, but that alone should warrant your attention. Dart is a simple language to learn. It leans heavily on the object-oriented principles of C# and Java without completely forsaking functional programming principles. Keep in mind I’m a JavaScript developer by trade and still believed firmly enough in its mission to come out of pocket to attend DartConf.

2018 ended with Flutter Live announcing its 1.0 release to the world. As if that wasn’t a good enough Christmas present, the team gave early previews of desktop and web support in the works.

What makes a language awesome isn’t that it’s perfect when it is created but rather that it is able to evolve with its community and the problems it needs to solve (see JavaScript). Having seen Dart rise from the ashes of conflict it faced trying to replace JavaScript, I am excited at the prospect of its evolution into something more.

TypeScript

2018 saw huge gains among the TypeScript community as it became less of a crazy thing for Angular developers and more of a general purpose extension of JavaScript. The biggest boon for TypeScript is that it doesn’t require you to write interop to access the JavaScript libraries that you already know and love. Valid JavaScript = valid TypeScript, and you can enable stricter type rules at your leisure.

Personally, I love the marriage between TypeScript and component-driven frameworks like React & Vue. I also consider type definitions to be a love letter from open source maintainers to their audience (especially for maintainers who do not use it regularly).

Reason

Reason seems to be the most popular technology out of Facebook not named React. It is able to have multiple compile targets like Dart because it is built on OCaml.

Its main differences from TypeScript are that it is a much more of a Functional language and that it offers better type inference. It is far behind TypeScript in terms of adoption but I expect its popularity to grow due to the community behind it and the drive of projects such as ReasonReact and Reason Native.

Elixir

I would be remiss if I didn’t recommend at least one backend language. Sure, it seems JavaScript is slowly swallowing the world, but don’t let that stop you from exploring. Elixir is a dynamic, functional language that leverages the Erlang VM. If you want an alternative to Node.js and its mission to consume the world, Elixir is worth a look!

2. Learn a new technology

2018 was a huge year for technology. It seems almost every quarter had a huge announcement regardless of whether you work primarily on the frontend or backend. Learning a new technology can be as beneficial for your career as a new language, and there’s no time like the present! Here’s a short list of technologies that will continue their emergence in the new year.

Flutter

Since Flutter and Dart both make this list under different categories, consider learning Flutter a two for one special. Learning Flutter goes hand-in-hand with learning Dart since it is the best reason to do so.

Today, Flutter allows you to build native mobile for Android and iOS with native performance, an expressive UI kit, and developer-friendly features like hot reload. In a near future, Flutter will allow you to build mobile, desktop, and web apps from a single code base. Get excited!

WebAssembly

WebAssembly is a type of low-level assembly-like language that can be run on browsers. It enables programs to be developed in multiple languages and to run at near-native performance while enabling developers normally relegated to the backend to leverage their skills on the frontend.

WebAssembly is not a replacement for JavaScript but rather an extension of it. It is meant to complement JavaScript and run aside it and will continue to evolve as the community explores its benefits.

https://codelabs.developers.google.com/codelabs/web-assembly-intro/index.html?index=..%2F..index#0

PWA

If you have an Android phone, there’s a high likelihood that you used at least one Progressive Web App this year. More a set of standards, PWAs are a new level of quality for the web meant to challenge the notion of what can and can’t be a native application.

I don’t believe that PWAs can fully rival native applications — there are just some experiences that are better native than their web counterparts. That said, I do believe that every web app should be a PWA and that a strong case should be made for any native app being built over a PWA, especially for startups.

GraphQL

Yet another Facebook driven project has made this list and that’s a testament to their work ethic. GraphQL is a query language for APIs. It is the culmination of the vision of Backend for Frontend (BFF) API design. It allows front-end developers to tell the backend what data they wish they had, and thru magic that data is returned to them exactly how they requested it.

I expect the applications of GraphQL to grow as it evolves beyond its current uses on the front-end to client-side state management and microservices.

Kubernetes

Again, I have to give the backend some love so I’m doing so by mentioning Kubernetes — an open source system for automating deployment, scaling, and container management. Basically, it’s your key to building your own AWS or Google Cloud.

In its current state, I find the learning curve for developers adopting Kubernetes to be immense. I expect that to change for the better as serverless frameworks built on Kubernetes and Docker continue to flourish.

3. Contribute to an open source project

We have all benefited greatly from the open source community in the last decade — that much should be obvious. Regardless of whether you are contributing thru donations, issue creation, or simply writing documentation, you’re making a huge impact to the furtherment of technology by doing so.

If you are a newcomer to the open source community, there are already a couple of great tools out there to help you get your feet wet.

Good First Issue CLI

Most popular projects on GitHub have labels specifically targeted toward identifying easy issues for new contributors to tackle. With Node installed and access to a terminal finding an issue to contribute to is one simple terminal command away.

Good First Issue App

I officially released this app into the world today! Heavily inspired by the Good First Issue CLI, it allows devs to search thru a curated list of popular GitHub projects to find issues that have been deemed “good for newcomers.” Your access to the terminal shouldn’t be a barrier to figuring out what projects need more community support.

Your open source contribution could be as easy as identifying a popular library that you think is missing and submitting a PR! 🎉🎉🎉

4. Participate in a civic hacking event

Last but certainly not least, participating in a civic tech event is a great way to use your skills to give back to the same community that you live in. It is awesome that we as developers are part of an industry where we are allowed to constantly be challenged to solve new problems. Our society could benefit immensely from those same skills that we use at work every day.

I attended several conferences this year and while they were all good, they paled in comparison to my experience at Brigade Congress. As awesome as it is to learn something new, learning how to apply those new skills towards the betterment of others is truly fulfilling. Regardless of whether you are a developer, a product owner, or a technical writer you have a skill that can be a tremendous help to organizations such as CodeForAmerica and by translation your community.

As a member of Open Charlotte, I have seen firsthand how my contributions can positively affect a community. It is a humbling and empowering feeling. If we want a better world, then it is up to us to build one!

Conclusion

I hope that this advice will aid you in becoming a better developer. When 2019 ends, I firmly believe that regardless of where you are you will find yourself in a better place both as a developer and a person. Happy New Year!

Sup?! I’m Ryan Edge. I am a Software Engineer at Diligent Corporation and a semi-pro open source contributor.
If you liked this article, be sure to follow and spread the love! Happy trails