Advice needed for a newbie

A

Atreju

Hello all,

My trade is network engineering, support and services. But, on the
side as mostly a hobby, I program. I currently use MS VB6 (try not to
all gasp at once ;-)

I consider myself at the upper-amateur level in terms of VB. However,
I am realizing that more and more over time, the projects I want to
make could be so much more useful and widespread if they were
platform-independent. I wish there were a Visual Basic that ran on a
platform-independent runtime.

That having been said, we all know that VB to Java is an enormous
leap. It is very very different, but that does not mean I couldn't
learn it if I tried hard enough.

What I need advice on is as follows: I want to start off small by
making small projects to completion. I'm so used to the VB IDE that I
have become spoiled. I have done straight coding for various things,
such as C when I was in college, HTML back when people still coded
rather fancy and complex websites using Notepad, and several other
utilities including Dialect, Auto-It, and others. I have also done
some of the more verbose elements of VB by choice, such as using ADODB
coding rather than binding, so I'm not completely afraid of that type
of design, but I am seeing in this era of programming that almost
everyone wants to make things quicker and easier to produce, and as
such, there are emerging IDE products that are getting more and more
user-friendly.

I am well aware that regardless of the IDE, I still need to learn the
language, and I intend to go about that the same way I did VB - get
some books and start learning. I used Teach Yourself series by SAMS
back when I started VB (almost 10 years ago! yikes). When I did start
VB, since it was so easy I made my first project a major undertaking
because I realized that I could do it... BASIC is easy, intuitive and
rather simplistic until you get involved in APIs and such - and even
then it remains rather easy if you're even somewhat sharp. My first
project really got me going (it was called TFCompanion which was a
configuration manager for the online game Team Fortress... over 1000
people downloaded and used and perhaps still use it).

But back to the topic of Java - I need a recommendation on how to
start small and learn more as I go along. I have downloaded Eclipse,
as per my friend's recommendation, and I am also looking at other
things such as Netbeans, and I have heard reference to JSR 273 which
from what I can tell is still work-in-progress.

What do you think would be the best IDE to start off with based on the
following desires:

1. I want the actual design of forms, controls, etc. to be one of the
priorities... in terms of time setting things up and ease of
manipulation.
2. I want something that is intuitive to work with; for example: in VB
I double-click on a button on a form, and it takes me to that button's
click event in the code window. I can also, in the code window, select
any objects or controls from a combobox, and then go to all its
available properties, events and methods, and create a subroutine for
said object.

I do realize Java doesn't work quite this way, but in terms of
ease-of-use, at least for the beginning, I'd like things to be easier
even at the expense of not being the 'best' way to do things.

I am fully aware I am entering an entirely different world of
programming than what I'm used to. But I want to make every effort to
learn, because I'm finding I want to make projects that work straight
from a website, or that work on any OS, even mobile devices, etc. To
the best of my knowledge, Java is THE thing for what I want in the
development world today.

Any thoughts/advice/criticism/comments all welcome. Please let me know
what you think of my perspective, expectations, and if you have any
advice as to where to start. If you have a recommendation on a book to
start with, please do let me know. Many people have different methods
of learning that work for them... I perceive three distinct approaches
that match 3 distinct ways of thinking:
1. The "Dummies" approach - learn nice and slow as though you were in
kindergarten. When you're done with your first lesson, you feel
wonderful! When you finish the entire book you feel that you have been
given an extremely basic and minimally useful tutorial, and you're now
prepared to actually start learning.
2. The "Teach Yourself" approach. I used SAMS "teach yourself Visual
Basic in 21 days" and then "teach yourself More visual basic in 21
days" books, and for my personality those were amazingly effective. I
made incredibly fast progress, and in fact, realistically 21 days was
not an exaggeration.
3. The "Dictionary / Bible" approach. Total referencial material
oriented. I cannot do this, and I find those types of books are better
as a resource once you have some substantial experience.

An ideal person to advise me on this is someone who knows VB and Java
very well - perahps someone who has a lot of VB experience and has
made a successful transition to Java and is happy with the result and
the way they went about it.

I appreciate any help offered.
Thank you in advance.

Dan
 
L

lord.zoltar

