Know C++ and Java, but not sure what other languages would be worth my time learning

Status
Not open for further replies.

sciencedude

Est. Contributor
Messages
114
Role
  1. Diaper Lover
Any ideas for other languages that would be useful to learn, like in industry ( I know Matlab).
 
Been told C# is the new and improved C++
 
Depends on what you want to do career or hobby wise.

One thing I would say, especially with regards to Java, is that knowing the language isn't as important as knowing the specific toolstack you are using. Knowing OSGI/EJB/Hibernate/Spring/JBoss/whatever is going to matter a lot more than "knowing java". Obviously you can't learn everything (some of these take years to become an expert in), but knowing at least one to a reasonable competency demonstrates that your skills extend beyond knowing what a for loop is. Very least, look into the generic concepts surrounding them (dependency injection, micro-architecture, etc..).

In addition to that, good skills to grab early are:
- Learn how to use version control (svn/git/perforce/mercural..)
- Learn UML. It sucks but it's used.
- Learn agile methodologies, specifically "scrum". Scrum is _very_ popular right now.. may not be forever, but going in with a good understanding of it will definitely be a bonus. Just throwing around words like sprint and "user story" will probably bump up your employment prospects.
 
Know C++ and Java, but not sure what other languages would be worth my time l...

Well, objective C is essential if you want to do anything with Apple's OSX or iOS. Also Python can have MANY helpful uses as well. I've heard it's a doozy of a language to learn though.
 
babypony said:
Been told C# is the new and improved C++

No language can give you the degree of control on a hardware level that C++ can plus I've heard C# is Microsoft's attempt at creating their own Javaesque language so I personally think the benefits of learning C# is debatable. I'm extremely bias though. C++ and Objective C are my favorite languages.
 
Might sound cray for recommending this.

You should learn good ol' C, It's good to know both C/C++

C is quite limited compared to C++, but its a really low level language, which is perfect for driver programming, doesn't really have much real uses these days because C++ replaces it, but its still useful to know.

I think C does a better job at teaching you how C++ works correctly, I personally don't think anyone can understand C++ until they understand C, though this is just opinion.

Starting off with C, gave me a better understanding of how C++ works, I started learning C++ as my first language, made no sense, learn't C, everything become apparent.

I think C gives you a better understanding on how to think like a programmer, but as I said this is just opinion.
 
BluePanda said:
Might sound cray for recommending this.

You should learn good ol' C, It's good to know both C/C++

C is quite limited compared to C++, but its a really low level language, which is perfect for driver programming, doesn't really have much real uses these days because C++ replaces it, but its still useful to know.

I think C does a better job at teaching you how C++ works correctly, I personally don't think anyone can understand C++ until they understand C, though this is just opinion.

Starting off with C, gave me a better understanding of how C++ works, I started learning C++ as my first language, made no sense, learn't C, everything become apparent.

I think C gives you a better understanding on how to think like a programmer, but as I said this is just opinion.

Also this.

C is a superset to A LOT of languages used today such as C++ and Objective C
 
I apologize for being outdated, but my computer language experience is:

BASIC
PASCAL
GenRad CAPS/APG ATE System Language.
PBASIC
PROLOG
 
BoundCoder said:
Depends on what you want to do career or hobby wise.

One thing I would say, especially with regards to Java, is that knowing the language isn't as important as knowing the specific toolstack you are using. Knowing OSGI/EJB/Hibernate/Spring/JBoss/whatever is going to matter a lot more than "knowing java". Obviously you can't learn everything (some of these take years to become an expert in), but knowing at least one to a reasonable competency demonstrates that your skills extend beyond knowing what a for loop is. Very least, look into the generic concepts surrounding them (dependency injection, micro-architecture, etc..).

In addition to that, good skills to grab early are:
- Learn how to use version control (svn/git/perforce/mercural..)
- Learn UML. It sucks but it's used.
- Learn agile methodologies, specifically "scrum". Scrum is _very_ popular right now.. may not be forever, but going in with a good understanding of it will definitely be a bonus. Just throwing around words like sprint and "user story" will probably bump up your employment prospects.

I second that. It's best to check out a few job offers and see what technologies besides language pop up most often and focus on one of them. I'll also add design patterns to the list. They might be confusing at first approach, but they're ceartainly a good practice and will make code reuse, organisation and understanding a whole lot easier on the long run.
 
TheCaptain said:
Also Python can have MANY helpful uses as well. I've heard it's a doozy of a language to learn though.

Python is currently used a lot for data processing as you can have a working script for a dataset up and running in a couple of hours. For that reason as well it is used very commonly in Rapid Development environments. In a previous job we used Python for everything unless the scripts took too long to run, then we'd switch to C++, but it wouldn't take too long since you have a working Python script to work from.

With respect to learning Python, it can be challenging if only because it is very different syntactically from C-based languages. However, once you get started with the learning process it becomes much easier since Python code is highly human readable. The readability of it makes it much easier to learn Python through looking at example scripts.
 
