• Some users have recently had their accounts hijacked. It seems that the now defunct EVGA forums might have compromised your password there and seems many are using the same PW here. We would suggest you UPDATE YOUR PASSWORD and TURN ON 2FA for your account here to further secure it. None of the compromised accounts had 2FA turned on.
    Once you have enabled 2FA, your account will be updated soon to show a badge, letting other members know that you use 2FA to protect your account. This should be beneficial for everyone that uses FSFT.

What language to learn?

Nick5768

n00b
Joined
Sep 5, 2004
Messages
7
Hey all,

I'm going to be starting a CS major in the fall and I was hoping to get a jump start now.

The only languages I know are HTML (very intermediate knowledge) and I am learning PHP.

What languages would you suggest?

Thanks for your time,

Nick
 
Well it depends on what you want to focus on. If you're going to focus on web development and web apps, go for C#. Now if you want to focus on heavy application development, go for C++ or Java.
 
For a jump-start on basic programming concepts, PHP is fine. That'll get you into variables, functions, and if you're diligent, data types and other CS-mandatory concepts.

It's not what you'll use in a CS major, but you'll realize pretty quickly that once you understand how a language family works (and PHP / C* / Java are all in the same family) you can jump around to the correct language with relative ease.

HTML knowledge won't help a bit with CS unless it's a case study for language design (and even then, XML would be a better choice in the same area).
 
I would say a good intro to the CS/academic world would be Scheme. My school switched their curriculums from teaching C++/Java first to teaching Scheme as the introductory courses, then moving people on to C++/Java and whatnot.

Otherwise, I'd say C++ or Java, just don't get too caught up in stuff like mastering libraries until you get basics down - data structures, algorithms, object oriented concepts, etc.
 
There's 2 schools of thought here. The first would be to pick up the language that the department is big on using to get a leg up on the program. I'm not sure if this is a good idea, since you'll still have to take your intro programming classes and, since they're easy as hell, you'll be bored to tears if there's no new content in them. If you understand basic programming (loops, conditionals, variables) that's 90% of the first semester - might as well use it as an opportunity to pick up a new language.

The other approach is to learn something that's usefull that you're NOT going to be learning in school. If you're really into web stuff, keep plugging away at PHP & get good at it. If you're looking for a more general purpose language, why not pick up something like Python that's a lot more pleasant to hammer quick things out in than Java or C++. I'd probably recomend against picking up non-mainstream languages until you've got your head wrapped around a few more conventional langs & have a solid understanding of OO/Procedural/Imperative programming.
 
Find out what your school teaches in the first year, and use that..
 
Pick whatever suits your needs for now, and hit it [H]ard over the summer. Sounds like PHP for you. Write all sorts of scripts with it. Disk I/O, database front ends, html form handlers, anything.

For some ideas, in my PHP class this semester (aren't I lucky :D ) we've done two programs so far. One just calculated the number of years, months, days, hours, minutes and seconds for a total seconds input. Another validated credit cards (easy to code after a google for the algorithm). This sort of stuff is typical for low level CS courses.

Learning that first language is always the hardest, but after you do you can pick up on the rest of them quickly, so long as you don't mind reading the docs. Good luck.
 
eggrock said:
Assembler if you can get it (and stand it).

that's retarded.


I would just wait till you get to school, and THEN learn the language. No use picking up bad habits now, which is what a lot of people end up doing. Read some books on programming, and maybe try a few things out, but don't start really heavily into things until you have someone to show you how to do it the right way, or are very confident that you can do it the right way.
 
visual basics or some simple language, just to get the feel of structure and a intermediate way of thinking. After that try java read a book try get your hand on used college textbooks and learn it from the first to the last page.
 
i am a second semester cs major and the language they are making all of us take is C++

it seems to be a good place to start
 
derfie said:
visual basics or some simple language, just to get the feel of structure and a intermediate way of thinking. After that try java read a book try get your hand on used college textbooks and learn it from the first to the last page.

Nope, stick with the traditional more procedural languages. C++ etc.
 
cair0 said:
that's retarded.


I would just wait till you get to school, and THEN learn the language. No use picking up bad habits now, which is what a lot of people end up doing. Read some books on programming, and maybe try a few things out, but don't start really heavily into things until you have someone to show you how to do it the right way, or are very confident that you can do it the right way.

OR learn a language in the meantime but keep an open mind when you get to school (college CS students have the hugest egos :rolleyes:). It doesn't hurt to pickup another language in the meantime though. I would recommend either going with the language your school will be focusing on.

If you're adventurous though, assembly would definately give you a better understanding of programming in general.

--KK
 
cair0 said:
I would just wait till you get to school, and THEN learn the language. No use picking up bad habits now, which is what a lot of people end up doing. Read some books on programming, and maybe try a few things out, but don't start really heavily into things until you have someone to show you how to do it the right way, or are very confident that you can do it the right way.

Have you ever looked at the software that most college profs write? It gets pretty nasty. They might be able to teach you what a loop is & they might be able to talk about various alogrithms but in most cases they're definately not the people to be looking to for good coding habits. In the whole CS department here there might be 2 profs I'd take advice from in coding style.

...and one of them still programs in Smalltalk
 
cair0 said:
that's retarded.


I would just wait till you get to school, and THEN learn the language. No use picking up bad habits now, which is what a lot of people end up doing. Read some books on programming, and maybe try a few things out, but don't start really heavily into things until you have someone to show you how to do it the right way, or are very confident that you can do it the right way.


Well, I knew a good portion of C++ before I took classes here for my CS major. Although my first intro class stuck to standard pretty well, my data structures class did not.

My point being, I think alot of classes still teach some bad habits.

EDIT: ameoba beat me to it lol
 
Your first CS course may be a bit too easy and sometimes a little dull if you learn the langauge you'll be using ahead of time, but then again you won't have to work as hard and you'll have more time for your other classes which can be helpful. But above all I'd say learn the language you think you'll have the most fun using.
 
I would not recommend Assembly as a few people have suggested (whether serious or not). I find assembly very hard to code in, especially as you try more complex things, and to intuitively "get".

Take a look at your school's program as some have suggested. If they start you off with C I would recommend starting to learn C. If they start off with Visual Basic then I would start with C++ or Java. These will give you a better understanding of where modern languages are than VB, which will teach you some bad habits. If they start with C++ or Java I would recommend learning the opposite one that they teach. They are similar languages so you should be able to hop into the other with with no problem. By learning the opposite language you are giving yourself a broader foundation to your skills and not getting bored with learning too much of one language's intricasies.
 
hmm, I said VB because it was the easiest to learn hell I started learning it around 8th grade. It's easy to comprehend and you get the basic understanding like basic data types, loops, and conditionals.. At the time I also picked up C++ and found it too hard to comprehend. So, I stuck with VB and gradually learned and used it as much as I could. You'll later find it's limitations like I did which for me was VB's subclassing. I then moved on too C++ by borrowing used textbooks at the library and converting things I've done in VB into C++ and now, I'm taking my first class in college which is Java and I picked it up and so far it's been cake. I guess just pick up a book and find a language you like and use it as a basic foundation I like to start small and work my way up. If you can pick up C++ and see how it flows then by all means learn it, I couldn't but everyones different. :)

