Learning Java

Status
Not open for further replies.
I don't know anyone who sets out to memorize programming language syntax. The more hands-on experience you gain with a specific language (repetition) combined with in-depth study of the language and it's supporting framework (if applicable) is what causes the syntax to stick in the mind. I can certainly tell you that my employer would not be thrilled with my productivity (nor would the guys on my team) if I didn't have a deep understanding of the language/framework.

Because I am intimately familiar with the technologies I use (C#, .NET, WPF), I understand many of their limitations. As such, I can account for those shortcomings early on in my design. On the flipside, I also know what works well, and I can exploit that in my designs. Simply reading a few docs on MSDN is not going to give me that information. It takes quite a bit of time (on the order of months and years) to absorb the vast amount of information available in books and everywhere else. Plus, new versions of the technologies, languages, frameworks, and tools are being released regularly.



That's easy to do. There are many different ways to solve the same problem with a particular language, but which way is the right way? Do other parts of the system constrain me from using the "optimal" approach? Should I use an imperative style? Should I use a functional style? Should I use lambda expressions? Should I use eager or deferred execution? Is the problem I'm solving a special case that should be handled by my language in a non-traditional way? Is my solution easy for other programmers to understand and maintain? Does my solution follow the best practices for my chosen language?

Don't get me wrong, algorithm design is important and learning how to program is more important than learning language syntax. However, as I alluded to in my previous post, nothing is purely black and white in practice.

I will agree with this guy, its not all about syntax and memorization. It's about understanding how to program properly!
Why is this such a mystery to you people!
Computer Science college programs fail again, such a disappointment.
 
Computer Science college programs fail again, such a disappointment.

Why do you say Computer Science college programs fail?

You do realize that Computer Science isn't the study of programming don't you? Computer Science is the study of algorithm design and computer architectures. How does this fail in the eyes of learning how to program over learning language syntax?

Learning the best practices for a particular language is on the job training not something one should study in school.
 
Learning the best practices for a particular language is on the job training not something one should study in school.

That's a new one on me. I don't think many employers would be impressed if you turned up at the interview and told them that you don't know the language.
Knowing the syntax for the language is just as important as any other aspect. Not that I think a specific language should be studied in schools either (other than to the extent necessary to implement the theory students learn). Specific languages should be learned in spare time.
 
Why do you say Computer Science college programs fail?

You do realize that Computer Science isn't the study of programming don't you? Computer Science is the study of algorithm design and computer architectures. How does this fail in the eyes of learning how to program over learning language syntax?

Learning the best practices for a particular language is on the job training not something one should study in school.

I am quite aware of what computer science is, I used to be a CS major. Unfortunately, even though I go to one of the highest regarded schools for technology degrees, our computer science program has maybe one or two classes in algorithm design, even those weren't completely algorithm focused and yes it should be. As for how to optimize one particular language, if you figure it out in one, you should be able to figure it out for any others you learn, you should get on the job and already be on par with at least some of the programmers (who don't suck), if you aren't you didn't work hard enough in college. (I was bored in CS, so I always did more work and side projects, so I know i would have accomplished that, if I hadn't been so bored and changed out)

If you can learn one language you can learn them all, they all have the same general things in their syntax, they just get put in differently, if you got one or two languages down, its time to learn to write in terms of good algorithms and efficiency, I know I took at least 2 classes in it in my program, I still would have liked to see more of them. So you should learn a high level (Java, Python), and a lower level(C is good, we learned assembly) and then move on from there in how to code well in both of them, if you can code well in both of those, the rest should be cake.

Just saying from my POV. I learned all that on my own(no job needed), I didn't need a CS major to learn that, just practice, so that's why I left, and I now teach kids in highschool how to do it too :)

But like I said, this is my opinion, software used to be a big thing for me, Ive written online systems for school districts, before I ever went to college, they still use them to this day, but I digress...
 
That's a new one on me. I don't think many employers would be impressed if you turned up at the interview and told them that you don't know the language.
Knowing the syntax for the language is just as important as any other aspect. Not that I think a specific language should be studied in schools either (other than to the =9999
 
That's a new one on me. I don't think many employers would be impressed if you turned up at the interview and told them that you don't know the language.
Knowing the syntax for the language is just as important as any other aspect. Not that I think a specific language should be studied in schools either (other than to the extent necessary to implement the theory students learn). Specific languages should be learned in spare time.

If you are applying for a job the requires a specific language then yes you should spend some of your spare time learning the ins and outs of it. I never said you shouldn't I just said that is not what a computer science program should teach. Optimization is learned over time and changes when specifics of a language change. That is why I said it is on the job training. However I have a job in R&D where the language changes based on the project, and I can do it because my program didn't force any language syntax optimization to be learned. They taught us theory and design which is applicable to any language.
 
I am quite aware of what computer science is, I used to be a CS major. Unfortunately, even though I go to one of the highest regarded schools for technology degrees, our computer science program has maybe one or two classes in algorithm design, even those weren't completely algorithm focused and yes it should be. As for how to optimize one particular language, if you figure it out in one, you should be able to figure it out for any others you learn, you should get on the job and already be on par with at least some of the programmers (who don't suck), if you aren't you didn't work hard enough in college. (I was bored in CS, so I always did more work and side projects, so I know i would have accomplished that, if I hadn't been so bored and changed out)

I agree with the fact that once you know one you know the rest. I was the original person that said that. That is how this argument started. I will agree that their are some optimizations that are not the same for every language that can make a huge difference. For instance, if you are using PHP you should set any variable, that is in scope but no longer in use, to a 0 or "" to save memory space. However, that is not necessary to do in JAVA because every variable is declared with a particular size so it doesn't make any difference if you leave the value in the variable. This was taught to me by another programmer on the job and I never realized I should do that even after 4 years in school and doing my own web side projects. It is only necessary to do that when you have a large system and since in my side projects I never had a large system it was never evident that that little change in code would make a difference.

Yes, I would be able to program things without my education but, I doubt they would be as efficient and optimized. Also, any information that is learned in school can be learned outside of it. The books you read in school are sold to the general public. I guess all of the country's psychology programs fail because you can learn all of that information without going to school, too.
 
Status
Not open for further replies.
Back
Top Bottom