• Post Reply Bookmark Topic Watch Topic
  • New Topic

Am I Just Bad At Java? [Java Rant]  RSS feed

 
Graham Wolk
Ranch Hand
Posts: 31
  • Likes 4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I know this isn't a coding question or anything like that, but I started my Compsci class about 4 weeks ago, and so far I've been having trouble with it. The class is Java 1-Object Oriented Java. I know a lot of the terms already, such as classes, methods, objects, blah blah blah, if we had a vocabulary test I'd ace it. I can easily compile "Hello World!" no problem, but that's because it's easy and I have it memorized by this point.

However, I am struggling with just general problems. I'm trying some practice problems on codingBat my teacher set up, and I just can't seem to get any of them right. I try to manipulate the code to how I think it should work, and it comes out wrong.

I always ask people for help, but they either do it for me, to which I learn nothing, or I am explained this process that makes 0 sense to me. "For the seed value you have to import java.util.Random then use a substring to blah blah blah" I'm lost. And it is *not* a matter of me just simply not "getting" the language or not "having the mind of a programmer", I believe anyone can learn anything if they try. I just can't seem to put everything into it's perspective.

For example, when doing boolean practice problems, I looked at the solution and realized that "if" and "||" and "!" are all symbols and words that are used to solve those types of problems. How ***** am I supposed to know that? Is there something I'm missing? Is everything I need to know about booleans explained in it's description in the API index?

Is that how people learn java from scratch? Do they just have to read each individual method and class in the API index to see which one they have to use to solve the problem? It frustrates me immensely when it's revealed to me that some far-fetched process is used to solve a problem. Like there are so many different ways you can solve a java problem that I simply have no idea where to start. I don't know what the compiler will and won't take, it's almost totally *** random.

Am I just not good at Java? Plain and simple, I mean I really want to be good at it, I REALLY do. I want to be able to say, "Yeah, I know a thing or two about Java", and looking at it from outside the box, you can say to yourself, "Java doesn't seem that difficult, you just input different phrases and characters in certain ways to output a function", but it's so much more cryptic and confusing than that, to the inexperience Java programmer, ie me.

A lot of kids in my class seem to know what's going on. I'm sure there are a few to admit they don't, but I know a lot of computer whizzes that can display a blue rectangle and say, "Oh this is baby stuff." How did *THEY* get so good??? Does a magic genie come to you at night and grant you the ability to just "get" Java? I really do feel like I am missing some huge step here or something. I watch these tutorial videos and the instructor just throws around these values like it's nothing! "Ok so what you have to do here is simply use DJFHIAN function and then "+"; () [] String args data inDeXHereby which will give you &^^^& + 6664553 = 99928; then simply do String.substring.take.out.put.in.~.[]; and then you get result = 2, easy!"

And to top the *** cake all off with the *** icing, I have a University Study class for Computer Science students in which the professor tells us multiple times: "I'm gonna be honest with you all, more than half of you aren't going to be here for the spring semester. If I see 40 out of 60 of you here, I'll be elated. If I see 30 out of 60 here, I'll be happy. If I see 20 out of 60 here, it will be normal like other years."

That's really *** encouraging. Yep, the same 'easy' Java course leaves nearly 12% of the students left for the next semester, apparently. Dafuq? Maybe he has a point, but why why why in the WORLD would you tell a class of aspiring computer science majors that? I cannot be the only one that is seriously bothered by his saying this. That's like going to Haiti to donate food and telling each of the children you're donating to, "Okay little ones, I hate to be painfully honest with you, but by next week only 20 out of the 100 here will still be alive, there's just something about living that seems to be hard for you people!"

All in all, if I try and try and fail, and I sink with the ship, what are my other options for working with computers for a living? I mean I can always talk to my advisor, but I would like to hear a general opinion here. I want to be an I.T. technician, but I took Computer Science because I figured it'd be good to get the general knowledge of all thinks Computer based. Could I still be an I.T. without learning how to program? Is programming NECESSARY to land a computer job even if you don't want to go into something that would involve it in the work field?


Thanks for reading.
 
