Top 5 Techniques for improving your Programming Skills

“ First, solve the problem. Then, write the code. ” – John Johnson

The question that novice programmers often ask is, How to improve programming skills? If you had this question in mind and if you are reading this article with the hope of getting ideas to improve your programming skills, Congratulations, you are at the right place.

Here are 5 ways to Improve Programming Skills.

1.Practice, Practice, and Practice:

practice

You may have mastered hundreds of programming languages and tools, but the only way to improve your programming skills is by applying them.

  • Pick one interesting project which excites you, Work on that.
  • Join competitive coding. There are a large number of websites that test your ability to use code for problem-solving that you might not encounter every day. Sites such as Code chef and Coder Byte are set up to test how you would use code to solve various problems.
  • Here are few tips to Practice…
  1. Use sticky notes. Use it to remind yourself of what you have to do.
  2. Earmark a few hours every day for programming. Follow it with no exceptions.
  3. Reward yourself of completion of programming tasks before the deadline.
  • And the ultimate way to get good practice is by joining in a good company, where coding takes the front seat and not the excel sheets.

2.Keep Learning:

keep learning

Some people never give learning much thought which it deserves. They pick up bits and pieces in an unstructured way, learning just enough to get through the job at hand. Often, they just shrug and give up – calling out a handyman for every little thing, or asking a colleague at work to do something “difficult” for them.

If you ignore the important of continuous learning, you will:

  • waste moneyYou keep needing to pay for professional help – when it’s a task that you could’ve learn how to do yourself. Maybe you “can’t cook” so you always eat out.
  • Miss opportunities: You get passed over for promotions, because you don’t show any interest in picking up new skills at work.
  • Lose a great source of fun and fulfillment : There’s enormous satisfaction to be found in learning things and really getting a new concept or skill. Don’t let any bad memories of school put you off.

3.Read and write Blogs:

read and writeBlogs are often written by programmers themselves and most of them share their personal view and experience which are often relevant. Also, blogs  are a small piece of information so they can be digested well. A blog also helps to learn new technology and new features of existing language and API.

And writing blogs helps you build your professional network and as well as, helps other beginner level programmers.

4.Code Review:

codereview

Code review helps to become a good solid programmer. Code review helps both reviewer and author. Reviewer can improve his/her code sense and offer genuine advice while author learns from his/her mistakes. It often helps that the code you think is rock solid, has some bugs which only other programmer can see, Code review and four eye check does that for you. If you are lucky and get a chance to work in a company which has unit testing, code review as discipline then you are likely to be a better programmer than rest. These two things immensely help to improve programming skill.

5.Master the Tools and Languages you use:

