views:

914

answers:

9

I am a newbie Linux user who came from 10 years using windows OS, and developing in Microsoft languages.
I want to have a good experience in Linux world and developing on it.
First, I want to learn how to use this new OS, then how to start developing on it, I am interested in web applications, specially using Java/PHP because I have some experience in both and it will be a good start.

Second, I want to learn how to develop on it.
Are there any video tutorials to give me a good starting push?
any recommended books or references?

+1  A: 

Ubuntu Kung Fu might be a good start.

EricSchaefer
+1  A: 

Java development is something you can do with ease using Eclipse on Linux. PHP development is more or less the same as on Windows. Use a good text editor to write the PHP scripts.

Installing the required tools might differ from how it's done on Windows, but both PHP and Eclipse are available as packages in Ubuntu.

Skurmedel
Linux is great for Java development, and this is not limited to Eclipse. Other IDEs like IntelliJ IDEA and Netbeans also fully support support Linux, as do practically all other relevant tools.
Jonik
A: 

Eclipse should run fine in Ubuntu.

Try some Java development in it to get yourself started.

antik
+17  A: 

Suggestions

Environment Setup

  1. I would recommend you install a the JDK if you are doing Java development. Look here for instructions on using apt to install the sun JRE.

  2. Then, get yourself a decent IDE setup. Try Netbeans or Eclipse - both can be configured to work with php as well.

  3. Also make sure you install php and Apache, here are some instructions.

  4. Since it sounds like you are going for the classic LAMP setup, you may as well install PostgreSQL or MySQL.

That should get you running far enough to make videos, etc useful.

Development Resources

IDE Resources

Java

PHP

  • PEAR - Get libraries for common tasks in PHP.
  • ADODB - Get a decent db backend for PHP and learn how to prevent SQL injection attacks from the start.
  • Start to play around with a web dev framework.
Elijah
The extra instructions for installing the JDK are no longer necessary . Recent Ubuntu released come with the OpenJDK, which is a very complete JDK implementation.
Joachim Sauer
+3  A: 

Since both Java and PHP are cross platform, it seems your biggest task would be to familiarize yourself with GNU/Linux and tools related to web development, apache web server in particular. Here are a few things google gave me:

http://www.micahcarrick.com/09-28-2007/web-development-linux.html

http://httpd.apache.org/docs/2.2/

Have fun.

vezult
A: 

If you want to get your lamp setup pretty easily, you can take a look at Zend Server Community Edition. http://www.zend.com/products/server/downloads-all

For development eclipse (as suggested above) with PDT (Php development tools) is pretty good http://www.eclipse.org/pdt/. I prefer Netbeans though. You could also use gedit with some plugins see this

fb1
Seriously .. Use the package system. This is one place where Linux far outshines Windows.
troelskn
+1  A: 

If I was to recommend one thing, it would be that you must learn to love the shell. It takes time to feel at home in, but it's well worth it.

On a related theme - You might want to consider using emacs or vim as your editor, but that's more of a personal preference thing. Some people just like IDE's better.

You should probably focus on PHP, rather than Java. It's easier to get started with and it's much more true to the Linux tradition (Whatever that means) than Java is.

troelskn
+2  A: 

Another option is Lazarus, which is based on Free Pascal, which itself is based on Delphi.

Lazarus allows you to develop using Object Oriented Pascal, across Linux, Windows and MacOSX and produces natively compiled executables on each target platform.

Natively compiled executables are generally much faster than interpreter based apps (i.e. Java, C#, PHP).

Lazarus use a component and event based approach to development which allows you to design GUI by dragging and dropping components on a Form Designer, which then are hooked through events.

Good luck with your programming adventures!

Nazar
+2  A: 

Ubuntu Pocket Guide

If you're new to Linux, I'd suggest you look at the Ubuntu Pocket Guide. It goes through basic stuff that any user would want to know - window management, system configuration, etc, as well as some historical background on Linux and Ubuntu. You can skim through that and learn a bit.

Bash Basics

Towards the end, it also explains the basics of bash, which is the Linux command line. That part is interesting - you can do a lot more in bash than you can do in the Windows command line. For example, you may be familiar with this Windows idiom:

dir > directorylist.txt

...which means, "list the contents of this folder, and instead of showing the output, put it in this file."

In Linux, you can do that, and you can also do piping, where you direct the output of one command into another. For example:

ls | grep foo

means "list the contents of this folder, and search through the output for the regular expression foo." You can add as many pipes as you want and use a variety of commands.

You can also use brace expansion to run multiple commands in sequence. For example,

mkdir photos_{france,spain,italy}

will create directories called photos_france, photos_spain, and photos_italy.

If you're going to be developing in Linux, you should invest the time to read some tutorials on bash to take full advantage of it.

Nathan Long
Just for the record Windows command line has had piping from the days when it was called MS-DOS. You can also do the regular expression thing using findstr. So "ls | grep foo" in bash is equivalent to "dir /b | findstr foo" in Windows command line.
Martin Brown
@Martin: Interesting! Thanks for pointing that out.
Nathan Long