Maneesh Godbole
Bartender
Posts: 11445
18
Android Eclipse IDE Google Web Toolkit Java Mac Ubuntu
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Welcome to the Ranch!

Much profanity. So wow. In fact I will move this over to a more suitable forum for you.
 
Maneesh Godbole
Bartender
Posts: 11445
18
Android Eclipse IDE Google Web Toolkit Java Mac Ubuntu
  • Likes 7
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Can you ride a bicycle? Do you remember the time when you started off learning to ride the bicycle? Do you remember how many times you fell down? Do you remember the time when suddenly you got it all right and you were breezing along just fine?
Learning anything new is just like learning to ride a bicycle. Fall. Stand. Try. Fall. Stand. Try.....and you get it right

Graham Wolk wrote:All in all, if I try and try and fail, and I sink with the ship, what are my other options for working with computers for a living? I mean I can always talk to my advisor, but I would like to hear a general opinion here. I want to be an I.T. technician, but I took Computer Science because I figured it'd be good to get the general knowledge of all thinks Computer based. Could I still be an I.T. without learning how to program? Is programming NECESSARY to land a computer job even if you don't want to go into something that would involve it in the work field?

Lets start with the basics. Why computers?
 
Graham Wolk
Ranch Hand
Posts: 31
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Maneesh Godbole wrote:Welcome to the Ranch!

Much profanity. So wow. In fact I will move this over to a more suitable forum for you.


I'm sorry for the swear words, this is just coming after about an hour and a half of failed attempts at solving some problems. I just needed to blow up after all this.
 
Graham Wolk
Ranch Hand
Posts: 31
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Maneesh Godbole wrote:Can you ride a bicycle? Do you remember the time when you started off learning to ride the bicycle? Do you remember how many times you fell down? Do you remember the time when suddenly you got it all right and you were breezing along just fine?
Learning anything new is just like learning to ride a bicycle. Fall. Stand. Try. Fall. Stand. Try.....and you get it right

Graham Wolk wrote:All in all, if I try and try and fail, and I sink with the ship, what are my other options for working with computers for a living? I mean I can always talk to my advisor, but I would like to hear a general opinion here. I want to be an I.T. technician, but I took Computer Science because I figured it'd be good to get the general knowledge of all thinks Computer based. Could I still be an I.T. without learning how to program? Is programming NECESSARY to land a computer job even if you don't want to go into something that would involve it in the work field?

Lets start with the basics. Why computers?


I just love them. I love the way they look, I love spending time on them, I have been using them my whole entire life, I love the way they work, I'm interested in how they work, I love building computers and looking at other people's builds of computers, I love helping people with computer problems, I love the sense of comfort I get from computers, etc.
 
Chris Barrett
Bartender
Posts: 321
24
Eclipse IDE Firefox Browser
  • Likes 8
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Graham,

Sounds like you are passion about IT. That's a good thing, but you also need to recognize that programming is frustrating. I would expect your professor is talking from experience, as many students will give up. I don't feel your professor was wrong in his comments about the dropout rate. I imagine the same comments are made in any course that requires a high level of self-discipline and dedication. Programming is a bit unique. Most people won't assume they can be a doctor, because they visited a doctor's office, but many people will think playing video games will give them special insight into programming. That's not really true anymore than driving a car makes a person naturally good at being a mechanic.

I remember when my first instructor introduced objects. I had easily grasped the concept of primitives, and Strings, but when he tried to show me how to CREATE my own Classes... man, my brain broke... I think I read that chapter ten times over the next week before I started to get it. Many long walks to keep me from snapping at my wife. You will beat your head against the wall at times. You will spend hours looking for a missing semi-colon or the == that you accidentally wrote as =. As you get better, those mistakes will happen less, but the complexity of the problems will get bigger and harder. You will always be challenged. For me, that's what makes it fun, too. That "AH-HA!" moment when you finally get something to work.

My advice to you is to take a break and have a good night sleep. Then, read up on the areas causing you grief. You asked how we know how ! and if and = and == work. A lot of that comes from reading material like the Java Tutorial Basics. And, yes, at some point you will want to review the API in more detail. Understanding, though, comes from experimenting. Try different things and see what happens. And try small things. Don't build a big program and then get lost trying to debug it. Build in little pieces, testing each piece as you go. Think of it like when you learn another verbal language. Imagine you are learning Spanish. You read the textbook for an understanding of syntax and how a verb fits with a noun, but it's through practice and experimentation that you understand what the language should sound like.