You'll later find out why people call it the lazy man's language. :)
 
It all depends entirely on what you want out of learning.

If you want to be a leg up on the competition in the fall, by all means choose whichever language they teach.

If you want to get serious about what makes a computer tick, Assembler (not a good idea, in my opinion) or C.

If you want to understand OOP, Java or some similar byte-code language (C#).

If you want to be competitive when you get out of school, C++ will be around for a long, long time, and there are many good reasons for that.

If you want to learn how not to design a language, Visual Basic.

I personally would suggest C. If you want to really learn, then C. Nearly every modern language uses concepts from C and you will learn quite a bit about how a PC works. But then again, I have always been more into the embedded side of things.

I would stay away from Perl/PHP/Python simply because they aren't regarded by most CS people as 'serious' languages (much like Visual Basic). Not that they aren't worthwhile tools, but they won't get you very far in terms of most CS programs.
 
I would stay away from Perl/PHP/Python simply because they aren't regarded by most CS people as 'serious' languages (much like Visual Basic). Not that they aren't worthwhile tools, but they won't get you very far in terms of most CS programs.

I have to object here. Once you get out of your intro and language-specific programming classes, if you bother to ask, most professors don't really care what you write in. Granted, writing linked-lists or hash-tables in Python is a silly exercise but, in most cases, actually writing one yourself is silly enough.

On top of that, being well versed in a scripting language of some sort opens up a lot of career oportunities in things like sysadmin work - a field many CS graduates end up in but are completely unprepared for.

...and knowing a scripting language makes it a lot more desirable to actually write programs. There's plenty of things that I'd just end up doing by hand if I had to write them in C++ but, knowing Python, I can crank out a dozen lines of code & have something get done - often times by just using the interactive interpreter.
 
You just scratch the surface with a semester or two of a language. If you go the C++ route you might get your arms around basic pointers and syntax, but it usually takes a good six months to a year before you start getting the hang of it. (professionally) If you need to have a run of C or C++, it is worth getting your arms around the basics so you can focus on what they are trying to teach (rather than banging your head on the wall getting stuff to compile).

That said, the job market when you get out is likely to be more Java than C++. I'd lump C# in with Java as the two are kissing cousins. There are always exceptions, but generally the J2EE gigs pay better than the Microsoft ones. Don’t know if it is a bias that C# makes it ‘easy’, similar to the way people look down their noses at VB. Again, with only a semester or so, you just get the basics. Java reduces (not eliminates) much of the headaches of memory leaks and what not.

After pitching Java, knowing you said you did a bit of web work with PHP – it is worth looking at JSP development, followed by the Struts framework, possibly hibernate for the DB mapping. Get more of the ‘enterprise’ stupid money, compared to the stupid customers with $50 for a PHP commerce suite when you go hunting for gigs…
 
Back
Top