language ussFocus on developing a solid grasp of the advanced concepts in that language, and gain familiarity with core, language libraries.  Make sure that at least one of your languages is a scripting language (e.g. C#) that you can use as your Swiss army knife for quick tasks.

If you are not too efficient on your Visual Studio or any other IDE, ask some of your more effective co-workers if they would mind you watching them for a bit while they are coding.  Are they using keyboard shortcuts or editor functionality that you are not familiar with? Does that make them much more efficient?  If so, learn and practice the same.  Search for productivity tips online for whatever development environment you use.

While coding, your coding skills will improve; coding will show you some barriers you will need to bypass and you will find new problems you will want to solve.

Just do it…Happy coding

 

 

 

How to improve your coding skills

Image

The best way of improving your coding skills is firstly “Throw your fear on coding in the dustbin” and stop thinking about whether I’m doing correct (or) wrong. Because the best programmers are the people who make a lot of mistakes and wrong coding in the beginning. So if you are doing wrong coding now then you must feel great that you’re going to become the best programmer soon.

11

Everyone may have their own definitions on improving coding skills. In my definition following are the characteristics:

  1. Practice
  2. Analyse
  3. Optimizing
  4. Share knowledge

Practice:

2

  1. Practice all the basic programs like an even-odd number, prime numbers, Fibonacci series etc.…..
  2. Don’t just copy and paste the code from your material that will never improve your logical thinking.
  3. Write a program with your hands.
  4. Debug the code ‘N’ number of times until you understand the logic behind that program.
  5. Take own requirements and try to get expected outputs.
  6. Follow all the naming conventions.
  7. Write comments for every 3 line of code or for every block of code.
  8. Do hard work first smart work next.
  9. Think out of the bounds.

Analyse:

3

 

  1. Imagine a picture of work before start programming.
  2. Proper planning is required before implementing the code.
  3. Choose tools which are required for your requirement.
  4. Think like an End User, to make your application more efficient.
  5. Commitment before starting the application and take a deadline, unless you take some deadlines you will never finish the program/ application.
  6. Understand the error before searching for a solution.
  7. Don’t just copy and paste the unknown code from the internet, understand the flow of the code first. And learn the unknown topics from that.

Optimizing:

4

  1. Think of the alternate ways of implementing the code.Ex: Think like what is the fastest way to compute the Nth Fibonacci number. In the formal case, there is a simple formula. In the later case, the recursive definition allows for an iterative approach which only requires an addition and variable shuffling at each stage.
    Binet’s formula corresponding to the nth Fibonacci number,formula
  2. Take your friends or colleagues advice on how you can code in another way.
  3. Diagnose performance problems and measure the speed impact of your code changes.
  4. Remove unnecessary declarations.
  5. Avoid using nested iterations as many, instead, try with other solution.

Sharing Knowledge:

5

  1. Participate in group discussions and Seminars or Webinars.
  2. Review others code so you can learn some new concepts and their way of writing.
  3. Read blogs, forums, and articles

.Net (Vs) Java

  1.   Java and .Net are two incomparable guided, but by fact that .Net is Framework of simply platform and supports for almost 63 languages and java is just a programming language.
  2. These two technologies have different syntax but gives the same result.Let’s look at some basic imports and usings used in java and .Net.
.Net Java
C# Namespaces usings Java Packages imports
System.IO Java.IO
System.Collections Java.Util
System.Windows.Forms Java.awt, javax.swing
System.Threading Java.lang
System.Drawing Java.awt

Now let’s look at some application based differences.

.Net Java
Windows Applications Net is very popular in desktop development providing both Windows Forms, Windows Presentation Foundation (WPF) and Silverlight. Java uses AWT ( Abstract window toolkit ) and swing libraries to develop windows based applications.
Web Applications For web based applications it uses ASP.NET, MVC. For Web Based applications it uses J2EE and web Server scripting it uses JSP, JSF, Servlets.
Android Applications Xamarin commercially distributes the MonoDroid and MonoTouch framework for Android and iPhone development. And can build with a hybrid container called Apache Cordova.

Windows Phone 7 uses Silverlight.
Windows Phone 8 uses C# and XAML.

Java ME is made up of various profiles that are subsets of the Java desktop environment with additional libraries targeted at mobile and set-top-box development.
Web Services For Web Services it uses JWSDP (Java Web Services Developer pack). It uses web services.

Now let’s look at some basic differences.

Java  .Net
Java is a programming language .Net is a framework
Developed by James gosling at Sun microsystems in 1995 and which is now owned by Oracle Corporation. Developed by Microsoft and its first release in 2002
Is shared by many platforms and platform independent. Is shared by single platform and language independent.
Uses common language and some may argue that Jython is an alternative, but later Jyton creator created its. Net version called IronPython. Can use many languages and generates platform specific code which is called as native code.
Has support to open source platform. Has no direct support for open source platform.
Java is renowed as “Write once run anywhere” .Net is renowed as “Write once and debug anywhere”
One cannot code .net code on java platform One can code java code on .Net Platform
Based on third party tools and server providers. It has the powerful IDE than any Integrated Development Environment.
To create a simple control it takes a lot of programming for the developer. Can easy drag and drop controls process, so that developer no need to worry about designing and can concentrate on development issues a security.
Application Development can be done on very less configuration system. Required High configuration system.
To clean memory, java programmers need to do it manually. Whereas .Net Garbage collector follows AMM (Automatic Memory Management).
Don’t support disconnected architecture where multiple round trips are needed using JDBC. Has most advantages with disconnected architecture using ADO.NET.
C language code cannot get executed by java Can write even C language code and execute using.Net F/w
For Business logic, it uses EJB (Enterprise Java Beans) / Servlets. For Business Logic it uses Code Behind, Remoted Classes.
For XML parsing it uses JAXP and others. It uses Built-in System.XML.
Java source code is converted to bytecode by JVM (java virtual machine). .Net source code is converted to MSIL (Microsoft intermediate language) code by CLR (common language runtime.)
For web Server scripting it uses JSP, JSF, Servlets. For web server scripting it uses ASP.NET or classic ASP.
Object Persistence: Entity Framework, NHibernate. Object Persistence: Hibernate.
For unit testing it uses Junit. For unit testing, it uses Microsoft Unit testing Framework, NUnit
Local server Apache Local server is IIS (Internet Information Service).