Oh, and I'll just add that there are lots and lots of career streams in IT that don't directly involve programming. That's not to dissuade you in anyway if you are passionate about programming, but to imply that all IT professionals must know programming just isn't accurate. Project Management, System Engineering, DBA Administrators, and Network Administrators are just a few off the top of my head that are all well-paying IT trades that usually don't involve programming.

Cheers!
Chris
 
Campbell Ritchie
Marshal
Posts: 56527
172
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You don't go to Haiti in a famine and tell people they are going to die. They have seen their friends all die and they know it already.
You do go to a programming class and tell people a lot will not stay the course. Programming is difficult and many people never seem to learn it. As the other CR says, there are hurdles in the way and one of them is seeing objects for the first time. Many people stumble over that particular hurdle. And to go back to the driving analogy CRB uses. A bad programmer is like a bad driver. Only their “accidents” may be more frequent and may harm thousands or millions of people simultaneously. In some cases, e.g. aircraft control, that “harm” may mean death.

The alternative to your teacher's honesty would be lying,
The day you finish your final exams, people will come knocking on your door offering you £27000 as a starting salary and a salary review after six months.
On the other hand, I suspect there are some people who shouldn't be let loose trying to teach programming.

In the meantime, we can help, but not supply a whole course. There may be courses on the net. There are lots of them, and some of them are absolutely awful. We don't have the time to check which are good and which are bad. And codingBat is renowned for posting things which look really simple and are actually quite complicated. That is its strength, but it doesn't teach object‑oriented programming. It is there to get you to think about algorithms.
You can try us out. Show us something you would like to do and start it off. And when things go wrong, find better ways to express your frustration. You can say it is very frustrating and annoying and you are really depressed and you are going to run out of money, but Günther from Friends would say,
This is a family website.
Please avoid the naughty words which Maneesh commented on and which I have deleted.

And welcome to the Ranch (again)
 
Campbell Ritchie
Marshal
Posts: 56527
172
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I think an IT technician never needs to program anything. But not certain.
 
Tim Cooke
Marshal
Posts: 4039
239
Clojure IntelliJ IDE Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Cow worthy advice from Chris there.

Graham, you've gotten some top advice here today so please don't be disheartened by the initial complexity of learning programming from scratch. It is difficult but if you have the passion for it then stick with it and you'll be fine. Challenges are exciting, enjoy them.

We've all been where you are now and made it though, so you can too.
 
J. Kevin Robbins
Bartender
Posts: 1801
28
Chrome Eclipse IDE Firefox Browser jQuery Linux MySQL Database Netbeans IDE
  • Likes 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Graham Wolk wrote:And it is *not* a matter of me just simply not "getting" the language or not "having the mind of a programmer", I believe anyone can learn anything if they try.

I have to disagree with you on this point. I know I can't be a brain surgeon or a theoretical physicist or a concert pianist. We all have strengths and weaknesses and not everyone has the "mind of a programmer". Programming is HARD and it takes years to get skilled at it. Your professor is right and he is just being honest with you. Not everyone will make the cut. Some due to a lack of understanding, but others due to a lack of patience or passion.

Now, having said that, it's too soon for you to decide if it's not the right field for you. It took me months of spending every evening in a room alone with a computer and "Java for Dummies", "Core Java", and "Head First Java" before I started to "get it". I can't tell you how many times I emerged from the room so frustrated I wanted to scream and just told my wife "I'm not smart enough to learn this stuff". It was extremely frustrating. But I stuck with it. Perseverance finally won out and now I have my dream job and I look forward to coming to work everyday.

It's a difficult road you've chosen, but if you have the passion for it, and it sounds like you do, the rewards are worth the pain of the journey. Patience, Grasshopper. We all started in the same place where you are now and we understand the frustration. We're here to help.
 
