How to Learn Your First Programming Language

Introduction

Programming is a very useful and rewarding hobby. There are few better feelings than when someone sees you using a program you lashed together to make your life easier and says that it looks really useful. Most people have, at some point in their lives, really wanted to be able to do something on their computer or phone and been unable to. If you know a programming language, then there is often a fair chance that you can write a program to accomplish that task yourself. While there are a huge number of programming languages, many of them have a lot of similarities; this means that once you learn one language quite well, in most cases you will be able to pick up a new one far quicker.

Limits

One thing that all new programmers must come to term with is the amount of time learning a programming language takes. Although when you have become an expert you will be able to write many programs quickly, you must remember that many programs have taken whole teams of expert developers years to create. So it is important to understand that knowing a programming language or even several is not enough to write some of the more complex programs you have seen. Don’t look upon this new hobby as a way to save yourself a lot of money, as writing your own version of most of the programs that you need to pay for now will be out of your reach.

The most important thing that a new programmer needs to know is that the “Learn Programming in 24 hours” sort of books are simply not true. A more accurate title would be “Learn Programming in 10,000 hours”. If you put 24 hours or a week into learning a language you will not be creating the next Windows or a new, state of the art game. It is possible to learn to write a program in 10 minutes, and really all you need to learn a new language is your favourite search engine, but you will not be an expert. The only way to become an expert is much like learning the violin; the answer is practice, practice and practice some more.

Selecting Your First Language

Now that we have examined the limitations and handled some of the more unrealistic expectations, those of you still wanting to learn to code will be happy to know that programming is not a hard thing to start learning and will not require you to pay out huge sums of money. If you are reading this article on-line, you already have the resources to start with some languages, so let us consider what your first language ought to be.

Traditionally the first language a programming newcomer learns is either Visual Basic or Python. The first thing to understand is that these two languages are very different. The simplest difference is one of price. Python is totally free; you can start writing python now with just a text editor on your computer, though if you are on Windows, you will probably need to install it first. However Visual Basic, often abbreviated to VB, is both free and not free. On the upside, VB can be simpler for newcomers to learn because it allows you to build the interfaces (the part of the program the user will see) by dragging and dropping the different parts much like designing it in some basic art application. The version of VB newcomers learn is usually Visual Basic 6, but this is rather outdated and has been discontinued. So these days the version learned is often VB.NET which can be considerably less simple for newcomers.

VB.NET must be developed inside what we call an IDE (Integrated Development Environment); this is basically a special program you use to write other programs. They also exist for Python, but their use is totally optional. The free VB.NET IDE is called Visual Studio Express. At the time of writing, the latest version is Visual Studio Express 2010. Unfortunately, by using the free version of the IDE you are restricted with what you can do, and any programs you create cannot be commercially sold on. Regretfully, the full paid version of the IDE is not cheap, and probably not appropriate for a hobbyist, but fortunately to learn VB the free version is enough. In practice, very few commercial programs are developed in VB these days, but the Visual Studio IDE allows you to use many other languages. The familiarity you will develop by using it will also allow you to use the power of the IDE for development in many other languages. Some will argue that almost every language can be developed in a text editor and that they are by far the most flexible way in which to code. While this is technically true (and I do suggest trying development in a text editor to compare once you get a little better), I would strongly advise learning your first language with a proper IDE.

While traditionally, people learn Python or VB first and these are generally what is taught at schools, I would not suggest either of these. I am of the opinion that your first language should continue to be useful to you one it has served the purpose of helping you learn the fundamentals of programming. If I had to recommend one of these for newcomers, it would be VB.NET as often the most complex part of programming is the graphical side of things and in VB.NET this is very simple due to the drag and drop interface. These two languages are often used as introductions as they are very tolerant of mistakes, and allow you to become confident in programming principles without worrying about a lot of the more complex matters.

How to Remove Any Unwanted Program

What is an uninstaller program and why do you sometimes need to use it?

Well, if you’re reading this article, you may know the answer already? Yes, to remove those pesky little programs, that does not appear in windows’ ADD/REMOVE utility. Or those sneaky spy ware programs, that, having installed itself on your computer, without your permission, proves almost impossible to remove via the conventional uninstall methods. As well as those programs, where the program manufacturer, after you got to uninstall the unwanted programs, intentionally left behind myriads of scattered files, which may either act as hidden spy ware, collecting data unobtrusively, or frequently causing pop-up messages, which warns you of virus infections, every 60 seconds and prompting you to download additional software, from a particular site. Aside from driving you crazy, these files can cause all sorts of problems, such as error messages popping up constantly i.e. runtime errors, rundll32 errors etc.

Now this is one of the reasons, that Stand Alone Third Party Uninstaller Programs exists. In a Perfect world, there shouldn’t be any reason for such programs to be around. However, there are those manufacturers, that creates great products ,with excellent features and properties, but sadly, the big let down comes with the uninstaller section. This is the section, that not enough development and testing resources are spend on. These manufacturer’s don’t always realize that there software causes major changes to the operating system, through file associations and / or file replacements, and if these changes are not logged in a log file, during the installation process, it may prove very difficult to reverse these changes , when you wish to uninstall or remove some unwanted program. It may even put you in a spot, where you have no other alternative, because of the instability of your operating system, caused by files which were deleted ( maybe accidentally, perhaps), to format your hard drive and re-install windows or whatever operating system you’re using. If , like me, you have a lot of files and programs, which you’ve accumulated over a long period of time, possibly years, and you have no backups, then it can really be a disaster which can set you back for some time.

There are ways and means to manually uninstall and remove unwanted programs, but let me emphatically stress : Do Not Simply Delete These Files From Your Computer’s Program files section, without having tried using the program’s uninstall function. You may unknowingly delete system files that are used by more than one program. If you cannot find an uninstall function, or if the program does not appear in the windows Add/Remove list,– and this is for advanced PC users only,– you may access the windows registry, where you will find data entries, related to the unwanted program. However, I suggest you stay away from the registry, even if you are an advance user, and rather make use of one of the many uninstaller programs out there. This type of program has been specifically developed to assist with the uninstallation of “hard to remove programs”.

Here are a few general guidelines, to what makes a good uninstaller.

A good third party uninstaller usually consist of the following parts :

A logger : This is simply a program that writes all installation changes to a log file – i.e. files that were added and /or changed, as well as registry entries etc. ( You may have tried to uninstall a program and getting and error” log not found”. The log referred to, is the log file entry of that particular program at the time of installation. Without that information, uninstallation of that program becomes quite a daunting task )

An Uninstaller : This program reads the log file (if there is a log), noting the system changes, and proceeds to reverse these changes during a program uninstallation, hence the uninstaller tag.
An Analyzer : Not all uninstall programs incorporate an analyzer. Basically what this program does, is, if no log file exists, it scans the windows registry for all entries and traces relating to the program in question, and then proceed to delete those files and remnants, which were found.
A Watcher : After installation of the uninstaller program, the watcher will automatically activate every time a program run its installer program. This is especially useful in cases of spy ware or browser hijacking software, which will start occasionally, to send information, or activate a pop-up banner. In this case the Watcher will log this and allow the computer user to uninstall such applications.

Very important : Always, and I cannot stress it enough–Select an uninstaller program, with a build-in logger module. That way, if you need to uninstall those dastardly unwanted program you’ve installed the day before, and which is causing your computer to behave like C-3PO ( LOL – the Star Wars Android robot ) , then you don’t need to panic, because getting rid of it, is now very easy.

Prior to 1992, when Jack Bicer, who worked for Symantec, created the original uninstall idea, computer users frequently, had to completely uninstall their computer operating system ( formatting the hard drive) and re-installing, to get rid of unwanted programs. Most of these programs were written when the idea of an uninstall program, were not even conceived at the time. Imagine still having to do that nowadays.

Now any good, uninstaller program, should be able to do most of the following :

Thoroughly scan the registry for any files related to the programs you wish to uninstall.

” Allow you the option to choose which files you want to delete.

” Forcibly remove programs that do not have an uninstall option-such as certain spy ware or pop-up banners ( such as browsers hijackers).

” Back up your registry before activating any changes i.e uninstalling certain programs and then find finding your system becoming unstable after the installation. This will allow you to reverse these changes, by installing a saved version of your registry.

” Monitor running programs to detect start-up programs, such as auto dial spy ware, banner popup programs, pop up blocker and browsers dialers. These applications can then immediately be removed.

” Auto update function as well as excellent product support may often be lacking on the free software versions. You got it for free, didn’t you?

A quick word of advice.. .. An uninstaller program is what the name implies. It uninstalls or remove unwanted programs.. A registry cleaner is just that.–A program that mops up any loose and scattered orphan files, finding broken links and redundant registry entries. Although they may have similarities, the two utilities have totally different architectures, and are mostly suitable for one particular job.

As to my experience, at the time, while I was conducting my own research as to how to remove these annoying programs, I quickly found, that, instead of causing myself more hardship over and over again, by trying to do it myself ( these uninstallations), it was best to invest in a good uninstaller program. That way, if the software didn’t do what it was supposed to do, I could yell at someone else.

Can’t Think of Something to Program?

Reinvent the Wheel

A lot of times, you’ll hear programmers say, “Do not reinvent the wheel”. What they are usually referring to is when an algorithm or application exists for a common problem and there is no need to replicate this. However, when you are first starting to program this can be an insanely helpful task. Programs like “Hello World”, a simple calculator, a timer, and a clock are all relatively easy to complete and plenty of people have made these types of programs, so there are definitely resources online to help you if you get stuck.

Ask Professors

If you are taking a programming course you are most likely being assigned programming problems as part of your course work. However, sometimes this is just is not quite enough. When I was learning how to program in Java, we only had six problems assigned all semester. Granted, these six were big projects, but there were no smaller assignments in between to help consolidate the knowledge we learned in class.

If you are not enrolled in any programming courses and are just learning how to program for fun, you could always try reaching out to a computer science professor and ask them for ideas of what to program, or what they assign in their classes. Also, you could ask any friends who are taking programming courses what they are working on.

Get a Textbook

Most programming or computer science textbooks have a multitude of programming problems and projects within. Along with these assignments also come explanations for the concepts used in each task. Not only will you get an idea of what to program, but you can also learn a thing or two about the programming language that you might not have otherwise. When I took a Visual Basic programming course in college we used a textbook that had about twenty small applications per chapter. At the time I hated how many applications we had to create, but ultimately it helped me become a better program through constant repetition of key concepts and use of the language. The good news is you can probably find some of these textbooks at a library, online, or by borrowing one from a friend.

Write a Program to Do Your Homework

When I took accounting classes, having to write all of our financial statements by hand got to be a grueling process. Eventually, I got tired of it and wrote a program that created income statements, balance sheets, and cash flow statements based off of a variety of inputs. If you are enrolled in a class that requires repetitive tasks, writing a program to help you complete some of these tasks not only saves you time while doing homework or studying, but it also helps you to understand how the concept works at a fundamental level. When I created my financial statement application I no longer made little mistakes when writing the statements on exams, because I had to understand every little part of each of them in order to successfully replicate the process. Any type of math class, physics, chemistry, and finance are also great subjects to write programs for class.

Ask Family and Friends

You would be surprised how many times my friends and family members have come to me with ideas of programs or applications they have come up with. Fortunately for me, they know I am a programmer and usually come to me with the ideas without me having to ask. If you are stuck on what to program, just ask them! It is similar to having writer’s block and asking for ideas on what to write. Usually people have very generic ideas which will help you as a programmer when you have to take a high level description of an application and build an entire foundation under it.

Browse the Internet

When in doubt, Google it. Just by typing in “What to program” into Google’s search bar I received a variety of links to discussion pages, forums, and blogs about what to program. Sometimes universities will post curriculum or assignments to the public, which are easily found using a Google search.

Search Forums

A lot of times when people get stuck on a program or application they turn to a development forum or StackOverflow for help. A good practice is to take their pleas for help and try to solve their issues. While some of these solutions can be extremely difficult to find, and sometimes they are impossible tasks, it is a good place to start. If you cannot figure out how to solve their issue, you have done no harm. If you are cunning enough to supply a solution, you have not only improved your own programming abilities but also helped out someone else!

Challenge Yourself

With the growing trend of Hack-a-thons, more and more programming challenges have begun to surface. Some are for scholarships, some are for bragging rights, and some are actually for money. These challenges are another great way to find new ideas and to continue to improve your skills. Start off by finding the easier challenges that are meant for beginners and work your way to the more intermediate and eventually advanced challenges.