Introduction
Programming is a really helpful and fulfilling avocation. There are few better feelings than if somebody sees you with a schedule that you lashed together to make your life simpler and states that it seems really helpful. Many people have, at any time in their lives, actually wanted to be in a position to do something in their computer or telephone and managed to. Should you know a programming language, then there’s frequently a fair probability which you’re able to write an app to do this job yourself. When there are a massive number of programming languages, so a lot have a great deal of similarities; this implies that after you find one language fairly well, normally you’ll have the ability to get a new one much faster.
Limits
1 thing which all new developers must come to term with is the total amount of time learning a programming language requires. Even though whenever you have become a specialist you’ll have the ability to write many applications quickly, you need to remember that lots of apps have taken entire groups of specialist developers years to make. So it’s necessary to see that knowing a programming language or perhaps a few is not sufficient to compose a number of the more complicated applications you’ve observed. Do not look on this new hobby for a means to save yourself a good deal of cash, as composing your own version of nearly all of the apps which you will need to cover today will probably be out of your reach.
The most significant thing a new developer has to know is the”Learn Programming in 24 hours” kind of books are not really correct. A more accurate name would be”Learn Programming in 10,000 hours”. If you place 24 hours or a week to studying a language you won’t be producing another Windows or a brand new, state of the game. It’s possible to learn how to write an app in 10 minutes, and all you want to know a new language is the favorite search engine, however you won’t be a specialist. The only way to become a specialist is much like studying the violin; the response is practice, practice and practice some more.
Selecting Your First Language
Now that we’ve analyzed the constraints and managed a number of the unrealistic expectations, people who are wanting to learn how to code will be delighted to know that programming isn’t a tough matter to begin learning and won’t ask that you pay out huge amounts of money. If you’re reading this article online, you currently have the tools to begin with a few languages, so let’s think about what your initial language should be.
Traditionally the primary language a programming novice learns is Visual Basic or Python. The very first point to realize is that both of these languages are extremely different. The simplest difference is one of cost. Python is completely free; you may begin writing python today with only a text editor on your own pc, though if you’re on Windows, you will likely have to install it . However Visual Basic, frequently abbreviated to VB, is both free and not free. On the upside, VB may be easier for novices to understand because it permits you to construct the ports (the region of the program that the user will see) by dragging and dropping the various parts similar to designing it into certain simple art program. The edition of VB novices learn is generally Visual Basic 6, but that is quite obsolete and has been ceased. So nowadays the variant learned is frequently VB.NET that can be considerably simpler for novices.
VB.NET has to be developed in what we call an IDE (Integrated Development Environment); this is essentially a distinctive program you use to write different applications. They also exist for Python, but their usage is completely optional. The free VB.NET IDE is Named Visual Studio Express. In the time of writing, the most recent version is Visual Studio Express 2010. Unfortunately, using the free version of the IDE you’re limited with everything you can do, and some apps you make can’t be sold on. Regretfully, the full paid version of this IDE isn’t affordable, and not suitable for a hobbyist, but luckily to learn VB that the free version is sufficient. In practice, very few commercial applications are manufactured in VB nowadays, however the Visual Studio IDE permits you to use a number of different languages. The familiarity you may develop by utilizing it will also permit you to utilize the ability of this IDE for advancement in a number of different languages. Some will assert that virtually every language could be developed in a text editor and they are undoubtedly the most flexible manner to code. Though this is technically accurate (and I really do suggest trying advancement at a text editor to compare when you receive somewhat better), I would strongly advise studying your first language using a suitable IDE.
While traditionally, individuals learn Python or even VB first and those are normally what is educated at colleges, I wouldn’t suggest either of those. I’m of the opinion your first language must continue to be helpful to you it has served the purpose of assisting you to learn the principles of programming. When I had to recommend one of them for novices, it’d be VB.NET as frequently the most complicated portion of programming is that the graphic side of things and in VB.NET that is quite easy because of the drag and drop interface. Both of these languages are frequently used as introductions since they’re extremely tolerant of errors, and permit you to be confident in programming fundamentals without worrying about lots of the more complicated matters.
For all those brave souls among you, I would suggest Java as the first language, although it could be complicated, and is consequently not a frequent option for a first language. Java apps are different to others because they don’t run on your own PC. The consumer registers Java, then your code runs on what’s referred to as a VM (Virtual Machine). This usually means your code runs at a distinctive place Java sets up for this – a bogus copy of your own computer – and manages the translation of the into the true device for you. This means that Java apps are”cross-platform”, meaning they will for the most part operate on Windows, Mac, Linux and many other operating systems.
Java is a fantastic language to understand, since it’s quite prevalent and useful. What’s more, it’s extremely strong, and is readily available free of charge for both amateurs and business applications. Nonetheless, in comparison to VB and Python, it doesn’t tolerate mistakes and needs you to be quite particular about everything. It’s likewise an object-oriented programming language, which is a really intricate problem which I shall briefly attempt to summarise. Languages like Python and VB are what’s called procedural languages, meaning the lines of code are run one after another, whereas Java is an object-oriented speech. Object-oriented growth is a phrase thrown around a lot nowadays from the programming world, and although not necessarily appropriate it’s usually regarded as a fantastic idea. In the most elementary level, an object-oriented program is all about items. An item is an”instantiation” of a”class”. A class is a routine used to refer to something like a kitty. The course comprises the information about the cat for example its title, owner and age and”methods” that are basically activities the cat can do, for example miaow. An example of this class”cat” will provide you a specific cat. Nonetheless, this isn’t a Java tutorial, so if you’re brave enough to experiment with Java that you will encounter yourself in much more detail. It’s well worth noting that VB.NET and Python both have support for object-oriented advancement, and Java has the capacity to be utilized procedurally, but these aren’t the languages’ primary intended uses and are not often used. If you did not understand that comparison, don’t worry about it too much. Object orientation is hard to get your head around, but any basic Java or other object-oriented language tutorial will have you understanding everything in that paragraph.
A final reason Java is a good first language is that it is similar in many ways to Javascript, which is an entirely different class of language. Javascript is a scripting language (as is Python), and learning Java will mean you understand Javascript reasonably well. The difference is between scripting languages and normal programming languages is outside the scope of this article, but as a large generalisation scripts are generally used for automated tasks while programs are used interactively by users. This is not totally true, as both types of language are used for both tasks and most web programs are built in Javascript.
As for the actual language you pick, it is entirely up to you. Some may choose the traditional beginner languages or be brave and experiment with Java. Some of you may already have your eye on a language or fancy one of the more specialist languages like Scheme or Prolog. Whatever your choice, the way you will learn how to program is the same.
IDEs, Yes or No?
Many of the purists say that IDEs are a bad idea, and are packed with unnecessary tools and menus that take up disk space and time to learn. While this is true, I feel that an IDE is definitely worthwhile. Many people offer free IDEs, such as Eclipse and Netbeans, for the more popular languages. There is also Visual Studio, which I mentioned previously; it is very intuitive, very powerful and it supports many languages (much as Netbeans and Eclipse do). If you chose to use Java I would suggest Netbeans, as there is a packaged version of Netbeans with the JDK (Java Development Kit). Most languages need an SDK (Software Development Kit) to work with them, and getting it installed properly and linked to the IDE is often the hardest part of the procedure. Visual Studio already comes with the development kits set up, which makes life easier, but other languages like Java and Python can be quite hard to set up properly. This is why I suggested the Netbeans + JDK bundle for those experimenting with Java, as it handles the complex set up for you, which will save you hours of suffering.
There are, in my opinion, three major advantages to using a fully featured IDE. Firstly, they are usually extensible, meaning that there are many free plug-ins that could make your life a lot easier when you get a little more advanced. Secondly, and most importantly, is the ease with which an IDE allows you to debug your code. Most IDEs let you set breakpoints in the code, which will make the program stop when it gets to that point and let you step through it line by line, so you can examine the contents of all the variables at any time. (For those of you who do not know what a variable is, I will briefly explain. A variable is a bit like a train station locker. You ask for one big enough to hold what you want to store, and if what you want to store is the right shape, it can be stored there. When you write a program, any data you want to store temporarily will be held in one of these until you are done with it.) As the old programming saying goes, if you have not found any bugs, you are not looking hard enough. Almost no non-trivial program will work first time, and trying to work out where the problem lies without the use of a debugger is a pain I would not wish on anyone. Finally, an IDE will often give you advice on how to fix issues in the code. This can be very useful for fixing bugs, and saves you having to resort to Google every other minute.
Learning the Language
Now that you have a language and an IDE, it is finally time to learn the language. This, as you may or may not be surprised to learn, is not complex at all – it is simply time consuming. To learn programming for the first time, there is no better way than exploration. Buying a book that walks you through steps will not teach you anything, as you will not understand the reasoning behind what they are doing, and people often get disheartened by the tedium.
The key to learning programming is to have a goal. Think of a task, such as a system to keep track of where you are in all the various TV shows you watch, or a system to let you look at all the books you own in a particular category, or, if you feel brave, try to replicate part of something that you use on a regular basis. My advice would be to start small, perhaps by making a sequence of message boxes that insults the user or a really simple calculator. It is important when you first start that your goals are interesting, challenging and entertaining. If you try to make really boring programs you will quickly get disheartened, so try to inject some comedy into your program. The calculator is a very good introductory program, but after you get the general idea it is important to set quite ambitious goals, as if you keep doing simple things you will never learn anything new. It is important to try to incorporate some of the knowledge you have gained from previous work. One of the reasons most books fail to teach programming well is that they use small examples for each thing they introduce, whereas what you really need to do is plan the task without considering what you will need to accomplish it. This means you will be able to code some of it using what you already know, but most importantly, you will not know how to code some of it. The best way to learn is to learn by doing. Go for a full program that does a task you wanted to do on a computer in the past, work on it, and when you are finished you will have learned a lot and you will have a useful (or at least entertaining) program which is far better than some toy program demonstrating lists.
I have said that you learn by choosing to do projects where you are unable to do certain sections, thus requiring you to learn, but how do you go about finding out how to do them? It’s simple, and most likely the way you found this article. Go to your favourite search engine (like Google) and search for what you want to do – for example, search “drop down list Java” to find some examples of using drop down lists in Java. Because you will need it for another task, and not just to re-do the same thing the examples did, you will have to play with the examples you find and try to get them to do what you want. Just search each bit you need, and before long you will find that most of the basics are as natural as waking up in the morning, and you did it all without spending a small fortune on books, without getting bored and hopefully while being entertained. To this day, if I am bored, I sometimes break out one of my very first programs which is just a list of boxes and a random number generator. It is your task to try to fill all the boxes such that the numbers the random number generator gives you are in ascending order – if you don’t leave space and can’t fit a number in a hole then you lose and must start again. It’s a simple program, but it took a lot of work when I first made it and I learned a lot from the experience.
Once you have a few decent sized programs under your belt, you will find that you know the language well. You will also find that it is rare, no matter how well you know a language, to be able to write a program without resorting to Google at least once just to check something. So with that in mind, it could be argued that you learned the language without ever actually trying to learn it. Clearly there are standards and good practices that you may not pick up on your own, but as you see more examples and read the comments you will find you adopt your own standards rather rapidly.
Learning Another Language
Once you have learned one language, whatever it may be, the most valuable thing you will have learned is all the key words for searches. When you want to do something in a new language, you need only search what you want to do and the language name. However, by now you will know the names used to refer to what you want to do, allowing your searches to be more effective and yield examples and answers much more quickly. As the fundamentals of programming are mostly the same, regardless of the language you use, you will hopefully be able to guess at the meaning of most of the code much more effectively once you locate an example, allowing you to pick up most of the language very quickly indeed.
Conclusion
If you take nothing else away from this article, remember that the best way to learn a skill is practice, practice and practice some more, so don’t expect to become an expert overnight. Remember that programming is not something that can be learned overnight, and that to become a passable expert you probably need to spend at least 10,000 hours programming, so you will need to find ways to remain motivated. Don’t think of it as learning to program – rather, just start programming, and before you know it you will be an expert. Programming is a skill, and while it is quite simple once you have the feel of it, it can be quite daunting to see your little calculator that took you a week and then to consider a modern game like”Batman: Arkham City” and comprehend just how much you’ve got to go.