Java, python, or C#? first language

I want to learn how to make games on the phone, and also able to write server code for games if I want to go the desktop route. What would be a good first language to learn out of these 3? if not those 3 which one?

Go with scala. You will not regret it.

+1 for Go

Dont actually learn scala but Go is unironically a good choice for a language. Its like a simplified version of C.

If you MUST choose between those three, learn Java so that you can distribute through google play/android. Apparently apple is a bitch with accepting apps, which is bad for someone like you with little experience.

Depends. If you have the time and will to really learn how computer systems work, go with C. If you want to get into business software, go with Java. If you don't want to spend most of your time juggling convoluted frameworks or searching for subtile logic errors in your debugger and generally get things done, Python is your best bet. If all of the above leaves you clueless, again, Python is what you want.

x86 Linux assembler

Threadly reminder that dynamically typed languages are cancer and only used by coding bootcamp babbies who couldn't get a proper CS degree.

holy shit thank you

All three are "coder" languages that won't teach you shit.

But you sound like a brainlet so go ahead and learn Python and make your crap app that runs like ass.

getting hung up on Coding vs Programming semantics is exactly what a brainlet would do

programming languages aren't pokemon. pick any language that you can wrap your head around. the particulars of what language you learned first won't affect your trajectory in any meaningful way unless you literally only learn 1 language.

find any language that gives you a metaphorical foothold that you can use to start climbing.

stop asking these questions.

people, stop answering these questions with your petty zealotry bullshit. just tell people to shut up and pick anything randomly, if they need to.

C# is the better choice by far, though java also has some solid use-cases like Android. Python is the pidgin of programming, stay away unless you have sub-100 IQ.

Scala is great but not much focused on video games. Its much stronger at big data / big processing and such.

You probably want C++. Still the main tool of the video games industry.

Go on genius and explain me how he's going to make games for a phone using c++? it's not like apple's gonna accept his app anyway.

Obviously java. Any other answer is just plain retarded.

For mobile apps:
Andoid: Java
iOS: Cocoa (uses C)

You're new to programming so there's no way apple's gonna accept your game to the app store, therefore android is the smarter choice to develope for.

And yes you can write your server code in Java too. Also Java and Python should be easier to learn, i myself never learnd python but i can at least say that Java works nice for a beginner. Downside is obviously that java is a bit slower but it's not gonna be a big deal for someone who's just learning programming.

Not OP but where can I start. Any tutorial you'd recommend?

Sadly no, i learned just by writing code (which is definitly NOT a efficient way to learn a language, but everybody was young and dumb once ^^. It took me one month to figure out that you should not use "==" to compare two Strings...)

But i'm sure that most tutorials will just work fine.

how is the performance? and in what cases do you use it?

It depends. Learning Java as a first language, gives you a feeling for object-oriented programming and static typing. C# is mostly like Java, maybe even a bit better as a language, but requires you to use Windows or Mono which IMO is a big pain in the ass. Python is a nice and powerful language but you won't learn much about types. For serverside code I would use Python or Java (or better Scala or Go). For clientside code I would probably use C++ if the games have to be fast, or Ionic (Typescript, SASS, HTML) if you want to build quizzes or the like.

this

I learned C as my first language. I don't use it much now (favoring C++ for larger projects, and perl for smaller things) but it introduced me to everything I needed to learn. Applying knowledge to other languages was a breeze after that.

Android has NDK (C++ SDK)

yeah without acess to the api of the framework. even google said that unless youhave intensive task you should just use the android-sdk...

>these pajeet answers

How irresponsible.

JavaScript should be the first language any computer programmer learns in the year of our lord 2017.

Java then Javascript.

Python is the hardest to learn because syntax isn't like any other real language do its useless

Ruby

Java plain and simple

I work for a subsidiary of Activision, and I have a Bachelors & Masters from a top European university.

A lot of serverside code right now is written in C++ and Erlang, but don't let that trick you. Things change, by the time you get a job, I predict Go and Rust will be quite popular. Does that mean you should learn Go and Rust as your first language? Absolutely not. Don't try to predict the future, and don't listen to Sup Forums. By the time you're ready for a job (and trust me, this will be 2-3 years minimum), you'll be able to make your own decisions on what you should learn, but beware of fads. You will find that programmers like to talk about new languages a lot, but most of the time they're working with Java, C# or C++. Jumping on new trends is fine for web developers and startups that are never going anywhere, but tried and tested technology is usually your best option. Furthermore, most companies will have large, existing codebases with internal libraries and frameworks that were written years ago. There's often no good reason to replace these frameworks, so they won't jump on the node.js or ruby bandwaggons.

