Jump to content

Hello i am a highschool student that is interested in different aspect of coding. I am currently in an Html and Javascript class and a Intro to computer science in which we are learning VB right now and im not sure if its really a language that is important to coding apps, games or programs but we are only creating forms right now so im not sure. The question is what languages are important for creating Android and IOS apps, windows and ios programs and possible android,ios, windows games?

Any information and tutorials are greatly appreciated!

Thanks,

Alex

Link to comment
https://linustechtips.com/topic/10419-what-language/
Share on other sites

Link to post
Share on other sites

Well, Windows games are written primarily in C++ due to the low-level nature of the language and how intensive games are and the speed at which the code has to execute. For general Windows programs, you can write them in almost any language imaginable. It's better to write certain programs in C# for Windows than in C++ if speed isn't an issue because C# makes Windows development substantially easier.

Android's native SDK uses Java to write apps, however, there are several technologies out there that allow you to write apps in C# (Xamarin Studio, for example). And Google also offers what's called the NDK (Native Development Kit) for Android that allows you to write code in C, however, it's not a suitable substitute in all situations for writing apps in Java.

iOS uses a language called Objective-C for their SDK. Developing for iOS requires you to own a Mac or have access to one, so given the closed nature of the iOS ecosystem, the development ecosystem for iOS apps is also equally as closed.

HTML and JavaScript (with CSS and a back-end server language) is a very good thing to know, it'll get you far on the web, but unfortunately there isn't much of a use for them for native apps. Windows 8 is changing that with WinRT allowing you to write apps with JavaScript and such, but I don't believe it'll gain widespread adoption.

So, if you're looking for a challenge, I'd suggest you tackle the following languages (in no particular order):

  • C++
  • Objective-C
  • C#
  • Java

Link to comment
https://linustechtips.com/topic/10419-what-language/#findComment-112446
Share on other sites

Link to post
Share on other sites

I have to agree with Spartan, but I would tackle them in this order (easiest to hardest) C#, Java, C++, Objective-C.

The reason being is because C# has amazing syntax IMO and the IDE is very well made with default settings. I would try to learn all of C# first so as you go down the language line all you have to relearn is the syntax of each language, instead of learning the fundamentals over and over again. I would go pick up a C# 4.0 book instead of C# 5.0 because there are more tutorials for C# 4 than 5

Do you want to know what grinds my gears?
The old forum.

Link to comment
https://linustechtips.com/topic/10419-what-language/#findComment-112458
Share on other sites

Link to post
Share on other sites

Honestly, I would go straight to C++ if you can handle it. Also learning a scripting language like Python is useful for starting. If you are into science/math, you might want to buy a copy of matlab (99 bucks for student version) and learn that. You can do amazing things it matlab, though it is incredibly high level ( meaning it has many built in structures).

I have a 2019 macbook pro with 64gb of ram and my gaming pc has been in the closet since 2018

Link to comment
https://linustechtips.com/topic/10419-what-language/#findComment-113047
Share on other sites

Link to post
Share on other sites

Honestly, I would go straight to C++ if you can handle it. Also learning a scripting language like Python is useful for starting. If you are into science/math, you might want to buy a copy of matlab (99 bucks for student version) and learn that. You can do amazing things it matlab, though it is incredibly high level ( meaning it has many built in structures).
If this person is like other people, C++ is not a good choice for him.

Do you want to know what grinds my gears?
The old forum.

Link to comment
https://linustechtips.com/topic/10419-what-language/#findComment-113127
Share on other sites

Link to post
Share on other sites

the best language to learn from the c family is c. learning c will let u program in java, c++, perl, etc much easier. c is also a very very powerful language

EDIT: also try not to use and IDE I would suggest downloading a Linux distrubution and then downloading gcc and writing the code in gedit or a plain text editor like that. It will make u learn a lot more and be a much better coder in the future

Link to comment
https://linustechtips.com/topic/10419-what-language/#findComment-113359
Share on other sites

Link to post
Share on other sites

the best language to learn from the c family is c. learning c will let u program in java, c++, perl, etc much easier. c is also a very very powerful language

