In order to find middle element of linked list in one pass, you need to maintain two pointers, one increment at each node while other increments after two nodes at a time. By having this arrangement, when first pointer reaches end, second pointer will point to middle element of linked list.
There are hundreds of programming languages used in the professional industry and university/college academics. One needs to be familiar and able to program with at least few programming languages to be successful.
In the 4th edition, Cracking the Coding Interview gives you the interview preparation you need to get the top software developer jobs. This book provides 150 Programming Interview Questions and Solutions.
As a programmer I used different ways to improve my programming skills, like reading/writing code, working with experienced programmers and reading blogs and websites. I have listed few of the points here which in my opinion will be quite useful for novice programmers.
There are always few little known or hidden features in each programming language. AT StackOverflow.com someone started a series of posts “Hidden features of” programming languages. The Hidden Features series is great for people who are new to a certain language.