• Post Reply Bookmark Topic Watch Topic
  • New Topic

The almost intimidating world of Java  RSS feed

 
Chan Ag
Rancher
Posts: 1090
14
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,

I wasn't sure where to post this. But the thing is this. I started studying java cause I thought it was an interesting programming language. I got my copy of SCJP book by K&B and used that book as a reference book for getting started. I thought somewhere down the line I would take up the certification too. As I kept reading just the SCJP book, I started getting a feeling that I'd better practice more on data structures and then study Joshua Bloch's Effective Java-- thanks to the rave reviews. So I had two more books --

Fifth Edition of Data Structures & Algorithms in Java by Michael Goodrich and Roberto Tamassia.
Second Edition of Effective Java by Joshua Bloch.

Today after completing the last but one chapter on threads in the SCJP book along with the exercises, I felt I should explore more on threads. So I got another book from a local library - It's called Java Threads by Scott Oaks & Henry Wong ( Wow, he's on java ranch :-). At the time I picked the book from the book rack, I didn't know it was his book. ). So now I also have a third book in my list.

The point is this list keeps growing... Do most ( excluding the experts who always know many things about many things ) people really know so much and more possibly?

Now I don't even feel like taking up the SCJP certification exam. Has it happened with anyone else too?

I think by the time I will be done with less than half the stuff in all these books, I'd either be a granny or I will have enough books to open my own little library..

Seems like "It's a big, big, big world" , I have chosen for myself. :-) One of the few good things though is that the Java community is quite friendly and helpful. Thank God.

Chan.
 
Chan Ag
Rancher
Posts: 1090
14
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I thought I had posted this post in the 'meaningless drivel' forum. But it seems I didn't post it correctly.

Could somebody please move it there?

Thanks,
Chan.
 
David Blaine
Ranch Hand
Posts: 70
  • Likes 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Its a big, big, BIG O world, ie do data structures and algorithms very well. It will help you land a job much more easily than those who cannot or do not master it.
Threads and concurrency is another skill one needs to be good at to land a java job.

I felt that taking the SCJP was not beneficial for me. But, reading the book and pretending as if you have to take the exam is good. You will become AWARE of many things about java, which you
otherwise might not have found out. The key,IMHO, is becoming AWARE. The exam does not add any value to your knowledge or resume. If you have a real project/open source project on your resume,
that will literally Eclipse your SCJP. Nobody will even ask you about your SCJP.

I wish someone had laid down an entry level path for me. I guess it would be like this -

1 - STUDY for SCJP, dont take it.
2 - Data structures and algo in java (Do a LOT of problems on this, so much that you see them in your dreams)
3 - Test driven development
4 - Source control - GIT, SVN
5 - Building projects with build tools (ie without eclipse)
6 - SQL
7 - JDBC
8 - C (Yes, its good to know how things work under the hood. Java hides a lot from you and that can be a disadvantage also)

Its a lot, but I saw these requirements in a LOT of jobs.


 
fred rosenberger
lowercase baba
Bartender
Posts: 12563
49
Chrome Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Chan Ag wrote:I thought I had posted this post in the 'meaningless drivel' forum.

It was there, but anything posted in that forum tends to be taken not very seriously...I am assume another moderator (it wasn't me) felt you ARE serious about this topic, and moved it here.
 
Bear Bibeault
Author and ninkuma
Marshal
Posts: 66306
152
IntelliJ IDE Java jQuery Mac Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
If you really want the responses to be pictures of pies and puppies, I'll gladly move it back to Meaningless Drivel.
 
Chan Ag
Rancher
Posts: 1090
14
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Although I love pies ( and pancakes ), and puppies, this post looks better here. :-) The forum responses many times have put my perspective in place and hence I value them.

I thought the moderators would rather not allow it here as it did not have any java concepts related questions.

Thanks for moving it here.
Chan.
 
Jayesh A Lalwani
Rancher
Posts: 2762
32
Eclipse IDE Spring Tomcat Server
  • Likes 4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Can you find anyone who knows everything about Java? Yes, if you look very hard, you might find someone. However, most people know enough to be able to figure stuff out when they need to use it.

