Programming C, C++, Java, PHP, Ruby, Turing, VB
Computer Science Canada 
Programming C, C++, Java, PHP, Ruby, Turing, VB  

Username:   Password: 
 RegisterRegister   
 Languages a programmer should know
Index -> General Programming
Goto page 1, 2, 3, 4  Next
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
mirhagk




PostPosted: Tue Aug 07, 2012 12:49 pm   Post subject: Languages a programmer should know

Any programmer worth his salt can code in multiple languages. I believe that if a boss comes up to a programmer and tells him/her that the next project will be written in a new fangled language, that it should only take the developer a couple days to get familiar enough in the language to do most development, and by the end of the project, should have only spend a week or so on learning the concepts, and should now be a capable programmer in the language. In order to accomplish this, knowledge of a vast array of languages is required, as new languages very rarely break lots of new ground, and offer similar syntax and structure to older languages. Here I will include a list of the languages I think you should be familiar with. This means that you should be able to read and comprehend any decently complicated programs, and could write a program in it, even if it requires using some docs, googling around, or other references. I have broken the languages down into categories, and what you should do is decide for each category whether you will be using it professionally/consistently, whether it is just something you want to be prepared for (so if your boss suddenly talks about mobile apps, you're not going to have to buy a bunch of textbooks to read over the weekend), or whether it is something you will never touch, and are not at all interested in. If you will use it for sure, learn all the languages in the list, if you want to be prepared, but probably won't use it, learn just one of them (one of the major ones, which are bolded), otherwise you don't need to learn any of them (but it can still be fun to).

(Note I have also included frameworks here, because learning a framework to me is no different than learning a new language, and knowledge of frameworks is very important as well)

General Purpose Languages:
C++
Java
C#

Python

General Purpose Specialty Languages: (kinda an oxymoron, but basically languages that are well suited to specific applications, but are general purpose)
Ruby
Haskell
Perl
Lisp

Data/Systems Programming:
SQL
Prolog
Batch
Bash
PowerShell
Regular Expressions

Web-based programming:
PHP
ASP.NET
C#
Javascript
JQuery
HTML
CSS

Video games Programming:
C++
OpenGL
DirectX
C#
XNA

Fun Languages:
BrainF***
Haskell
Prolog
Lisp
Regular expressions

Firmware/Low Level:
HLA [high level assembly] (good for intro to assembly, but unfortunately not popular)
MASM
NASM
C

Mobile Programming:
Java
C#
Objective-C (sorry to cause you this pain, but don't worry android is getting ever more popular, hopefully you won't ever have to use this evil language)
HTML (I beg of you right now, and I want you all to promise me, that if you ever make a non-resource intensive app (basically anything but a game or video/photo editing) to use HTML(or C#, which has mono) and compile for all OS's. Cross compatibility is more important than speed for most apps)
Windows Phone SDK
Cocoa
Android Phone SDK
Silverlight

This list is certainly not exhaustive, and if you have any suggestions please feel free to comment (I can't add them to the list, but maybe a mod can if we get a lot of them). If you suggest a language, please provide an actual reason, and remember that it's always better to know too many languages than not enough (ie don't come on here and say "SQL is teh worzt languag EVER!!1!11 Lern Turing wich is 4 proz!!!11" (yes I do know they aren't even close to the same thing, that's my point)).
Sponsor
Sponsor
Sponsor
sponsor
Ultrahex




PostPosted: Tue Aug 07, 2012 3:14 pm   Post subject: Re: Languages a programmer should know

*shakes head* I hope you realize this post was completely pointless, and I am still confused why you posted this.

Being a programmer has nothing to do with languages, and the fact that some employers actually care which language you have written in before still mind boggles me.

In-fact the kind of companies that do this thing I often say straight up I am not willing to work for them due to the environment of how languages and platforms are seen.

I know zero of the languages you posted; cause I have not lived long enough to learn any of those languages sufficiently. Then again my understanding of "knowing" a language is very different, and I have even written compilers for some of the listed languages.
Tony




PostPosted: Tue Aug 07, 2012 3:58 pm   Post subject: Re: Languages a programmer should know

English, which happens to be the most common language used to write docs/specs. Ability to communicate well with others, knowledgable of the technology one is taking on, is arguably paramount.

Ultrahex @ Tue Aug 07, 2012 3:14 pm wrote:
Then again my understanding of "knowing" a language is very different, and I have even written compilers for some of the listed languages.

http://compsci.ca/blog/you-dont-know-that-programming-language/
Latest from compsci.ca/blog: Tony's programming blog. DWITE - a programming contest.
mirhagk




PostPosted: Tue Aug 07, 2012 5:21 pm   Post subject: RE:Languages a programmer should know

@Ultrahex

I'm sorry I used the word know, I meant to try to use familiar instead of know (I guess I missed a few spots). I don't think you should completely know everything language under the sun, that's obviously useless, and I tried to make sure I didn't convey that.

What I think is:
mirhagk wrote:
you should be able to read and comprehend any decently complicated programs, and could write a program in it, even if it requires using some docs, googling around, or other references.


I agree Tony, that it is vitally important to be able to communicate, by experimenting with various languages you can pick up new languages quickly.

@Ultrahex how does it boggle your mind that employers care about reducing the amount of training on a specific language? Most companies accept a range of similar languages, but never programming in their language before is most definitely a downside to them, as it will take time for you to learn it.

It's like applying to burger king with years of mcdonalds experience. Yes of course 99% of the skills are transferable, but it'd still be better to get someone who has experience working at burger king (assuming all else is equal)
Tony




PostPosted: Tue Aug 07, 2012 6:12 pm   Post subject: Re: RE:Languages a programmer should know

mirhagk @ Tue Aug 07, 2012 5:21 pm wrote:
@Ultrahex how does it boggle your mind that employers care about reducing the amount of training on a specific language? ...

It's like applying to burger king with years of mcdonalds experience. Yes of course 99% of the skills are transferable, but it'd still be better to get someone who has experience working at burger king (assuming all else is equal)


Following that example, someone with years of (relevant) experience is likely a much more valuable employee that someone with perhaps a few months of... more relevant experience. I suppose we could argue the exchange rate of McD vs. BurgerKing experience, as valued by BurgerKing... but brining it back to the real world of software development:

The problem is that employers might be passing up on exceptionally good candidates, because their resume missed to include some buzzword that HR wanted to see. (e.g. HR is looking for someone with "Ruby on Rails" framework experience. Candidate A has years of Ruby experience and is an excellent Software Engineer. Candidate B is a fresh college grad with much less experience, but one school project happened to use RoR, so hey... it's on a resume. It's easy for us to tell who would be a better match, but it's a difficult problem if the resumes are filtered through a set of regular expressions.)
Latest from compsci.ca/blog: Tony's programming blog. DWITE - a programming contest.
mirhagk




PostPosted: Tue Aug 07, 2012 6:35 pm   Post subject: RE:Languages a programmer should know

Well yes Tony, obviously if the resumes are simply filtered through for a particular language that is not a good way to hire. However asking for experience in a particular language is not at all unreasonable.

When I wrote my last resume I included a list of languages I knew, I was familiar with, and I had experience with. I made sure to define each list, including how long it'd likely take me to get fully up to date on the language, and including a note that this would be done on my own time. I also mentioned that I was able to learn new languages at a very quick pace, and if they mentioned a language I could likely learn it before HR even got a chance to put me on the payroll.

They told me the languages/frameworks they used (SQL, C#, .NET MVC, extJS, Javascript, HTML). I then relearned the languages I needed to, and learnt the only one I had no experience with before I even started working (extJS). I hope this means something to them, and I can get a reference from them attesting to the fact that I completely learnt the languages/frameworks on my own time before I even started.

I think what your most upset about Tony is people scanning resumes for keywords rather than reading them, which I agree is stupid decision.
Tony




PostPosted: Tue Aug 07, 2012 7:31 pm   Post subject: Re: RE:Languages a programmer should know

mirhagk @ Tue Aug 07, 2012 6:35 pm wrote:
I think what your most upset about Tony is people scanning resumes for keywords rather than reading them, which I agree is stupid decision.

Almost. It's not just about "reading", but "reading by a technical person". Your typical HR will have training in handling intra-office drama and harassment lawsuits, not in what separates good developers from the rest. A list of buzzwords is often an approximation used.

It's somewhat different if you are dealing with technical recruiters instead, as they are more specialized... but they also have a different set of incentives.
Latest from compsci.ca/blog: Tony's programming blog. DWITE - a programming contest.
mirhagk




PostPosted: Tue Aug 07, 2012 8:56 pm   Post subject: RE:Languages a programmer should know

I've just probably been lucky but most of the companies I've been around have the managers look over the resumes, and the managers are ex-developers themselves, or at least people who have enough experience with technology to know what's going on. HR is usually only involved in the finances.

But despite whether or not companies are smart enough to hire good workers rather than resumes that much a regular expression, the point still stands that learning more languages helps you learn computer science to the fullest.
Sponsor
Sponsor
Sponsor
sponsor
2goto1




PostPosted: Wed Aug 08, 2012 8:10 pm   Post subject: Re: RE:Languages a programmer should know

mirhagk @ Tue Aug 07, 2012 8:56 pm wrote:
the point still stands that learning more languages helps you learn computer science to the fullest.


Your original point seemed to be that knowing many languages would make programmers super duper productive programmers on the job, so technically the point that "still stands" is a new point. Tossing memory aside, and sticking to the original topic of being a good productive programmer in a professional development role, I agree with others that knowing many languages is an attribute that ranks less than many other attributes, including communication skills, logic, deduction and analytic skills, and numerous soft skills, and expertise at becoming an expert. In fact, many of those other attributes are important personally as well, and they can all be developed.

In my own anecdotal experience I find the most well rounded technology people seem to gravitate towards consulting companies. I found those who have only worked in pure development roles tended to have higher levels of programming language / framework expertise, but lower levels of other attributes.

Either way the minimum bar to succeed in a role that is heavily development based is obviously to be able to program and problem solve somewhat efficiently. So those other attributes are not critical to a software development career, but they can significantly open up more career opportunities.
mirhagk




PostPosted: Wed Aug 08, 2012 10:07 pm   Post subject: RE:Languages a programmer should know

I don't know if you read my post, but I basically said that every programmer should know multiple languages, and be able to pick up new languages, frameworks and ideas at the drop of a hat. I didn't ever attest that learning multiple languages will make you a super duper programmer, that was an assumption made by many here.

My original point, that a programmer should know (know of, as in have some experience with it, as in made non-trivial programs, learnt some of the concepts of what makes it unique) multiple languages, and be able to learn new ones at the drop of a hat still stands, and I believe you all agree on that.
2goto1




PostPosted: Wed Aug 08, 2012 11:00 pm   Post subject: RE:Languages a programmer should know

Your original post was a very different point. You entitled your thread "languages a programmer should know", and included a very specific list of languages. No need for further clarifications / retractions.

An abstract communication tip for you - people are more likely to positively contribute to your discussions rather than criticize or close themselves off when the communication process that you establish has an air of fairness and equity. For example, your list included no justifications for any of the languages chosen, yet you required participants to provide "actual reasons" for any of their additions.
mirhagk




PostPosted: Wed Aug 08, 2012 11:20 pm   Post subject: RE:Languages a programmer should know

I do agree, I meant to put reasons for all of them, but before I finished getting to that point I had to go, so I just posted it. I should have just drafted it and added the reasoning later.
wtd




PostPosted: Tue Aug 14, 2012 1:30 pm   Post subject: RE:Languages a programmer should know

C should be on your list, if only for historical perspective. Of course, I don't think it should be a first language, but it should still be there.
mirhagk




PostPosted: Tue Aug 14, 2012 2:01 pm   Post subject: RE:Languages a programmer should know

Yeah actually that's true wtd. It's not something that you should really be using, but it's good to see why most people prefer OOP or functional programming.
wtd




PostPosted: Wed Aug 15, 2012 11:52 pm   Post subject: RE:Languages a programmer should know

I also firmly believe a very strongly-typed language (and preferably with type inferencing and pattern-matching) should be included.

Haskell and O'Caml are both strong candidates.
Display posts from previous:   
   Index -> General Programming
View previous topic Tell A FriendPrintable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic

Page 1 of 4  [ 47 Posts ]
Goto page 1, 2, 3, 4  Next
Jump to:   


Style:  
Search: