Wednesday, 8 January 2014

How to Learn a Programming Language

Whether you want to design a video game, develop some cool apps for iPhone or Android or just want to do it for fun, programming is the way to go. Keep reading for detailed instructions on learning a programming language.



1
Decide your goal. Learning a programming language can be both quite interesting and challenging. Even university graduates study a language for years but they might not be able to figure out their specialty. So first decide what you want to become, for example a programmer, a game developer or a robotics expert.



2
Choose a programming language. Always start to learn from a core language. When you first begin to learn, choose mid-level language like C and afterwards C++. Learning these two is a must for any competent and complete programmer, as these are industry standards. Don't start off learning high level languages such as Java or something else as they can prove to be very confusing for a beginner. (You can always learn other languages later, of course, but you'll want to have C and C++, at a minimum, under your belt.). Since C/C++ could look too hard to true beginner, you may prefer Python also. It is widely considered as a good language for beginners. Study a language for at least one year. Learn the common programming paradigms, especially procedural and object-oriented. Read a lot and practice with a compiler or IDE (there are many free ones online). Once you've mastered a language, do not rush to implement. Instead buy some good books on data structure and learn the key subjects like searching, sorting, binary tree and linked list creation etc. Whether it is about game or software development, data structure is the protege. Later, you may move on to a high level language such as Java[1]. For serious programming learn computer algorithms like divide and conquer, greedy method, backtracking, etc. for another year at least.



3
Fall in love with mathematics. For various reasons, many avoid mathematics or just hate them. But to become a good programmer you must solve and exercise a good number of problems on a daily basis, say one problem for one day. As you can see, it is easy to say but difficult to do. It is not important how much knowledge you have in a language but its relevance to a particular problem. Most problems are related to mathematical series (Fibonacci, Floyd triangle, Fourier Series etc). Not only that, there are many mathematical equations that can save a lot of time. So, start to learn new equations and their aspects. Learn discrete mathematics and calculus. Without mathematics, coding is like grassing the cattle.



4
Be self-motivated. Remember, Rome was not built in a day. So don't rush to learn all in a day. Learning programming is not so easy because it employs logic frequently. So, try to understand the logic and practice it, practice until you memorize it. If you are only trying to memorize, you will miss the fun and the concept will be left unclear to you. So, stretch yourself to the limit, but don't try to run before you can walk.



5
Take your time. Even the most accomplished programmers fail to solve a simple problem on certain occasions. So, try to relax when solving a particular problem. Take notes, find a proper algorithm or prepare your own. This is why you must learn data structure and study mathematics. It takes many hours of practicing problem-solving skills on different types of problems before you can call yourself an expert. Sites like Project Euler or Codecademy[2] have many small programming assignments and tutorials that will help you practice and hone your skills.



6
Never back down. Programming can be very frustrating and annoying too if you act carelessly but once you solve a problem all frustration will disappear. Do a lot of calculus (Fourier, Vector, Boundary Problem, Linear Algebra, Matrix). When working on a particularly intricate problem, take periodic breaks to let your brain relax and relegate the problem to your subconscious mind. Make a good schedule for working. When you feel bored, take a nap or walk but never give up, never back down.



7
Become a master. Try to teach others and show your developed applications to others. If you know someone who is better than you, share your thoughts and problems with them, share experience as it will enrich your arsenal. Try to develop your own application imitating professional software like text editor, windows application. Take part in competitions to push yourself to the limit if you dare. Knowing one programming language is good, but mastering more is better, as you'll not only have more tools in your toolbox, but expose yourself to other ways of solving problems, because Regardless of what language you use most often, having knowledge of others to draw on will make you a better programmer and better able to understand common constructs and problems in the abstract. So learn several programming languages, especially two or three with different design philosophies, such as Lisp, Java, and Perl. But learn each of them properly.



8
Be a bookworm. Most well versed programmers are good readers too. They think before they even type a line of code. So, read a lot and think. Recheck your works once a week. (Document your code well, in order to make said rechecking easier.) Further, invest some money in good books. Try to buy the best (not necessarily the best selling) resources. Never slavishly follow a single resource as it will make your outlook narrower. So once you master something, research on it for more use and variations.



9
Invest in Training Centers. If you are not satisfied with your teach-yourself technique, enroll yourself into some beginner's course. But before the enrollment, always research on the previous graduates.



10
Have a lot of practice. Solve hundreds of programming problems. It would be the best if you can invent a lot of them yourself. However, if you can't, several web-sites could be useful:
  • TopCoder - popular US competitive programming website - it can really boost your algorithm knowledge.
  • Codeforces - other competitive programming website - contests here are held bit more often than at TopCoder.
  • Project Euler - great web-site with math-related programming problems.
  • CodeAbbey - problems targeted to real newcomers in programming, simpler then at the resources above.

TIPS :-

  • Make use of up-to-date application programming interfaces and official reference materials available from the software publisher.
  • When you learn something new, it is often helpful to implement it yourself and then tweak the design, predicting the results, to make sure you understand the concept.
  • Get involved in a language standardization effort. It could be the ANSI C++ committee, or it could be deciding if your local coding style will have 2 or 4 space indentation levels. Either way, you learn about what other people like in a language, how deeply they feel so, and perhaps even a little about why they feel so.
  • References are there to help you. Don't be ashamed if you don't remember everything by heart; that comes with time. The important thing is knowing where to find reference material.
  • For automating tedious tasks ("scripting") on Windows, look up C# (which is similar to Java), Visual Basic; for other platforms, Perl, Python, and bash (or other shells) are common.
  • For practice, try to teach others. It will not only make you more competent but let you think more deeply from different perspectives.
  • If you are interested in game programming, investigate Python, C++, and Java. Of the three, C++ is probably the best performer, Python by far the easiest to learn, and Java best able to run on Windows, Mac OS, and Linux without change.
  • For most people, programming something that interests them or that they can use is more interesting than textbook examples. Use a search engine to find out about projects that interest you.
  • Practice everyday at least for couple of hours, remember, a perfect practice makes a man perfect.
  • Tutorials of any sort are not sufficient to learn a language well. Try to find people around you who have the same interests, and learn from one another. Browse and join message boards so you can be exposed to the techniques and discussions of a dynamic programming community.
  • Talk to other programmers; read other programs. This is more important than any book or training course.
  • Learn the most-used and industry-level algorithms.
  • Take notes and design your own solutions for any particular problems, then seek assistance from others.
  • Solve a good number of problems in Java.
  • Try to solve simulation type problems.
  • Learn about Free software. Study the source code of the programs available at the Free software directory. Why re-invent the wheel when you can make it better? Just make sure you understand what you're programming.


SOURCES :-










No comments:

Post a Comment