Regarding development and language (Java)

Unfortunately the best way to learn software development in any
language is to experience a significant amount of pain from doing
things the wrong way that, when you find out about the right way, it
will make sense (mmm... yeah, that would be much less painful than the
way I just did it).

To get started (in any language) I think everyone just needs to pick
something they want, some tool or toy, and then build it. It's best if
it can be something that is driven by a simple data structure that
will not get messy, a single data type is probably a good start. For
example, a time keeper which holds a single record for each time slot
of the day, or an app that pulls from a public REST API and
restructures the results in a way you want.

After that, pointers/object references, passing by reference, passing
by value, and garbage collection become important. Whatever language
you're in, you should get a grasp on how it works in your language
before going too much further. I feel like learning to write a
recursive function, or an algorithm that walks a tree of nodes is
really a great way to learn how your language works from the
perspective of object references, functions, and the stack.

>From an object oriented approach, in my opinion, it's best to learn
how to write good APIs for classes and subsystems by writing them
backwards. Write the consumer of the API first, then write the class
or subsystem. In the end, the first consumer of an API is going to be
thrown away, so just think of it as a scratch pad for how a particular
class is going to interact with the program, which will get you
thinking about the actual implementation of the class before diving in
and shooting your toes off.

Also, with Java, I would stay away from the IDE for a while. It really
bothers me when I meet programmers who don't know how a language
works, or how to refactor code, because they've never been outside an
IDE.

I'm really not a big fan of Java because of all the boilerplate etc.
but one of the best books I've seen on the topic is Head First Java
(yeah the silly purple books with all the illustrations... but they're
pretty good).

But honestly, probably the most useful information after diving in, is
to follow all the rants on the internets:
http://www.hnsearch.com/search#request/all&q=java

-- Kris

Web Programmer for Fun and Profit
_______________________________________________
Mid-Hudson Valley Linux Users Group                  http://mhvlug.org
http://mhvlug.org/cgi-bin/mailman/listinfo/mhvlug

Upcoming Meetings (6pm - 8pm)                         Vassar College
  Jan 4 - Getting Involved in Open Source
  Feb 1 - Home Networking Made Simple with Amahi Home Server

Reply via email to