Ask HN: Which Technology Should I Use for Web App Dev?
Maybe this question has been asked a lot of time but here it is again.
Which Technology should I use/learn fro web development?
Python/Django Javascript full stack. .NET MVC 5 Java EE 7 Scala / Play Ruby on Rails. Etc.
Goals * Be Hireable. * Can't think on another one, so basically be able to get a job.
Because if my goal were to pursue Computer Science as a lovely field, My choice would be C or Haskell.
Thanks for the answers.
7 comments
[ 2.8 ms ] story [ 18.3 ms ] threadIf I were in your spot I would probably learn Java for the backend technology (with Jersey, Spring MVC, and Hibernate). Personally, I much prefer Ruby on Rails or Python and Django but since your goal is to be hired (and I would assume to be able to move up and make more money), I would stick with Java. It's solid and not going anywhere.
For the frontend I would say Backbone or Angular. I haven't made a decisions here but I would say Backbone is not going anywhere and will be the template for other frontend frameworks for many years to come. Angular is also strong.
Also, grab a css framework. I would choice Bootstrap.
Yea, this is useless.
2. Figure out what's popular in that sector
3. Focus your skill development on that.
With some exceptions, but there's a high affinity for certain technology stacks in most sectors.
Alternately, if you want to work with C or Haskell -- start by identifying the sectors that are actually using those (they do exist), and build your understanding of the problem domains unique to that sector or your familiarity with the frameworks, libraries and toolchains that are being used on top of them.
Your choice may also differ from the location. In the USA Ruby on Rails experts have a good chance to find a job. In Europe (for example Germany) there are only a few well paid jobs.
Java is just not that great for web dev. Dynamic languages offer much more flexibility. Although, at the end of the day, most web apps are REST APIs with Angular or another front-end framework.
I'd say learn Rails, as there are a lot of jobs in that area of expertise. Once you get good with Rails, learn Django, and then .NET MVC
Don't stick with one. Learn multiple frameworks so you can see the pros and cons of each.
Some will integrate better with certain technologies because of community support.
With my Scala promotion aside, each of the stacks you have listed have great employability. You'll need to ask yourself what kind of things you are wanting to learn while using these stacks:
1. Do you want to use a dynamic language? (Python, Ruby)
2. Do you want to use a statically-typed language? (C#, F#, Java, Scala)
3. Do you want to learn functional programming? (F#, Scala, Python, Ruby)
4. Do you want to work with big data and ML? (Python, Scala)
5. Do you want the highest chance of employability? (C#, Java)