EDIT: also try not to use and IDE I would suggest downloading a Linux distrubution and then downloading gcc and writing the code in gedit or a plain text editor like that. It will make u learn a lot more and be a much better coder in the future

What? why would you have them download a Linux distro just for C and C++? they can just use code::blocks. That is a decent IDE.

Do you want to know what grinds my gears?
The old forum.

Link to comment
https://linustechtips.com/topic/10419-what-language/#findComment-113370
Share on other sites

Link to post
Share on other sites

I've been taught java first using Bluej, All it does is manage your files from the project folder and compile from within the program. Perfect for learning java. Once you can make a 2 or 3 method program I'd suggest learning object oriented programming but that can be done in any language. I'd suggest getting a book for learning C if you were into the IOS route so you can get the ins and outs down.

Link to comment
https://linustechtips.com/topic/10419-what-language/#findComment-113382
Share on other sites

Link to post
Share on other sites

I have to agree with Spartan, but I would tackle them in this order (easiest to hardest) C#, Java, C++, Objective-C.

The reason being is because C# has amazing syntax IMO and the IDE is very well made with default settings. I would try to learn all of C# first so as you go down the language line all you have to relearn is the syntax of each language, instead of learning the fundamentals over and over again. I would go pick up a C# 4.0 book instead of C# 5.0 because there are more tutorials for C# 4 than 5

While I do have to say C# is a really nice language, I think it ties with my preference of C++. I think any self-respecting programmer should skip on seriously studying Java because it really is a bloated, monolithic language controlled by a money-hungry corporate power.

I would encourage learning C++ first, just because everything builds off of it, and I've found that it's difficult to work backwards from the top-down instead of the bottom-up. But... I understand why you encourage learning C# first.

Link to comment
https://linustechtips.com/topic/10419-what-language/#findComment-113450
Share on other sites

Link to post
Share on other sites

I've been taught java first using Bluej, All it does is manage your files from the project folder and compile from within the program. Perfect for learning java. Once you can make a 2 or 3 method program I'd suggest learning object oriented programming but that can be done in any language. I'd suggest getting a book for learning C if you were into the IOS route so you can get the ins and outs down.
Did you learn Java in school? I know a teacher who said that Python would have been a better route than Java.

Do you want to know what grinds my gears?
The old forum.

Link to comment
https://linustechtips.com/topic/10419-what-language/#findComment-113735
Share on other sites

Link to post
Share on other sites

What? why would you have them download a Linux distro just for C and C++? they can just use code::blocks. That is a decent IDE.

I would have them do this just because then you actually learn how compilers work and how to debug your programs your self and not rely on an IDE to do it for you. It is just makes you a better coder in the long run.

Link to comment
https://linustechtips.com/topic/10419-what-language/#findComment-115414
Share on other sites

Link to post
Share on other sites

I would have them do this just because then you actually learn how compilers work and how to debug your programs your self and not rely on an IDE to do it for you. It is just makes you a better coder in the long run.

They're just starting out. Don't stuff their mouth.

Do you want to know what grinds my gears?
The old forum.

Link to comment
https://linustechtips.com/topic/10419-what-language/#findComment-115754
Share on other sites

Link to post
Share on other sites

Maybe you want to get into Windows 8 app programming too?

If i'm not mistaken, you can use a combination of HTML and Javascript to make Win 8 apps.

I have written a Windows 8 app once by using C# and XAML.

 

I started with learning Java myself (college), which i think is pretty easy. After that, the transition to something like C# is very easy, as it is pretty similar.

You might want to learn some C too. I think it's not really used anymore, but it can give you a good insight in data structures and how memory management etc works (even though most modern languages do this automatically), and maybe most importantly the concept of pointers.

This would be a good way to get into something like C++ i think.

 

So in short, i'd learn programming in the following order:
C# or Java => C => ...?

 

Also, perhaps it would be useful to learn something more about software design (object oriented).

A programmer without a good knowledge of software design is pretty much useless.

It's important that you don't only understand the code, but also learn to think in objects and learn how to write an efficient piece of software. 

 

Hope this helps  :)

Link to comment
https://linustechtips.com/topic/10419-what-language/#findComment-115804
Share on other sites