hmmm ...........VB6 and Java are quite different from each other. I
don't recall VB6 being very object oriented, if at all, though I admit
I wasn't a VB6 guru. Have you looked at VB.NET? You can get the
Express Edition of Visual Studio for VB.NET. It gives you a
streamlined (fewer wizards, missing the uber-advanced features) IDE
but can only do VB. Despite that, you can code anything in it that you
could code in VSPro so it can still be powerful.
If you want cross-platform capabilities, I've heard that the Mono
project can also handle VB.NET code in addition to C#, but you might
want to double-check that. The syntax and environment will be much
more similar to VB6 than Java, but it will introduce more object
oriented ideas that are also available in Java (and maybe some that
aren't ;) ).
It might give for a smoother transition.

If you want to just dive straight into Java, I'm not sure what IDE
will give you the same experience as VB6. I'm not aware of any visual
editor that comes close to the VisualStudio GUI tools (yeah, I liked
them:). I've done my Java GUIs by hand, but I haven't done any for a
quite few years, and I imagine the tools have improved. I'll have to
give them another look someday.
As for learning, I would avoid IDEs, at least for the first few small
programs/projects. Do them in your favourite syntax-aware text editor
and the console for compiling. Then build a couple simple GUI apps,
also from the text editor/console. In my experience, this is the best
way to learn a new language/environment, before jumping into the great
big IDEs with all the buttons and icons and such. This way, I get a
better feel for WTF the IDE is doing under the hood.
As for a specific IDE, I've used Eclipse and RAD mostly. I've just
looked at NetBeans 6, but for Ruby and Rails, not Java. ;)
Sorry I don't have a specific book to recommend for Java... I don't
remember what I used in school and at this point I just look up API
references or tutorials for new stuff.
 
M

Mark Space

Atreju said:
1. I want the actual design of forms, controls, etc. to be one of the
priorities... in terms of time setting things up and ease of
manipulation.

What kind of forms? Swing? Web? Something else? This is kind of a big
deal.
2. I want something that is intuitive to work with; for example: in VB
I double-click on a button on a form, and it takes me to that button's
click event in the code window. I can also, in the code window, select

Most IDEs for Java will do this to an extent, but it does depend on what
the button actually is. NetBeans plus some plug-ins (JMaki) will do
nicely for web forms. Most anything will handle standard Swing
components this way. I think Eclipse would probably be better for SWT.


General advice: learn the language itself first. Learning Java by
O'Reilly is good. The Sun tutorials are good. The Javapassion website
has intro projects that you can do as well as slides organized into
lessons. I'd start with those three.
 
A

Atreju

hmmm ...........VB6 and Java are quite different from each other. I
don't recall VB6 being very object oriented, if at all, though I admit
I wasn't a VB6 guru.

It is what they call "Object-Based" in that it is semi OOP, you can
design your own class objects and modules and use them among other
projects, but you can write entire application solely procedural as
well.
Have you looked at VB.NET?

VB.NET is a quirky thing. They've changed it so much that it hardly
resembles VB anymore, aside from the fact that the language is still
basically the same in terms of syntax. However, they've also messed up
so many elements that plenty of VB gurus even are staying away from
it. For example, in VB 6 you can make a control array on a page then
reference any of those controls by its index. This is fantastic for
when you have 30 data fields that you do NOT necessarily want directly
data-bound (which ironically more often than not is undesirable). In
VB.NET for some reason that's about as beneficial as daylight savings
time, they took that away. Now, if you want to make decisions or
actions based on so many fields that essentially refer to related
data, you would have to give each a suffix, typically numeric, and
then you can cycle through them using the name appended with a numeric
variable. It's like scratching your left ear with your right arm but
having to bow down very low and pass your arm under your legs first to
reach your ear, all while on a treadmill ;o)

--SNIP--
If you want to just dive straight into Java, I'm not sure what IDE
will give you the same experience as VB6. I'm not aware of any visual
editor that comes close to the VisualStudio GUI tools (yeah, I liked
them:). I've done my Java GUIs by hand, but I haven't done any for a
quite few years, and I imagine the tools have improved. I'll have to
give them another look someday.
As for learning, I would avoid IDEs, at least for the first few small
programs/projects. Do them in your favourite syntax-aware text editor
and the console for compiling. Then build a couple simple GUI apps,
also from the text editor/console. In my experience, this is the best
way to learn a new language/environment, before jumping into the great
big IDEs with all the buttons and icons and such. This way, I get a
better feel for WTF the IDE is doing under the hood.

