I already know a bit of Java, a bit of C, c++ and Visual basic 2005, as well as Assembly language and some SQL, HTML and otehr stuff

Thing is, I really want to concentrate on one language out of c, c++ and Java to become really good at. I know they are all kinda similar in syntax and that Java and C++ are the ones with OO capabilities, but, you know, it's so hard to know where the markets are going, especially since I am still a student, i'm not sure what job i will be getting. i really want to get into a job where I am constantly learniong about new things, and maybe even a communications/interfacing job of sorts.

I'm thinking c++, but is it more likely that another language will help me get a job? What about certification? Do people normally need Java certification to go into certain places?

Logged

"The truth is, you can't hide from the truth, cos the truth is all there is" - Handsome Boy Modeling School

If your aim is to earn a living at this, perhaps you should hit the job boards like monster and look at the ads for embedded developers. Yes, IT moves fast, but some specializations are rather conservative and tend to stick with languages and tools that have been around for a long time, like C. Besides, if you're good at C, picking up other languages should be easier.

I have just started farting around with this stuff as a hobby and am playing with a TINI board from Imsys. It comes with a JVM and a good set of APIs. It's easy to get stuff working, but I don't imagine there's much commercial demand for embedded Java.

Whereas the embedded systems market relies more heavily on C, the IT sector will rely probably on anything BUT C, (right?), since these have object oriented features making them more powerful/easier to build.

From the way I see it, C is a language which has a lot of depth, C++ i'm told is something it would take a lifetime to get hold of properly, and Java, it would seem, is developed to be easy and powerful.

I believe things are moving forward with Java in a big way, but I am more at home with C for the moment, leading me in this path.

Cheers for the advice, I will look on various websites. I already get the IET magazine though, so I can't be going far wrong lol.

Logged

"The truth is, you can't hide from the truth, cos the truth is all there is" - Handsome Boy Modeling School

hi Hal9000,while it is always advisable to look at what the job are out there it also a good idea to think about where there are skill shortages.

i don't know the programming field that well so i will use my own experience as an example.