Link to post
Share on other sites

Maybe you want to get into Windows 8 app programming too?

If i'm not mistaken, you can use a combination of HTML and Javascript to make Win 8 apps.

I have written a Windows 8 app once by using C# and XAML.

 

I started with learning Java myself (college), which i think is pretty easy. After that, the transition to something like C# is very easy, as it is pretty similar.

You might want to learn some C too. I think it's not really used anymore, but it can give you a good insight in data structures and how memory management etc works (even though most modern languages do this automatically), and maybe most importantly the concept of pointers.

This would be a good way to get into something like C++ i think.

 

So in short, i'd learn programming in the following order:

C# or Java => C => ...?

 

Also, perhaps it would be useful to learn something more about software design (object oriented).

A programmer without a good knowledge of software design is pretty much useless.

It's important that you don't only understand the code, but also learn to think in objects and learn how to write an efficient piece of software. 

 

Hope this helps  :)

 

Anything you can do in C, you can do in C++. Instead of learning C before learning C++, learn C++ right away. Learning C will teach you some interesting ways of doing things in a paradigm C++ isn't suited for. For example, you'll probably learn to typecast using void* pointers and then using C-Style casts on the pointer to make it the type you want. This is usually a bad practice in most situations because you're trying to verify data integrity. Instead, in C++, they use static_cast<T> and dynamic_cast<T> and it casts to the data type you specify while verifying the integrity of the original data. It'll fail if you can't typecast to the type you've specified.

 

And on the bit about object oriented design, learn design patterns. That can't be important enough. So many frameworks and libraries implement some design patterns these days, so it's best to understand them so you can understand the internals behind the software.

Link to comment
https://linustechtips.com/topic/10419-what-language/#findComment-119471
Share on other sites

Link to post
Share on other sites

I've always read that after you learn one language, the rest is all just translating syntax from the first language.

 

I'm about to dive into C/variants myself because I'm going to push myself into the Linux world a bit more.

 

It really is true. Some languages work different under the hood and if you're at all concerned with optimization, you should know the idiosyncrasies of the language. There are some early research studies happening looking into whether programmers display the skills a multilingual person would (in terms of spoken languages), which is interesting, because they say it's easier to learn your second language the first one (outside of your native tongue) and it's true with computer programming as well.

 

Learn C++, you can always strip the C++ parts out and just write C and compile with GCC instead of G++, but if you're at all going to use C++, you might as well learn it first. And Linux is a great refreshing operating system from Windows. The command line is so much more powerful and you can do all sorts of file manipulation from the command line. It's a more versatile operating system, however, Windows is still better for gaming.

Link to comment
https://linustechtips.com/topic/10419-what-language/#findComment-119693
Share on other sites

Link to post
Share on other sites

It really is true. Some languages work different under the hood and if you're at all concerned with optimization, you should know the idiosyncrasies of the language. There are some early research studies happening looking into whether programmers display the skills a multilingual person would (in terms of spoken languages), which is interesting, because they say it's easier to learn your second language the first one (outside of your native tongue) and it's true with computer programming as well.

 

Learn C++, you can always strip the C++ parts out and just write C and compile with GCC instead of G++, but if you're at all going to use C++, you might as well learn it first. And Linux is a great refreshing operating system from Windows. The command line is so much more powerful and you can do all sorts of file manipulation from the command line. It's a more versatile operating system, however, Windows is still better for gaming.

 

 

I run Linux on my netbook for general browsing, Windows 7 on my tower for gaming and running VMs for learning Windows Server, and a MBP too play with (used to be my main laptop until I found Mint for my netbook).

 

 

So C++ is where I should start then?

 

I was going to play with some bash shell scripts before I dove into actual programming just to get back into that mindset.

Link to comment
https://linustechtips.com/topic/10419-what-language/#findComment-119791
Share on other sites

Link to post
Share on other sites

Honestly any programming language is fine, however every programming language has it's advantages and disadvantages. Vb.net for example is extremely high level and has a really nice IDE allowing you to rapidly build desktop applications without having to understand the nuances of Windows Forms Programming. PHP, another programming language is awesome for server side Hypertext pre-processing but not particularly optimized (BUT IS CAPABLE OF) for desktop applications development.

 

