Skip to main content

Posts

Showing posts with the label programming

Sharpening the saw with online competitions

Some time back Jeff Atwood wrote about Sharpening the saw on his blog . He defines sharpening the saw as (which is rightfully attributed to Steven Covey): Sharpening the saw is shorthand for anything you do that isn't programming , necessarily, but (theoretically) makes you a better programmer. There are several things developers can do to sharpen their saw. One of them is participating in programming competitions. There are several websites which host online programming competitions, and I really like this concept. Participants can work on these competitions at a time of their convenience, and those who do not have "real world" competitions hosted in their cities and towns, can also participate. Code Chef publishes online competitions which can be solved in any one of 35 programming languages. I like the fact that they give developers freedom to code in their favorite language. Many other online competitions do not give this freedom, and impose a particular programming...

How to be a great programmer

Recently, someone on the JavaPosse newsgroup asked "how many hours do Java programmers sleep?". Relevant question isn't it? With so many langauge enhancements, API's, frameworks, specifications, and other stuff to learn, one either has to stop learning or stop sleeping. Well maybe not :-)... both can coexist, but what is needed is a great passion for programming. Heinz Kabutz, author of the famous Java Specialists newsletter shared some very interesting observations on how to be an excellent programmer in his 100th newsletter . I recommend that everyone who aspires to excell in programming should read it. Even though he speakes specifically about Java, the concept holds true not only for other languages, but for other professions as well. Discuss this post in the learning forum . 

Sharpen your programming skills

Dave Thomas the author of “The Pragmatic Programmer” says : How do you get to be a great musician? It helps to know the theory, and to understand the mechanics of your instrument. It helps to have talent. But ultimately, greatness comes practicing; applying the theory over and over again, using feedback to get better every time. How do you get to be an All-Star sports person? Obviously fitness and talent help. But the great athletes spend hours and hours every day, practicing. But in the software industry we take developers trained in the theory and throw them straight in to the deep-end, working on a project. It’s like taking a group of fit kids and telling them that they have four quarters to beat the Redskins (hey, we manage by objectives, right?). In software we do our practicing on the job, and that’s why we make mistakes on the job. We need to find ways of splitting the practice from the profession. We need practice sessions. Laurent Bossavit says : If I want to learn J...

Element of practice in programming

Sportsmen, artists, musicians... all follow a system of practice and tournament|product|concert. In the tournament they have to be perfect, but that perfection comes from hours of practice, mistakes, and explorations that happen during training. Software developers on the other hand are always working in tournament mode... cranking code for clients. This is not good, because they do not get a chance to practice, explore, make mistakes, and polish their skills. Some might argue, that their practice happens at work. But such practice is very limited, because at work, developers are always working under time pressure. For practice to be effective, it must happen in a pressure free environment where the trainee can explore, repeat, and perfect her skills. A Kata is an exercise in karate where you repeat a form many, many times, making little improvements in each. Dave Thomas, has combined the principles of Kata and coding practice to create a unique form of coding exercices called code ka...