Becoming a Genius and Master in Programming

A programmer standing cheerfully

Image Courtesy of stockimages at

Do you want to become a great coder? Do you have a passion for computers but not a thorough understanding of them? If so, this post is for you.

There is a saying that it takes 10,000 hours of doing something to master it.

So, to master in programming, it might take you 10,000 hours of being actively coding or thinking about coding. That translates to a consistent effort spread out over a number of years.

Get Started: Do not feel bad that you are not an expert programmer yet. In 10,000 hours, you will be. All you need to do is start. Dedicate some time each day or week to checking things off this list. You can take as long as you want or move as fast as you want. If you’ve decided to become a great programmer, youve already accomplished the hardest part: planting the seed. Now you just have to add time and your skills will blossom.

Object Oriented. This is the “language” the world codes in. Just as businessmen communicate primarily in English, coders communicate primarily in Object Oriented terms. Terms like classes and instances and inheritance. They were completely, completely, completely foreign and scary to most of us. You can slowly practice the techniques, and read books that would help you understand.

Learn Linux. The command line is not user friendly. It will take time and lots of repetition to learn it. But again, its what the world uses, you’ll need at least a basic grasp of the command line to become a great master in programming. When you get good at the command line, its actually pretty damn cool. You’ll appreciate how much of what we depend on today was written over the course of a few decades. And you’ll be amazed at how much you can do from the command line. If you use Windows, get CYGWIN!

Posted in Programming Tips | Leave a comment

Cool Programming Tools to Boost your Productivity

Image Courtesy of iosphere/

Image Courtesy of iosphere/

Coding… the world runs on it these days. Want job security? Become a developer. Want fame and fortune? Learn to code! Whether you are a world-class programmer looking for a few extra tools to add to your already awesome arsenal or a wanna-be coder looking to get into the game, these coding resources comprised of many startups (meaning you probably haven’t heard of a lot of these) as well as established sites and services are sure to help you take your game to the next level (whatever that might be). Included here are programming tools to help you communicate better with your team, share code, test your app and track usage, add functionality and much more.

Random & Cool Programming Tools

Tracelytics – Full stack application tracing. Cloud APM.

TaskMissile – Makes getting client feedback fast, easy and exact.

Kera – Activate more users with in-app tutorials.

Flowdock – Team inbox with chat. Collaboration web app for technical teams.

Modulus – Host, scale and gain insights into Node.js applications.

Cloud Assault – Load testing without the aeronautics degree.

Metricfire – Powerful application metrics made easy.

Interstate – Turn potential tire-kickers into loyal users. Open project management.

codenow – Developer collaboration. Easily share and discover code.

Lingohub – Start localizing your software for better market adoption.

TranslateKarate – Simple online translation and localization toolkit.

Kickfolio – The simplest way to market your apps.

Snippets – Don’t reinvent your code. Code snippets manager.

Development Platforms:

Heroku – Cloud application platform. Deploy and scale powerful apps.

Compilr – Develop and learn code all from the comfort of your web browser.

Kinvey – Mobile cloud backend as a service.

Firebase – A scalable real-time backend for your website.

Cloud9 – Online IDE.

Parse – The complete mobile app platform.

CloudMine – The backend as a service for mobile and web apps.

Koding – Browser-based IDE. A new way for developers to get work done.

AppHarbor – .NET cloud platform as a service.

dotCloud – Deploy, manage and scale any web app.

BrainEngine – Cloud-based development platform.

StackMob – Powering mobile applications.

PHP Fog – Rock solid cloud platform for PHP.

Backrest – Easy creation of Saas data backends.

Codeanywhere – Online code editor.

NeptuneIDE – Full-featured, cloud-based IDE for PHP.

Fusegrid – ColdFusion in the cloud.

Cloud IDE – Code and deploy in the cloud.

FriendCode – A social network revolving around an online code editor.

ToolsCloud – Development environment in the cloud.


Posted in Programmer Tools | Leave a comment

7 Ways to be a Reliable and better Programmer this year(Part-2)

better programmer

Image Courtesy of iosphere/


To be a better programmer you need to know the frameworks and libraries you use. Knowing how something works makes you know how to use it better. If they’re open source, you’re really in luck. Use the debugger to step through the code to see what’s going on under the hood. You’ll get to see code written and reviewed by some really smart people.

  • Whenever you make a mistake, fix a bug, or run into a problem, try to really understand what happened. It’s likely that someone else ran into the same problem and posted it on the Web. Google is really useful here.
  • A good way to learn something is to teach or speak about it. When people are going to listen to you and ask you questions, you’ll be highly motivated to learn. Try a lunch-‘n’-learn at work, a user group, or a local conference.
  • Join or start a study group (à la patterns community) or a local user group for a language, technology, or discipline you are interested in.
  • Go to conferences. And if you can’t go, many conferences put their talks online for free.
  • Long commute? Listen to podcasts.
  • Ever run a static analysis tool over the codebase or look at the warnings in your IDE? Understand what they’re reporting and why.
  • Follow the advice of the Pragmatic Programmers* and learn a new language every year. At least learn a new technology or tool. Branching out gives you new ideas you can use in your current technology stack.
  • Not everything you learn has to be about technology. Learn the domain you’re working in so you can better understand the requirements and help solve the business problem. Learning how to be more productive—how to work better—is another good option.
  • Go back to school.

