Question:
What computer language should I learn first?
?
2015-04-29 15:01:30 UTC
Hello all!

I am going to be going to school for computer science. I want a language that is practical and will help me to get a good understanding of what programming is like. I started to learn python at one point on Linux but quit after a few weeks due to moving across the country. Should I go back to python or should I try something like java. My end goal is to become a video game designer. Also how do you guys remember all the different languages? Do you ever mix them together due to the vast library of languages you have to remember or does it just come to you naturally depending on what your doing? Thanks!
Sixteen answers:
husoski
2015-04-29 16:52:58 UTC
Don't worry too much about which language. Any one that you get interested in will do.



I happen to like Python a lot. It's my first choice for private computing (like writing a Sudoku solver, before they were all over the place) and it can actually do a decent job with 2-D gaming. (Check the pygame.org website for samples.) As far as I know, it's not generally used in commercial releases, but I know an engineer that works for Blizzard and they use a lot of Python internally.



Almost any other language will work, though. Assembly (for some processor, maybe a couple) makes a good third or fourth language, but is not ideal for starters. C is based heavily on assembly for the DEC PDP-11, where it got started in the early '70s, and is also not so hot for starters. "Ad" may be right in that you may need to learn it later, but that doesn't mean you need it now.



C++ is nicer, particularly if you stick with the C++ part, but that's not what most tutorials teach. It's been common to teach C++ as "C with // comments ant a different way to do printf()". Both C and C++ have a problem that rather common errors don't get detected until run time and tend to die with hard-to-decipher messages like "This program has stopped working" or "segment fault". Higher-level languages tend to have nicer built-in help and more readable error messages. C and C++ are good 2nd or third langauges, where you already know about loops and conditions and structured data types like arrays, lists, strings and such.



Java is a good choice. The AP Computer Science curriculum switched from C++ to Java as the teaching language over 10 years ago, precisely because of those problems. C# is another nice language, based on Java originally. Java has more free online resources and sees more use at the university level than C# does. C# has more gaming-oriented resources, though, even though a lot of them are tied to the now sadly unsupported XNA platform. (It's still available, and you can still do neat things, but it will see no updates unless Microsoft reverses course.)



Whatever you pick, once you've learned some basics...try to find independent things to do. If you can't think of an original project, copy someone else's idea. Try to write your own version of an alarm clock or a calculator or a simple game. Don't stop because you don't know how to do something. Do research, make compromises and get something working. Later you can go back and improve things based on new ideas you've learned.



More than anything else, programming is problem solving--and you learn problem solving by solving problems.
?
2015-04-29 15:27:51 UTC
The two other posts don't explain why they choose the languages they say. C is an old, resourceful language that has many years to build up. But I wouldn't say it should be the first language to get a good basis on because it can be very confusing to a starter. C++ is the same, it's an olderish language that has many years of libraries and resources. Java is a very diverse and universal language that many use, but Java can be weird to learn as your first language being as it can be used in your command prompt. In my opinion, I would say go back to Python since you had started out in that. It is a very "programmer-friendly" language to learn. Especially as a first language. But as I always say, it depends on what you want to do. You wish to be a game designer. So I'd say as a first language in game design, other than Python, go for C# or Java, since you will probably end up learning some different language before going into game design. While C++ and C are very highly used languages, (mostly C++ nowadays), but when I learned C++ as a first language, I was extremely confused because I didn't have the basic concepts and syntax of other languages down.



Your next question, "how do you guys remember all the different languages? Do you ever mix them together due to the vast library of languages you have to remember or does it just come to you naturally depending on what your doing?". In simplest terms, the syntax between languages can be very similar (or different). Take C# and Java. The syntax and terms and functionality in the two are extremely similar, but can be used for completely different things. The syntax is what we remember. But the hard part is researching what we want done. There is no way we could remember one entire language and use every single library, function, method, etc.



This is just my two cents though, I know others will disagree or dislike my comments.



EDIT: About you wishing to be a game designer. Game design is a very complex and hard task. Before you even scratch game design, make sure you are extremely comfortable with the language syntax, libraries, functionality, etc. Then you should get a free-ware version of a game engine. All game engines, if you don't already know, are, are software able to provide the resources, libraries, and functions to make your game. When you get comfortable with your language, you move to game engines, and eventually, if you feel you are suited enough, or even just for fun ;), create your own. But that takes an immense amount of work.
?
2015-05-01 20:46:31 UTC
Why people are saying "It doesn't matter" is because although the syntax varies wildly from one language to another, the structures you try to create are basically the same. And that is the real trick; learning how to build the structures that accomplish your goal. Once you understand them the language becomes irrelevant. And after you know one language, you can pick up a reference book on any language and start coding in that language.



To reinforce what several others have said, ultimately C++ is the direction to head it, but many suggest PYTHON as a good first language for a beginner.
no1home2day
2015-04-29 16:02:16 UTC
Your question is like asking what tool I should buy to become a carpenter. If you only have a hammer in your toolbox, then eventually every problem looks like a nail, and you try to pound it in. But you also need wrenches, screw drivers, and all kinds of other tools as well.



There is no "one size fits all" solution to programming, because every kind of problem requires a different kind of tool to solve it with.



