From my understanding, the measure of a programmer is not how many langauges he knows or how many programs he has "written", but rather it is the way he uses to programs he knows to solve problems or accomplish tasks. I am still quite new to programming and am working on learning languages. Any one (not quite, but you get the idea) can learn a language; that is not the hard part of learning a language. I believe the hardest part about being a "good programmer" is learning the logical thinking and problem solving skills necessary to solve problems and accomplish tasks, with the help of your tools (programming languages). Does anyone have suggestions of ways to build problem solving skills? I have found one site: http://projecteuler.net/index.php?section=about
I agree, and I have also recently been trying to expand my knowledge about being a 'programmer/software developer' in general, not tied to any specific languages. In addition to solving programming problems like at the site you linked to, there's a couple books that seem to be recommended by everyone (which is why I bought them in the first place!) but are very helpful in improving your software development and programming skills. Here's Amazon.com links to the books: The Pragmatic Programmer and Code Complete 2. Another more general recommendation would be to browse/search the questions on http://stackoverflow.com/. You will learn a lot from that site, no matter what your experience level is! Matt
Ways to build problem solving skills: 1- Exercise your math Background 2- Much algorithm study 3- Desire to solve any problem!
logical thinking and problem solving skills is a talent. There is 50% possibility that you can learn them but upon reaching 100%, maybe the ones who has this talents will at most be in 200% compared to you. hehe In other words you cannot beat natural born talents.
to be a good programmer you have to practice and master at least 1 programming language and the most important part is the system analysis and designing.
The best way to learn is by doing/ practicing. Embark on some real-world projects and learn along the way.