This does have its merits, I might see what happens with a book...
once I dip my feet in, I might find that starting off like that
without a gazillion menus and lists to not have a clue what to do with
would be better. The old adage Keep It Simple Stupid, and all that.
As for a specific IDE, I've used Eclipse and RAD mostly. I've just
looked at NetBeans 6, but for Ruby and Rails, not Java. ;)
Sorry I don't have a specific book to recommend for Java... I don't
remember what I used in school and at this point I just look up API
references or tutorials for new stuff.

Thank you very much for your quick and comprehensive response. Your
advice has been helpful.

Dan
 
L

lord.zoltar

it. For example, in VB 6 you can make a control array on a page then
reference any of those controls by its index. This is fantastic for
when you have 30 data fields that you do NOT necessarily want directly
data-bound (which ironically more often than not is undesirable). In
VB.NET for some reason that's about as beneficial as daylight savings
time, they took that away. Now, if you want to make decisions or
actions based on so many fields that essentially refer to related
data, you would have to give each a suffix, typically numeric, and
then you can cycle through them using the name appended with a numeric
variable. It's like scratching your left ear with your right arm but
having to bow down very low and pass your arm under your legs first to
reach your ear, all while on a treadmill ;o)

Ahh yes, the control-array flamewars! ;)
I'm not even going to touch that one!
This does have its merits, I might see what happens with a book...
once I dip my feet in, I might find that starting off like that
without a gazillion menus and lists to not have a clue what to do with
would be better. The old adage Keep It Simple Stupid, and all that.

Definitely!
 
A

Atreju

Ahh yes, the control-array flamewars! ;)
I'm not even going to touch that one!

hehe I see it's no news to you.

I just ordered Sams Teach Yourself Java 6 in 21 Days from Amazon. I'll
see how it goes, it is only $30.

Thanks again for your responses.
 
H

Hal Rosser

An ideal person to advise me on this is someone who knows VB and Java
very well - perahps someone who has a lot of VB experience and has
made a successful transition to Java and is happy with the result and
the way they went about it.

I appreciate any help offered.
Thank you in advance.

Dan

After you learn Java, it will become your favorite language.
Forms (in Java its Frame or JFrame) usually comes in about chapter 13 of a
21-Chapter "Beginning Java" Book.
http://www.murach.com/books/jse6/index.htm
Learning Java is a liftime job. Its an OO language that really stresses OO.
I then tried VB.Net - and believe it or not, the Java knowledge was a big
help. It seems VB.NET is OO as well.

I didn't make a 'transition' I just learned both.
VB.NET is easier to pick up. But I like Java best.
I guess you could compare VB .Net and Java like the difference between
Checkers and Chess.
 
L

lord.zoltar

After you learn Java, it will become your favorite language.
Forms (in Java its Frame or JFrame) usually comes in about chapter 13 of a
21-Chapter "Beginning Java" Book.http://www.murach.com/books/jse6/index.htm
Learning Java is a liftime job. Its an OO language that really stresses OO.
I then tried VB.Net - and believe it or not, the Java knowledge was a big
help. It seems VB.NET is OO as well.

I didn't make a 'transition' I just learned both.
VB.NET is easier to pick up. But I like Java best.
I guess you could compare VB .Net and Java like the difference between
Checkers and Chess.

There are some things about VB .NET I'd like to see in Java.
Properties and Delegates, mostly. Maybe Namespaces too, packages
aren't quite the same. And partial classes could be useful too. Hmm...
I'm probably missing some.
I think (but am not sure) that a Properties feature is planned for
future Java releases (7 maybe?).



So...which do you think is Checkers and which is Chess? ;)
 
M

Martin Gregorie

Atreju said:
hehe I see it's no news to you.

I just ordered Sams Teach Yourself Java 6 in 21 Days from Amazon. I'll
see how it goes, it is only $30.

Thanks again for your responses.
>
Following on, I'd also agree that your favorite text editor and a
command line is the way to go: I personally don't use an IDE and have
yet to see the need for it.

When you grab Java, get the latest standard edition and make sure you
also download its documentation set. That provides all your reference
materials and is structured as linked HTML files. This should see you
through both command line and GUI Java applications. As the number of
classes in a project build up, consider downloading and installing ant,
a command line utility that automates the build process (think of it as
'make' on steroids).
 
L

Lew

After you've started to assimilate the basics (no pun intended) of Java, but
not too long after, invest in /Effective Java/ by Joshua Bloch. It will teach
you the most essential best practices of core Java programming.
 
A

Arne Vajhøj

