Getting Started With Computer Programming
If you want to get started with programming, there are a wide variety of programming languages to choose from. Each programming language has its own special tools and techniques that you use to develop apps. Usually all the software you really need to develop programs is free.The two most popular general-purpose programming cross-platform languages in the world at the moment are Java and C++. You can find free tutorials on both of these languages on this site - see below.
Should I Learn Java or C++?
Most beginners who want to get seriously into programming will probably want to learn Java. You can create everything from games to desktop programs to secure online banking sites in Java. You can find a fairly complete free tutorial here: Java Tutorial for Complete Beginners
Some advantages of Java:
- Relatively easy to learn (although you have to be patient and persistent to learn programming)
- You can create apps which will run on a wide variety of operating systems
- Java is the world's most popular programming language
- You can go on to learn to write programs for the Android operating system
Some people may prefer to learn C++. This is a faster and more powerful language than Java, but it's not as easy to get to grips with. It's also true that creating a website with C++ would be a bit like cracking a nut with a very complicated sledgehammer. But if you require efficiency, speed and power, C++ is a good choice. You can find a free beginners' course on C++ here: C++ Tutorial for Complete Beginners
Some advantages of C++:
- C++ is very fast and efficient
- Create true 'compiled' programs, for example .exe for Windows
- Lets you do just about anything that can be done with your computer
- The language of choice for creating high-end games, operating systems and even other languages
How Long Will It Take Me To Learn Java or C++?
This question is really impossible to answer definitively. There are huge individual variations in how long it takes to pick up programming. My Java course has been around for a couple of years now; some people tell me they have breezed through it in a few weeks, but I suspect that most people would need to practice a little most days for six months to a year before really beginning to feel anywhere near comfortable with the language.
Of course, if your sole task in life from this moment is to learn to program and you have nothing to distract you (such as a job or family), you're probably going to get the basics down in a few weeks.
What is unquestionably true is that you can't learn to program just by watching videos. You'll need to try out all the code in my courses yourself, and try to think of ways to elaborate upon it, or else Google for exercises (I give some in the C++ course but not the Java course). Or even better, think up your own simple programs to write, like text-based games that ask people to guess things or get them to answer questions. Attempting to write your own programs is a sure route to programming success, but it will take time.
Remember, programming requires concentration and a lot of time. It's really only worth learning to program if you think it's the kind of thing you might enjoy doing. If you just need money, while software jobs do typically pay very well, there are probably easier ways to get money than programming.
What Can I Do With Basic Programming Skills?
The above courses will teach you the core syntax of these languages. Many people find this is enough to get them a job; while some employers require you to have IT degrees, others don't care, as long as you can program. I don't have one myself!
Of course, you'd have to be lucky to get a job after learning the basics of programming in a few weeks. If getting a job is your aim, better to count on a year of part-time effort, during which you'll first learn to program, then attempt to write some interesting programs that you can talk about to employers. There are no guarantees in the job market, but global demand for software developers continues to be high.
Many people learn programming for fun, or to try to develop apps that they can sell. To develop a commercial saleable application, you'll need to learn more stuff beyond the basics. You can find information about what to learn further down this page. Learning to program can of course also help you automate routine computer tasks, and it's a highly useful research tool for scientists and mathematicians, both professional and amateur.
What Should I Learn After the Basics?
If you've already learned to program in Java or C++, I have a variety of courses that might interest you. Firstly, honesty compels me to admit that there are many interesting options in programming beyond what I can offer on this site. You can learn other computer languages, such as Python or C# (C Sharp), you can learn to write programs for iPhones or other devices, you can learn about the Internet or databases, and so on.
If you've completed my Java for Complete Beginners course, you could go ahead and tackle something like JMonkey, for writing games; or its C++ equivalent if you've completed C++ Tutorial for Complete Beginners, Ogre3D.
I do have a few very good options for you right here on this site, however! Let's take a look.
Android
Android is an operating system for mobile phones and tablet devices. There seems to be a huge number of jobs available in Android development at the moment. You can take my Android 4.0 course directly after going through most of my course; you might want to supplement your knowledge by learning a little SQL too, but basically this course is a fairly-good follow-on from my basic Java course.
Desktop Programming with Java Swing
Swing is Java's built-in system for creating desktop applications. While Swing is intended to one day be replaced by JavaFX, at the moment JavaFX doesn't seem to be making huge headway and Swing is still far more widely used. You can find my Swing course here: Mastering Java Swing.
One thing that will help you with the database side of Swing programming is learning some SQL, for example using the free MySQL database. I demo some SQL in my Swing course, but it's worth gemming up on it separately if you intend to work with databases. Apart from that, this course is a good follow-on from my basic Java course, and indeed Swing is often taught in universities as the next logical step after basic Java.
Servlets and JSPs
Probably the biggest area of Java programming after Android, is web programming; in other words, creating websites using Java. Java doesn't lend itself to creating the all-singing, all-dancing web sites of the likes of Facebook; you need other technologies in addition to Java for that, and you may even want to use something like PHP instead of Java.
Java is really intended to create highly secure, powerful "back ends". Java enables you to create those elements of websites that work behind the scenes, interfacing with databases and serving up the HTML, CSS and Javascript that actually make up what you see in your browser.
Probably the most basic and fundamental elements of Java web programming are servlets (special Java classes that create HTML), JavaServer Pages (JSPs) and JSTL (a technology that lets you automate the output of HTML in your JSPs).
Yes, it's a bit of an acronymfest, but my Servlets and JSPs course will help you get a grip on it. You can tackle this course after following my basic Java course, but you'll want to also learn a bit of HTML and SQL, and you might want to look into CSS and Javascript too.
Java Spring Framework
Once you start to create really complicated websites using Java, you might want to use a "framework" to organise your servlets and JSPs. The most popular Java web framework is called Spring. You can also use Spring to do non-web stuff, like dealing with a database -- especially if you combine it with Hibernate, which I also show you how to get started with in my Java Spring Framework 3.2 course. In fact you can write any type of program using Spring, but for most programs it wouldn't really be useful.
This is really a follow-on course from my Servlets and JSPs course, but you can tackle it directly after learning basic Java if you like a challenge. You're going to also want to learn a bit of HTML and SQL and maybe some CSS and Javascript too.
Advanced C++
If you've worked through my basic C++ course or you know basic C++ . But so far it includes stuff on files, exceptions, STL and C++ 11 among other stuff.
C++ is better for beginners...after learning C++ you can easily learn java. Thats why many schools and colleges teach C++ first.
ReplyDeleteYes, C++ is best for Beginners..
ReplyDelete