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

better programmer

Image Courtesy of iosphere/freedigitalphotos.net

Continued:

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/freedigitalphotos.net

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/freedigitalphotos.net

Continued:

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/freedigitalphotos.net

Continued:

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/freedigitalphotos.net

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/freedigitalphotos.net

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/freedigitalphotos.net

Image Courtesy of tigger11th/freedigitalphotos.net

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.org
  • netbeans.org
  • sourceforge.net
  • jquery.com
  • rubyonrails.org
  • mysql.com
  • joomla.org
  • msdn.microsoft.com

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 Sourceforge.net. 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 jquery.com as increased use of the jQuery with the best development tools. Websites like rubyonrails.org and joomla.org are also famous and must for the programmers.

For the development related to Microsoft products, a programmer must visit msdn.microsoft.com. Visual Studio is such a best development tool for windows related programming work. If the concern is for the database, mysql.com 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/freedigitalphotos.net

Image Courtesy of renjith krishnan/freedigitalphotos.net

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

Embracing Advanced Tools for your Project Development

Image Courtesy of hywards/freedigitalphotos.net

Image Courtesy of hywards/freedigitalphotos.net

Open Source Integrated Development Environments often pop out as the best software advanced tools that consists of both compilers and provide debugging facilities as well.

1. Anjuta DevStudio

It is a flexible software improvement studio which offers and helps in creation of vast and highly developed advanced tools and programming services that includes highly efficient project management, various applications wizard, debugging facilities, source editing, controlling versions, designing GUI, profiler and many advanced tools. It primarily concentrates on offering easy and user-friendly interface, but in an influential way for resourceful developmental processes.

The included file manager plug-in works like a normal file manager, in which directories and files get listed in a resourceful way. Then it is left to the user’s discretion.

Features of the source code editor in Anjuta DevStudio are:

  • Syntax highlighting: The editor provides syntax highlighting feature for approximately all available languages used by programmers. In case if you want to add new language then it can be possible by inserting new files related to language.
  • Stylish Indentation: automatic indentation facility of code depends on the basis of language user is applying or can also be done at the time of setting indents.
  • Accomplish code formation automatically by doing reformation of the indent.

2. Code::Block

It is an open source C++IDE, which fulfils all the programming related needs of programmers. Its designing is accomplished in such a way that it is easy to configure and extend. This IDE is full of excellent abilities, it has a simple appearance and reliable functions around all platforms. Code::Block is constructed around plug-in frame, it is extensible with the help of plug ins. Many functions can be included in this IDE with plug-in installer and coder, for e.g.  Compiler and debugger are already included in plug-in.

Posted in Programmer Tools | Leave a comment

Performance Analysis Tools you Can’t Ignore

Performance Analysis Tools

Image Courtesy of Suat Eman/freedigitalphotos.net

Performance Analysis Tools is critical and complicated process of making business solution. Software developer has to react efficiently and quickly due to the real time requirements of developing the software. There are many paid as well as open source software development tools available in the market that follows software development life cycle or methodology.

Performance Analysis Tools methodology follows the following steps thoroughly or a combination of stages.

  1. 1.      Analyzing the Problem

All the user level requirements are analyzed in this phase.

  1. 2.      Market Research

Other than the given problem, same applications related to given problems are analyzed for reference and knowledge purpose.

  1. 3.      Requirement gathering for proposed business application

All the requirements are gathered and prepare SRS (software requirement specification) document for better understanding.

  1. 4.      Design for the business solution

Database diagrams and UML diagrams are prepared according to modules associated with the project.

  1. 5.      Implementation or coding of the software

Select one appropriate language and code according to the requirements.

  1. 6.      Testing the software

Testing will be done to check the efficiency of the development.

  1. 7.      Deployment

Actual developed project is deployed fully.

  1. 8.      Maintenance and bug fixing

All the software needs maintenance and facility to fix the bugs in order to improve the efficiency of software.

Depending on the requirement of the customer best development tools can be categorized in following ways:

  1. Performance analysis tools
  2. Debugging tools
  3. Static analysis and formal code verification tools
  4. Precision Checking tools
  5. Memory usage tools
  6. Application build tools
  7. Integrated development environment

The above stages can be referred collectively or individually as the software tool development life cycle. Waterfall model, rapid application development, joint application development, the prototyping model and spiral model are fine examples of system development life cycle models.

Software tool development can be available in many forms such as binary compatibility, compilation tools, linking tools, performance analysis tools, source code formatting tools and documentation generating tools.

 

Posted in Programming Tips | Leave a comment