I'm good with understanding technology and implementing it. At least that is what I feel. But it seems that when I come across experienced programmers they point out that my logic is weak. I feel that I would need some time with real programming to improve it. But nobody is ready to give that time to me. I'm just about starting my carer and it often feels disheartening to hear this. I want know how can I improve my logic and also does this sort of thing happens to others too?
closed as not constructive by Walter, gnat, Glenn Nelson, Tim Post♦, Dynamic Dec 10 '12 at 11:02
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or specific expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, see the FAQ for guidance.
Are you sure that your weakness really regards logic?
Logic is a strict relative of mathematics and phylosophy and, as long as I have seen in my life, has quite little to share with the actual practice of programming. See what wikipedia says of it:
At its extreme, logic becomes symbolic logic and do becomes a branch of mathematic:
Most likely, your weakness is actually related to problem solving and abstraction:
To be an autonomous, professional programmer, you do need to master these two "discipline".
If this is your case, you can get a lot of help from a bunch of good books and a bunch of "methodologies".
Problem solving, in our field, is mainly a matter of:
Abstraction is mainly a matter of:
So, you can learn a lot about these topics just by reading a few good books. Just Google around for "best programming books", "best software development books" or "best software engineering books".
To be more precise, most likely you have just reached the point where the plain "software development" practice (that is: "programming", "coding") leaves the scene to "software engineering" and "software architecture" ("organizing" or "structuring" the code and the related application). So, most likely, you need to start reading a few books that regards these topics.
For what regards practice (the possibility to work with good programmers on interesting projects), IMHO following/contributing to an Open Source project can be one of the best way to practice. You can choose the project that fascinates you most, the one you feel you can contribute to, the one that does not make you feel too anxious. You can join when you feel ready and you can contribute at your own pace. What else can you ask to a project?
Of course, do not expect that other programmers will spend much time explaining you how to improve your skills in detail. They will expect that you read and study a lot yourself to bring yourself at the required level. Contributing to an Open Source project is an opportunity for practice (something like a "stage" or an "internship") not a school.
And yes: this happens to others too. Almost all the seasoned programmers, sooner or later, had to undergo this transformation from simple "coders" to "software engineers". It is not easy, sometime it is not funny but, nevertheless, it is the passage that makes a real professional.
You're probably not nearly as good as you think you are. I've been developing software for 25 years, but I didn't realize I was just a hacker until five years ago. I realized this after I started working with some really talented and passionate software engineers. This is what you need to do. Work with people who are passionate about engineering software, and seek their help and advice.
You said that no one is willing to help you. This is nonsense. I have found that people who are really passionate about software development, and are really good, are also passionate about helping others. Keep looking. Those people are out there.
If you are looking for help and people can see that you are dedicated to the project or your career choice than you will find an abundance of help.
I am a first year University student in Computing and Information Systems and the first thing I did was to get involved in open source. Attempt Meetup groups that have a keen interest in IT (if applicable), read a bunch of good books and practice the new acquired skills. Study and master discrete mathematics, this will provide a basic path for coding more logically. Asking questions should result in sharing ideas, meaning you have the idea or an inspiration but don't know how to put that in practice will almost give you the right answers. Be curious, accept criticism, learn and grow through feedback of your peers, then you will become more skilled, in your coding community.
Best wishes in your pursuit.