Atreju said:
What do you think would be the best IDE to start off with based on the
following desires:

1. I want the actual design of forms, controls, etc. to be one of the
priorities... in terms of time setting things up and ease of
manipulation.
2. I want something that is intuitive to work with; for example: in VB
I double-click on a button on a form, and it takes me to that button's
click event in the code window. I can also, in the code window, select
any objects or controls from a combobox, and then go to all its
available properties, events and methods, and create a subroutine for
said object.

Personally I prefer Eclipse, but I don't do GUI's.

Given the requirements above I think NetBeans may fit your needs better.
Any thoughts/advice/criticism/comments all welcome. Please let me know
what you think of my perspective, expectations, and if you have any
advice as to where to start. If you have a recommendation on a book to
start with, please do let me know. Many people have different methods
of learning that work for them... I perceive three distinct approaches
that match 3 distinct ways of thinking:
1. The "Dummies" approach - learn nice and slow as though you were in
kindergarten. When you're done with your first lesson, you feel
wonderful! When you finish the entire book you feel that you have been
given an extremely basic and minimally useful tutorial, and you're now
prepared to actually start learning.
2. The "Teach Yourself" approach. I used SAMS "teach yourself Visual
Basic in 21 days" and then "teach yourself More visual basic in 21
days" books, and for my personality those were amazingly effective. I
made incredibly fast progress, and in fact, realistically 21 days was
not an exaggeration.
3. The "Dictionary / Bible" approach. Total referencial material
oriented. I cannot do this, and I find those types of books are better
as a resource once you have some substantial experience.

I agree that a reference book does not make much sense. You can
just download and install the Java docs on your PC and use that
for reference.

My suggestion would be to pick a book based on the author.

There are thousands and thousands that have the Java knowledge to
write a beginners book on Java. There are onky a small fraction
of those that has the skills to present the knowledge for
a beginner.

So try look at one of "known" authors: Eckel, Horton etc..

You can read reviews at amazon.com.

Arne
 
D

David Segall

What do you think would be the best IDE to start off
Go to <http://ide.profectus.com.au> for a restrained view of the
transition from VB "Classic" to Java.

However, I am willing to provide a more opinionated version. Go to
<http://sunmicro.vo.llnwd.net/c1/netbeans/6.0/final/> and download and
install the minimal "Java SE" version. You now have a GUI designer
that is better than VB Classic. The NetBeans web site
<http://www.netbeans.org/> has tutorials that will help you write a
typical application and NetBeans itself will provide reference
material for the details of the language and hints as you type your
code. The only area in which VB Classic is superior to NetBeans is
report writing but you can use ireport to solve this
I am fully aware I am entering an entirely different world of
programming than what I'm used to.
There are two significant obstacles in moving from VB Classic to Java.
First, Java really is object oriented and you must understand the
concepts. Second, it is likely that if you want to provide some
functionality then it is already part of the language, or Sun or some
other Java heavyweight such as Apache, has already written it. If you
can't find what you need via Google you will usually find it by
posting here.
But I want to make every effort to
learn, because I'm finding I want to make projects that work straight
from a website,
That has two meanings. It can mean that you want an application that
the user downloads and updates from the web site but is executed on
the user's computer. Java Web Start
<http://java.sun.com/products/javawebstart/> is intended for this. It
can also mean you want to make an application like Google Earth
<http://earth.google.com/> that is wholly or partly executed on a
remote computer. NetBeans can help you write this
<http://www.netbeans.org/kb/trails/web.html> but it is much more
complicated than either a VB Classic or Java desktop application and
you need the "Web & Java EE" download instead of the "Java SE"
download I suggested above.
 
G

Godofredo

Hi, you seem a guy like me: Java is the ongoing thing, in terms of
multi platform, so, let's go 4 it.
On February, I started a certification course on Java, which I'm
finishing its third module as we r talking 2day. Before that, I knew
Java goes written with J, but not sure about it. So, I can tell you
about the pros and the cons of each approach decision I made.

The IDE: Even when there are a lot of option, in practice they narrow
to these:
* NetBeans (free)
* Eclipse (free)
* IntelliJ IDEA (pay)
* JBuilder (Eclipse with pay)

