• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Computer Programming

First of all there is no "best" language to learn first, the best thing to learn first are the concepts of software design. I would even go as far as saying it is important to understand hardware architecture, number base systems, logic and bit manipulation before delving in to languages and syntax (although you can skip these but you might end up wishing you hadnt)

Now C is my favourite language, once you get your head around pointers the rest of the language is childs play. If you know C you can easilly adapt to C++ and Java as the syntax is very similar.

Now what language is best to learn? First ask yourself how to get from A to B, more specifically what A and B are? In other words, why do you want to learn to program? What are your objectives? Do you want to write web applications, games, desktop applications, embedded applications? What you want to do with your program is dependant on what language you will write it in.

For the Web, you might as well learn the concepts and structure of HTML, XML, Java, Javascrip and PHP for starters.

For games, well you are best learning C and C++

For applications, you are best learning C and C++ (unless you want to write for mobile devices then Java will help too)

For embedded systems you will need to know C,C++ and assembler and any language dependencies on the system you are writing for.

Assembler I hear you gasp? I love it, it is essential if you want to debug at a low level.

So much information, so many choices. Sorry its the best I can do with the limited information I have about what you want to do.
 
Upvote 0
A decent place to start online is at Sun's Java Tutorial site. But if you truly want to go through the whole process of learning a language by yourself, you gotta be patient. It's tough to start off from zero and dive right in...I did it, but it was way (wayyyy) back on the Apple IIe with Applesoft Basic, much (MUCH!) easier to learn.

Anyway, give it a go, start off with the easy stuff, and don't give up! Good luck!

Another course may be to find an Java/Android programmer near by and see if they want to collaborate with you to help get your ideas going. An hour with someone who knows what they are doing is priceless!
 
Upvote 0
I would try to learn the concepts of object oriented programming (OOP) before I picked up a language (assuming you've got the core programming concepts understood: variables, conditionals, loops, and functions). I don't have a good reference for learning "pure" OOP (and in fact almost any reference is going to use sample code in some real world language).

Trying to learn a modern language before you understand OOP will leave you not fully understanding why the languages are the way that they are. For example, when you get to collections of objects in Java, you'll probably be very confused when they keep talking about Lists but you find that the compiler won't let you create just a List. Then you'll find the ArrayList and start using that, but then you'll ask yourself "why would anybody mess around with List when you can just use ArrayList and have it work?". At that point you'd be missing the entire point of OOP.

Once you grok OOP, I'd go for one of Java, or C#. After that I'd learn about how the browser cycle works (HTTP requests, responses, that kind of thing) and then pick up PHP or ASP.

I would never bother with C unless you were looking to write a compiler, an operating system, or very low level embedded code. There are things which are perfectly moral (and necessary) in C that are the equivalent of inhuman crimes in more modern languages. For example, in C it is not unheard of to take a pointer, figure out some arbitrary number of bytes away from that pointer, start grabbing bytes from that location, and cramming those bytes into some array somewhere. In Java, C#, PHP, Ruby and other modern languages doing that would crime against humanity because it's asking (more like begging) for your code to crash.

And of course, bottom line, Android apps are written in Java (though you won't necessarily have access to all the same stuff that you do when, say, you go through Sun's Java tutorials).
 
Upvote 0
Having just finished my first year of an IT degree this is what we studied as our 'first' programming languages - C++ and Java. (Actually found them rather similar to one another as well)

Neither of them at my beginner level are what I considered hard, and once you start picking up the basics you will find its a matter of learning the rest of the language in 'steps' so to speak, as in once we had the basics, I found that writing basic code was able to be expanded upon, and do more things once you got deeper into the language.

Remember, its all about algorithms (and pseudocode and flowcharts)! :D
 
Upvote 0
I'd recommend python for quick results, but its not always so great for any heavy lifting such as image processing, but it gets results. There are a LOT of python tutorials, and there is almost no limit to what can be done with it.

If your really determined to learn more about programming then I suggest you visit microchip.com, and have a look into PIC chips.
Learning assembler and about real-time programming, even with something a trivial as blinking a LED, or making tunes with speaker will really open your eyes as to what is possible.
There are many easy to follow schematics for PIC flashers to get your code into the chip, as well as many sites with projects for pics - one of my favorites is hackaday.com. If your wise enough to be running Ubuntu there is the piklab (piklab.sourceforge.net) for putting the PIC code together.

Hope this of use,
GIR
 
Upvote 0

BEST TECH IN 2023

We've been tracking upcoming products and ranking the best tech since 2007. Thanks for trusting our opinion: we get rewarded through affiliate links that earn us a commission and we invite you to learn more about us.

Smartphones