Developers Report 2015

Top contributors of the year

Kleo Petrov

190 upvotes on answers

@Kleo

Denny Trebbin

121 upvotes on answers

@fibric

Sébastien Portebois

106 upvotes on answers

@sportebois

Björn

96 upvotes on answers

@GriessbreiLP

Lars

93 upvotes on answers

@KapuzenSohn

Top Answers of the year

I had a big problem with procrastination before. I wasn't able to concentrate, find it difficult to retain focus and most of the time I had to stay a couple of hours more to finish my daily tasks.

So I did a research to find a cure. Here are some of the things I did to boost my productivity and focus:

  • Do NOT multitask - like Jan Vladimir Mostert mentioned, concentrate all your power on one task at a time. Switching between different problems and tasks is counter-productive!

  • 52-17 rule - this one is pretty interesting and simple - work for 52 minutes, rest for 17. It's simple as that. It's like mini sprints - during the 52 minutes work, you're dedicated to complete and accomplish tasks and make progress. Then, for 17 minutes you are entirely resting, moving away from the desk and just relaxing. You will be amazed with the results!

  • Find the right music for YOU - find what kind of music works best for you no matter electronic, classical or rock. I have days when I listen Sweet Home Alabama or similar, the next day I play Get Lucky by Vitamin String Quartet. It's personal choice at first.

  • Document your progress - this is something I practice lately and I see great results. Document your current progress, make a daily task list and just write what you have done. It will give you a clear vision of your productivity status.

When jQuery was the new thing, people loved it. It made cross-browser JS so much easier, it taught us a few new tricks, it made AJAX and animations dead simple (which was pretty tricky back when most of the world were on IE6!)

It evolved a not-to-be-sniffed at plugin community and immense mind-share. It became the de facto client-side Javascript library for years.

Those were the heady days of jQuery's heyday and it gained a lot of weight as it spent its popularity on better support and more features.

Also it attracted a lot of mediocre developers because it was seemingly 'easy to use'. This resulted in a lot of terrible Javascript being written and much debate between so-called pros (although there's nothing professional about berating newcomers) about the merits of using a library which they saw as being the lightning rod for all this bad code.

Then came The Smartphone Times. This spelled disaster for jQuery: thanks to slower, inferior CPUs, less memory and often less bandwidth, smartphones just weren't cut out for lugging around all the goodness that jQuery provided - especially if you were only using 10% of it.

This meant that a deep analysis of jQuery's internal elements went underway to see how things could be more modularised. And as we headed into the Golden Age of web development, many realised that the browsers have started to agree on some of the crap that jQuery The Negotiator had been helping them with all along. So they actively and rapidly trimmed the fat.

During this modularisation stage, many factions split off from jQuery to create super-tuned, single-purpose libraries that were extremely lightweight. They could still work everywhere (mostly) and they didn't eat up people's 3G/4G data allowances. They also performed better than jQuery in the browser in some cases.

Also in the background, the Javascript Revolution was happening seeing this 'little browser language' become a full-blown, server-side programming language. And this highlighted that jQuery was very much a client-side, DOM manipulation library, skills which weren't so transferrable to the server-side application style of programming.

Besides all of this, jQuery gained some younger, better-looking cousins/distant relatives (Angular, React etc) which tackled similar problems to jQuery in altogether new and intuitive ways. And on top of that, these new relatives started pushing to use the latest Javascript APIs, seeing super increases in performance thanks to newer browser support, while jQuery hung back making sure its feature-set worked in as many browsers as it could consistently for as long as possible.

But don't write jQuery off just yet. It will be 10 years old next year. In internet years that's approx. 1,000 years old. But look, jQuery is still going strong. Sure it's not as slick and fast as some of its younger cousins, but it still got some moves they don't do. And for those of us who remember why jQuery was the shiznit, we still got some deep respect for it and may still use it for convenience.

jQuery made a mark on client-side Javascript like no other and ushered in the Golden Age. But sometimes you gotta walk over the bones of the dead to get to the future...

Yes and No - let me explain

No, use the right tool for the job at hand. NodeJS is certainly better at quickly getting stuff out and just about anyone can write JavaScript, so your development cost will be lower in the short term. To be a Java developer, you need many years of experience, experience which is getting more and more difficult to get unless you spend a lot of time on your own studying Java and getting the certifications - I don't know any companies hiring junior Java developers, so on the job experience is almost becoming non existent.

For long-term maintainability, portability, Java / .NET is certainly a better option.

Will NodeJS code you've just written or libraries you've just imported still run in 5 years time if you update your Node version in 5 years? Probably not. Java? It's been doing that forever keeping older versions forward compatible for 15 years+;

Do you care about whether your code will still run in 5 years time when you just have enough money left for 6 months to get a product out? Probably not. If you are a large enterprise company who've just spent 20 million dollars getting a piece of software developed, do you care if the software still runs in 5 years and can still be worked on in 5 years? I bet you they do.

It's also easier writing bad code in JavaScript than it is to write bad code in Java. The compiler in Java almost babysits you through the process making sure that you don't do stupid things. If I write a line of code like this while(1 == 1){ dosomething(); }, the compiler will tell me that the code below the while statement is unreachable and that the while will never terminate. If I write Integer a = null;, then do System.out.println(a.toString());, the compiler will warn me that a is null and will throw a null pointer exception. If I'm using anonymous functions in Java8, the IDE will tell me I can write the code better using Lambda expressions.

Yes, there's a lot of marketing hype around NodeJS, but that's not NodeJS' fault. That's more the media that's to blame. I've seen this kind of hype for just about every new language that becomes usable, from Microsoft C++ to Borland C++ to Borland Delphi to C#.NET to Java when it initially went big to CSS when it first came to the browser (articles like To CSS or Not To CSS is the Question were common and everywhere) to Dart (massive media campaigns claiming Dart will replace JavaScript) to Ruby and even Python when it replaced perl as the goto language ... you name it, the media needs something to write about, so they'll usually hype whatever new language / technology is available so they can stay relevant.

Is it overrated? No, as I said, use the right tool for the job. Does the media make a lot of noise about it, Yes, they do.

I think you're missing the point.

A full stack developer is not an expert in everything, he/she is good enough to get most of the tasks done. There is still room for experts and specialists, but not every task requires one.

For example, a full stack developer can probably build a working prototype, but to build a production ready product might require some experts in different fields.

I read nice blog post about this topic a few days ago.

What it basicly said was that there are two types of developers in every company: Conservative programmers which care more about WHAT are problems they need to solve and on the other site Inovators which care more about HOW the problem is solved. And you need both types in your team. The author recommends to use new technology if:

  • you know it from some other project
  • you want to do something that is not possible with your current technology
  • you can find people who understand this new technology and you can't find people who understand the old one
  • you will be more productive even if you count in the time for learning it

Also the customers do not care whether Gmail uses Javascript, PHP, Java, Go, Python or anything else in the backend. They only care about the final product.

The article can be found here (but is written in czech): http://www.knesl.com/articles/view/co-budujete-v-cem-budujete

As for my personal opinion newer and trendy does not always mean better. For example I do not like the new Atom editor (written in Coffeescript/JS) from GitHub. I find it really slow and laggy especially when I compare it to Sublime Text 3 (written in C++, plugins in Python), which I use for daily work.

We thank all contributors and readers of Hashnode for making it a great year for us. We appreciate your efforts and time. Wishing you a happy and successful new year.

Tweet Hashnode Report 2015

loading ...