It would be nice to have the capability that Neo had in The Matrix, and simply download the information we need into our brains. But we don’t, so it will take a time commitment. You don’t have to spend every waking hour learning. A little time—say, each week—is better than nothing. There is (or should be) a life outside of work.

Technology changes fast. Don’t get left behind.

Posted in Programming Tips | Leave a comment

7 Ways to be a Reliable and better Programmer this year(Part-1)

better programmer

Image Courtesy of iosphere/

Coding… the world runs on it these days. Want job security? Become a developer and be a better programmer. Want fame and fortune? Learn to code!

Coders and better programmers make resolutions, no? If your to-do-better list is still empty, consider these ideas from other programmers to put to use in the New Year. Even the smartest folks have room to grow. Here are 7 tips to be a better programmer:

1. Check Your Code First Before Looking to Blame Others:

Question your own assumptions and the assumptions of others. Tools from different vendors might have different assumptions built into them so too might different tools from the same vendor.

When someone else is reporting a problem you cannot duplicate, go and see what they are doing. They may be doing something you never thought of or are doing something in a different order.

My personal rule is that if I have a bug I can’t pin down, and I’m starting to think it’s the compiler, then it’s time to look for stack corruption. This is especially true if adding trace code makes the problem move around. Multithreaded problems are another source of bugs that turn hair gray and induce screaming at the machine. All the recommendations to favor simple code are multiplied when a system is multithreaded. Debugging and unit tests cannot be relied on to find such bugs with any consistency, so simplicity of design is paramount.

2. Continuous Learning: We live in interesting times. As development gets distributed across the globe, you learn there are lots of people capable of doing your job. You need to keep learning to stay marketable. Otherwise you’ll become a dinosaur, stuck in the same job until, one day, you’ll no longer be needed or your job gets outsourced to some cheaper resource.

So what do you do about it? Some employers are generous enough to provide training to broaden your skill set. Others may not be able to spare the time or money for any training at all. To play it safe, you need to take responsibility for your own education.

Here’s a list of ways to keep you learning. Many of these can be found on the Internet for free:

  • Read books, magazines, blogs, Twitter feeds, and websites. If you want to go deeper into a subject, consider joining a mailing list or newsgroup.
  • If you really want to get immersed in a technology, get hands on—write some code.
  • Always try to work with a mentor, as being the top guy can hinder your education. Although you can learn something from anybody, you can learn a whole lot more from someone smarter or more experienced than you. If you can’t find a mentor, consider moving on.
  • Use virtual mentors. Find authors and developers on the Web who you really like and read everything they write. Subscribe to their blogs.
Posted in Programming Tips | Leave a comment

7 Ways to be a Reliable and better Programmer this year(Part-3)

better programmer

Image Courtesy of rattigon/


Don’t Be Afraid to Break Things to be a better programmer:

Everyone with industry experience has undoubtedly worked on a project where the codebase was precarious at best. The system is poorly factored, and changing one thing always manages to break another unrelated feature. Whenever a module is added, the coder’s goal is to change as little as possible, and hold his breath during every release. This is the software equivalent of playing Jenga with I-beams in a skyscraper, and is bound for disaster. The reason that making changes is so nerve-racking is because the system is sick. It needs a doctor, otherwise its condition will only worsen. You already know what is wrong with your system, but you are afraid of breaking the eggs to make your omelet. A skilled surgeon knows that cuts have to be made in order to operate, but she also knows that the cuts are temporary and will heal. The end result of the operation is worth the initial pain, and the patient should heal to a better state than he was in before the surgery.

Don’t be afraid of your code. Who cares if something gets temporarily broken while you move things around? A paralyzing fear of change is what got your project into this state to begin with. Investing the time to refactor will pay for itself several times over the lifecycle of your project. An added benefit is that your team’s experience dealing with the sick system makes you all experts in knowing how it should work. Apply this knowledge rather than resent it. Working on a system you hate is not how anybody should have to spend his time. Redefine internal interfaces, restructure modules, refactor copy-pasted code, and simplify your design by reducing dependencies. You can significantly reduce code complexity by eliminating corner cases, which often result from improperly coupled features. Slowly transition the old structure into the new one, testing along the way. Trying to accomplish a large refactor in “one big shebang” will cause enough problems to make you consider abandoning the whole effort midway through.