chris webster
Bartender
Posts: 2407
36
Linux Oracle Postgres Database Python Scala
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Do you speak any foreign languages? If so, how much did you know after 4 weeks? If not, how far do you think you'd get learning a radically new language - Mandarin or Arabic, say - after just 4 weeks?

You are at the start of what will be a life-long process of learning to use new programming languages, apply new techniques and think about technology in different ways. If you stay in the IT industry, you'll be learning new stuff regularly for the rest of your career. Right now it's hard because you're having to learn conceptual stuff about computer programming as well as learning the specifics of a particular language at the same time. The bad news is that there are really no short-cuts, you just have to put the hours in and work through it. The good news is that all of these concepts and many of the features of Java are common to other languages and tools, so you'll be able to keep re-using this knowledge in years to come.

Personally, I think Java is a poor choice as a first programming language - I'd go for Python instead - but if that's what you've got to learn, then you can at least look on the bright side and remind yourself that you're learning a marketable skill. In the meantime, maybe pick up a copy of "Head First Java" to help ease the pain!
 
Campbell Ritchie
Marshal
Posts: 56527
172
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
chris webster wrote: . . . Personally, I think Java is a poor choice as a first programming language . . .
A lot of people would go for C/C++ instead because it is more difficult. When you get to pointer arithmetic, people leave in droves.
 
Joe Ess
Bartender
Posts: 9439
12
Linux Mac OS X Windows
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I've been programming in Java since version 1.0 (that's around 1996 for the youngins), use a half dozen other languages occasionally and I still have moments where I'm lost and have to do some scrambling to catch up. It's the nature of the business. The reward for a job well done is higher expectations.
Camp outside your professor's office. Ask lots of questions. You paid for the class. Get your money's worth!
 
Graham Wolk
Ranch Hand
Posts: 31
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I documented this thread on my computer, my frustration is at least eased a little by the fact that there are so many helpful people giving me such encouraging and reassuring advice. I thank you all for the support you've given me.

I do in fact own a copy of Java for Dummies for those of you that recommended to buy a book for help, so I will read/implement what I read into my work and see if I can figure anything out.

My first exam is on the 25th, so I suppose that will decide where I stand.
 
Justin Hamilton
Greenhorn
Posts: 2
Eclipse IDE Java Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Campbell Ritchie wrote:
chris webster wrote: . . . Personally, I think Java is a poor choice as a first programming language . . .
A lot of people would go for C/C++ instead because it is more difficult. When you get to pointer arithmetic, people leave in droves.


I started with VB, I hear that's even worse to begin with. I can't enumerate the amount of times I'm tried to 'Dim' an 'int'

