• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Certification exam difficulty after CS degree

 
Ranch Hand
Posts: 18944
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I have a CS degree from a top program and wonder if someone else who a CS degree, or even Masters, would comment on the "difficulty" level of the certification exam and required preparation in order to obtain a high score.
As one studies core theory subject in programming languages, compiler design, and design and verification (etc) generally learning new computer languages is a breeze, as the perspective is different than that obtained by coding or implementation level only experience and education. One sees the archtype concepts in the language implementation instead of having to find one's way through a murky mix of syntax and semantics.
Put another way, is the cerification exam difficult for many due to the computers science level topics implicit in the subject, or due to the need to have extreme detailed knowledge of the particular syntax and semantics- i.e, in excessive detail.
This may not be the right description, but responses from those with a formal academic CS background would be appreciated on the general question.
 
Anonymous
Ranch Hand
Posts: 18944
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I have a BS in computer science. I found that it probably does not matter if you have some background or a degree in computer programming. You still need to spend the time learning about the Java language and it's semantics and syntax. Not that a degree helps you to understand more completely the abstractions of the Java language. However, many of the core concepts still need to be mastered because they differ from other OO languages. For example, the strict inheritance requirement of Java.
So I would not think that a person has a headstart on Java just by having a degree. There are so many concepts and details specific to the Java language that make learning it just a little more difficult than a "breeze".
In other words, it is easy to say you have learned Java when you reach the point where you can write a program using it. However, that person is still a long long long long way from passing the Java exam. You will see why when you begin studying for it.
Best of Luck.
M
 
Sheriff
Posts: 5782
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I too have a Masters degree in CS from a well-known school and I can't help but completely agree with Mindy.
SCJP is all about the Java language itself and having/not having a formal academic background in CS does not make any difference. The only advantage of coming from a CS background, in my opinion, is that you will be able to appreciate the subtle niceties of Java. You will have a stronger conceptual foundation that will help you better recognize( and perhaps critique ) the design of the language.
But that does not preclude or reduce the amount of preparation required to do the SCJP. I don't mean to scare you away, but SCJP is considered to be actually a tougher exam compared to a lot of certification exams out there. So it would be safe not to assume anything and start with a clean mind
....ofcourse, JavaRanch is always here to help you if you get stuck on the way
Best wishes and good luck
Ajith
 
Greenhorn
Posts: 7
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I also have a masters in CS from a good school, and recently took the SCJP. I agree with those above - the formal education offers little help other than possibly an exposure to multiple programming languages, so picking up another one wasn't as hard as it might be for a rank beginner.
 
Anonymous
Ranch Hand
Posts: 18944
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I am a graduate student too. I found that it is not that hard if you can work on some programs since you should have pretty good idea about OOP concept, about compiler how to work or something like this. If you can have this certificate, you might have better opportunity than others. Also, it is a good learning precess. Just keep going.
 
Leverager of our synergies
Posts: 10065
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks Mark! Good question!
I do not have CS degree (I have math BS), but I�ve been working as a computer programmer for 11 years, Java is my 8-th language, and now I feel that smth is wrong either with me, or with Java. It shouldn�t be so difficult to learn. Part of difficulty seems to be reasonable, just too many features, and if to consider all their combinations, possible or impossible� But part of difficulty is thanks to mmm� not very good design, no? Famous example:
byte a = 2;
byte b = 3;
byte c = a + b;
will produce not 5, as anybody with average level of intellectual abilities would expect, but compiler-time error.
Why cannot I add 2 and 3 without sacral knowledge that JVM promotes all byte operands to integer? High-level programming language should hide implementation details, right?

Another famous example:
int i = 3;
i=i++;
System.out.println(i);
will print 3. Can anybody explain, why after assignment to 3 i was not incremented?
It is not possible to know every small detail about programming language, I feel that I �know� languiage, when I can use my intuition to choose right answer. After nearly 7 months of studying Java I often cannot. It means that I probably do not understand underlying concepts, this language is governed by. After reading your, guys, responses, I see that folk with formal CS education has similar problems. Doesn�t that mean that something is wrong with Java?
 
Ranch Hand
Posts: 97
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
My understanding is that your example illustrates post incrementation. The value of i is assigned to i and then incremented.
If the statement read i = ++i, i would be incremented and then assigned the incremented value.
cheerio
rowan

Originally posted by Mapraputa Is:
Thanks Mark! Good question!
Another famous example:
int i = 3;
i=i++;
System.out.println(i);
will print 3. Can anybody explain, why after assignment to 3 i was not incremented?


 
Anonymous
Ranch Hand
Posts: 18944
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi:
I'm new to the forum; just started to study so I'm definitely
a greenhorn
The output of 3 in your example is confusing:
<pre>
int i = 3;
i = i++;
System.out.println(i);
</pre>
In the JLS Section 15.4.1 states:

At run time, if evaluation of the operand expression completes abruptly, then the postfix increment expression completes abruptly for the same reason and no incrementation occurs. Otherwise, the value 1 is added to the value of the variable and the sum is stored back into the variable.

You would expect i to equal 4 after the increment is applied.
It does say the SUM is stored back into the variable. I think
the problem is that you're doing an assignment:
<pre>
i = i++;
</pre>
when i++ is an implicit assignment
If you re-write the code to:
<pre>
int i = 3;
i++;
System.out.println(i);
</pre>
The output is the expected 4.
The assignment operator in the original example must somehow
cause the postfix operation to complete abruptly; causing it to fail.
Does that make sense?
 
reply
    Bookmark Topic Watch Topic
  • New Topic