Global programming technologies review 2017
Programming technologies in 2017
From time to time young programmers ask me what they should learn, what are the top programming technologies. When you observe CV of this young programming adepts you will see that they change companies very often. The question is why? Probably they look the best possible option for them, may be programming language or technology ?
In this global programming technologies review I will try to answer a little bit what are the top skills, technologies that every programmer should know as a kind of standards. As we will see there is a conrete set of languages, terminologies and technologies that we can name as a kind of core that must be known by everyone.
I prepare the list of terms in the form of cloud words because we can see in an atractive way how strong are any words in the context of the rest ones.
Mostly used programming technologies from IT job position names
First cloud words was prepared according to top, best paid programmer offers from www.indeed.com website. I created simple C# application that allowed automatically to read top 1000 job offers. Application reads only postion names of all the offers and the result is as below.
We will try to interpret that words in the first words cloud. It looks like companies are looking for people that will solve the big problem with data. They look programmers that will lead with interpeting data programatically. Probably most companies believe that solution of the problem is with Java language and many scientific methods to analize and classify bit data sets.
It is quite usefull to use cloud computing and different services. The challenge is with integration different systems to communicate each other. And the most important thing is that we are talking about analising business data. It’s interesting but worth to ask: what will be in the next 2018 year ?
Mostly used programming technologies from IT job requirements
The second words cloud and all the rest were prepared according to the results from all the job offers in the http://nofluffjobs.com. The main benefits of this portal is that we can easily see what technology stack is required by the companies from the new workers. I analized all the words from the offers and because of the big number of them I needed to create four groups of words clouds.
First of all let’s have a look into the first words cloud programming technologies created from nofluffjobs.com. I listed below all the most used words:
- Jira
- Confluence
- Git
- Scrum
- Kanban
- Jenkins
- AWS
- Java
- JavaScript
- Sql
- NoSql
- MySql
- ElasticSearch
- PostgreSQL
- MongoDB
- REST
- API
- SVN
- GitHub
- PHP
- Scala
- Python
- AngularJS
- Docker
- Spring
- GitLab
- Linux
All these words can be logically grouped into:
- Systems to project and knowledge management: Jira, Confluence.
- Agile methodologies to work in the projects: Scrum, Kanban.
- File version control systems like: Git, SVN, GitHub.
- Continuos integration systems: Jenkins, GitLab.
- Clouds: AWS (Amazon Web Services).
- Programming or script languages: Java, JavaScript, PHP, Scala, Python.
- Sql and NoSql databases: MySql, PostgreSql, MongoDB, ElasticSearch.
- Containers: Docker.
- Systems: Linux.
- Programming frameworks: AngularJS, Spring.
These lists will be usefull for me to create next interesting posts about all these excited technologies.
Next top programming technologies from IT job requirements
Most of terms in the third cloud of words are the top technologies used by programmers and some of them are platform specific. Probably you don’t need to know all of these technologies in practical usage.
- Programming and web languages like: Java8, Html, C# .Net, Ruby
- Messaging queues: RabbitMQ
- Sql and NoSql databaes: SQLServer, Oracle, ElasticSearch, Cassandra, Redis
- Javascript frameworks: React, jQuery, Node.js
- Processes in coding like: pair programming, code reviews, tests and coverage tests, unit tests
- Continuos integration (automation) systems: Bamboo, Gradle, Ansible
- Code analysis tools: Sonar
- Tools for building distributed application systems: Akka
- Tools for projects automation: Maven
- Knowledge management systems: SharePoint, Wikipedia (Wiki)
Programming technologies that makes a difference between specialists
This lists of IT terms is probably this ones that makes the difference between good and very good programmers. We have here almost all known programming frameworks and specific tools. Let’s analize them all:
- Programming languages frameworks: Symfony3, Symfony 2, Zend, Laravel, ReactJS
- Standard libraries: STL Boost
- Languages: C++11, Ruby on Rails
- Big data platforms or tools: Hadoop
- Control version systems: BitBucket, Subversion, TFS
- Continous integration systems: Build Server, Circle CI, Vagrant
- Tests: PHPUnit, 80% coverage
- Architectures: ASP.Net MVC, Microservices
- Methodologies: Agile
- Clouds: Microsoft Azure, Google Cloud
- Soft skills:
- Project management systems: Trello, Redmine
- Programming environments: Visual Studio
- Rules, principles: OOP, OOD, SOLID
Rarely used programming technologies in IT job requirements
In conslusion we have the list of the most used technologies presents the top skills needed in daily programming. Most of names we have in the cloud shows the scale that every programmer needs to know to stay top specialist. Let’s have a look at these terms: