Win a copy of Murach's Java Programming this week in the Beginning Java forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

Intro, book(s) question, another language assistance, and final vague question  RSS feed

 
Kaiyo Sakamoto
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Good Morning/Afternoon,

Intro:

This is my first forum entry and I'm currently very new to programming, Java in general, and hoping to get some input from the users from this site if they do not mind. So far my vast experience(sarcasm) is from community college I've taken three classes: Object-oriented programming ( Pseudo code ), Programming fundamentals ( Pseudo code ), and currently about to finish this semester with Java Tier I. My degree goal is to obtain an associate's in applied science major being computer programming. Cards on the table: I took object-oriented programming first truly knowing nothing but a few basics I've read and was not given the proper tools and had an incredibly hard time with the class and ended up failing. Programming fundamentals I flew thru with minor errors and because I was given the tools I needed passed the class with an "A". Current class Java Tier I, I'm holding an "A" my final is being judged next week and will determine if I hold it or drop to a "B".

Book Question:

I would love some suggestions for books that would aid my understanding I don't mind how advance or how basic they are. However, If I could kindly request that if a book is suggested to confirm one rather large issue I've found in most books I've tried via: Java Programming by Farrell, Joyce and Head First Java, 2nd Edition by by Kathy Sierra and Bert Bates.  Is that if and when they give examples or "do it yourself" that they actually have an answer page or at least working code. I'm sure many people have had aneurysms trying to begin with a trial basis and then finally have to ask for support to determine mistakes only to find the book doesn't have the answer to begin with.

continued:

I will say both books are very well written and the jokes and analogies helped overall understanding, so if anyone reading the above is discouraged please do not be. I refer to these books all the time, the information is solid and they are well worth the cost.

Another language assistance:

A realistic note, the degree requirement does require the completion of two languages. I've picked Java as my first and like it so far, though I have a very long way to go. I would greatly appreciate some suggestions for a second language my thought was C# just by others advice. This was mentioned because of .FRAME for Microsoft which I cannot deny anything that refers to integration with the popular operating system cannot be a bad thing.


off topic question:

There are not a lot of classes available for teaching programming and this concerns me overall. In fact there are so few that most if not all colleges in my area only offer these classes ONLY online, which now I've developed a realistic fear. This fear is that when I get to meet another programming face to face I won't even know what they are talking about having never heard a conversation about coding. There have been a few times that my professor agreed to meet with me for a one on one training. This was good and bad because I was in the literal beginning stages of not knowing what a class was or a method was and the conversation was so advanced that I couldn't understand. This was for Pseudo code which really glosses over the specifics I needed to know moving forward and the limitation of a 30 minute tutoring. Skipping forward I'm current in my Java class truly feeling alone and isolated, my current professor will not meet with me for a one on one tutoring. He specified that the school does not permit or require him to meet with students for a one on one basis this is why they have a tutor center. The school has the most ridiculous requirements for tutoring in person which requires a person to make an appointment if the subject is a specific topic beyond math, reading, writing, and so forth the "basics". Which is negated by they do not accept any appointments it's a walk-in basis only and they do not have anyone with programming skills to assist walk-ins. ( Complete tableflip moment )

So anyone with some ideals about how I can actually interact with real programmers even up coming learners like myself, I would greatly be appreciated.

Thank you for your time reading this and I will have a plethora of questions dealing with Java in the very near future.


 
Jeanne Boyarsky
author & internet detective
Marshal
Posts: 37051
507
Eclipse IDE Java VI Editor
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I'm happy when a book has practice questions without answers because the "doing" part is what matters. These forums are good for when I get stuck. A book I read recently does have both questions/answers. In case the book is nothing but that so you'd probably enjoy it.

C# is a fine language. What are your other choices? C# and Java have a lot of similarities. If you can pick a language that is "more different", you'll probably learn more.

Where do you live/go to school? I'm surprised they don't offer programming classes in person.
 
Henry Wong
author
Sheriff
Posts: 23260
124
C++ Chrome Eclipse IDE Firefox Browser Java jQuery Linux VI Editor Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Jeanne Boyarsky wrote:
C# is a fine language. What are your other choices? C# and Java have a lot of similarities. If you can pick a language that is "more different", you'll probably learn more.


Agreed. And if I had to choose a language, it would be C (or C++). It is amazing how bad C (or C++) code can get, in the hands of a Java programmer. They seem to be so used to the GC, that they can't code malloc()/free() (or new/delete) correctly...

Henry
 
Kaiyo Sakamoto
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thank you both for the amazing feedback! First to answer the available classes: Java, C#, C++, Visual Basics,  and Game development ( sounds fun but I think this is more of a storyboard type class). As for the school(s) Maricopa county colleges in Arizona, I have access to a few but not all. I would greatly appreciate some insight on C# or C++ ( or another language ). Any suggestions with any practical application in the job market Or! if you believe it is a great learning tool to broaden a better understanding.

Jeanne, can you go into more specific details of why a Java programmer would struggle with C? Learning basic functions at the start helps dramatically even the simple standard of making open and closing brackets then putting your code inside. I am not familiar with malloc of free sorry again I am still very new.

As for the book "Practice Java" I got a copy on the way and I completely agree with your statement, it is very important to learn by experience not just given the answer. I'm just referring to the situations where the example code is wrong, so "you" do it incorrectly and are clueless on how to proceed after spending a few hours force coding. I've done a few posts on other forums that literally said I should know this, this is the absolute basics of Java. Slightly hurtful but take a grain of salt with a grain of sugar ya know.

 
Jeanne Boyarsky
author & internet detective
Marshal
Posts: 37051
507
Eclipse IDE Java VI Editor
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Kaiyo Sakamoto wrote:First to answer the available classes: Java, C#, C++, Visual Basics,  and Game development

From that list, I think you should pick C++.

Kaiyo Sakamoto wrote:Jeanne, can you go into more specific details of why a Java programmer would struggle with C? Learning basic functions at the start helps dramatically even the simple standard of making open and closing brackets then putting your code inside. I am not familiar with malloc of free sorry again I am still very new.

Learning C/C++ early helps with this problem which is why I agree with Henry to chose that. In Java, you don't think about memory use much. In C/C++, you think about it a lot. You have to clean up pointers/memory when you are done with it. Java is like when the maid at a hotel empties the trash for your when you are out. C/C++ is like you putting stuff in the trash and it just sitting there unless you throw it out - like at home. If you get too used to the automatic model, it is easy forgot to take care of things. And you wouldn't be familiar with malloc - it's not a Java thing. It's that "manual" throwing out the trash.

Kaiyo Sakamoto wrote:I've done a few posts on other forums that literally said I should know this, this is the absolute basics of Java. Slightly hurtful but take a grain of salt with a grain of sugar ya know.

We're not hurtful here . This forum is very focused on helping people learn. So you'll get a next step or thing to think about rather than a complete answer. But nobody will be mean!
 
Junilu Lacar
Sheriff
Posts: 10929
158
Android Debian Eclipse IDE IntelliJ IDE Java Linux Mac Spring Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Henry Wong wrote:
Agreed. And if I had to choose a language, it would be C (or C++). It is amazing how bad C (or C++) code can get, in the hands of a Java programmer. They seem to be so used to the GC, that they can't code malloc()/free() (or new/delete) correctly...

It's amazing how bad Java code can get in the hands of a "Java programmer."  There are plenty of C/C++ programmers who don't know how to be proper and disciplined in managing memory in their programs either. It's not like all the real-world bugs related to poor memory management in C/C++ programs were created by Java programmers. I'm willing to bet that a significant number of those were created by people who considered themselves as C/C++ programmers.

The difference is not so much in being a "Java programmer" vs. "C/C++ programmer" as it is in being a "knowledgeable and disciplined" programmer vs NOT being one.
 
Junilu Lacar
Sheriff
Posts: 10929
158
Android Debian Eclipse IDE IntelliJ IDE Java Linux Mac Spring Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
As for the second language suggestion, C/C++ are fine but you should base your decision not on the language itself as much as the type of applications you want to be able to write. For example, if you want to do development for mobile platforms like Android and IOS, then C/C++ is a good fit. You'll also benefit from learning JavaScript and HTML5 and CSS. The latter aren't really languages but they have a learning curve nonetheless and despite its name, Javascript has very little to do with Java. If you're interested in other areas of concentration like Data Science, for example, knowing a language like Python will be useful. Again, other technologies will come into play, like NoSQL databases like MongoDb and Cassandra, and again, Javascript and JS-based technologies like AngularJS and NodeJS which also have significant learning curves.

Behind all these things are principles. If you know all these technologies but are not familiar with good design principles, then you're more likely to create messes. Know your principles, study them well and know how to apply them. Perhaps just as important or more important, know when you are violating principles and know how to spot signs of violations of principles.
 
Kaiyo Sakamoto
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Awesome point, I'm pretty certain the above posts were just trying to point out that Java books and learning tools rarely go into proper allocation of memory. In fact,  I was reading the book Head first, Java by Kathy Sierra and Bert Bates and there was this analogy over two programmers competing to make the same program. The story was vaguely stated as "Whomever makes a more efficient program will win a vacation to Hawaii or something". They had one procedural "Jim" and one object-oriented programmer "Bob" while they both were nearing the completion of the program the Buyer's needed one more alteration. This was to glorify the object-oriented programming where you can make small alterations instead of re-writing the entire code by the procedural style.

However, this is where I use the term tableflip as a greenhorn taking this story for what it's worth, it ended in complete disarray. The winner between the procedural and object-oriented programmer was: Catherine! excellent work! she was given the task behind the backs of "Jim" and "Bob" and the difference was....(drum roll) she made a program that utilized memory more efficiently than the other two. Moral of the story, apparently memory utilization is important but is heavily glossed over in most Java tutorials, it seems the focus is to write efficient code with less lines as a primary goal.

Again I would like to thank all of you for the info and support I greatly appreciate it! I'm going to register for C++ tomorrow for summer classes and worst case scenario I can take the additional class for C# in the future.

Thanks again!
 
crispy bacon. crispy tiny ad:
Thoughts on deprecation in Java
https://coderanch.com/t/683016/java/Deprecation-Java
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!