I cannot give you any advice, because I believe it would be misleading. You need to learn as many languages as you possibly can, from HTML and CSS, to Visual Basic and C++, to php and ruby and ColdFusion, and java script and jquery. But as you learn more languages, new languages are coming out all the time that you'll also need to learn.



Good luck, and do the best you can, but don't assume that you can solve every programming problem with which ever language you choose to learn.
Marvin
2015-04-29 15:59:50 UTC
I have been a professional developer for 19 years. Granted the world has changed, but here is the path I look.



Back in high school computers where remote servers. We had only a teletype. We learned basic.

Later I learned assembly. I spent half my career programming in assembly.

I learned C, then C++.



I know nothing about PHP, Java, or any of the others. All my work is in assembly, C, and C++.



Btw: When applying for a job, do not claim you can program in C++, if you are a C programmer. Have interviewed and rejected many. Almost all the people who claim to be C++ coders know nothing about C++.
2016-03-10 05:24:36 UTC
It depends on what you're going to do. If you're going to do Web development then learn Javascript and PHP, they're derivatives of C. You could learn C/C++ also but PHP and Javascript are slightly different. If you're going to do desktop applications, rather than C or C++ I'd recommend Pascal first despite the speeches about C or C++. The reason being is Pascal has better error checking, imposes stricter requirements on how you write a program, and just about anything you can do in C/C++ you can do with Pascal. Training yourself to write better code will help you to make fewer errors, of which you will make lots. You'll need to learn C/C++ if you intend to do desktop applications but learn it after you've trained yourself which is why I recommend Pascal first.
NiNi
2015-05-03 00:28:35 UTC
to get a grasp, ill start with vba (visual basic for application): its almost basic english plus you have macros pre define buttons that expands automatically into a set of instructions to perform a particular task. you can build a full functioning application with just macros , u can as well get to the back end of these macros and see/study/edit the codes then debug. i know some guys who build coooooool games on Ms access, i too am on it :) its fun.

And believe me, once you get the scenario of maybe two or three lanuages, it just get stuck somewhere in your big brain.as long as you keep practice, it just keeps flowing when you trigger a portion of it do not learn a P language and the you go make urself comfy in parties.. that will be boo-hooo. its pretty much more like those who study german, spanis, english, blabla
Neerp
2015-04-29 19:12:59 UTC
I have a Masters in Computer Science, and I almost know what I'm talking about...



For computer science you need c++ because many of the algorithms and other topics you study and program require a level of performance that java simply can not give. I personally would not study computer science at a school that uses Java only because they probably don't have a very good computer science program. Also, if you study operating system principles, you will probably work with the Linux kernel, and that is in C.



If you want to program video games, you will most likely work with c++.



The study of Computer Science is not about learning programming languages or how to be a programmer, and most of your classes will not be about programming at all.



If you want to prepare for studying Computer Science, you want to not worry about learning a language, but concentrate on learning as much math as you possibly can. You will study a lot of calculus and linear algebra at the very least.
2015-05-01 13:00:47 UTC
go here



https://www.coursera.org/specialization/fundamentalscomputing2/37?utm_medium=listingPage



its a series of 6 completely free courses on programming and makig games with python



(you only pay if you want a verified certificate -- that means using a web cam when you submit your work to verify it's you doing it -- but if you don't want a verified certificate then the courses are free



all the courses are taught by faculty from Rice University



here's a link to the first course -- starts in a few weeks

https://www.coursera.org/course/interactivepython1



by the end of the second course you'll make this

https://www.youtube.com/watch?v=bx03ZGntIZM



you will be learning python and programming browser based games



but you will learn a lot of fundamentals



and when you've completed all courses you'll be ready to move on to this free online book (full of instructional videos and code)



Program Arcade Games With Python And Pygame

http://programarcadegames.com/



The book was written and is used by a professor for his Introduction to Programming class.

It will go into depth with programming python with the pygame library



here's a video of a game one of his student's made

https://www.youtube.com/watch?v=S7eMdoM1MTc



nothing too fancy, but pretty impressive for their first game



and then lastly, this free book



also in python, covers advanced topics in computer science (well, advanced for a beginner -- the kind of stuff you'll learn in your 2nd semester and 2nd year of school)



http://interactivepython.org/runestone/static/pythonds/index.html
Andy T
2015-04-30 00:14:15 UTC
I would stick with Java, but perhaps a sneak peek of your own study syllubus is in order; can't be far from the usual list of Java, Python, C#, and even VB for those at really bottoming bottom. I would avoid C/C++ like the plague, and even Prolog as the plague with Ebola on it, but that's not your pick anyway.
some guy
2015-05-01 01:06:42 UTC
If you are completely new to programming start by learning Pascal.
Ad
2015-04-29 15:07:41 UTC
It's got to be C .... if you want to become a pro programmer.
Forward
2015-05-01 20:49:00 UTC
I learnt C, C++, Java, PHP, HTML, Pascal, BASIC.
Adekunle
2015-05-01 16:50:15 UTC
you can continue with python
T I
2015-04-29 15:17:53 UTC
C++ or Java
?
2015-04-30 03:10:46 UTC
Go with C and C++.


This content was originally posted on Y! Answers, a Q&A website that shut down in 2021.
Loading...