For learning to make games, it may be worth trying C++ and then learning DirectX/OpenGL.

Current rig: AMD Piledriver fx-8320 OC'd to 4.9ghz on 1.45v vcore | Asus Sabertooth 990fx r2 board | Gigabyte 7950 W3x| 8GB Corsair XMS3 1333mhz | 240GB OCZ Agility 3 SSD

Link to comment
https://linustechtips.com/topic/10419-what-language/#findComment-119850
Share on other sites

Link to post
Share on other sites

While I do have to say C# is a really nice language, I think it ties with my preference of C++. I think any self-respecting programmer should skip on seriously studying Java because it really is a bloated, monolithic language controlled by a money-hungry corporate power. I would encourage learning C++ first, just because everything builds off of it, and I've found that it's difficult to work backwards from the top-down instead of the bottom-up. But... I understand why you encourage learning C# first.

 

This advice is pretty horrible. I completely disagree with skipping on studying Java. It's by far the most powerful cross-platform language out there and is huge in the industry. It is also freely available for virtually every platform and the development kit is extremely powerful and enabling. C++ is a great language to learn, but Java may be just as suitable for someone looking to program in something similar to C/C++ without needing to concern themselves with memory management.

Link to comment
https://linustechtips.com/topic/10419-what-language/#findComment-122727
Share on other sites

Link to post
Share on other sites

This advice is pretty horrible. I completely disagree with skipping on studying Java. It's by far the most powerful cross-platform language out there and is huge in the industry. It is also freely available for virtually every platform and the development kit is extremely powerful and enabling. C++ is a great language to learn, but Java may be just as suitable for someone looking to program in something similar to C/C++ without needing to concern themselves with memory management.

I agree. Don't skip on learning Java! Though if you know C/C++, learning Java can probably be done by committing a Saturday afternoon. Like Darkfeign said, knowing Java in 2013 is just a staple language. I think only the super expert programmers are passionate enough to argue that Java is not important because it's more sandboxed and holds your hand than C/C++. Such as memory management and embedded synchronization in the data structures.

Build "GRYPHON"

Corsair Obsidian 350D w/ Noctua Redux NF-P14/NF-S12B | Be Quiet! Straight Power 600W | Asus Gryphon Z87 | i5 4690k @ 3.5 GHz w/ Be Quiet! Shadow Rock 2 | G.SKILL Sniper 2x8GB DDR3 1866 | EVGA GTX 970 SSC ACX 2.0+ w/ Backplate | 250GB Samsung 850 Evo + 1TB HDD

Link to comment
https://linustechtips.com/topic/10419-what-language/#findComment-122781
Share on other sites

Link to post
Share on other sites

Well, Windows games are written primarily in C++ due to the low-level nature of the language and how intensive games are and the speed at which the code has to execute. For general Windows programs, you can write them in almost any language imaginable. It's better to write certain programs in C# for Windows than in C++ if speed isn't an issue because C# makes Windows development substantially easier.

Android's native SDK uses Java to write apps, however, there are several technologies out there that allow you to write apps in C# (Xamarin Studio, for example). And Google also offers what's called the NDK (Native Development Kit) for Android that allows you to write code in C, however, it's not a suitable substitute in all situations for writing apps in Java.

iOS uses a language called Objective-C for their SDK. Developing for iOS requires you to own a Mac or have access to one, so given the closed nature of the iOS ecosystem, the development ecosystem for iOS apps is also equally as closed.

HTML and JavaScript (with CSS and a back-end server language) is a very good thing to know, it'll get you far on the web, but unfortunately there isn't much of a use for them for native apps. Windows 8 is changing that with WinRT allowing you to write apps with JavaScript and such, but I don't believe it'll gain widespread adoption.

So, if you're looking for a challenge, I'd suggest you tackle the following languages (in no particular order):

  • C++
  • Objective-C
  • C#
  • Java

 

Wow I had no idea you actually needed an Apple computer to develop for iOS.

Is this the real life? Or is this just fantasy?

 

Link to comment
https://linustechtips.com/topic/10419-what-language/#findComment-122927
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×