The Cache: Technology Expert's Forum
 
*
Welcome, Guest. Please login or register. February 04, 2012, 11:13:10 AM

Login with username, password and session length


Pages: [1] 2
  Print  
Author Topic: Your views on java?  (Read 5672 times)
leaferz
Rookie
**
Offline Offline

Posts: 19


View Profile
« on: December 19, 2009, 09:09:23 AM »

I've been really enjoying PHP for the last 8 months (on and off) so I've decided to take C & C++ at a local college near my home starting in January. I enjoy the classroom setting when I'm learning the basics but afterwards tutorials/books do the job. Anyways the next step in the program begins an entire specialized component of about 4-5 courses focusing on java (EJB Architecture, J2EE, JEE App Development, Java DB App Development) but I'm wondering if I should pursue other languages after the C and C++ courses or stick with the Java component and look into those other languages later on.

My entire reason for taking the c/c++ route is to begin that solid understanding of programming in general so I'm easily able to move from language to language with ease. My main focus is on web development and tools to assist in the more nefarious aspects to help out my websites.

Here's my situation:

  • Time in not a factor (if it takes 2yrs, 8 yrs, etc it doesn't bother me one bit)
  • This is not for a resume or to pursue a career working for someone, only personal use. I have no problem leaving the program after I've learned what I need to know. The degree means nothing to me only the content learned
  • I've reduced my hours at work to accommodate all of the extra time I will need to focus on programming.
  • and of course I actually enjoy coding itself so spending countless hours at the pc doesn't bother me a bit, only the wife Wink

Having lurked through this forum for quite a while I've often seen mentioned that more languages under your belt makes you a better programmer overall. Now is java worth pursuing to become one of those solid foundation languages or should I look into perl, python, or all of the above?

Post any languages that come to mind that would fall into that solid foundation building category and if it's not offered at that school I'll find one that does.

EDIT: Also forgot to mention that I primarily work on a linux box so any MS only languages I'm not interested in.

Thx guys. 
« Last Edit: December 19, 2009, 09:37:10 AM by leaferz » Logged

No links in signatures please
isthisthingon
Global Moderator
Lifer
*****
Offline Offline

Posts: 2868



View Profile
« Reply #1 on: December 19, 2009, 12:50:46 PM »

Quote
Now is java worth pursuing to become one of those solid foundation languages or should I look into perl, python, or all of the above?

Because of this I'd say Java is perfect - especially if you enjoy it.  I remember posting about this a while ago on the Cache.  Whether it was you asking similar questions a few months ago or not, I'd have to say that your chosen path and attitude towards learning how to become a true software engineer is admirable.  You already have a senior approach to learning what you don't already know.  This will never stop as long as you follow this path. 

So from high-level (PHP, Python, Perl, various Basics, etc.) to C/C++ in guided educational instruction - perfect.  "Following" this (well, no need to ever stop fiddling with C/C++ to keep it fresh) I'd suggest either C#, Java, Object Pascal (Delphi/Kylix), or something similar.  Objective C is also a good one.  Here's a thought.  Objective C is used for iPhone programming and Java is used for Android.  I'm personally diving into Java, PHP and Android programming myself.  PHP for various projects I'm jumping into at work and Java/Android for my personal path.

But Objective C is designed closer to a "new" trend in programming that nobody really knows about yet.  This trend has to do with purely evented, non-blocking infrastructures.  Infinitely nested asynchronous callbacks, for those who want to tease their brains.  Here's a slide show on it from a js perspective: http://www.scribd.com/doc/23801896/Node-js-JSConf-2009.  I learned how to do this in Ruby as well and it's what everybody seems to be talking about in the deep-heavy architect world.  Here's a tip.  Read the following book - Pattern Oriented Software Architecture by Douglas Schmidt.  The Reactor event pattern around page 170 describes what a purely evented, non-blocking infrastructure is and does.  It's a very deep concept but the high level aspects of either 1. Blocking and waiting for lines of code execution to return, or 2. returning immediately from every call and handling everything asynchronously.

Interestingly enough, learning on the cutting edge in script-land, or the uncompiled, will also provide insight into elements of programming that no amount of training in the lower level languages can ever bring you! 

Good luck! 

Avatar rules.
Logged

I would love to change the world, but they won't give me the source code.
leaferz
Rookie
**
Offline Offline

Posts: 19


View Profile
« Reply #2 on: December 19, 2009, 08:13:13 PM »

Quote
Now is java worth pursuing to become one of those solid foundation languages or should I look into perl, python, or all of the above?

Because of this I'd say Java is perfect - especially if you enjoy it.  I remember posting about this a while ago on the Cache.  Whether it was you asking similar questions a few months ago or not, I'd have to say that your chosen path and attitude towards learning how to become a true software engineer is admirable.  You already have a senior approach to learning what you don't already know.  This will never stop as long as you follow this path. 

So from high-level (PHP, Python, Perl, various Basics, etc.) to C/C++ in guided educational instruction - perfect.  "Following" this (well, no need to ever stop fiddling with C/C++ to keep it fresh) I'd suggest either C#, Java, Object Pascal (Delphi/Kylix), or something similar.  Objective C is also a good one.  Here's a thought.  Objective C is used for iPhone programming and Java is used for Android.  I'm personally diving into Java, PHP and Android programming myself.  PHP for various projects I'm jumping into at work and Java/Android for my personal path.

But Objective C is designed closer to a "new" trend in programming that nobody really knows about yet.  This trend has to do with purely evented, non-blocking infrastructures.  Infinitely nested asynchronous callbacks, for those who want to tease their brains.  Here's a slide show on it from a js perspective: http://www.scribd.com/doc/23801896/Node-js-JSConf-2009.  I learned how to do this in Ruby as well and it's what everybody seems to be talking about in the deep-heavy architect world.  Here's a tip.  Read the following book - Pattern Oriented Software Architecture by Douglas Schmidt.  The Reactor event pattern around page 170 describes what a purely evented, non-blocking infrastructure is and does.  It's a very deep concept but the high level aspects of either 1. Blocking and waiting for lines of code execution to return, or 2. returning immediately from every call and handling everything asynchronously.

Interestingly enough, learning on the cutting edge in script-land, or the uncompiled, will also provide insight into elements of programming that no amount of training in the lower level languages can ever bring you! 

Good luck! 

Avatar rules.

Excellent response isthisthingon. I've just heard so many conflicting stories over the last few years about java making it difficult to judge it either way. I've always suspected poor programming practices as the cause for the "slow" comments found throughout the net but I guess I'll have to make that judgment call once I tackle the language.

Thx.
Logged

No links in signatures please
nop_90
Global Moderator
Lifer
*****
Offline Offline

Posts: 2203


View Profile
« Reply #3 on: December 19, 2009, 09:21:38 PM »

Only book u will ever need.
Structure and Interpretation of Computer Programs
http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html#%_toc_start
Everything from OO, to making a VM, to making a compiler.

python,java,C/C++,pascal all go onto the procedural language side of the house.
scheme,lisp,erlang etc go onto the functional language side of the house.

Once u know one procedural language, they all are the same.
functional languages give u a different way of thinking how to solve problems.


Logged
leaferz
Rookie
**
Offline Offline

Posts: 19


View Profile
« Reply #4 on: December 20, 2009, 03:30:09 AM »

Only book u will ever need.
Structure and Interpretation of Computer Programs
http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html#%_toc_start
Everything from OO, to making a VM, to making a compiler.

python,java,C/C++,pascal all go onto the procedural language side of the house.
scheme,lisp,erlang etc go onto the functional language side of the house.

Once u know one procedural language, they all are the same.
functional languages give u a different way of thinking how to solve problems.


Thx.
Logged

No links in signatures please
perkiset
Olde World Hacker
Administrator
Lifer
*****
Offline Offline

Posts: 9785



View Profile
« Reply #5 on: December 20, 2009, 04:01:29 PM »

During my last glacial movement, I moved away from compiled languages and structures to move to the new paradigms.

I tried dotNyet briefly, but this was cursor so that I could say I did - I did not go deep.
I went deep into an EJB, Java, Tomcat structure.
I went deep into a PHP and Javascript structure.

For me, PHP and JS won. But that was because of my mission needs. I found Java to be powerful, yet at times confusing (not the syntax so much, but the choices for deployment). There are as many arguments in the java community itself about the way that Java should be implemented I was concerned about making the right decision. There are LOADS of frameworks and structures around that can do everything from the most simple to the wildly complex in Java.

I agree with ITTO that this is probably a good thing for you to do, particularly if time is not an issue and there's no clear mission which would dictate a particular language capability (like a project that would be most elegantly coded in Python, or the abstractable nature of the PERL syntax was of interest). Java can very well be a career choice, and it will probably keep you intrigued for years to come. And that may be one of my largest arguments against it - I have some buddies that love Java, and they frankly never get anything done - because by time they start moving forward, they discover yet another framework/method/capability that makes them rethink and refactor. It can *definitely* be an over-cerebral language and puzzle, rather than a solution creator.
Logged

It is now believed, that after having lived in one compound with 3 wives and never leaving the house for 5 years, Bin Laden called the U.S. Navy Seals himself.
isthisthingon
Global Moderator
Lifer
*****
Offline Offline

Posts: 2868



View Profile
« Reply #6 on: December 20, 2009, 04:19:45 PM »

Quote
It can *definitely* be an over-cerebral language and puzzle, rather than a solution creator.

LOL - nice one.  I'd say C/C++ has a place in that hall of fame as well.  But as a career choice I believe all three are equally dubious these days, though Java is still far more heavily employed.  That being the case, ever notice how people quiet their voices and admit that the core libraries of some brand new technology are written in C/C++ and/or Java?  There's always room for the masters of these languages.
Logged

I would love to change the world, but they won't give me the source code.
perkiset
Olde World Hacker
Administrator
Lifer
*****
Offline Offline

Posts: 9785



View Profile
« Reply #7 on: December 20, 2009, 04:24:10 PM »

There's always room for the masters of these languages.

Big time.
Logged

It is now believed, that after having lived in one compound with 3 wives and never leaving the house for 5 years, Bin Laden called the U.S. Navy Seals himself.
leaferz
Rookie
**
Offline Offline

Posts: 19


View Profile
« Reply #8 on: December 21, 2009, 09:39:57 AM »

During my last glacial movement, I moved away from compiled languages and structures to move to the new paradigms.

I tried dotNyet briefly, but this was cursor so that I could say I did - I did not go deep.
I went deep into an EJB, Java, Tomcat structure.
I went deep into a PHP and Javascript structure.

For me, PHP and JS won. But that was because of my mission needs. I found Java to be powerful, yet at times confusing (not the syntax so much, but the choices for deployment). There are as many arguments in the java community itself about the way that Java should be implemented I was concerned about making the right decision. There are LOADS of frameworks and structures around that can do everything from the most simple to the wildly complex in Java.

I agree with ITTO that this is probably a good thing for you to do, particularly if time is not an issue and there's no clear mission which would dictate a particular language capability (like a project that would be most elegantly coded in Python, or the abstractable nature of the PERL syntax was of interest). Java can very well be a career choice, and it will probably keep you intrigued for years to come. And that may be one of my largest arguments against it - I have some buddies that love Java, and they frankly never get anything done - because by time they start moving forward, they discover yet another framework/method/capability that makes them rethink and refactor. It can *definitely* be an over-cerebral language and puzzle, rather than a solution creator.
Quote
It can *definitely* be an over-cerebral language and puzzle, rather than a solution creator.

LOL - nice one.  I'd say C/C++ has a place in that hall of fame as well.  But as a career choice I believe all three are equally dubious these days, though Java is still far more heavily employed.  That being the case, ever notice how people quiet their voices and admit that the core libraries of some brand new technology are written in C/C++ and/or Java?  There's always room for the masters of these languages.
There's always room for the masters of these languages.

Big time.

Only book u will ever need.
Structure and Interpretation of Computer Programs
http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html#%_toc_start
Everything from OO, to making a VM, to making a compiler.

python,java,C/C++,pascal all go onto the procedural language side of the house.
scheme,lisp,erlang etc go onto the functional language side of the house.

Once u know one procedural language, they all are the same.
functional languages give u a different way of thinking how to solve problems.


This is exactly what I wanted to hear about java before heading into it for X amount of years. From the research I've done it seemed to be able to cover all of my project ideas but wanted to hear from people who actually use(d) it and don't have a bias. FAr too often you hear views on forums/blogs etc from people who only use one or two languages so their bias or hatred is misplaced in my opinion. 

Hopefully once I've gotten a hold on C++ and Java I'll finally be able to comprehend PHP OO and Javascript.

And for Nop, damn that book is an outstanding read. Thx again for that.  Praise
Logged

No links in signatures please
perkiset
Olde World Hacker
Administrator
Lifer
*****
Offline Offline

Posts: 9785



View Profile
« Reply #9 on: December 21, 2009, 09:59:52 AM »

Hopefully once I've gotten a hold on C++ and Java I'll finally be able to comprehend PHP OO and Javascript.

Shocked

Wait ... understanding PHP and OO is your ultimate goal? STOP THE PRESSES.

The reason, "learn Java or C++ so that you can understand OO or PHP" is perhaps THE WORST reason on the planet to do so. PHP is simplistic and extraordinarily easy compared to becoming a master in either C[#|++] or Java ... If that's your deal, let's just start you right there and get you going. You've dropped into the right place mate.

Logged

It is now believed, that after having lived in one compound with 3 wives and never leaving the house for 5 years, Bin Laden called the U.S. Navy Seals himself.
isthisthingon
Global Moderator
Lifer
*****
Offline Offline

Posts: 2868



View Profile
« Reply #10 on: December 21, 2009, 12:46:56 PM »

Hopefully once I've gotten a hold on C++ and Java I'll finally be able to comprehend PHP OO and Javascript.

Shocked

Wait ... understanding PHP and OO is your ultimate goal? STOP THE PRESSES.

The reason, "learn Java or C++ so that you can understand OO or PHP" is perhaps THE WORST reason on the planet to do so. PHP is simplistic and extraordinarily easy compared to becoming a master in either C[#|++] or Java ... If that's your deal, let's just start you right there and get you going. You've dropped into the right place mate.

I don't believe so:

Quote
My entire reason for taking the c/c++ route is to begin that solid understanding of programming in general so I'm easily able to move from language to language with ease. My main focus is on web development and tools to assist in the more nefarious aspects to help out my websites.

Sounds like leaferz wants to become a lifer.  He's on the right path for that.
Logged

I would love to change the world, but they won't give me the source code.
perkiset
Olde World Hacker
Administrator
Lifer
*****
Offline Offline

Posts: 9785



View Profile
« Reply #11 on: December 21, 2009, 02:01:52 PM »

Just commenting on his final line, which I quoted in my post...
Logged

It is now believed, that after having lived in one compound with 3 wives and never leaving the house for 5 years, Bin Laden called the U.S. Navy Seals himself.
leaferz
Rookie
**
Offline Offline

Posts: 19


View Profile
« Reply #12 on: December 22, 2009, 02:10:10 AM »

Hopefully once I've gotten a hold on C++ and Java I'll finally be able to comprehend PHP OO and Javascript.

Shocked

Wait ... understanding PHP and OO is your ultimate goal? STOP THE PRESSES.

The reason, "learn Java or C++ so that you can understand OO or PHP" is perhaps THE WORST reason on the planet to do so. PHP is simplistic and extraordinarily easy compared to becoming a master in either C[#|++] or Java ... If that's your deal, let's just start you right there and get you going. You've dropped into the right place mate.


No no, it's just an area I'm interested in covering. I've enjoyed procedural PHP so I figured I would see that language through.

Javascript was just plain awkward. Something about it just never made sense to me. At the moment either aren't a pressing need but I see the importance of both.

I know if I reach a certain competence level in c/c++/java that getting back into php and JS for a certain task I may be working on will be much easier but in the end I want a heck of a lot more then what either of those languages offer me. I've figured I can't go wrong in learning C/C++ but java was in question until I posted this thread.
« Last Edit: December 22, 2009, 02:15:14 AM by leaferz » Logged

No links in signatures please
perkiset
Olde World Hacker
Administrator
Lifer
*****
Offline Offline

Posts: 9785



View Profile
« Reply #13 on: December 22, 2009, 09:32:42 AM »

Fair enough. BTW - JS is a funky language - we've spoken here many times in other threads about it. It *appears* to work like other, more normal languages, but doesn't. Frustrating, but worth the time in learning.

Good luck Leaferz.
Logged

It is now believed, that after having lived in one compound with 3 wives and never leaving the house for 5 years, Bin Laden called the U.S. Navy Seals himself.
vsloathe
vim ftw!
Global Moderator
Lifer
*****
Offline Offline

Posts: 1669



View Profile
« Reply #14 on: December 22, 2009, 09:35:16 AM »

Java is widely used in the enterprise and in CS education. You won't go wrong with it. Java devs are higher-paid than nearly any other type of developer as well (excepting very niche skills or ancient proprietary languages, etc.).
Logged

hai
Pages: [1] 2
  Print  
 
Jump to:  

Perkiset's Place Home   Best of The Cache   phpMyIDE: MySQL Stored Procedures, Functions & Triggers
Politics @ Perkiset's   Pinkhat's Perspective   
cache
mart
coder
programmers
ajax
php
javascript
Powered by MySQL Powered by PHP Powered by SMF 1.1.2 | SMF © 2006-2007, Simple Machines LLC
Seo4Smf v0.2 © Webmaster's Talks


Valid XHTML 1.0! Valid CSS!