StackOverFlow developer survey - what does it mean to newbies and career paths?

Hi Awesome People. stackoverflow released 2018 developer survey result which was just sent to my email.

I was really interested at the technology section of this survey where it illustrates the most popular technologies (most loved, dreaded and wanted technologies). From the survey, as far as programming languages are concerned i realised languages like python javascript and kotlin are really perfoming well and seem to be mostly used and loved.

I was also trying to really compare between OOP and FP languages and it also seem like OOP is the talk in town.

My question now that guys like as are really newbies is programming, what does this mean for people like me, what impact does it have in our career path. what should we really put more focus on and what does this mean 5-10 years from now.

Because i might say mostly when starting its a bit overwhelming and one might get confused. Seeking opinions and guidance from experts(guys who have in the industry) for sometime now maybe decades and the community in general.

Thanks :smile:

Before making any career decisions based on this survey, I would consider this:

Each month, about 50 million people visit Stack Overflow to learn, share, and build their careers. We estimate that 21 million of these people are professional developers and university-level students.

While 100,000 participants is a serious number, it is less than 0.5% of developers worldwide.

Assuming you like a language and find it productive (and assuming you have a source of income) I wouldn’t worry too much about the language rankings. Once you have the language you like, find or create a project that uses the language to do something good. It’ll all work out in the end.

Each language will give you a different perspective on how to build software. That’s not a bad thing. There is a huge chunk of software written in OO style languages. Learning a functional language will let you look at that software with fresh eyes.

Elixir is a lot of fun. I created a couple web apps at my company on my own time (they are company internal apps) and now I’ve got a couple of people working on it that came from Java. Java was the only language they ever used professionally. They’ve been surprised by how easy it is to construct solutions with Elixir in comparison to their experience with Java.

I’ve been doing software engineering for 35 years now. Lots of folks will tell you this and I’ve found its true. You need to always be learning. OO and functional are both good to learn and each will probably help you become a better programmer in the other.

You might want to explore doing your own tech radar so that you’re set your own path for what you want to learn. https://www.thoughtworks.com/insights/blog/build-your-own-technology-radar

good luck!

6 Likes

We love Elixir for it’s quality, not the user base, but it’s adoption rate is also satisfactory. Elixir is a new language comparing to the languages you mentioned in your question except Kotlin, which is roughly as old as Elixir, but Kotlin’s use cases are different than Elixir, it’s predominantly used for Android development, as it saves Android developers from the verbosity of Java.

3 Likes

Well the top paying technologies worldwide are F#, Ocaml, Clojure. In the US it would be Erlang, Scala, Ocaml - either way all the top ones are functional :smiley:

But seriously, if it’s about chances of getting a job - learn an OOP language first.

3 Likes

New languages, new approaches, new problems, new opportunities. Every programing language, person, company trying to adopt these. We just need to be online. Tomorrow can be completely different than today

1 Like

You are absolutely right

35 years as a software engineer is enough experience. Older than my own age by far :rofl:

Nice explanation very informative

2 Likes

Each language will give you a different perspective on how to build software.

I think this may require some elaboration for neophytes. The statement holds as long as the languages cover different Programming Paradigms. For example Java and Elixir cover different paradigms.

If your first language is Python and then you learn one of: C#, Java, Ruby, Go; that is more like learning a new “dialect”. I’m not implying there is no effort involved in learning new “dialects” and it is quite possible to prefer one “dialect” over another. I’m simply stating that learning new “dialects” may not broaden your horizons as much (considering the effort involved).

In that context I think SQL is often overlooked as a representative of the declarative paradigm - instead of describing “how to get/find the data that is needed” you have to describe “what the properties of the required data are”.

SQL is often just seen as a necessary nuisance to manipulate data stuck in an RDBMS so there is often little motivation to develop more than just a superficial competence in it. But it can be helpful in thinking more about the “what” rather than the “how”, it requires you to develop your “reasoning about sets” which can also be helpful for “reasoning about types” (regardless whether you are working in a dynamically or statically typed language).

So anybody using Phoenix probably already has PostgreSQL installed, so there is plenty of opportunity to use SQL inside psql. It’s a good idea to stay aware of which features are PostgreSQL extensions and which are part of ANSI SQL (i.e. non-product specific knowledge).

I’d imagine that good SQL skills are also helpful with Ecto.

For me OO goes way back to the 1990s:

Of course Smalltalk existed even before then.

Reenskaug and Coplien’s Data, Context and Interaction (DCI) is a more modern take but seems to be ignored by the mainstream.

One problem with many OOP(-like) languages is that they where developed during a period when due to technological limitations data was unshared and mutated in place. During that period FP languages were at a disadvantage because they preferred immutable data which required copying and more memory which meant that they were significantly less efficient.

But technology has changed. Multi-cores and multi-threading is now standard which means that data is much more commonly shared. This isn’t a problem with FP’s immutable data because it doesn’t change. Also persistent data structures have made FP more memory efficient (and memory is cheaper and more plentiful). But in traditional programming languages additional measures (not necessarily part of their original design) have to be taken when they use shared data because they mutate it.

https://twitter.com/jessitron/status/333228687208112128?lang=en

Thinking Outside the Synchronisation Quadrant

One thing to keep in mind is that popularity doesn’t necessarily relate to quality - it sometimes does but often doesn’t.

3 Likes

It’s not just about language choice. Young people need to consider pay/benefits, availability of jobs, will jobs be local or remote? Some people simply can’t work remote, willing to relocate? Almost every language that exists has a swarm of people who feel it’s always the right choice to solve a problem. Young folks need to look at the bigger picture. Sometimes the domain knowledge of businesses are much more valuable than a specific platform. Just my opinion.

Given the need of make a living “Business Knowledge” is always at the forefront - either because that is where you start out or because you are providing value to others - which means you need to understand their needs, i.e. their business.

So with a technology oriented focus you have to be able to effectively communicate with “your customer” in order to learn quickly what their business is. So having upfront knowledge and understanding of their business domain is always an asset.

And to a certain degree it has to be understood that “programming” is being pushed towards being a commodity skill (much like we went from having secretaries with typewriters to everybody using a word processor - however badly). For example I seem to recall the MIT civil engineering degree program including a Python course - likely to give them the ability to do some basic automation and general data crunching.

Also there has been the long standing tradition of “Excel-driven business” (sometimes augmented with MS Access). It’s not unusual for “Excel-driven business processes” to be turned into full-blown business systems. But it’s probably an idea to keep an eye on Mathematica in this regard (which Stack Overflow doesn’t even list in the context of developers) as it puts even more power in the business user’s hands than Excel/MSAccess - especially if they use Wolfram’s data services with it.

1 Like

this is a very important point at the moment

I’ve made a living for almost 20 years using a language that is usually in the bottom 50 of the Tiobe top 100 languages. So I take those kinds of reports with a grain of salt. They are fun though.

2 Likes

I would say programming language is only tool …
Invest in some discipline like:

  • Cloud
  • Big data
  • Machine Learning
  • Block Chain
  • …
1 Like