The three great virtues of a programmer are laziness, impatience and hubris. I picked up some skills from the first guy I worked with out of college (pair-programming is great), but more important than that was the attitude. Cultivate a sense for when you're doing something by hand that the computer should be able to do for you, then figure out (or ask someone) how to get the computer to do that. Keep doing that and…
How did you go from being an adequate to exceptional programmer?
11–20 of 22 posts
Re: How did you go from being an adequate to exceptional programmer?
#12Teach yourself more about the tools you use, like frameworks, servers, OSes, editors, etc.
Well, what do you mean by "teach yourself?" It's one thing to read up/use trivially vs becoming fully competent at speaking about it and using it. Or is it normal to be googling things every day until it sticks?
Re: How did you go from being an adequate to exceptional programmer?
#13Re: How did you go from being an adequate to exceptional programmer?
#14To answer your questions, I find awesome code and techniques through books and from the internet. Keep reading new books even if you have become familiar with the language. Try working on your own projects because different problem sets demand different way of solving things which will not be offered through normal work environment. Write small games, puzzle solvers, etc. Understand how things work and be familiar with the tools which you can then incorporate back to your work.
Another way of improving your programming skills is by learning a completely different programming paradigm. That will make you think differently when solving problems even if you don't end up using that particular language.
Re: How did you go from being an adequate to exceptional programmer?
#15Work environment doesn't necessarily always help. It comes down to how experienced and brilliant co-workers are plus whether they care deeply about clean design and clean code. In some places, there are A programmers from which you will learn a lot. In other places, it's broken windows, so the attitude of the people is 'it works, so why bother.' To answer your questions, I find awesome code and techniques through boo…
Thanks for your thoughts. :) I think I definitely need to focus more on building my own projects if just to keep practicing what I do know and have the opportunity to build something more complex.
Re: How did you go from being an adequate to exceptional programmer?
#16Now I should state that all these things are with respect to how to learn things, not with what makes the best employee/product.
1) Getting a job where I could program/learn full time. Once I picked up the skill that other people hadn't learnt, then I became "the SKILL guy", which means that you get more work based on that skill, which lets you learn even more.
2) To learn things, I would set myself the goal of trying to do every task in one language. And I mean every task, including tasks that it sucked at. Whereas other people just took the pre-written tool/software and used it, I wanted to see if i could do it from scratch. Its not the best way to do business, but its the best way to learn something inside and out.
3) Plain stubborn persistence and realizing there are no hard problems/theories/techniques, just ones you haven't spent enough time studying and getting familiar with. Its ok not to know or understand things. What's not ok is to run away from them because you don't know or understand them. There's a lot of fragile egos in programming/academics/business where people try to insinuate that because they don't understand something its "not worth knowing/is useless", or that you are stupid for not understanding what they understand. Forget all that and just keep bashing away at a topic, looking for different opinions and perspectives on how to pick it up, and when you understand something on your 8th go, you're now on equal footing with the person who understood it on the 1st go (if there ever was such a person, and there often isn't).
4) Always pushing my self into the things that I can't do. This is a bit weird, because most of our school systems condition one to do the things you score well at and avoiding the things you fail at. Screw that. You might get good grades and a job but you will never grow as a person that way. If you're only given projects you "can do" at work, try to mix it up by doing it in a way, or with a language, or with a perspective that you can't currently do.
Re: How did you go from being an adequate to exceptional programmer?
#17Teach yourself more about the tools you use, like frameworks, servers, OSes, editors, etc.
Well, what do you mean by "teach yourself?" It's one thing to read up/use trivially vs becoming fully competent at speaking about it and using it. Or is it normal to be googling things every day until it sticks?
The notion of there being a wizened old man who just sits there and "knows everything about it" is, if not a myth, exceptionally rare.
Sure over time, bits stick and foundations build and you grow to be relatively expert on some topic. But if you stand still or grow too comfortable with what you've got, these days the world will move past and leave you behind.
Re: How did you go from being an adequate to exceptional programmer?
#18It is important for a Software developer you must be willing to work outside of their comfort zone. Technologies are constantly changing, and as developers we must execute integration or updates that we have never done before. By pushing yourself to try new things, you end up being exposed to more code and alternative ways of tackling issues. This drive to constantly learn and do new things that makes the difference between a good developer and a great developer.
Don't be afraid to break stuff. Breaking things is an important part of learning process.
Don't try to be great. Being great involves luck and other circumstances beyond your control. The less you think about being great, the more likely it is to happen.
Re: How did you go from being an adequate to exceptional programmer?
#19Re: How did you go from being an adequate to exceptional programmer?
#20I don't really think I'm "great" per se, but there's several things that really "upped" my abilities beyond someone who was just comfortable with ifs, loops and arrays. Now I should state that all these things are with respect to how to learn things, not with what makes the best employee/product. 1) Getting a job where I could program/learn full time. Once I picked up the skill that other people hadn't learnt, then I…
I especially appreciate #3. Thank you. :)