Episode 13 of the Coder's Block podcast out now

This question will have a completely different answer depending on who you ask. If you ask a front-end developer, then programming will relate more to JavaScript frameworks and client-side interaction. If you ask a back-end programmer, then you'll hear about database connections, data binding and implementing API's. Ask a data scientist, and you're bound to hear about parsing and traversing datasets with scripts written in languages such as Python or R.

And all of these answers would be correct. So it's tricky to get a clear and concise definition sometimes about what it is that a programmer actually does. As a full-stack developer, I've worn many hats during the past decade working professionally. So today I will break down the different types of programming that you could get yourself into. What languages you'll need to accomplish them and which tools are required to get started. And to give some insight into how being a "programmer" isn't necessarily any one particular thing, but can vary widely depending on the field of work that you find yourself in.

Front-end programmer

Front-end Programmer

Tasks

You will be working on web applications using JavaScript as a core programming language. You will be interacting with 3rd party JavaScript libraries and manipulating HTML and CSS for client-facing web applications.

Tools

VS Code, Sublime, Visual Studio, Atom

Languages

JavaScript, jQuery

This is probably the most popular form of programming that you can find right now in the workplace. For obvious reasons, it's the most visual one (except for video game development) and the most readily available as most people know what a website is. Note that this is different than a front-end designer. This is the coding portion of front-end development. There are a ton of front-end JavaScript frameworks out in the coding ecosystem these days. You might end up working with frameworks such as Angular.js or React on your travels. You'll become familiar with Node.js and NPM as well as other package managers.

You'll normally required some experience with HTML and CSS as JavaScript works closely hand in hand with these and other web technologies. This puts front-end programming into its own category, as typically you don't require any added web knowledge to work as a back-end developer or as a data scientist. As web technologies quickly advance, the job market is plentiful for front-end web developers.

Back-end programmer

Back-end Programmer

Tasks

A back-end programmer implements the non-visual features of a web application. This can include anything from payment systems to email management. They also write API's and integrate API's into their web projects. Typically can traverse most of the stack, minus web development.

Tools

Visual Studio, VS Code, NetBeans, Eclipse, Xcode

Languages

C#, PHP, Java, C, C++

Typically a back-end programmer will spend much of their time working on a back-end language such as C#, PHP, C++, C, and Java. The core of their work will revolve around creating ways to store and retrieve data efficiently from a database, such as Sql Server or MySql. They will create and implement API's to modify and retrieve data and use other 3rd party API's as well to add functionality to already existing projects.

Typically any functionality on a web application that isn't purely visual, but more functional, such as implementing a payment system or sending out emails are done through back-end server side code. This is typically the first kind of coding that most programmers will be exposed to during their college years mainly in the form of C++ or Java. Back-end programmers typically earn slightly more than their front-end counterparts due to the more complex atmosphere that comes with implementing internal systems.

Data Science programming

Data Science Programmer

Tasks

Read and parse large datasets. Will typically write scripts to organize data into a proper database. Can use a querying language to later retrieve more coherent datasets for reporting and analysis.

Tools

MatLab, SciLab, Visual Studio

Languages

Python, R, SQL

Data scientist get to play with data all day long. Usually very big data. Millions of records perhaps or even billions depending on the project. Many times, this data is not structured in any way that is usable to anyone. Which is why data scientists spend their days writing scripts in languages such as Python and R in order to clean up these sets. Once the data has been parsed and stored accordingly in a database, the real work can begin. And that will depend on your companies needs usually. Whether you are creating API's in order to serve the data, or are spending your days in a DBMS writing SQL statements.

Due to the increased demand of data scientist, competition for jobs is high and salaries are among the highest on this list. However, because of its relative new acceptance as a professional field, it is missing from many college curriculum's.

Video Game programming

Game Programmer

Tasks

Video game programmers can spend their days creating level editors or working on physics engines for upcoming desktop and mobile games. Some will spend their times working with pre-existing game engines, such as Unity, while others will build custom software from scratch.

Tools

Visual Studio, Xcode, Unity Editor

Languages

Varies based on specific area of expertise, but could include C, C++, C#, Swift, Java

Video game programming is drastically different than the other types mentioned above and can also span many different disciplines internally. Animations and game design aside, many of the biggest games today require very custom software in order to be created. And this is where many video game programmer's will spend their time working in. This means that you might not exactly be able to get exact training for the job, as you will be working on something that is completely new.

You will be working on implementing physics engines and custom level editors in this field. And this can normally be done in any language that supports desktop application development such as C++ or C# for Windows. Game developers who are highly specialized in engines such as Unity, can spend much of their time working on writing Unity scripts in whichever IDE makes sense for them. Video game developers typically see much higher salaries due to the specialized nature of game development. Some universities have begun to offer degrees in game development currently however.

While you might be wearing many hats throughout your programming career, it is important to realize that being a programmer doesn't necessarily fit into any one criteria. There are many more programming fields that were not mentioned above, such as mobile app developer and even programming macros in Excel. The most difficult part in the beginning is probably choosing a path and then sticking with it. And also knowing that there really isn't any wrong path that you can take with software engineering. All of the previously mentioned fields of coding offer their own benefits to those who are willing to put in the time and dedication to become well versed in them.

Have a question?

No comments posted yet

Add a comment

"sometimes you have to delete, to find your answer"
Copyright © 2018 thatsoftwaredude.com
humans.txt
Start
Score: 0
snake left
snake up
snake down
snake right