Be the surgeon who isn’t afraid to cut out the sick parts to make room for healing. The attitude is contagious and will inspire others to start working on those cleanup projects they’ve been putting off. Keep a “hygiene” list of tasks that the team feels are worthwhile for the general good of the project. As a better programmer you need to convince management that even though these tasks may not produce visible results, they will reduce expenses and expedite future releases. Never stop caring about the general “health” of the code.

Posted in Programming Tips | Leave a comment

7 Ways to be a Reliable and better Programmer this year(Part-4)

better programmer

Image Courtesy of KROMKRATHOG/


The Professional and better Programmer

The single most important trait of a professional and better programmer is personal responsibility. Professional programmers take responsibility for their career, their estimates, their schedule commitments, their mistakes, and their workmanship. A professional programmer does not pass that responsibility off on others.

If you are a professional, then you are responsible for your own career. You are responsible for reading and learning. You are responsible for staying up to date with the industry and the technology. Too many programmers feel that it is their employer’s job to train them. Sorry, this is just dead wrong. Do you think doctors behave that way? Do you think lawyers behave that way? No, they train themselves on their own time, and their own nickel. They spend much of their off-hours reading journals and decisions. They keep themselves up to date. And so must we. The relationship between you and your employer is spelled out nicely in your employment contract. In short: your employer promises to pay you, and you promise to do a good job.

Professional and a better programmer takes responsibility for the code they write. They do not release code unless they know it works. Think about that for a minute. How can you possibly consider yourself a professional if you are willing to release code that you are not sure of? Professional programmers expect QA to find nothing because they don’t release their code until they’ve thoroughly tested it. Of course, QA will find some problems, because no one is perfect. But as professionals, our attitude must be that we will leave nothing for QA to find.

Professionals do not tolerate big bug lists. A huge bug list is sloppy. Systems with thousands of issues in the issue-tracking database are tragedies of carelessness. Indeed, in most projects, the very need for an issue-tracking system is a symptom of carelessness. Only the very biggest systems should have bug lists so long that automation is required to manage them.

Take Advantage of Code Analysis Tools The value of testing is something that is drummed into software developers from the early stages of their programming journey. In recent years, the rise of unit testing, test-driven development, and agile methods has attested to a surge of interest in making the most of testing throughout all phases of the development cycle. However, testing is just one of many tools that you can use to improve the quality of code.

Back in the mists of time, when C was still a new phenomenon, CPU time and storage of any kind were at a premium. The first C compilers were mindful of this and so cut down on the number of passes through the code they made by removing some semantic analyses. This meant that the compiler checked for only a small subset of the bugs that could be detected at compile time. To compensate, Stephen Johnson wrote a tool called lint—which removes the fluff from your code—that implemented some of the static analyses that had been removed from its sister C compiler. Static analysis tools, however, gained a reputation for giving large numbers of false-positive warnings and warnings about stylistic conventions that aren’t always necessary to follow.

Posted in Programming Tips | Leave a comment

7 Ways to be a Reliable and better Programmer this year(Part-5)

better programmer

Image Courtesy of adamr/

Ubuntu Coding for Your Friends

So often, we write code in isolation and that code reflects our personal interpretation of a problem, as well as a very personalized solution. We may be part of the team, yet we are isolated, as is the team. We forget all too easily that this code created in isolation will be executed, used, extended, and relied upon by others. It is easy to overlook the social side of software creation. Creating software is a technical exercise mixed into a social exercise. We just need to lift our heads more often to realize that we are not working in isolation, and we have shared responsibility for increasing the probability of success for everyone, not just the development team.

You can write good-quality code in isolation, all the while lost in self. From one perspective, that is an egocentric approach (not ego as in arrogant, but ego as in personal). It is also a Zen view and it is about you, in that moment of creating code. I always try to live in the moment because it helps me get closer to good quality, but then I live in my moment. What about the moment of my team? Is my moment the same as the team’s moment?

You Gotta Care About the Code as a better programmer It doesn’t take Sherlock Holmes to work out that good programmers write good code. Bad programmers…don’t. They produce monstrosities that the rest of us have to clean up. You want to write the good stuff, right? You want to be a good programmer.

Good code doesn’t pop out of thin air. It isn’t something that happens by luck when the planets align. To get good code, you have to work at it. Hard. And you’ll only get good code if you actually care about good code.

Better programmer is not born from mere technical competence. I’ve seen highly intellectual programmers who can produce intense and impressive algorithms, who know their language standard by heart, but who write the most awful code. It’s painful to read, painful to use, and painful to modify. I’ve seen more humble programmers who stick to very simple code, but who write elegant and expressive programs that are a joy to work with.

