Jump to content
N-Europe

Learning a Language


Strider

Recommended Posts

Hey guys

 

As I've got a fair bit of free time on my hands over summer I've set myself a challenge of a learning a computer language of some sort. I would say my main goal would be to create some sort of android app. I am a complete and utter beginner at this and to be honest I have no idea where to begin... (helps?)

 

I understand android apps are written in java so would this be a good place to start? Or some other language? I remember in the first few weeks of my computer science degree (before dropping out and doing biology) that we did C++, yet I don't even know the difference between any of them.

 

Any help/hints/tips for a beginner would be good :D

Link to comment
Share on other sites

Ultimately, it depends on what you want to do with the language once you have learnt it. If android development is your intention then yes, Java would be a good place to start. I started with C# and whilst a little wordy at times, I found it an excellent starting point and it made the transition to other languages much easier. It does share a lot of similarities with Java though and I can see that also making a fine entry point.

 

I had to learn Java for Android development but my teacher was horrendous and I didn't really like Eclipse (it's the official IDE for Android) because it's slow.... even if your machine is a beast - plus the emulator is crap if you don't have an android device handy. Trying to learn in that kind of environment doesn't benefit anybody, but I digress. Learning to program in Java is one thing, learning how to use the Android SDK is another so learn the basics first to prevent yourself getting overwhelmed.

 

I personally wouldn't recommend C++ to someone just starting out. I mean, it's a great language (my favourite) and there is a reason it's been around so long, but there are better languages to use when beginning and learning the fundamental concepts of programming that apply to all languages. Java and C# are far more modern... though that doesn't make them "new" and everything about them reflects that. They are what is known as "managed code" and as far as you and I are concerned it basically means you do whatever you want with your memory and the compiler will make sure anything that isn't in use will be freed. C/C++ don't have that benefit and it can bite you in the backside rather sharply if you aren't careful so not having to worry about it is nice.

 

There is some commonality to all the major languages and often when dealing with basic things, as a beginner like yourself would be, the only difference between using one and another is the syntax for the language in choice but some are still easier than others.

 

I was going to suggest you talk to Esmasher but I can't find him in member's list so he's either changed his name or left (or secret option no. 3 - I suck).

Link to comment
Share on other sites

Java is definitely the way to go. If you're new to computer programming it's worth looking at this site: http://codeyear.com/ It's not specific to Java but one of the most important things in programming is learning about the actual structures and concepts behind them. Once you know the core concepts going from one language to another is far simpler.

Link to comment
Share on other sites

Some comments on a few different languages:

 

Java - It's basically designed to be 'fool proof'; it's used a lot in corporate environments for developing internal applications for that reason. Java is also incredibly portable due to it running in a virtual machine, so you can run it on any computer with java. The major problems being that you have a lot less control (no manual manipulation of pointers, no manual memory management, etc.), and that it's a lot harder to interact with non-java libraries. It also sometimes takes a lot more code to do simple things like file IO. Although it's actually a decent language to learn to program with because it holds your hand a lot, you usually only use Java because you have to, either because it's what your employer tells you to use, or it's the only thing available on the platform.

 

C - One of the lowest level high level languages. You have about as much control as most programmers will ever need. There's no object orientation, or anything like that. It's used to develop things like game engines, where speed is a major issue, and things like Embedded Systems. It's a good place to start if you're up for a challenge, and starting with it, you'll probably end up with a better understanding of how things really work a lot easier.

 

C++ - Basically object orientation built on top of C. It has a much more complicated syntax, and you usually only use it when you have to because your employer tells you to. Although some people like it. The best part is all the C stuff is still there.

 

Objective-C - Like C++, it's object orientation built on top of C. The syntax comes from something called Smalltalk, and despite a few issues, it's actually a fairly elegant language. However, it's pretty much only used for developing software for Apple platforms.

 

C# - This came about because Microsoft didn't want to pay for Java. As a result, it's pretty much the same as far as syntax goes. There are so few differences that if you know one, you pretty much already know the other. It's really just used on Microsoft platforms, and mostly in corporate environments. It's also the best language for XNA, so if you want to make Xbox games, it's not bad.

 

Python - A scripting language, usually praised for it's ease of use. Not a bad place to start, and it's extensive libraries are pretty good for creating programs quickly. Keep in mind however that it's going to be more difficult to move to something like C later on.

 

LISP - A very different sort of programming language. It's used quite commonly in AI programming. It's not really the best place to start at all.

 

In general, it's best to focus on learning programming concepts, not on the language itself. Once you learn the concepts, you'll be able to pick up any language fairly easily. If I were you, I'd start with either Java/C# or C if you want more of a challenge.

Link to comment
Share on other sites

I started on C, I personally didn't find it hard at all. My main use for it is programming microcontrollers.

 

Also, if you decide on C++ I reccomend the SAM's Learn C++ in 21 days, it's really basic and explains the concepts behind the programming really well, and as said previously, once you learn the concepts it's just a case of reading up on the syntax of a new language to learn it.

Link to comment
Share on other sites

×
×
  • Create New...