Thursday, June 16, 2016

Want to study web development? That is how your profile should look like in 2016

"Web programming in two weeks", "Become a web developer in 3 month". How many times a day you see similar ads on tech related web sites? The answer is: too many. Web development and software no longer a profession, it has become a product that can be easily sold on market.

In real world to become a good developer you need to invest 10 years of your life. Years of hardcore work, learning and learning. Actually for developer learning is never ending process. You will need to keep your self updated with last technology trends. You can easily become outdated, because you are not familiar with new technology or methodology.

Algorithmic and analytical thinking, problem solving skill they are only the tip of the iceberg in ocean of knowhows and skills you will have to gain.

I prepared average skill list for mid level+ web developer. The details can vary, however you can realize the amount of knowledge it takes.  

Front-End

"Do you know HTML?" That's weird question recruiters love to ask. But the reality is tough: to be web developer nowadays you must have experience at:
  • HTML5+CSS - comprising not only markup tags, but also new features. You must be aware, as well, what features are supported or not supported by current browsers. Of course you should be able to find workaround if needed. Cross browser support will need a lot of workarounds, be prepared.
  • Responsiveness - more than half (number is growing) of web visitors coming from mobile devices. 
  • JavaScript - I remember time then JavaScript was used for creating rollover buttons. That was a good time. Nowadays, 70% of development related to JavaScript. On projects grow many line of code added, its should be maintained and tested. 
  • "Frameworks fest" -  handling tons of js code and solving common problems no that trivial anymore. Usage of frameworks significantly helps to make your life easier, however you must know how they work and most important how do they interact with each other. 
  • API's - REST will make you restless. You will have to know HTTP protocol basics and maybe OSI model.

Back-end

  • Programming languages: At least one of Java/C#/PHP. Also you it would be great if you have worked with Node.js, Best to have experience with classic ASP cause company, you've applied to, have some module written 20 years ago and they hadn't found a time to rewrite it.
  • Databases: RDBMS: MySql, Sql server.
  • NoSql databases: MongoDB, CouchDB, ElasticSearch
  • Distributed caching: REDIS, memcached or equivalent
  • Formats: XML, Json, Csv


Source code

Typically, all modern companies work with git, but you must know also SVN or Source-safe, because many companies have legacy code base. I heard of company witch has 8 different source control systems, on my opinion this company is absolute champion.

DevOps

Yeah, Its part of territory. Unless your company have dedicated DevOps team, you will be in charge. It is all about delivery, however comprises many skills such as configuring, scripting and monitoring.

Methodology

Software development is complex process that need to be managed. That part is easy, you just need to know who is your scrum master. Just kidding, Every methodology has its own pros and cons, but you at least must know how approaches are differ.

Impressive, ah?

The list is prepared, considering my personal job search experience for last years. If you have something to add, please do it in comments.





No comments:

Post a Comment