I did Web services 7 years ago. Back then it was all SOAP and code generators that generated java code that can make SOAP calls. Now, the world changed, and it's all a mix of REST and SOAP, and it's all annotation driven... and I don;t even know what the heck JAX RPC does. I don't even care because by the time I do get around to developing web services, something else would be there. what I do know is that I am confident of myself to learn whatever is required about web services when I need to.

Same thing with EJB. When EJBs were starting up, I had a job at a company that was all about Struts actions calling DAO web services. When I came in, I added some AJAX into the mix. ALl this while, I was freaking out that I'm not learning EJBs. By the time, I got out of that world, EJBs were gone, and Spring and JQuery was in. I learnt Spring and JQuery on the job and face it, besides the whole DI thing, Spring/Jquery combination is structurally very similar to Struts/custom javascript. I mean the new technologies make things easier for you, but the way you design and structure your application is almost the same.

So,I'm back to the "cutting edge", for the next 10 minutes atleast. I bit the bullet there, but it was an important lesson. DOn't sweat the things you don't know. Focus on the things that you do know. WHat matters most is your ability to understand the core concepts, and be able to apply them to a differrent toolset. The number of APIs you can cram into your brain is meaniningless.
 
Winston Gutkowski
Bartender
Posts: 10575
66
Eclipse IDE Hibernate Ubuntu
  • Likes 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Chan Ag wrote:The point is this list keeps growing... Do most ( excluding the experts who always know many things about many things ) people really know so much and more possibly?
...
Seems like "It's a big, big, big world" , I have chosen for myself. :-)

Sure is. And from what I've seen of your posts, it seems like you've learnt some of it.

Chan, I've been in this biz for 35+ years and been using Java for the last 12; and believe me, it doesn't stop; and it doesn't get any easier either (especially at my age). But what intelligent person would want something that you can learn in a few months? You'd soon get bored.

I'm lucky (or unlucky) enough to have been "born" with procedural languages, and had to learn how to think objectively (it took me about 8 years). Books can take you so far, but there's a lot of banging your head against the terminal involved - and you guys are lucky now 'cause you have those soft flat-screen things.

Along the way I also picked up a couple of years of intensive data modelling experience, which I'd definitely advise to anyone who wants to call him/herself a "proper" programmer. If you don't understand how data structures and relationships and transactions work, how can you expect to program them? And now that networks and distributed systems are involved...

My advice: Enjoy it. Chances are that if you find it a chore, you'll get into management (far more boring in my opinion); but if you really enjoy "not knowing", it's the career of a lifetime. I'm a programmer down to my boots, and I fully expect to be buried with my laptop.

Isaac Asimov (a really clever bloke) wrote:The most exciting phrase to hear in science, the one that heralds new discoveries, is not “Eureka” but “That’s funny...”
And believe me, that's how it happens.

The point is this list keeps growing... Do most ( excluding the experts who always know many things about many things ) people really know so much

I suspect you're running into the general business of knowledge:
The more you know, the more you know you don't know
(sorry if that sounds like a Donald Rumsfeld-ism)

or if you prefer:
Isaac Newton wrote:If I seem to have seen further than others, it is by standing on the shoulders of giants.
(bloody Isaacs; what makes them so damn clever?)

One of the few good things though is that the Java community is quite friendly and helpful. Thank God.

Because (at least on this site) we all know that we were once where you are. If you want a good read on the subject, try this.

Winston
 
Jasper Verelst
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
good to see I'm not the only one
 
Chan Ag
Rancher
Posts: 1090
14
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
From whatever I've known so far about programming in Java, I sort of like it. And I'm hoping that this will remain as is for me in the days ( hopefully in the years ) to go. I like ( doesn't imply I'm good at it ) to design good solutions and I strongly believe that unless you've programmed solutions that cover data structures, and threads, you haven't really programmed much. So I'm just trying to build a good base in the foundation stuff.

