Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

This question already has an answer here:

Do you think that only the programming pratice will help you to improve your logical programming skill or do you train your brain with puzzle games, trying imagine how universe works, playing instruments and so on?

Devoting more time with programming, will do you get logical programming skills more fast?

share|improve this question

marked as duplicate by gnat, thorsten müller, Martijn Pieters, Jalayn, Kilian Foth Apr 13 '13 at 18:22

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

1  
If you like this, please vote it up. It's important for the community! –  Tom Wijsman Oct 5 '10 at 18:36
2  
@Mark: I don't think it's not the same as the other question. This question concerns more with the problem solving skill. Maybe killown should rephrase the question? –  D. L. Oct 6 '10 at 10:27
1  
@Mark - I agree with @Dai Le. This is a different, but related question. –  ChrisF Oct 6 '10 at 10:41
    
How about just read large amounts of code as quickly as possible. –  tp1 Apr 15 '12 at 18:20
add comment

8 Answers

up vote 17 down vote accepted

I think full-time programming practices my logical skills quite enough, and they need rest after work. Doing something else such as practicing motoric skills by playing musical instruments is good to the brain.

share|improve this answer
2  
I like to go home and rest my brain too! –  Chris Oct 5 '10 at 14:20
add comment

I've found that, through learning about programming and software development (not necessarily formally), I've learned to break down problems in to smaller and smaller chunks more effectively.

I think you can improve that particular skill by using it outside of the software development field; by trying to break down problems you come across in everyday life. Trying to understand how something new works (like an engine or a piece of electronics) using this technique is particularly good.

share|improve this answer
add comment

Start small, aim for things that you most likely will be able to achieve, and work your way up Tutorial sites are an excellent resource as well Keep your code visually elegant, not because it's pretty but because it makes it easier to read... essential when you come to make a change in 6 months' time. This means using TAB indentation to differentiate lines of code that are encapsulated (if, for, while, etc...). Read more about code indenting A program such as Visual Basic .Net can cost a lot of money to purchase and upgrade, and it's syntax style is very different than most other languages. If you MUST use visual basic, go out and download Visual Studio Express Beta 2 2005 from www.microsoft.com or you may buy the student or learning editions.

share|improve this answer
    
This seems more an answer about programming skills and the OP is asking about logic skills. –  Bernard Dy Nov 3 '12 at 2:17
add comment

I read this: What is the single most effective thing you did to improve your programming skills?

More seriously, I guess you can try:

  • to train your brain and solve puzzles and other games (as suggested by others),
  • to learn logic theory, and get back to the hard-core maths that comes with it.

But mostly, i think you should:

  1. have a look at an algorithm bank and hand-pick a few,
  2. try to implement solutions for the problems they address,
  3. then look at the reference implementations,
  4. publish a paper if you beat them :)

The NIST Dictionary of Algorithms and Data Structures should keep you busy for a while...

Then find a pet project that involves solving something.

share|improve this answer
add comment

If you want to improve your "logical programming skills" in a more profound way, it's important to have at least one or two courses on... logic. Something like the lecture notes by Stephen Cook is nice for starting learning proposition and first order logic. The textbook Logic in Computer Science: Modelling and Reasoning about Systems by Huth and Ryan is also loved by many.

Also developing an algorithmic way of thinking is also extremely important. Cook told me that the ability to think algorithmically is the key difference between a computer scientist and a mathematician. There are many good books on algorithms. You just have to choose the one that suits you most!

share|improve this answer
add comment

Yes programming will help, but any sort of logic/problem solving will help improve your programming skills. For example taking a formal course in logic, or solving Sudoku puzzles. There are some great websites out there with programming puzzles to try, look for project Euler for starters

share|improve this answer
1  
It's "Sudoku" and not "Suduko." –  jean27 Oct 6 '10 at 9:11
1  
I think you mean Project Euler, rather than Project Euclid (which exists, but is more of a mathematics library) –  Matt Ellen Oct 6 '10 at 10:42
    
Right you both are, post edited - thanks! –  Martijn Verburg Oct 6 '10 at 11:41
    
Logic-based games are a good one, and if you have an opponent, Chess and Go are also good. –  Izkata Apr 16 '12 at 1:58
add comment

General problem solving, whether this be puzzles, watching House, reading a mystery novel or helping a neighbor with her car, any of these can be helpful in gaining ideas for how to build solutions. Ideas like being greedy, divide and conquer, dynamic programming, and creating data structures just a few examples as there are probably dozens of these kinds of ideas. How well they work is of course another story but sometimes just getting these kinds of ideas can be a great challenge.

share|improve this answer
add comment

Like @Joonas said doing other activities helps you concentrate better when you have to...

I run every other morning and read books whenver I can

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.