Results 1 to 6 of 6
Enjoy an ad free experience by logging in. Not a member yet? Register.
- 04-12-2012 #1
- Join Date
- Dec 2011
Which programming language to learn?
I have done my research time and time again. I am 23 years old and want to get a job programming soon. I have taken one semester of C++ and one semester for Java, and have learned the very basics of HTML and CSS(on my own). But I have not done any major projects in any of these languages really. So I have been introduced to both of those languages. I have been told that if I learn C++ then I can easily take on any other language with little to no trouble. This sounds great but problem is C++ is not only consider the hardest language to take on but has been used many expert programmers for years and years to come I am sure. The C++ programmers out there now are not new to the language. They are most likely very experienced with it by now. There must be tons of Legacy C++ code out there but how can I learn C++ with its complexities and compete with people that have been doing it for years? How can I apply to a job now in 2012 saying "I know C++ but have no experience, can you hire me?" I have also been told by 2 programmers in my school that if I wanted to get up and running faster then learn Java then, but at the expenses to truly understanding whats going on. I believe it should be easier to learn Java and land a job with it. I also am considering C# because It interests me very much and looks to be more related to C++, and is very similar to java except i like C# syntax more! I also have to admit that I feel that C++ is getting a little old and I would rather jump-start on a more modern language and stick to it then tag on to C++ at this point. So theres my story, all I can ask for is your advice, and what you recommend.
PS: at the end of the day I am looking for a modern general purpose programming language that gives me the skills I can take to the Job Market.
- 04-12-2012 #2
I am not a programmer, so take my words with a grain of salt if you wish. However, I can comment on jobs. Programming is like every other field. Begin with a good foundation and build upon it with both knowledge and experience. If the foundation is C, then it would be a good idea to learn it. Not being knowledgeable about the subject, that is the best I can do.
The experience issue is one everyone in every field experiences. It is a terrible catch 22: Experience is needed to get a job, and a job is necessary to gain experience. There is a bright side, however. I have a cousin who is a programmer. He entered the job market very easily, while thousands of others could not get jobs. It was because he is good at it. If you study to learn the craft instead of simply study to get a piece of paper, it will greatly improve your employability. If you can demonstrate ability, employers will be interested. If you show them a diploma, certificate or degree, but cannot demonstrate ability, the chances of landing a job will be scare.
I hope my unknowledgeable opinion helps.
- 04-12-2012 #3
- Join Date
- Apr 2012
It all depends what you want to do. Yes, java and C# are general purpose languages but they tend to get used for web apps.
C++ will allow you to work in embedded devices, driver development, etc.. but we don't do any C++ except when absolutely needed (ISA drivers is the only case I can remember)
I work developing and maintaining enterprise apps for various government agencies and some manufacturing companies.
- 04-12-2012 #4
Learn to program. Understand the concepts and how to apply them in both OO and procedural methods. Practice in one or two languages and give yourself a series of "programming kata" that you do regularly. A search, sort, reading and writing a file those kind of simple things.
When you understand how to program, the rest is just syntax and thus you can quickly get up to speed in any language. The popular languages at the moment seem to be c#, java and PHP with Ruby and node.js as rising stars.
I would also go as far a suggesting that you get to grips (at least on a simple level) with some assembler. There is nothing better for giving an understanding of what those if statements and while loops actually do."I used to be with it, then they changed what it was.
Now what was it isn't it, and what is it is weird and scary to me.
It'll happen to you too."
The Fifth Continent
- 04-13-2012 #5
There is no language that will give you the perfect foundation. Once you know one language, you can learn any other without much difficulty.
With that said:
C and C++ expose memory management to you directly, but that is generally considered a drawback of those languages, not a benefit. There are some fields where this is still useful (writing device drivers, video game programming, etc.), but web development and general-purpose application development don't care at all about memory managment.
Windows application development is generally done in C# these days. Linux application development uses all sorts of languages, but C is still fairly popular. Web programming can be any sort of thing, though Ruby on Rails is a very popular framework (and I am a big fan of Ruby).
Java is a good language to learn because it is C/C++-like but doesn't require memory management. It has a large standard library, pretty good documentation, and is object-oriented, so you get introduced to that pretty quickly. Alternatively, C is a very small and simple language, though you'll need to do memory management.
There is no single best language. If you already have the basics of C++ or Java, you should probably continue with one of them, as that will give you a grounding in any other language you need to learn.
- 04-15-2012 #6
- Join Date
- Apr 2009
- I can be found either 40 miles west of Chicago, in Chicago, or in a galaxy far, far away.
I have been programming C since the early 1980's, and C++ since the early 1990's, designing and developing major systems and application frameworks used by the world's largest companies, the US Navy, and that run systems on the (now retired) Space Shuttle. Start thinking in terms of classes, methods, objects, and patterns. C++ is good for that, but understanding and utilizing UML is, in my opinion, even more important. It will help you look at a system as a system - a coherent entity. The language is just used to IMPLEMENT the system/model. I have patents for adaptive software systems, and if I didn't model the software before I implemented it, it would have never been made into what now runs most semiconductor, flat panel display, and disc drive manufacturing facilities in the world today.
1. Learn, understand, use UML
2. Any programming language is JAPL (Just Another Programming Language) once you learn one of the fundamental ones (C, C++, ADA, et al).
FWIW, I started with 8048 assembler, segued to C, BASIC, COBOL, DIBOL, C++, Java, PL/SQL (a subset of ADA), ...Sometimes, real fast is almost as good as real time.
Just remember, Semper Gumbi - always be flexible!