i started working with computers because it seemed like a nice indoor job with no heavy lifting to pass the winter months. (i'd spent the previous winter moving sailing yachts round northern europe. can you say cold while being bounced around the deck of a storm swept yacht?)when researching job possibilities i deliberately avoided anything that there were loads of people coming from collage allready qualified to do.i did a 2 month course on how to fix ordinary PCs and walked straight into a good job the same day it finished.i was getting paid far more to turn up with a toolkit and fix broken PCs than all the people coming from collage who knew how to program and design them.why? because there is a shortage of the skills i possessed after that short course.

moving on, i taught myself a lot about Linux.i agree there are far more people out there using windows PCs but there is a large chunk of industry running on Linux and a big shortage of people with the skills to operate and administer them.also it is an area there aren't many professional qualifications in so being self taught is no disadvantage.again, this meant i could find work easily.

at the moment i'm a network engineer.again it's an area that you can only get to by experience and being interested. there are courses you can learn about some of this stuff but it's of little use on it's own without experience of real world networks.

i'm not suggesting you follow my path (in fact, please don't. it's easier for me if there is a shortage of people with my skillset.)but i would encourage you to look for areas that there is a shortage of people working in.also, the IT industry changes very quickly so try to stay flexible. if you have to pick a programming language to specialise in, make sure it's one you will learn techniques that will be usefull in other languages.

so applying this to your situation,i would brouse a lot of job websites.make up a big chart compairing salary to skillset. (salary is a good indication of whether there is a skills shortage in a particular area).are C jobs paying more than Java jobs for people with similar levels of experience?what about interpreted languages? PHP, Python, Ruby, etc? or will one of these go out of fashion and leave you with unusable experience in the future?

o, and if you are still reading, my most important piece of advice,a job should be fun.you have to spend a lot of your time doing it. don't get stuck doing one you don't enjoy.

Try C#. Or like Dunk said, instead of learning a new language learn Linux.I did a part-time job and I had to learn a closed language (a language developed by the company and only that company used). In that case there was nothing to study in advance, only 10 hours of classes they gave me. The only thing you have to have is determination.My personal favorite approach is learning how to use the IDE and improve your current knowledge on your programming languages. For example, you said you know a bit of c++. Then I think you should download VS 2005 express for free ( or buy the Academic version for about $50 which is very good) from MS and learn how to use it. Also learn some DirectX, OpenGL and third party libraries. Learn how to write Windows applications. Try to learn some thing about AI and so on. Do the same with linux(or mac).For me the most important is quality not quantity. I know Java, C, C++, Pascal, and the one above which I cannot say the name(industrial secret). But I barely can write command line apps in Java or pascal. I already can see the day I will forget both of them. On the other hand I can do almost anything with my C/C++. From robotics to to DirectX game programming with advanced AI and fuzzy logic. And the high standard of my C/C++ education(that I am proud of and try to keep and/or improve every day) helps a lot not only my research but everytime I need a part-time job.

There are also non-programming approaches like learning CADs, or Image manipulation software, MATlab, Mapple, SonicStage, WebDesign(not only HTML) and lots of stuff, the possibilities are infinity. Only programming is actually quite boring.

The sintax may be very similar for most of languages. But unless you want write all your libraries from the scratch every time, you must memorize the native ones( and That takes time, concentration and patience). And each language has its unique library and the way to use it differs a lot for each language. It is like knowing English grammar but not knowing the vocabulary. You can always search in the internet for what you are looking for, but when you are working for a big company, you are trying to accomplish something before the deadline, thus having the whole language in the tip of your tongue is mandatory. It is a question of speed and efficiency and that is what investors are looking for. Also if work for big companies, half of them actually have their own languages and compilers (specially sony, that was the company I did my part-time job last summer). If you know a lot of languages you will probably not going to use most of them. Except for C and C++, they are like a standard (even Sony uses it sometimes). It is pretty difficult to escape from those.

Of course this is my reality. I live in Japan. Admin lives in US. His reality and needs are very different from mine. I dont know where does Hal9000 lives but it is up to him to decide what are his needs.

Okay cool. Cheers again for all the valuable and lengthy replies. It really does mean a lot to me that you spend a lot of time on them

I do like the syntax of C and C++ and it remains quite obvious that these will be useful for whatever i'm doing. There is a lot in the world of Java programming, but I personally believe that if I cover c++ in considerable depth, then these skills (polymorphism etc) can transfer over.

See, I have covered c, c++ and Java at University, but to no considerable depth for each one. This makes me a weak programmer because I lack experience in each of the programming practices.

At the moment for my placement I am using visual basic 2005, which at first seemed a bit like going backwards, but now it's really hard since i have never done it before and i'm using quite a lot of the libraries.

I want to feel loads more confident in at least 1 language.

Logged

"The truth is, you can't hide from the truth, cos the truth is all there is" - Handsome Boy Modeling School

Of course this is my reality. I live in Japan. Admin lives in US. His reality and needs are very different from mine. I dont know where does Hal9000 lives but it is up to him to decide what are his needs.

The reality is that Im a mechanical engineer and could never compete with a professional programmer

All engineers should either learn Java or C++ for their first language (BASIC doesnt count) . . . and if you make robots, you also need C. Of course if you do IT stuff, thats a whole different arena . . .

Of course this is my reality. I live in Japan. Admin lives in US. His reality and needs are very different from mine. I dont know where does Hal9000 lives but it is up to him to decide what are his needs.

The reality is that Im a mechanical engineer and could never compete with a professional programmer

All engineers should either learn Java or C++ for their first language (BASIC doesnt count) . . . and if you make robots, you also need C. Of course if you do IT stuff, thats a whole different arena . . .

Lol, I was scared to say exactly what you just said.

C for embedded

C++ and Java are sort of 'universal'. They can do a lot of things

For a lot of jobs, there's some experience of PHP and SQL and stuff like that.

Another one of my dilemmas is am I an IT man or an embedded systems engineer? When i'm going for jobs, I will be both, although i'm sure time will tell which one I end up doing.

Personally I want to work with robots and web design or something, even though these don't normally go together. I am quite artistic, and find that drilling away at programs to maipulate stuff on screen doesn't give me a buzz.

Logged

"The truth is, you can't hide from the truth, cos the truth is all there is" - Handsome Boy Modeling School

I would suggest diversifying your programing experience. Something of everything but don't get bogged down in any one language. If you are going for millage in learning I suggest grabbing one language from each category.

Learn some C. There is no substitute for understanding pointers.Learn C++, Java, or C#. Object oriented programing is a big deal.Learn Ruby or Python or Perl. Scripting languages are important for tool making.Learn Lisp. Learning a true functional language will teach you a thing or two about problem solving. And give you a tumor...

I am a new member here. I just found this website although I have been working on robotics since 3 yrs ago when I were university student.The topic about which programming language which is best to learn, in my opinion is quite common.

Many of my friends asked me about this question. Even my lecturer said "learn C then Java, with both of this every programming language is easy to follow". I think he made a point, in C you can write a program closer to hardware (inline assembler, pointer, etc), and if you understand Java, most of OOP concept in C++ is covered. And this is what I experienced.

First time I learned assembler (intel) when I were in senior high school. Then because of univ. exam I have to study. And in univ. I continued learning C when we built our first robot. I wanted to learn C++, but seemed very difficult. Then I met java to finish one of the lecture project. I learned most of OOP concept, when I read c++ book it became easier

IMHO, the fundamental concept is the most important also algorithm, alas programming language itself is to translate from the algorithm to syntax.

Really the language you start on depends on what you are going to be doing, if your going to be programming PIC chips learn assembly, if your going to be programming cross-platform applications learn java, other microcontrollers use C, then C++ and Java for OOP.

Personally I would recommend C or C++ initially to master but a good grasp of java would probably help you out. BASIC programming is really not worth the trouble IMHO, in my experience theres not really that much done with BASIC anymore, but that could just be what I have witnessed.

Web programming would definately be handy, PHP, XHTML ASP whatever,

It really depends on what you are more interested in as to what language you learn first! What where you looking at doing, what is it that you enjoy the most?