How to become a good programmer in C language?

Did I select the correct language to learn by learning C++?

  • Hey there, I'm just wondering if this is the correct language. I chose it originally because it seemed like the most prevalent and commonly used, but other people are saying python's easier, and C++ is difficult, and C# is more useful, and so on and so forth. I just don't want to learn the entire thing, then find out it's garbage, and has no use. I know a programmer personally, and he said the biggest mistake he made was learning a little of every language. He said to stick to one and become really good at it unless another one is mandatory. Anyway, just wondering your thoughts on this. Also, I know it depends on the project, but when you're young and going to school, you don't really know which company is going to hire you (if any). What I'd like to do, is create intricate programs for whatever's needed. I don't want to get into creating video games or anything like that. I just want to be able to write useful, applicable programs that have a visual body, and of course, the actual code itself. (Again, why I chose C++ and now visual C++ express 2010.) Anyway, I know pretty much every programmer out there is more experienced than me, so I was wondering what your advice was, thanks....

  • Answer:

    It is *very* good to know a little bit of every language, the more diverse the better, since different languages highlight different important programming concepts, which you can then use in your language of choice. Learn functional programming and you will not only understand recursion and thousands of efficient algorithms that use it but you'll improve your C++ by understanding functors, binding to arguments, and things like std::accumulate() (functional languages call that operation "left fold" and use it everywhere). Learn about APL or J if you dare, and you will grok C++'s valarrays and you'll understand how awesome is C++'s std::inner_product with custom functors. I'd say you will never become really good at one programming language if you don't learn about others. But anyway, as far as C++ is concerned, the only point I agree on is that it is difficult. It was used to manage extremely complex tasks, and the language evolved to matching complexity. If you're up for a challenge, then yes, you've selected the correct language. If you want something easy - there's always VB.

Dark A at Yahoo! Answers Visit the source

Was this solution helpful to you?

Other answers

I agree with 1st answer (kyle fox). use whatever language you need to solve the problem properly. some languages have properties which make it better suited to solving a particular problem than others. for instance, autoit3 is great for making GUI apps and automating things. c++ is great for its STL and TR1 (especially if you need the mersenne twister random number generator like I do sometimes) and its ability to access hardware and the OS directly, and talk to DLL's. VB is great for accessing activex/ole controls and .net. c# is great for .net and looks kind of like c++.

You definitely chose the best language for basic, or any, programming. C and C++ are the two most prevalent languages for any operating system. C# is just C that Windows customized for themselves, and C++ is backwards compatible with it. Also, once you learn that, many languages are similar to that one anyway so they will be easier to learn. I am currently learning Java right now, which is considered an easy language but is the most commonly used in Aerospace engineering. Just a thought.

Here's a thought for you: If you make programming a career, whatever programming language you learn in college will probably be obsolete before you retire. When I went to college (and it really wasn't *THAT* long ago), my choices were Pascal, Fortran, Scheme, Cobol, and one course on a newer language called C. Nobody ever paid me to write code in Pascal, Fortran, Scheme or Cobol. I did work with C for a number of years, but most things moved to C++, so I had to learn that. Then most things (that I'm currently working on) moved to C#, so I had to learn that. I've also had to add JavaScript to my resume in the last few years. You really aren't going to school to learn a programming language. You are going to school to learn how to program. Once you learn how to program, you can do it in just about any reasonable language that's asked of you. The concepts are about the same in every language. (And the syntax may also be similar. If you know C or C++, then you already know a lot of the basic syntax of Java, C#, PHP, JavaScript and any other C derived language. That does speed up the learning curve when you are faced with learning a new language.) Best of Luck.

I have to disagree with the one who says you shouldn't learn a bit of every language. Knowing how to solve a problem from multiple different directions is always an advantage. Specialization is a bit silly unless you have a very clearly defined goals or your employer tells you to use a specific language. As for your original question, it really depends what you want to do with it. Python is a great language for learning how programming works. C++ grants you a bit more power and efficiency, which is why a lot of programmers use it. Java is useful for a lot of commercial applications. I personally learned Scheme first, and I did not at any point regret it. But to really know what you're doing, you need to know how to program in more than one language. Being able to solve problems in many different ways is a very powerful ability. Experiment a bit, and if you then want to specialize, go for it. Hope this helps.

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.