Graham, programming is just written logic. All the languages -kinda- (please don't shoot me) do the same thing.
You have to break down complex ideas down to how you'd tell a young child how to do it. That's difficult for a lot of people.

Remember, these complex notation have to be broken down to a series of zeros and ones. That is a very foreign ideology for many humans.
 
Chris Barrett
Bartender
Posts: 321
24
Eclipse IDE Firefox Browser
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Good luck Graham! As you work through the material, if you have specific questions, please ask and we will help you out. Just remember that JavaRanch is designed as a coaching/teaching site. That means the forums do have some guidelines regarding How To Ask Questions. We do want you to understand - not just get the answer right on the test. For example, we like to see OPs Show Some Effort before asking - just like your future Technical Lead will expect at work. I can tell you want to learn, but I just thought I would mention this in case others spot the thread in the future.

Tim - thanks for the cow!
 
fred rosenberger
lowercase baba
Bartender
Posts: 12563
49
Chrome Java Linux
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
This is something I don't think I ever heard in any CS class I ever took.

Regardless of the task, regardless of the language...the first thing you always do when writing a program is:

Don't write any code.

In fact, we have a web page called StopCoding (<---click that!!!). This is even MORE important as a beginner. you should spend a significant amount of time thinking about the problem, so that you spend less time writing code.

And once you do start writing code, no matter how often you think you should stop and compile, you are not stopping to compile and test often enough. My rule of thumb is 2-3 lines of code AT MOST before I re-compile. Try and write as little as possible to move your program forward each compile/test cycle. for example, every time I write a new method, I will only write about this much:



The first time, I may not even CALL the method. I just want to be sure that much compiles. If it does, I'll call it, and make sure I see the output. Then I may update it to return whatever I need it to return - but with a dummy value - and add enough to capture the returned whatever and print it out...So the first go would return (say) a String with "this is the returned String". Assuming that prints, I would then start working on the method to have it do what it needs to do, again just writing a line or two at a time. I'd add in the parameters to it, pass in something, verify they are passed in and I can use them. etc.

It sounds counter-intuitive, but the more often you stop writing code and compile and test, the faster you will complete your program.
 
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
Programming is hard and frustrating. Your professor is right. Most of you will drop out, because most of you don't have the patience to handle the frustration. Certainly, your profanity laced rant makes you look like patience is not your strong suit. I suggest that if you want to be successful at learning programming, please calm down.

So, this is why programming is frustrating:- Computers are stupid and most humans are not good at talking to stupid. COmputers are fast and never get tired bu they are really stupid. Let me draw an analogy for you. Let's say you open a business selling fruits. You become succesful enough to hire an assistant. The assistant reports for duty at 9 AM. You see you are getting short on bananas. So you tell him

You: "Take the car and Go to the wholesale market and get 10 lbs of bananas"
Him: "How do I get to the wholesale market?"
You: "Take a right on Elm St, take the exit ramp to Rt 95N. Take exit 45 to Rocky Rd. Take a left on Market St. THe wholesale market is on the left"
Him: "Ok, got it. How do I take a right on Elm St"
You: "Great! You sit in the car, drive it on this road, stop at the stop sign, turn on your blinker, look left to see if any cars are coming, turn right"
Him: "Ok, but how do I sit in the car?"
You: "You walk to the car, unlock it, open the door and sit"
Him: "Ok, but how do I walk to the car?"
You: "You use your legs to walk"
Him: "But, how do I use my legs to walk?"
You: "You raise one foot, put it front of you, then you raise the other foot, and put it in front of you. Keep doing it till you reach the car"
Him:"But how do I raise my foot"
You: "ARRGGHHH!!"

COmputer is like the assistant. It is incredibly stupid. It knows nothing. Well that is not completely true: The CPU has an instruction set and it knows only how to execute instructions in the instruction set. You have to break down the entire task into steps that the computer can understand. The Java Language specification makes it easier for you by presenting an API that is less stupid than the CPU. However, the average human brain works at a level of abstraction that is much higher than the Java Language specification. You have to stoop down to the language's level.

Usually, frustration is a side effect of the human's inability/refusal to stoop down to the language's level. The language uses constructs like if, !! and !. You have to understand what those constructs do, and learn how to use them. You don;t have any other option than to think at the level of the computer.
 
Jeanne Boyarsky
author & internet detective
Marshal
Posts: 37462
537
Eclipse IDE Java VI Editor
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You start simple. Master small problems and move on to big ones. Here at CodeRanch, we have the Cattle Drive. It is free to do the problems and costs money if you want them reviewed. The key is that some of them are really simple. You practice doing simple things and then build from there.

Your professor isn't wrong. A lot of people go into CS thinking "it pays well" and don't have the interest or aptitude. He's also warning it is hard work. And if someone isn't up for that, it is a fair warning to get upfront.

Do you consider yourself bad at math? If so, I suspect you won't like programming. If you are good/decent at math, I think you'll "get it" with programming. It's just a matter of time/practice.
 
Rico Felix
Ranch Hand
Posts: 411
5
IntelliJ IDE Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Despite what everyone has said I will say that programming is not difficult at all.... As humans we tend to let things that are new and uncommon to startle us into confusion simply because at first we cannot foresee the simplicity of this new artifact...

If you stop and realize that even the language which you use to communicate on a daily basis became simplified to you only because of gradual introduction to new concepts and daily use...

At first you had to learn each distinct [letter] -> a, b, c, d, e, etc... you said this over and over until it became a part of your mind [embedded]

Then you learned to take pieces [letters] and put them together to understand a new concept [words] -> a + t + e = ate

Then you learned to take this new set of pieces [words] and put them together to understand a new concept [sentences]

Going on with the flow you see that the skill was gradually developed... You must transfer this art to other areas...

Ask your self what is programming? ... In its general terms it means to set instructions that must be followed

You can write a program for humans [not all] using the language you already know because they understand the language and what you are specifying to do....

Now you want write a program for a computer... You must learn its language for it to follow your instructions... unfortunately it can only understand two things which are 0and 1

Luckily a system was created to make it easier for you to communicate with the computer -> the programming language...

So you start the process over again ... because it is knew you must gradually learn it starting with the simplest to the more complex

As you did with you human language -> first learn the letters, then learn how to create words, then sentences, then paragraphs, etc. which took time and practical use

Learn this new language [Java] -> first learn its valid tokens, then learn its keywords and the meaning, then learn how to write statements, then functions, etc... and I assure you with time and practical use it will become a next language that will be part of you mind [embedded]

 
Graham Wolk
Ranch Hand
Posts: 31
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Once again, thank you all for the support. I'm not sure if I made it clear in my garbled mess of an original post, in which I was kind of just dung-flinging in anger, but I would like to explain that I will not drop out of the class due to impatience, frustration, anger, etc. do to not getting the material. I will withdraw if by a certain point in the semester, I am on the borderline of failing the class and I have extremely little leeway in making a comeback, at which point I won't have any other choice but to withdraw safely before receiving a big fat F on my transcript.

I enjoy the class and the material and I want to be great at Java, so there won't ever be a time I drop out due to getting upset about the work. However, I will drop out of it if I realize that I am trying to force a square into a circle hole and I simply cannot learn the language enough to gain a passing grade.

[EDIT] So to explain I guess I'm trying to ask if you guys think I have a better chance of succeeding if I won't give up from losing my patience, but rather I will give up if I get to the point where I am not knowledgeable enough to pass.
 
Partheban Udayakumar
Ranch Hand
Posts: 499
AngularJS Java Spring
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Graham Wolk

There is nothing that you can't learn. All you need is patience and smart work IMO. Keep small targets for a small amount of time and try to achieve it say ( I will learn the basics of sockets today etc). All you need is to stick to the routine and kindly stop thinking about dropping out. Get strong in basics, once you are strong then learn some advanced concepts. More over there are numerous forums to help you out. If you feel like you are unable to achieve a specific task, feel free to come here and post. I am sure experts here will help you. I got a lot of help from experts here and what I am today in Java (Eventhough I am nothing) is 70% because of experts here.
 
Winston Gutkowski
Bartender
Posts: 10575
66
Eclipse IDE Hibernate Ubuntu
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Graham Wolk wrote:So to explain I guess I'm trying to ask if you guys think I have a better chance of succeeding if I won't give up from losing my patience, but rather I will give up if I get to the point where I am not knowledgeable enough to pass.

And the answer to that is going to depend entirely on what you want out of the course. If it's simply "grades", then the chances are you're better off quitting and going for something that you find easier; but if you want to LEARN, then I'd say stick at it.
Nothing, IMO, teaches us more than succeeding at something we find hard - even if it means a few failures along the way.

That said, programming isn't for everybody. It is hard...and exacting...and it requires precision, both in thought and execution. There's nothing "airy-fairy" about programming: a long is a long, and not a Long; and if you get them wrong you may run into trouble.

If you're interested, you may find this article worth a read.

HIH

Winston
 
Campbell Ritchie
Marshal
Posts: 56527
172
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You learn the most recovering from the failures.
 
Brian Schuetz
Greenhorn
Posts: 25
Eclipse IDE Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I went to college to earn a degree in Computer Science and hopefully start a new career(I originally thought I wanted to do Accounting). I know at least once I seriously questioned whether I chose the right career field. I stuck it out and now I am a good programmer (because I now have years of experience programming). I enjoy the work I do. I didn't learn Java when I was in college because Java was in its infancy. I learned C/C++ and Visual Basic (as well as Scheme and Ada). So now with everything around me going to the web, I decided to go back to school to learn Java and Web Development. I'm finding it easy so far, but that's because I have programming experience.
 
Keith Earl
Greenhorn
Posts: 15
Android Eclipse IDE Java
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
J. Kevin Robbins wrote:
Graham Wolk wrote:And it is *not* a matter of me just simply not "getting" the language or not "having the mind of a programmer", I believe anyone can learn anything if they try.

I have to disagree with you on this point. I know I can't be a brain surgeon or a theoretical physicist or a concert pianist. We all have strengths and weaknesses and not everyone has the "mind of a programmer". Programming is HARD and it takes years to get skilled at it. Your professor is right and he is just being honest with you. Not everyone will make the cut. Some due to a lack of understanding, but others due to a lack of patience or passion.

Now, having said that, it's too soon for you to decide if it's not the right field for you. It took me months of spending every evening in a room alone with a computer and "Java for Dummies", "Core Java", and "Head First Java" before I started to "get it". I can't tell you how many times I emerged from the room so frustrated I wanted to scream and just told my wife "I'm not smart enough to learn this stuff". It was extremely frustrating. But I stuck with it. Perseverance finally won out and now I have my dream job and I look forward to coming to work everyday.

It's a difficult road you've chosen, but if you have the passion for it, and it sounds like you do, the rewards are worth the pain of the journey. Patience, Grasshopper. We all started in the same place where you are now and we understand the frustration. We're here to help.


I showed my girlfriend this post because the part in bold is pretty much me in a nutshell, minus already achieving the job i want since im just currently studying. First off, she lives in canada, i live in the us, and we made plans for me to move up there. Right now times are tough and of course it's not happening as fast as we'd like, but we're working towards it. Back in 2004 when i graduated highschool I saw an ad on tv about game programming and design, i enrolled and went for about a year and had only studied c++ but ended up leaving for a few reasons (the school was crap, and i ended up leaving my job that was paying almost nothing to begin with, cut hours, and couldn't find work immediately). Anyways fast forward almost a good 10 yrs later having worked various jobs that i absolutely hated, I decided to get back into programming, but I chose java this time. I started around this time last year and I haven't gotten extremely far in it and that's bc i ended up getting a job working 12 hr graveyard shifts (6pm - 6am) 5 days a week, so when i would wake up I didn't really have much time to study bc i needed to take care of other things, and on the weekends that was my time to relax so my gf and i would do our gaming then. I've left that job and right now im studying again. It is hard, and I had the same mindset at one point as OP did, thinking I simply wasn't smart enough to learn it, or i wasn't learning it fast enough, but damn it if i didn't stick with it, and that's simply bc i have a passion for it. What I learned to believe is that every person who is a programmer wasn't born knowing how to code, they started from nothing just like me. And I too just sit at a computer in my room studying each day and i too become frustrated, it's just part of the process, but I know the end result will be worth it.
 