I would suggest that you pick two languages, C and Python. C is like the latin of languages and will give you a good insight into what's going on in your computer. Try to implement various algos with C.

Python is a popular scripting language, and at this subsidiary of Activision (No, I won't name the company), we use it a lot for automation, build scripts, and other stuff.

It's important that you get a view of both a scripting language and a compiled language. Don't get distracted by opinionated idiots on the internet telling you "X is better than Y", or "X will replace Y".

The last thing I'll say is that many textbooks on networking and algorithms will be written using C or Java as examples.


Don't let Sup Forums distract you, get the fuck off Sup Forums if you want to be a programmer. I came here to see what Sup Forums was like since I last visited 4 years ago.

HolyC, unironicaly

Java or C++. Avoid C#

Forgot to mention in this:

Try to write some projects like command line chat services (just try it with two computers on the same LAN at first, you can try hosting online at a later date. Getting stuff to work through a home router is more difficult than you might think) in Python. Yeah you can do it in C, but you need to get some experience of writing real software and as a beginner you won't do that easily with C (I learned that the hard way).

So tl;dr,

Write simple algorithms in C and learn to optimise and debug.

Write real software in Python.

Keep working at it and pick up a couple of good Tanembaum books and you'll learn.

One thing todo first is to learn to put your thoughts/designs into a simple schematic (what does the client, what does the server how/when they interact and the basics of the game). Then it's Java for ease as in IDE + SWT and object orientated programming.
If you (think) you kinda know those basics it's like reading/learning and doing some practice things in C (or C++, but that can be later). This because Java is nice for visualising stuff in your head, and you just need to figure out how that would go in C, C++ might be conceptually easier but it's a bitch crossplatform engines etc.

A card game like Blackjack, the rules are known or easily looked up.
Dealer = server
(optional oppentents = server)
player = client (and server for opponent)
game control (DEAL, next turn, raise etc.) = client.

If you think about 3d stuff and graphics, don't listen to my post or try that stuff later.

Basically the 'technical stuff' is done by 'real' programmers, the 'event scripts' by writers who know the script language and graphics/GUI are done by (Industrial) Design kiddos.

>Scala is nice too, but get into Set Theory a bit first so you know how it works conceptually.

You're setting OP up for a career of inherit shitty libraries and tweaking them slightly.

There's more to life than working for some shitty subsidiary of Activision and cleaning up diaper code. If OP wants to really learn a language and apply it to gaming on his own terms, he should learn Javascript.

I'm a total newfag to coding and I found python to be the easiest to learn. It's fairly simple and the only hard thing so far was the formatting.

>Writing Javascript for indie games nobody cares about is a better career choice than working for the biggest company in the industry.

Yeah OP, you should learn Javascript for backend development.

Activision pay me more than Google offered me. It's a nice job and I've learned a lot, but sure, enjoy getting paid peanuts to write shitty little cookie-clicker apps.

>working for the "biggest company in the industry" means anything when your work is boring as shit

Most people who want to learn programming to make games actually want the process to be, you know, fun.

I'm assuming OP has an objective more ambitious than being able to say they work at a big gaming company doing very boring work.

>You're setting OP up for a career of inherit shitty libraries and tweaking them slightly.
>Shitty libraries
>"learn javascript"
>cleaning up diaper code
>"learn javascript"

ok

>Writing efficient netcode to connect millions of gamers at a minimal hardware cost is boring.
>Writing a shitty indie platformer is interesting.

It's pretty easy to tell that you guys aren't engineers.

>connect millions of gamers
>big company

Is that literally all you have to say to make your work sound more impressive than it actually is? Scale? Wow, so awesome everyone's panties are wet

Thought I'd add, once OP grows up he won't care about video games that much. If he works for a big studio working on AAA titles he'll be able to get a job with real tech companies. If he writes shitty little indie games, he'll be stuck in the gaming industry getting paid fuck all.

>Scale
Literally the biggest problem in backend development. That's where the money is and that's where the future is. OP said he might be interested in backend development, so I gave him advice as a professional with domain knowledge. But by all means, continue shitposting as if your opinion is worth jack shit.

OP wants to learn how to make games on a phone. Why are you assuming they want to be like you

>Being this salty that you couldn't get into the gaming industry and had to become an "indie" developer

I'm a scala developer... Like for pay.

Don't fucking use it as a first language.

Haskell or c#.

Scala is too complex for a starting lang

you're the programming equivalent of the talented artists and animators that waste their skills on enormously profitable shrek movies

enjoy your big boy pants

>write server code for games if I want to go the desktop route

He expressed an interest in backend development, so I gave him advice. Once he grows up (assuming he stops wasting his life on Sup Forums), he'll want to do something other than gaming. Learning mobile development right off the bat is a bad way to go, if you want to be a good engineer you need to focus on the principles. Client-side mobile development is largely about learning about libraries, tools and frameworks that will change in the next 2 years anyway, so it's not a good place to start.

Christ, this place is worse than I remember.

>Video gaems r art xD

Programming is not art, it's engineering. Indie games might be "better" in the eyes of autistic virgins, but there aren't any real technical challenges in their development.

Most indie devs are people who love gaming, most AAA devs are people who love programming. Guess which ones are more talented?

As for Shrek, what's wrong with an artist making money during the day and expressing themsevles at the weekends?

FYI, Pixar pay pretty big money too, and if you work for them you'll get to work at the cutting edge of animation, graphics and even HPC.

OP wants to make games, not become a autistic engineer who is in love with programming.

This is why I'm glad I got out of programming when I did. I hire developers when I need them but I am so glad I never became one.

Programming is a means to an end. Always. Falling in love with it makes you the worst kind of visionless wagecuck

>This is why I'm glad I got out of programming when I did
So if you're not a programmer, why the fuck are you trying to give OP advice?
>I hire developers when I need them but I am so glad I never became one.
I somehow doubt that any business owner wastes their time on Sup Forums.
>Programming is a means to an end. Always. Falling in love with it makes you the worst kind of visionless wagecuck
I get paid lots of money to do something I enjoy, I have lots of career choices and society respects me. Oh wow, I'm such a loser.

Unironically: Go.

Go is not a great language overall, but it is a great beginner language. It's easy like Python, but Python is very "special". It will teach you a lot of things that are only in python. Go is more ideomatic, but without the pitfalls of C.


Of course Java or C are always options, too.

>So if you're not a programmer, why the fuck are you trying to give OP advice?
For the bantz
>I somehow doubt that any business owner wastes their time on Sup Forums.
I'm not a business owner. Why would I have to be one to hire developers?
>society respects me
Finally, the heart of the matter. You're so insecure that all you can do is point to activision and money in a discussion that has nothing to do with either of those things. I'm sorry you don't create anything of value and it secretly bothers you and makes you insecure

>You're so insecure that all you can do is point to activision and money in a discussion that has nothing to do with either of those things
Somebody learning to program is generally doing it for career choices. I simply don't want some kid listening to unemployed autists who dropped out of college.

>you don't create anything of value
The free market disagrees. Literally 10s of millions of people use my code. More importantly, I have the option of walking into virtually any company I want. I can choose to work on whatever I like because my skills are valued so highly. Can indie developers do the same? Can you?

Start with C, not memeing.
Gives you a decent basis and you can then learn other languages easier.

Not him, but let's be honest:
Programmer is a shit profession.

I do programm for fun and my work is semi-related to programming, but I'd never do a pure 9-5 programmer job.

> learn how to make games on the phone
Lua + Defold or LÖVE
Unity and C#
LibGDX and Java

I would agree that learning C makes you truly understand what your doing, however the experience is frustrating and you have to focus on scripting and actually making gameplay rather than making tools and engines.

There's a difference between being a 9-5 code-monkey and being a professional software engineer. I spend maybe 20% of my time actually writing code, 30% if you include debugging.

I feel like the people who shit on software engineering as a profession are the code-monkeys who ended up stuck writing business logic.

Didn't mean he have to make the games in C, just that he could start with that. Not "mastering" it, but have it as a foundation to learn one of the others and make the game in that. Making a game as a first programing task would probably be a bit hard too, and he should probably start out with some easier exercises.

So 50% of your time your sitting in meetings and draw UMLs?

Job of my dreams, huehuehue..

Depends.

There's a difference between a command line three-in-a-row and a MMORPG with HQ sprites..

Head First Java is the best I've found

I'm still having trouble understanding why many people take salary over enjoyment. I don't mean to argue with you only that I don't understand.

I work writing my favorite language and have great flexibility... It would be hard to get me to give that up for a few percent more salary..

Of course, but OP wanted to make mobile games, so I doubt he was talking about CLI three-in-row