A Software Engineer’s Goals for 2016

Sawant Shah
6 min readAug 3, 2015

--

Being a software engineer, I have focused on architecting web applications for the last many years. From programming websites and building up a full-stack skill set, to delving into DevOps and managing server operations — been there, done that, and have kept evolving.

Yet, my favorite thing to do as a software engineer is writing code. Quality code.

It’s 2015, and the world of technology and software development continues to witness rapid changes. There are new and better ways to do things; smartphone usage has overtaken desktop usage; there are new paradigms in programming; cloud is ingrained in everything like never before.

The Pragmatic Programmer book tells you to “learn a programming language every year”.

Getting stagnant in your field is never an option for a software engineer. One of the core aims of a software engineer/developer ought to be ‘keep updating your existing skills and learning new stuff’.

Thus, it’s time to learn and improve my skills that will take me into 2016, with the right boost to my skillset and my career.

The criteria for choosing what to learn is based upon what I can do with that language or stack — both projects-wise and career-wise.

So, without further ado, here is my list of language/stacks that I would like to focus on in 2016:

Mobile App Development

iOS and Android — the two key mobile operating systems.

I have programmed mobile apps through hybrid frameworks for clients, but not in the relevant platform’s native languages yet. I started iOS development after iOS 7 arrived on the scene. Since Swift was not yet invented back then so I started learning Objective C (here is a fun way to learn it). Objective-C is a relatively complicated language, with a very different syntax structure, but it ended up being a joy to learn. It was fun programming in Objective-C.

Although I already know Java, but I didn’t get the opportunity to set foot in Android’s native territory. Android has not yet moved to the changes Java 8 has brought upon, so as long as developing for Android requires experience in Java 7, well I got that. So, the challenge here would be to create native apps on both iOS and Android platforms.

Goal 1: Launch at least two separate apps on both iOS and Android platforms in the next one year.

Swift

Apple’s Swift programming language — introduced in 2014.

For the first goal above, I would like to develop the iOS app in Apple’s Swift language instead of Objective-C. Apple looks committed to Swift as version 2.0 was announced at WWDC 2015, along with the commitment to make Swift open source later this year. Thus, it’s time to fully embrace this new modern programming language, which is going to be the main language for programming on all Apple devices.

Swift is much simpler than Objective C. Although yes, moving from Objective C to Swift to develop the same set of control flows, classes and apps in XCode required some getting used to (as XCode reminds me of Objective-C, and Objective-C had me glued to those square brackets instead of the dot ‘.’), but since Swift is similar to other functional languages and has a modern syntax, it has been an exciting language to code in (despite of the initial Swift and XCode bugs).

Goal 2: At least one of the two iOS apps in Goal 1 should be programmed using Swift.

MEAN Stack

MEAN: MongoDB, Express.js, AngularJS, Node.js.

Node.js has revolutionized the way developers used to think about JavaScript. JS is no longer just a client-side scripting language; it’s now finding its place as a first-class citizen of the programming world, with utility well beyond client-side scripting in the browser.

The MEAN stack (MongoDB, Express.js, AngularJS, Node.js) is all that — a full-fledged JavaScript platform. As is being said in the developer community: Javascript: one language to rule them all.

Goal 3: Create a website built on the MEAN stack in the next one year.

JavaScript / ECMAScript

Javascript is ‘officially’ known as ECMAScript, and its latest version — 6 or ECMAScript 2015 — has been approved as a new standard.

Those anonymous functions in jQuery, and in JavaScript as a whole, had me for the longest amount of time! I couldn’t really grasp them in their entirety. Why use them at all?! Where did they come from?? They confused me! Same for objects in Javascript, which are created and instantiated quite differently than other languages that I already knew (Java).

But now I am a natural at using them.

A complete mastery on Javascript may not be possible as it is now being used on so many fronts (and backs). But it’s imperative to keep up with this evolving language. ECMAScript 2015 is here, and it’s time to learn the new goodness that it brings!

Goal 4: Along with building a MEAN app in goal 3, also create an interactive page with a combination of JavaScript — with as many language features from the latest version — and CSS 3, preferably a simple game or component.

Python

Python seems to be continuously on the rise, both in use and in demand.

According to CodeEval, Python is the most popular coding language of 2015.

It’s a good general-purpose language that is platform-independent and it’s being used in a range of areas.

With applications in building websites — using web frameworks like Django; in IT automation — using tools like Ansible; in continuous integration — with tools like Buildbot; ease of use in web scraping; and its applications in data science, Python is transcending domains and is proving to be an all-encompassing general purpose language for everyone.

TIOBE Index ranks Python at # 5 for July 2015, behind Java and the three C’s — C, C++, C#.

Thus, focusing on strengthening Python skills will provide opportunities beyond a single domain or area. One can build a data scraper, perform some data analysis on the collected data and push the results online through a web framework. How cool is that!

Goal 5: Work on a civic project, which would consume an open data set, do some data analysis on it, and publish the output online in a visual form (use d3.js for visualizations).

Here are some other languages, frameworks and paradigms on my radar that I need to update myself up on:

  • Java 8
  • C# 6.0
  • Go

What are your aims for the next year? Share your goals in the comments, or write your own post and share it here.

Follow me on Twitter: @sawant
for more tech and software engineering related stuff.

--

--

Sawant Shah

A software engineer who is passionate about love, life, music and coding. Fueled by: technology, cinema & tea.