James Boswell
Bartender
Posts: 1051
5
Chrome Eclipse IDE Hibernate
  • Likes 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Graham

The key thing to remember is that every programmer makes mistakes, every single one.

Those that succeed learn from those mistakes, they persevere when time in front of the screen is so frustrating, all you want to do is put your fist through the monitor! Like others have said, the profession is a difficult one - anyone who says otherwise has little or no proper experience in the field.

When you do succeed with a problem, remember to give yourself a high five - quite literally!
 
Brian Stumbaugh
Greenhorn
Posts: 5
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Im sorry....but whether your teacher is right about most of the class dropping out or not.....thats not something you should say to your students. A good teacher would instill some kind of confidence and hope in their students, not come in there like some bitter old grouch telling everyone that most of you are going to fail. That's horrible. It may be true......but whats the point of saying it? It doesn't need to be addressed.
 
Tim Cooke
Marshal
Posts: 4039
239
Clojure IntelliJ IDE Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Brian Stumbaugh wrote:Im sorry....but whether your teacher is right about most of the class dropping out or not.....thats not something you should say to your students.

This is getting slightly off topic, but I'll play along.

I think this is a fair enough thing to say. You are invoking two sets of reactions from students:
(a) "Well if I'm probably going to fail anyway then what's the point of wasting my time doing the work"
(b) "Oh crap, this stuff is going to be hard. I'd best work really hard to make sure I succeed"

