Solved

Programmer Problem Solver

Posted on 2014-11-05
3
174 Views
Last Modified: 2014-11-07
Hi there,

What subjects should I study or practice in order to sharpen my problem solving abilities in programming. I am not an especially gifted person. I already know PHP, C#, and JavaScript, and web development, but need to develop my problem solving abilities to a very high level.

Thanks
0
Comment
Question by:userTester
3 Comments
 
LVL 73

Assisted Solution

by:sdstuber
sdstuber earned 250 total points
ID: 40424571
To practice: answer questions on EE!  

Seriously.

 You will be exposed to lots of problems including examples of good and bad code you'll need to be able to identify both, leverage the good, fix the bad.

Learn your tools well enough that you can use them to do nearly anything; then, learn them well enough to know when you shouldn't use them.  

For study: go to the classic algorithms - but don't reinvent them.

For instance, most programming classes teach sorting.  There is very little need for you to ever write one of those algorithms from scratch, and even if you did, it would probably be a mistake to do so because there is already a highly optimized, low-level implementation already available.

However, if you know understand WHY quicksort is better than bubblesort, that's useful in understanding fundamentally how operations on objects in memory behave and how little actions add up to big effects.

Learn to work with databases:  MySQL, Access, Oracle, DB2, SQL Server,etc.   If you're writing professionally, at some point you will have to work with a database of some kind.  They are immensely powerful and a very common error is to assume you can process data faster than the database.  Maybe you can in some cases, often you can not.   Even if you can out-do the db,  if you have to also absorb the cost of pulling the data out and pushing that data back in, then you're making the db do work anyway, plus the overhead of the communcation, how fast do you have to make your code to compensate for that overhead?  Learn to leverage the features of your database platform to do what it does best and you'll be miles ahead of your competitors.


Learn libraries/products/industry standards.  Working with Javascript in particular there is plenty to learn.  Seems like new tools and methodologies spring up all the time for it.  Staying on top of those can be difficult but also a competitive advantage.
1
 
LVL 37

Accepted Solution

by:
TommySzalapski earned 250 total points
ID: 40424952
A lot of code competition sites (like codejam, topcoder, and codechef) have a wealth of practice problems. Many people have told me that these types of challenge problems are the one best way they prepared for interviews and jobs at places like Google.

https://code.google.com/codejam/contests.html
http://www.codechef.com/problems/easy
http://community.topcoder.com/longcontest/?module=ViewPractice

Or if you want to start out with something a bit more basic and simple

http://codingbat.com/

Other than that, you could tackle a large hobby project or contribute to some open source projects (preferably active ones that do code reviews so you can get feedback).
1
 

Author Closing Comment

by:userTester
ID: 40429487
Nice, thanks.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction This article discusses the Chain of Responsibility pattern, explaining What it is;Why it is; andHow it is At the end of this article, I hope you will be able to describe the use and benefits of Chain of Responsibility.  Backgrou…
Dependencies in Software Design In software development, the idea of dependencies (http://en.wikipedia.org/wiki/Coupling_%28computer_programming%29) is an issue of some importance. This article seeks to explain what dependencies are and where they …
Use Wufoo, an online form creation tool, to make powerful forms. Learn how to selectively show certain fields based on user input using rules to gather relevant information and data from your forms. The rules feature provides you with an opportunity…
Learn how to set-up PayPal payment integration in your Wufoo form. Allow your users to remit payment through PayPal upon completion of your online form. This is helpful for collecting membership payments, customer payments, donations, and more.

930 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now