I've started with threads and recursion and I'm enjoying working on this stuff. I find recursion algorithms slightly difficult- especially the double recursion stuff and the problems that require you to convert a solution that uses iteration to a solution that uses recursion. But I'm enjoying it still. And I'm really grateful to the Javaranch community ( it's almost a Java university that you get for free :-) ) here for helping me and people like me adapt to Java.

These days I hear everyone around me talking about Spring, hibernate, J2EE ( among big data, and all sorts of other what not's). It sort of is intimidating at times. Few days back I even tried to go through some basic tutorials on Spring and hibernate and ended up writing ugly programs that just worked but I realized these short cuts aren't for me. So I'm not going to touch upon these things before threads and data structures, no matter how many jobs require those skills. So that is the current plan. :-)

I hope it is a good plan..

Chan.
 
Jayesh A Lalwani
Rancher
Posts: 2762
32
Eclipse IDE Spring Tomcat Server
  • Likes 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
One thing I like to tell all young developers is that don't be afraid to look at other people's code. Programming is as much art as it's engineering. Sure, you need to learn the tools and techniques, and be able to come up with pros and cons of a solution, and you need to be able to solve problems. However, how you come up with a solution is more or less a learned art

A lot of schools and colleges that teach programming focus a lot of on the Engineering aspect of it. They teach you the concepts:- data structures, recursion, computer and OS architecture, database architecture, etc etc. They might even teach you the tools by having programming courses as part of their curriculum. What they don't teach you is the art behind coming up with solutions. They cannot. They are engineering schools. The way most of engineering works is that the engineer is taught how to use a bag of tools and techniques. When given a problem, s/he analyzes it, finds the best tool for the job and applies it. That's not how software engineering works. The way most software is designed is someone comes up with an idea, and then tries to flesh it out , much like a painter would

OTH, the way art is taught is quite a bit differrent. Yes, the art students have to learn the various tools/techniques they can use, and how to apply them. However that is a small part of the education. Most of an artist's education is spent studying other great artists. Artists spend years and years trying to mimic great works. They study those works in details, down to the very brush strokes that the artist might have used.

IMO, software engineering should have a little bit of the art style education too. Most software graduates have never seen what masterful code looks like. Yes they have written code that implement some algorithms. They might have even done a project or 2, but they haven't seen how succesful programs work. This is akin to telling someone "Here, this is how you hold a brush. This is how you make the strokes.. Practice it.... Practice done.. good.. now go paint for a living" I am certain that if art schools worked like that, many "painters" wouldn't know how to paint. This is why a lot of software engineers cannot code. They haven't seen what real code looks like. In fact, a lot of great code is hidden from software developers because the source code is owned by corporations that consider the source code to be their intellectual property.

Thankfully, the open source movement has picked up quite a bit of steam over the past decade. There is a lot of top notch quality code out there that you can basically download for the cost of free. Read through Spring. Read through hibernate. Better yet, crack open and IDE, and debug through it. You can learn a lot of things that might help you in your career. Or even better yet, find a bug in one of their bug trackers and try to fix it.
 
Chan Ag
Rancher
Posts: 1090
14
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

The stack is still growing.
I'm done studying only the SCJP book so far. Rest all are just like - x chapters done.

Thought of the day - It will get better. :-)

Chan.

bookspic.jpg
[Thumbnail for bookspic.jpg]
 
Paul Clapham
Sheriff
Posts: 22823
43
Eclipse IDE Firefox Browser MySQL Database
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Jayesh A Lalwani wrote:Most software graduates have never seen what masterful code looks like.


It's a bit easier with Java because the Oracle tutorials are pretty good code. Maybe not masterful but still pretty good. So when I see somebody here asking about their code which it looks like they were wearing boxing gloves when they typed it, I tell them to stop coding and go and read the tutorials. Much of the code I have written is ultimately based on code I copied from those tutorials.
 
Winston Gutkowski
Bartender
Posts: 10575
66
Eclipse IDE Hibernate Ubuntu
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Chan Ag wrote:The stack is still growing.

Well, if you want another one, more along the lines of Jayesh's great post, try this one.

Some of it even goes over my head, but it's a wonderful book. I particularly recommend the chapters on regex, bit counting and "beautiful tests".

Winston
 
Chan Ag
Rancher
Posts: 1090
14
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks, Winston. :-) :-)

Will consider buying it once I'm done with Java Threads. :-) Thank you.

My instructor ( she ain't giving lessons anymore ) would always emphasize on writing beautiful code and she almost always found scope of improvement in our submissions. I still remember there was one simple problem for which I had to submit three solutions till I got it correct. We'd always think - damn! why didn't we think like that!

There'll be a one day...

Chan.

  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!