If you fall into category (a) then please drop out now. I don't want to see you at an interview for a graduate programmer position. If you fall into category (b) then come knock on my door when you're finished because I want to talk to you. Being able to keep yourself focused and motivated in the face of probable failure is a big part of what it means to be a successful programmer. If difficult programming problems had a straight forward, guaranteed to work, solution then it would have been done already a thousand times over.

The flip side to this discussion is the reputation of the educational institution itself. They need to make sure the quality of their graduates is high so they don't want their courses to be easy enough for anyone to get through without really having to work for it.
 
Campbell Ritchie
Marshal
Posts: 56527
172
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Brian Stumbaugh welcome to the Ranch
How do you pronounce the augh? Is it aw, aa, ai, aith, aiff, aff, or what?

I think I agree with Tim. Maybe it is better for the teacher to start by saying, “You have chosen a bl**d* difficult subject …”
 
Winston Gutkowski
Bartender
Posts: 10575
66
Eclipse IDE Hibernate Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Tim Cooke wrote:Being able to keep yourself focused and motivated in the face of probable failure is a big part of what it means to be a successful programmer...

I seem to remember an old maxim that went something like: "You can tell how good a programmer is by the number of scars on their forehead."

Mind you, that was back in the days of 3270's. You young 'uns have those soft flat-screen things these days.

