views:

126

answers:

4

Hi,

I want to learn Java and Linux.

Java itself (as a language) is not a big deal for me as I know pretty well .NET and C# (so the paradigm is similar).

The biggest issue for me would probably be doing Java on Linux platform (I have never used Linux before). I think Ubuntu should be good for me (a friend of mine recommended it).

So I would like to get some books and/or some RSS feeds that would mix Linux/Java and help me to switch from Windows to Linux.

Those resources should probably:

  • Teach me the basics of Linux (not only how to use mouse, but most important commands, shell scripts etc).
  • Provide information about using the tooling (especially IDE, shortcuts, tricks etc). Note is that I don't need info about the basics of the language, OOP/D, TDD etc as I am already proficient in that but on the .NET/Windows platform.
  • Describe Hosting and deployment of Java apps on Linux (and/or maybe Windows).
  • and anything else you guys think I would need.

Thanks a lot in advance!
Dmitriy.


UPDATE: To summarise the answers just want to put the recommended resources in one place:

Books:

Links:

Tools:

+3  A: 

I would suggest you to install your preferred distro and play with it. There is no other better substitute. If you want know basic commands, search "Linux Basic Commands", you will get plenty of links teaching you that. Regarding Java development, once you are in your IDE, there is very little difference. You will learn it along the way, I believe.

I am telling you my experience, by the way I switched to openSUSE. Now using openSUSE, and Kubuntu both and I am very much comfortable.

As you stated, in the comment, that you are used to of VS+ReSharper. I would like to recommend IntelliJ. Its from the same folks who built the ReSharper plugin. In fact they built IntelliJ first :). It has a reasonable license fee though.

Otherwise Netbeans is free and a great IDE. Wizards and plugins are awesome. Few folks are inclined towards Eclipse. But I didn't like that after using IntelliJ for 2 or more years. Its more of a personal preference or addiction, I suppose. Then I switched to Netbeans, and found it okay, not quite like IntelliJ but still great.

Adeel Ansari
You might want to try LiveCD first. Its a good start. Or otherwise you can install your distro as a dual boot with your Windows, till you make yourself completely comfortable with Linux. Other option is to install your Windows or Linux as a guest. That might require you to study, a little.
Adeel Ansari
I think I'll install Linux and all the things requried on a VM. As for IDEs, I really got used to VS+ReSharper. So far could not see anything close enough to that in Java (but hope it exists). And I think that is the main deference for me - picking a new IDE and tools.
Dmytrii Nagirniak
I would suggest IntelliJ, its having a reasonable license fee though. Otherwise Netbeans is free and a great IDE. Wizards and plugins are awesome. Few folks are inclined towards Eclipse. But I don't like that anymore. Its more of a personal preference or addiction, may be.
Adeel Ansari
Yeah, I like Intelly J too. Just wondering, maybe it would be better to start "LearningJava" project without advanced IDEs at all so I could see/understand how all the things and projects are working together? Plain text-editor is extreme, but maybe just basic Eclipse or something would be ok?
Dmytrii Nagirniak
You said, "Java itself is not a big deal". So, I don't think that the advice to practice Java without IDE, is really for you. And if you are not going to do it on a plain text editor, then it might not make much difference. Anyways, choice is yours. Good luck.
Adeel Ansari
Vinegar, I see the point. Thanks a lot.
Dmytrii Nagirniak
+1  A: 

I've used "Linux Administration, A Beginner's Guide" a few years back when I did my transition from Windows to Linux (it had a new edition since then). I was using RedHat at the time but I don't think it was specific to RedHat.

Once you have that book I second the advise from the previous poster, that you install your preferred distro and play with it. That's what I did, but having this book as a guide really helped me.

Alexander Pogrebnyak
Will have a look at that. Sounds very good to me. Thanks a lot.
Dmytrii Nagirniak
+1  A: 

Are You interested more in Java SE ore Java EE? What IDE do you prefer? What other tools will You use (for version control for example)?

Anyway Linux for Programmers and Users is quiet good book and The Linux Programmer's Toolbox is even better. Both about Linux and it's tools for programmers not about Java. But Java's part is similar on both Linux and Windows (IDEs are almost identical) so any book about Java (look for more advance book because you know .net) or tutorial about using IDE will be good.

For quicker Eclipse (if You choose it) learning i recommend this plugin: http://www.mousefeed.com/

//edit:

And for Java tools like:

  • building system -Ant, Maven
  • CI - Hudson, Continuum
  • static code analysis - Checkstyle
  • and more

I strongly recommend this book: http://www.amazon.com/Java-Power-Tools-Ferguson-Smart/dp/0596527934/

Maciek Sawicki
Thanks a log for the answer.Probably EE is best for me at the end (as I want to develop web apps+back-office procedures etc), but I could start from SE. IDEs: I prefer VS+ReSharper :). Ok, sorry, I do not have personal preference for Java IDE yet, but these ones I like (in priority): 1. Intlly J IDEA, Eclipse, NetBeans. Other tools: SVN/Git, probably Hudson (Cont. Integraton), not sure about Issue trackers.MouseFeed looks great! Thanks!
Dmytrii Nagirniak
You mention of Hudson, so I edited my answerer.
Maciek Sawicki
Dmytrii Nagirniak
+1  A: 

What Vinegar says - just install it and play ;). But if it's really all that new to you it might be a good idea to install linux in VirtualBox or vmware. This way you won't break anything on your computer if you'll make mistake during installation and you can always save 'clean' installed system as snapshot and easily come back to that 'clean' state by reverting to snapshot.

For reading... i just recommend man pages. You can access them from console or online, for example here. When you aren't sure how to use some command - read its man page.

Phil
Yes, I planed to install all on a VM. Man pages look good to me. Thanks a lot.
Dmytrii Nagirniak