To be a better programmer, you have to rise above good intentions, and actually care about the code—foster positive perspectives and develop healthy attitudes. Great code is carefully crafted by master artisans, not thoughtlessly hacked out by sloppy programmers or erected mysteriously by self-professed coding gurus.

Posted in Programming Tips | Leave a comment

Development Tools to Pick for the Emerging Programmers

Development tools

Image Courtesy of suphakit73/

In the budding and emerging technology more updated software development tools is being revolutionized. The one who makes a wise choice at the right time and skilfully plans while choosing the best software development tools can become better programmers. The software market is overflowing from light to heavy or multifunctional software tool development. But here we offer some basic insights into that software which has given unmatched results in programming and developers world.

Besides using best development tools, to become a best programmer one should have certain skills such as attention to even minute details, which is possible through better memory, an ability to think differently and an ability act beyond conventional levels. An extensive use of development tools is preferred, some of the best development tools are:

  • XAMPP – Whenever you want to write or make web applications, the most important perquisite is a web server. The other platforms require PHP languages pack and MYSQL databases. So, in the process of writing web applications, manual installation and configuration of all applications are quite tedious. But with the help of XAMPP, this task is a lot easier. This open source developer tool is like a magic come true for any programmer. It is available in different versions and requires to be downloaded from only one from zip, tar, or excel file.

It is so simple and light that no or little configuring from the web server is being needed. XAMPP needs regular updating to stay tune with new changes to APACHE/MYSQL/PHP & PERL. XAMPP is one of the greats designing tool available as an open source development tool, which allows programmer freedom of testing their work without any type of internet connection. They can simply test work through XAMPP on their system. But, with such an important feature, it has many security issues, however for data protection, password security is available.

  • OpenSTA – Open System Testing Architecture allows you to test how much load your newly coded application can take, based on CORBA, this well distributed and dynamic software testing oriented architecture can generate real time loads to test application codes. This application is able to graph both virtual ones and resource utilization at the same time. SCL is the language for recording scripts.


Posted in Programmer Tools | Leave a comment

Here are Few Good Programmer Websites to Explore

Image Courtesy of tigger11th/

Image Courtesy of tigger11th/

A programmer generally visits various websites to get information on variety of topics. But it is also advisable for programmers to visit quality websites which provide good knowledge that is essentially required to know for a programmer. These types of Best Programmer websites can always be helpful to get programming related understanding which can help in their professional life. Here, in this article we are going to provide a bunch of Programmer websites that one should visit.


Eclipse remains most used and one of the best development tools among programmers. It offers programming in multiple languages. It is used to develop applications in java as well as other programming languages like C, C++, COBOL, FORTRAN, Perl, PHP, Python, and Ruby etc. SDK of the Eclipse is free and it’s open source software. Netbeans is also similar kind of tool that can be helpful for development. It is also one of the best development tools from open source.

Another programmers website available and most visited by a programmer is It is online repository of source code. It is a boon for the developers to get support for the programming beneficial when the code integrated with the best programming tool.  Such other popular websites is as increased use of the jQuery with the best development tools. Websites like and are also famous and must for the programmers.

For the development related to Microsoft products, a programmer must visit Visual Studio is such a best development tool for windows related programming work. If the concern is for the database, is the best site to visit. It is the most popular tool for the dataset support and also belongs to open source family.

Posted in Programming Tips | Leave a comment

Quick Application Development with Programmer Tools

Image Courtesy of renjith krishnan/

Image Courtesy of renjith krishnan/

Today the development industry is using programmer tools more provocatively to gain substantial leverage in rapid application development, which is now possible. Various aspects of programming are dependent on resources and this becomes the most demanding environment during the development of applications. These tools can be classified in several categories. However, this classification is broad and can be governed on coarse platform of actions. Tools assisting in the programming languages like Netbeans, Eclipse, and many more are available to redefine the programming protocol in the simplest manner.

Parallel computing

The programmer tools are highly resourceful during their deployment in parallel computing. The tools dedicated for programming in parallel computing have an edge over services to offer. The available scope of the services contains libraries, compilers, error checking scripts, dynamic performance profilers for threading, and various assistants to ensure the error free development of programs. In addition to this, these special tools offer the benefits of simultaneous multi-core processing on several parallel threads. This helps the C, C++, and Visual Studio developers to control their errors during the development.

Building blocks

The programmer tools also offer a great contribution in the building block of parallel process threads making it scalable for C and C++ developers. These tools contain the templates of libraries and data structures. Thus, programmer can build the blocks to retain their processing threads. Even monitoring several other parallel features is also possible. The scalability can be synchronized to ensure the complete utilization of the core. Developers have new multi-dimensional trial fields to test their programs for desired results. The grounds of programming become unanimous and versatile with complete flexibility to control the overriding options. Understanding these algorithms is very essential to develop bug free application.

Posted in Programmer Tools | Leave a comment