Winston
 
Mike Baker
Ranch Hand
Posts: 52
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Graham,

Don't get frustrated 20 staying out of 60 is not too bad (dropout rate of 66%). When I graduated from my Computer Science program, the dropout rate was 90%. Only 60 people graduated out of 600, so your situation is not too bad. Be patient and persistent. Java is great but it takes time to learn it.

Mike
 
Brian Stumbaugh
Greenhorn
Posts: 5
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Campbell Ritchie wrote:Brian Stumbaugh welcome to the Ranch
How do you pronounce the augh? Is it aw, aa, ai, aith, aiff, aff, or what?
Its more like oww. I don't want to get off subject off subject here anymore than I have. I just found that a ridiculous thing for a teacher to say. Im all for putting my nose to the grindstone, but that's just bad teaching.
 
Bear Bibeault
Author and ninkuma
Marshal
Posts: 66304
152
IntelliJ IDE Java jQuery Mac Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Winston Gutkowski wrote:
I seem to remember an old maxim that went something like: "You can tell how good a programmer is by the number of scars on their forehead."

Usually in the shape of a keyboard.
 
Henry Wong
author
Sheriff
Posts: 23295
125
C++ Chrome Eclipse IDE Firefox Browser Java jQuery Linux VI Editor Windows
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Tim Cooke wrote:
Brian Stumbaugh wrote:Im sorry....but whether your teacher is right about most of the class dropping out or not.....thats not something you should say to your students.

This is getting slightly off topic, but I'll play along.


Brian Stumbaugh wrote: I don't want to get off subject off subject here anymore than I have. I just found that a ridiculous thing for a teacher to say. Im all for putting my nose to the grindstone, but that's just bad teaching.


I actually don't think that this is off-topic -- as the OP did a large section regarding it being "*** encouraging" and what-not.

Personally, I think context matters. If this is Junior High School or even High School, then yeah, the teacher needs a bit of less doom and gloom... However, IMO, University is different. The training wheels should be off. Unless you are the type that wants to make a career of staying in school, the majority is going into the work-force. And the workforce is not going to be nice if you can't cut it.

University is probably the last chance to find something that will lead to an enjoyable career. And the last chance to try out different options. Why waste time when you can figure out earlier if something is not for you?

Henry
 
Graham Wolk
Ranch Hand
Posts: 31
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Again, I thank you all for the generous words of encouragement and reinforcement. I definitely do enjoy Java, and I honestly believe I have improved since I first posted this topic. I have just been doing problems and gradually learning how a completed program should look. One thing that I have discovered to do is to look at completed programs, type them into NetBeans myself, then look at how it's made. Then, I will erase it and retype it the best I can from memory, formulating it each time over and over until I have fully got it completed and have redone each step so many times I understand the process.
 
Campbell Ritchie
Marshal
Posts: 56527
172
  • Likes 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
That is a good learning technique. Very similar technique: copy the program and change it and see what happens.
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!