DMVanGrif said:
Python is currently used a lot for data processing as you can have a working script for a dataset up and running in a couple of hours. For that reason as well it is used very commonly in Rapid Development environments. In a previous job we used Python for everything unless the scripts took too long to run, then we'd switch to C++, but it wouldn't take too long since you have a working Python script to work from.

With respect to learning Python, it can be challenging if only because it is very different syntactically from C-based languages. However, once you get started with the learning process it becomes much easier since Python code is highly human readable. The readability of it makes it much easier to learn Python through looking at example scripts.

I'm glad someone with experience could add to this. I personally know very little about python except that it's also used in A LOT of graphical creating and editing software (such as Maya and I think Nuke, possibly in Adobe programs as well), which is what I'm studying (I had no idea it had strengths for creating scripts and the like but I'm not surprised to hear it). Anyway, it sounds like there are even more benefits to learning Python than I initially thought.
 
TheCaptain said:
No language can give you the degree of control on a hardware level that C++ can plus I've heard C# is Microsoft's attempt at creating their own Javaesque language so I personally think the benefits of learning C# is debatable. I'm extremely bias though. C++ and Objective C are my favorite languages.

All languages are good. It just depends on your need, and the tool you wish to use.

C# gives you an immense amount of control, very low level, to object oriented, to functional code, and easy to use/parse lambdas.

C# was initially created, or at least rumoured as such to be Microsofts "Answer" to Java. But really, I feel it's more of an update to Visual Basic, taking some lessons in C++ and C, and Java as well; plus some functional paradigms in later versions.

A lot of corporations are now using C# as their main platform, for everything from web development, sharepoint, office add-ins, and games. It's definitely a good platform to learn, especially with the growth in popularity.

Any developer worth their $$ should be able to pick up any new language with ease, the easiest way to do that is hit the different types of languages you have. I would recommend making sure that people can code; in the very least a little bit in...

Java, C/C++, C#, Javascript, Python, Haskell

Strengthens everything quite well, and allows easy adaptations.

Now, to op! Looks like you've got a great start :) Maybe it's time to learn some UX principles! (Okay, now I'm being biased!)

Good luck in your quest to programming professionalism.
 
TheCaptain said:
I'm glad someone with experience could add to this. I personally know very little about python except that it's also used in A LOT of graphical creating and editing software (such as Maya and I think Nuke, possibly in Adobe programs as well), which is what I'm studying (I had no idea it had strengths for creating scripts and the like but I'm not surprised to hear it). Anyway, it sounds like there are even more benefits to learning Python than I initially thought.

Yeah! It's readability almost makes it feel like pseudocode. I don't even pseudocode anymore, I just write it out in valid Python. The only thing Python is bad with is concurrency, but you can adjust it to concurrent operations by using a clustered job scheduler like Condor.
 
BASIC

Something so unique and fun about typing out a long string of code and then playing tic-tac-toe against a 15mhz Commodore 64.
 
Keep in mind that Objective C is being phased out by Apple from what I understand. I don't do any iOS development or have any reason to professionally or as a hobby so I'm not the most reliable source on that.

- - - Updated - - -

It really depends on what you're trying to do OP. Are you doing game development, web development, mobile development? There are different languages for different purposes. I'd say vastly any game development these days is done in C\C++ and occasionally Java\C#. If you're a programmer and have a background in computer architecture and theory, then you're familiar with why you'd want to use a compiled language as compared to a compiled language on a virtual machine like how Java and C# are. Of course Java is also widely accepted and used because of it's exceptional portability. I can write a program in Java within a Linux environment and port it to windows and all my clients can use the program no issue.

So it really just depends on what you want to do. In my honest opinion, once you've learned to program and understand the theory and basic application of that theory with a firm understanding of logic and writing an algorithm, you can write in nearly any language and pick it up quickly. Languages all have different syntax but the same general idea is applied across the board. I was amazed at how quickly I figured out Shell and Perl scripting with no prior experience apart from being fairly good at C++ and Java.

So figure out a project you want to do, explore the language a bit, any caveats with the program and then get cranking on it. I think doing a project in a new language or a new platform can really prove your mettle as a developer or an engineer. I'm an engineer professionally doing embedded Linux, and I test the mettle of other engineers by their ability to apply their programming knowledge across the board and learn new technologies by applying their understanding of other topics.
 
Learn either Objective-C or Swift if you ever want to get to mac/iPhone devp.
 
I started programming with Python, mostly due to its readability, and then moved to C, BASIC, Java, and JavaScript. (Incidentally I'm kind of regretting JS due to its current fall from favor) Currently, I'm working on Perl, Lua, and C++.

As far as Python goes, I can get a simple database that stores 3-5 types of data up and running in 15-30 minutes, plus the time it takes to web-host it, if I decide to do so. With Python, I can fully program all the mechanics of a game like Pokemon from scratch inside a week. That being said, please don't ask for commissions right now.
There are so many things I can do with Python, it's slightly ludicrous. Then again, being my first language, I'm probably quite partial.
 
Status
Not open for further replies.
Back
Top