An Introduction to Software Jobs and Key Skills

in #postlib8 years ago (edited)

An Introduction to Software Jobs and Key Skills

Originally on: postlib.com

There's a lot of confusion about different titles that are used today. Programmer, for instance, is rarely used. Web development often occurs within the context of Ruby, Node, or WordPress and usually involves more traditional forms of software engineering (fullstack work for example). Here's a list of the terms I've encountered most often:

Developer

A programmer specializing in one or more languages

Engineer

A developer specializing in one or more Service Application Layers

Senior Engineer

An engineer with many years of experience - often fullstack

Manager

A manager of developers

Architect

Responsible for overall design, coding conventions, and tool/service integration assessment

VP Engineering

Technical leadership, management, strategy

Chief Technology Officer

C-level leadership officer responsible for overall technical vision and strategy

I'd say that there are six main kinds of software companies or jobs:

Early Stage Startups

Preseed (before funding), Series A to Series B or so. Your primary job is to build a minimum viable product, demo, or first generation version of the app. I usually take salary over equity at this stage since there's a lot of risk. If you think insane, wild, and every day's a totally new thing (but maximum flexibility at the cost of risk) - then this is the place for you. It's usually just you or another developer.

Startup+

You've made it - you've got customers/clients, you've scaled well. Now you can kick back (but only a bit) as you move to exit (go public or get bought). Make sure you've got solid, non-dilutable, equity! When you think fun startup this is what comes to mind.

Traditional Office

You might be in a dungeon but you've job security and good benefits. Most of the crew you work with are older and more experienced. Tech stacks here are less cutting-edge but robust and well-trod.

Security/Intelligence

You might be in defense tracking baddies or being a hacker for good (finding and reporting exploits to companies or other organizations). Your main goal is to secure something (the application, the safety of your country, or your intellectual property). Palantir or cyber-security contractors working for civilian government come to mind.

Foundation/Research/Academic

Here you primarily do research or produce open-source information. Your objective is to spread knowledge and provide tools for everyone. Math research, Apache, Node are all examples. Just because it's a foundation doesn't mean it doesn't pay well. These sorts of positions are often the most prestigious - plus, you don't have to deal with the types of things you'd have to in enterprise.

Consultant/Web Boutique

You work with other developers and help small companies or single clients to build their projects and see their dreams come to life!

Software Specialties

Frontend

Builds interface and clientside applications and/or components

Backend

Builds serverside applications and/or components

Machine Learning/Data Science

Use big data, NLP, neural nets, and deep learning

Mobile

Builds mobile app clientside implementations

Fullstack

Database to interface

Key Languages and Skills

From Tiobe we see that the top picks are object oriented languages (Java, C, C++, C#) and the most familiar scripting languages (Python, PHP, JavaScript). A slightly different response was given when developers were asked directly 10 Top Programming - here JavaScript and ECMA-related languages took first place.

Frontend

CSS3
Compiled CSS/SCSS/SASS and Less
Semantic HTML5
ES/ECMA (JavaScript)
Ember
jQuery
Angular
Angular2
React
Backbone
Handlebars/Mustache
Bootstrap
Material Design

Backend

Lua
Java
Ruby
PHP
Python
C#/C++
ES/ECMA (JavaScript)
SQL
GoLang
Perl
MySQL
Redis
PostGres
NoSQL

Machine Learning and Data Science

Cassandra
R
Hadoop
Encog
Stanford NLP
Open NLP
Skymind
Tweety

Mobile

Xcode
Android
Phone Gap
Cordova
React Native
Ionic
Swift

Fullstack

Ruby on Rails
Java Spring
Node and NPM
MEAN
WordPress
LAMP/WAMP

Sort:  

Congratulations @postlib! You have received a personal award!

2 Years on Steemit
Click on the badge to view your Board of Honor.

Do you like SteemitBoard's project? Then Vote for its witness and get one more award!

Congratulations @postlib! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 3 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Hi! This post has a Flesch-Kincaid grade level of 12.4 and reading ease of 53%. This puts the writing level on par with academic journals.

I appreciate the comment - I'll try to write something a little more accessible.

(Good bot)