I've been a Java/J2EE developer for a few years now, and unfortunately lately I haven't been learning that much because of the context of my daily job and my company.
That's why I've decided to tackle my own personal project, which would have the following details/features (the first one are the most prioritary)
My knowledge is the following:
My soft skills:
After reading quiet a bit about many tech available, I've thought the following:
What do you think + Some questions:
Thanks in advance for your advice.
Nicolas.
This will be a huge undertaking. That is not good or bad, just a statement : )
There are a lot of technologies you are mentioning and each one will have a bit of a learning curve. Having just watched American Ninja Warrior last night, you're learning curve is sounding a lot like The Warped Wall! Don't be discouraged, prepare to start small, and you'll be OK.
The three big pieces you'll have to cover are:
NodeJS
There are many tutorials online and you will need to learn Javascript and what that means on a NodeJS server. The asynchronous nature of Javascript will look very different from Java (I know, that was my transition as well). A tutorial I like: Mixu's Node Book An eBook I like: Node Beginner
MongoDB
I'm still working on this myself, but MongoDB is different than a relational SQL database. You will need to think a little differently here as well. Plenty of tutorials out there for MongoDB.
However, I will say it is possible to combine NodeJS with SQL. If you're doing this to learn, you can turn all the knobs at once. If you want to see something working, you can just use the DB as your normally would. I like using knexJS when working with a SQL database. It's awesome.
AngularJS
Angular is a huge framework. People love it. Easy to use once you know it. I've read its easy to get started and then more difficult to master. Lots of paths to try and tackle this one, here's a link I've book marked: Learn AngularJS in a Weekend
That said, you wouldn't need to use Angular in you app. Some framework might support it, and base their NodeJS backend around an Angular frontend, but you could use your existing frontend skills (even, gasp!, jQuery) to make your web pages drive your backend server.
My thoughts on other questions you've asked
You could separate the two, but if this is just for learning, do everything in one. MongoDB can certainly handle your administrative stuff.
Yep. Some frameworks have those as default packages as well.
It is not crazy, but the learning curve is quite large. Having an app/goal in mind will be good drive for you. Also, don't try to do everything perfectly the first time. Find a NPM package that looks pretty good, use it, and move on. Don't worry about all the details right now. Do that on your next app, or once you have a functional baseline.
Sure, a Java client can call to to a NodeJS server. If you created a NodeJS API server, you could write a Java Client to test it out. You can even do other crazy things from NodeJS to Java code, but I would suggest leaving Java behind for now. For a lot of the web stuff (HTTP requests and the like), I think you'll be pleasantly surprised how fast it is to do something in NodeJS that what you would need to do for an equivalent in Java.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With