I've decided to get my B.S. In IT with a specialization in Software Development. I figure it's a great way to learn the fundamentals and it will look good on a résumé. The only downside is that the program focuses on Java. I want to know which other languages I should learn for the professional world that get used often.
C and C++ are still the big guys. Java is still used for Android, and Objective C for iOS. C# is very popular for .NET and Unity.
PHP is probably still the most popular language for the web, even though I wouldn't recommend learning it. Ruby, Javascript (server-side with eg. node.js), Python and Goland are popular alternatives for web development, and HTML/Javascript/CSS or preprocessors such as Coffeescript and Less for front-end webdev.
There are lots of other languages though, such as D, Rust, Perl, Scala, Swift, Erlang, Rant, and tons more, most of which are also great to learn. Just look around and try new languages from time to time. Even silly stuff like brainfuck can be fun to mess around with.
Thanks. I don't mind learning new languages, I just wanted to know what languages are basically "essential" to know in the profession. From what I gather, the C's (C, C++, C#) are basically the most important go get first, but I'm not quite sure where to go after.
C's, Python, Javascript.
They are really very similiar to each other (the thought / thinking process), so whatever you know really good, you will be able to do same shit in other imperative languages.
[QUOTE=Silence I Kill You;47677032]Thanks. I don't mind learning new languages, I just wanted to know what languages are basically "essential" to know in the profession. From what I gather, the C's (C, C++, C#) are basically the most important go get first, but I'm not quite sure where to go after.[/QUOTE]
You really can't go wrong. If you know nothing, you can't really expect to be a good programmer after a year. It will be a long time, but that's a good thing. It means you can learn anything and then apply your knowledge to make learning "useful" languages easy.
It's very common to never write a line of JavaScript, yet be able to read it. Similar statements hold for different languages. It's not the same as "knowing" the language but it does show to applicable everything is to everything else.
The best advice is probably to learn something that keeps you motivated (read: learn fun stuff) and to try radically different stuff. DO NOT get stuck in one branch.
I don't plan on getting stuck in one branch, but it seems like a good idea to learn the most widely used languages asap to get in easier.
[QUOTE=Silence I Kill You;47677619]I don't plan on getting stuck in one branch, but it seems like a good idea to learn the most widely used languages asap to get in easier.[/QUOTE]
Get in where? There are tons of branches, each with their own set of "popular languages". Just pick what you like. If you pick a somewhat common language, you'll have enough use of it.
[QUOTE=Silence I Kill You;47677619]I don't plan on getting stuck in one branch, but it seems like a good idea to learn the most widely used languages asap to get in easier.[/QUOTE]
Honestly, it's like asking what tool to get the most familiar with to be a builder.
All of them. Sure, there's probably some that you'll use more than most, and if your job is more specific, there may only be one or two you'll use at all, but you don't specialize before you have at least a cursory knowledge of every tool.
Any language mentioned so far is as good of a pick as any.
If you're serious about pursuing a career in software development, make it a top priority to understand the fundamentals behind programming (including stuff like algorithms and data structures) - this way, you'll ideally be able to pick up any language you need for a job, rather than only knowing the syntax of one.
Some professionals, like doctors, train a bit in various specialties before picking which one they'll get into as their final choice. I think that's a good idea for coding. I'd suggest trying a few things, nothing complex, just different types. Build a website, make a mobile app, make a game, make a Windows desktop app or program, mod a game, or make a plugin for an established program. Each of these may require you to learn a bit about different languages, so besides learning what type of development you're interested in, you'll also learn what languages are more to your liking.
If you can't be bothered to learn to make even one thing on your own time, you might want to reconsider getting into this line of work.
From my experience, Java and C# are similar, and C++ and C are similar. Basically, if you know how to program in one, it's easy to get the hang of the other.
Also, I know Java hate gets thrown a lot around here, but it's still an important language to know. Most Android apps are still written in Java, for example (well, you could write it in their native language, but performance is roughly the same conpared to Java according to Google).
That said, I would say your next step is to try C#. If you know Java, I'm confident you don't find much difficulty picking it up. After that, try C++, then C.
If you want to go crazy learn some more important languages: HTML/CSS and JavaScript if you want to get into web development. Ruby, Lua or Python are some popular scripting languages.
C# and (especially) Java are massively popular in the enterprise world, not just on Android.
Thanks for the responses. I really enjoy programming. The reason I'm getting into it is because compsci was the only course I didn't drop the first time I tried college. The teacher had us "edit" a "game" the seniors had made to include levels and scoring, and in one class period while everyone was still trying to figure it out, I had added scoring, levels, cheats, and level passwords. It was fun for me to try and figure it out.
I plan on using the school to learn the fundamentals and get a good base knowledge. Neither webpage nor mobile development seem appealing to me. I would rather actual computer software or game development, but I haven't ruled anything out. My biggest problem is trying to come up with a project to work on. I usually just can't think of anything that interests me.
The reason so many people get started with web and/or mobile dev is that they're pretty much the easiest ways to get practical results. If you want to make a useful to-do list, for example, making it as a website arguably requires the least initial knowledge, gets you a working program the quickest, and is far more flexible over time. Even as a programmer with years of experience, if you just need a certain program for yourself done quick, you'll often make it as a webapp out of convenience - so it's generally a good idea to pick up some webdev skills somewhere down the line.
Of course, you don't have to if you really don't want to, and you especially don't have to [I]start[/I] with that. In the last few years, even game development has become an accessible entry point with engines like Unity, LÖVE and Game Maker.
If you really can't think of anything you'd like to make, most methods of learning - books, tutorials, video seminars or interactive courses such as those offered by Codecademy - come with exercise tasks ranging in complexity from "make a simple function that does one precise thing" to "write a program for one purpose". There's also [url=https://projecteuler.net/]Project Euler[/url], which is a large collection of programming exercises, though they're mathematical/algorithmical in nature. As well as [url=https://www.reddit.com/r/dailyprogrammer]/r/DailyProgrammer[/url], [url=https://github.com/karan/Projects]Mega Project List[/url] (which are more generic), and tons more resources I'm sure.
I don't have any such suggestions for game development on hand, unfortunately, but I'm sure you can find them too. Most aspiring game programmers sometimes clone (and extend) well-known games like Tetris to hone their skills, though.
Oh, and one more thing. You don't need to be an artist to get started with game development - if you're unsatisfied with your programmer art, there's tons of free art assets (sprites, textures, models, sound effects and music) on the Internet.
In my opinion, having an intermediate understanding of multiple programming languages give you a greater understanding of software development. Plus, the benefit of porting information from one to another is invaluable. Suppose you're working on something in C# and you need to find an algorithm for "X" but the best documented example is in Java or C++; given that you understand both those languages, you can take what they're doing in that example and bring it into your projects native code.
[QUOTE=foszor;47717198]In my opinion, having an intermediate understanding of multiple programming languages give you a greater understanding of software development. Plus, the benefit of porting information from one to another is invaluable. Suppose you're working on something in C# and you need to find an algorithm for "X" but the best documented example is in Java or C++; given that you understand both those languages, you can take what they're doing in that example and bring it into your projects native code.[/QUOTE]
Though if you have a few years (at most) of experience and a good grasp of one typical programming language, you'll be able to understand code in any typical programming language with relative ease.
[QUOTE=DrTaxi;47717602]Though if you have a few years (at most) of experience and a good grasp of one typical programming language, you'll be able to understand code in any typical programming language with relative ease.[/QUOTE]
After a few years and a few languages, learning a new language is trivial. For my internship, I work with Scala, and I've never really followed any guides or anything for that, I just pretend it's Java (which is fine because I don't do a lot of work on it), since it's really similar to that.
But Scala is also functional language so you are not using it to the full potential :(
[editline]14th May 2015[/editline]
(But who cares, as long as it does the job)
Sorry, you need to Log In to post a reply to this thread.