The pros and the cons:
For me, the most friendly was IDEA. Usually, there are some beliefs,
philosophy, projections put into an IDE design and working. IDEA's
philosophy was the closest to my own thoughts. But it has some
downsides:
1. Payment (since I download + crack, no deal here)
2. Support is awful. There is no easy how-to documentation regarding
the IDE. The help sucks, and in advanced stages, no help at all.
3. I couldn't find a IDEA driven community of users, where I could
post my doubts and find shortcuts.
4. Not so clear to develop Enterprise Applications (J2EE Apps)

The pros:
1. GREAT GREAT GREAT form designer! I love it. Really. Period
2. The coding assistant is superb, not only detects errors and
warning, but offers solution(s).
3. Source organization (.java, resources) very good
4. Smart Refactoring.


Before IDEA, I tried Eclipse. I found the environment very aggressive,
not the easy to use, intuitive environment of IDEA. I cannot tell you
technical details because I tried it for less than a couple of weeks.

But if I were starting to learn Java, the I'd choose NetBeans. Why:
1. SUN Microsystems has started to sponsor NetBeans. That means a lot,
since every new release spec by sun will be almost at once fit into
NB. The Know-How will be immediately posted on Sun website, which
already has a superbly complete set of tutorials.
2. It is free
3. There are a lot of NetBeans communities
4. Excellent J2EE integration

Downsides:
* As long as version 5.5 (just released, NB 6), the GUI side was not
very easy to deal with. Components tends to resize / repositioning
almost at their free will.
* When using the GUI designer, it inserts some "Uneditable code" into
your program. This is a nonsense.
* Refactoring is not very easy, specially when it goes to renaming
classes, or hierarchies.
First, you need a STRONG knowledge of Object Oriented Programming. At
the same time, you'd want to use Java, so, my choice, and my
recommendation, goes to:

Introduction to Programming Using Java, Fifth Edition
Version 5.0, December 2006
Version 5.0.2, with minor corrections, November 2007
Author: David J. Eck ([email protected])
http://math.hws.edu/javanotes/

When you R done with this book, and least some of it, you will b ready
to go to next step. Then, start asking again how to proceed.

Best wishes
Alejandro de Jongh
 
L

Lew

Godofredo said:
1. SUN Microsystems has started to sponsor NetBeans. That means a lot,

Yeah, they started to sponsor NetBeans sometime around version 1.
* Refactoring is not very easy, specially when it goes to renaming
classes, or hierarchies.

I don't know what you mean by "renaming a hierarchy", but renaming a class is
as simple as clicking on the name and typing in a new one. NB handles
updating all the references to it in the project.

NB also supports a host of other refactoring tasks.
When you R done with this book, and least some of it, you will b ready
to go to next step. Then, start asking again how to proceed.

If u cn rd th u cn b secy.
 
M

Mark Space

Lew said:
I don't know what you mean by "renaming a hierarchy", but renaming a
class is
as simple as clicking on the name and typing in a new one. NB handles
updating all the references to it in the project.

Well, you have to double click, and then press Control-R, but yeah I
never had any problem with it either. Maybe he means moving classes
from one package to another, which I haven't tried yet.
If u cn rd th u cn b secy.

Is this Ebonics? "What up, Holmes?!"
 
L

Lew

Mark said:
Is this Ebonics? "What up, Holmes?!"

Way before l33tspeak, there was a correspondence course for a form of
shorthand, and that was their ad.

Elementary, my dear what's up.
 
L

Lew

Mark said:
Well, you have to double click, and then press Control-R, but yeah I
never had any problem with it either. Maybe he means moving classes
from one package to another, which I haven't tried yet.

Not double click, here. Just click on the class source in the project view to
select, not needed if the class is already selected, and click once again to
let you change the name. Type in the new name, hit ENTER and the refactor
dialog pops up. NB 6.0.
 
J

Joshua Cranmer

Lew said:
Way before l33tspeak, there was a correspondence course for a form of
shorthand, and that was their ad.

My first translation of that was (I am serious):
If you can read this, you can be sexy.
 
M

Mark Space

Lew said:
Not double click, here. Just click on the class source in the project
view to select, not needed if the class is already selected, and click
once again to let you change the name. Type in the new name, hit ENTER
and the refactor dialog pops up. NB 6.0.

Oh, I was talking about in the source code window. Double click on a
name or word to select the whole word. Press Control-R for
Refactor/Rename, then type the new name. You class file (.java) is
automatically renamed, as are all references in the project. This works
for all identifiers (local variables, method names, class/instance
variables, etc.) not just class names.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,968
Messages
2,570,154
Members
46,702
Latest member
LukasConde

Latest Threads

Top