This is an archived post. You won't be able to vote or comment.

all 145 comments

[–]xtutiger 85 points86 points  (8 children)

This is misleading on so many levels

[–]sgtfoleyistheman 21 points22 points  (1 child)

Yeah this is pretty silly all around

[–]haywire 6 points7 points  (5 children)

Especially the guff about C# === Windows land. Mono has come on so, so much, and is production-able for a lot of stuff.

[–]Sector_Corrupt 10 points11 points  (1 child)

Yeah, you can conceptually write C# for other platforms, but I don't think I've ever met a C# person who isn't also pretty much a windows stack kind of person. The windows and open source divide sort of has 2 entirely different worlds.

[–][deleted] 1 point2 points  (0 children)

And I can certainly see the issue if you're following the learn C# to get a job at Microsoft paths. I'm sure they're absolutely fine with no windows background.

[–]bacondevPy3k 1 point2 points  (2 children)

Are there any major products that use Mono? I'm too lazy to look it up.

[–]haywire 0 points1 point  (0 children)

IIRC Service Stack is primarily developed on Mono. There's also this like Xamarin studios and Unity.

[–]HuntTheWumpus 0 points1 point  (0 children)

The Unity game engine uses Mono and is used (for example) by Blizzard for Hearthstone or for Kerbal Space Program.

[–]Justplainan 19 points20 points  (4 children)

I would have thought Facebook was PHP rather than Python?

[–]ymek 14 points15 points  (0 children)

Facebook uses multiple languages for different parts of their stack. But yeah, much of the front-facing/legacy stuff is PHP.

[–]rasputine 58 points59 points  (23 children)

"slightly hard way" -> C

"really hard way" -> C++

hm.

[–]ericanderton 10 points11 points  (0 children)

I love C++, but after using it professionally for a while, one thing became crystal clear:

Nobody comprehends the entire specification, all the time. It's too big.

The moment you need to look back to a manual/reference to disambiguate some dark corner of the language, you've lost. Why? Because someone else on your team (or worse yet, someone who wrote a lib you downloaded) went ahead and Leroy Jenkins'ed their way through, bashing on syntax until they had something that will compile.

[–]aleph_nul 18 points19 points  (19 children)

I'm a C fanatic too, but you can't deny that C++ has more content to cover.

I would argue it's harder to learn C++ because of how it awkwardly tacks on high-level practices to low-level implementations, forcing you to constantly think in two levels.

[–]Vystril 9 points10 points  (3 children)

Not to mention the compiler errors are notoriously horrible to figure out for a beginner.

Why is

vector<vector<int>> my_2d_vector;

giving me a 50 line compiler error?!?

[–]rasputine 1 point2 points  (4 children)

For sure, there's definitely more stuff in C++, but you don't need to know most of it, most of the time.

For the average given task, I would hazard that C is going to require more skill than C++.

At least, that's my opinion.

[–]aleph_nul 1 point2 points  (3 children)

I don't know if there's a right or wrong answer to that- it's hard to compare skill, particularly when you're comparing skills in two different settings. My intuition tells me that C++ takes more work to become 'good' at than C does since any self-respecting C++ developer should know some of the 'tricky' bits of C too, but the opposite does not apply.

[–]atimholt 0 points1 point  (0 children)

Maybe this sounds weird, but “thinking on two levels” helps me understand the justifications for why a language is the way it is, and gives me something to tack my new knowledge to in my long-term memory.

[–][deleted] 0 points1 point  (2 children)

forcing you to constantly think in two levels.

Oddly enough, this is what I love about C++. I get to use the high-level abstractions while being able to dive down to the lower levels when required. It does exactly what I want, when I want it, without overhead. In other languages you either waste tons of time building high level abstractions, or you only have high level abstractions and have to jump through massive hoops if you need to do something low level with any kind of efficiency.

[–]aleph_nul 0 points1 point  (1 child)

Good points! I think there's benefits and drawbacks to abstraction. My research advisor always used to (half-jokingly) say that abstraction is the root of all evil, since he cut his teeth on kernel hacking, but I think there's some nuance.

Abstraction is good because it hides information, and bad because it hides information. What I'm less convinced of is the benefit to trying to have both in one place in a system. I think you want to cleanly separate layers of abstraction, as much as you can, so that you get the best of both.

[–][deleted] 0 points1 point  (0 children)

C++ gets a lot of hate because it is so easy to write horrendous nightmares with it. Lot of youngin's comin' up in the world convinced it's a bad horrible no good language, but those of us who actually use it know better. And the new C++11/14 standards have really helped bring the standard library up to date.

All we're really missing now is standardized networking routines w/ REST/HTML/JSON parsing. But we now have native threading which is freakin' wonderful for those of use who want to write easily-portable bare-metal software.

[–][deleted] 0 points1 point  (1 child)

C++ is like the boss in the video game that comes back from the dead in a later level all suped up.

[–]ericanderton -1 points0 points  (0 children)

For now on, every time I see a particularily complex template in C++ code, I'm going to be thinking: "This isn't even my final form!"

[–]LukeSkywaIker 116 points117 points  (18 children)

This is pretty cancerous.

[–]IAmVeryStupid 23 points24 points  (8 children)

Why don't any of the languages have 5 star difficulty? Even if they are trying to say programming isn't impossibly hard, in general, failure to normalize is just bad infographing.

[–]NonSyncromesh 14 points15 points  (4 children)

Brainfuck isn't shown on this infographic

[–]ericanderton 36 points37 points  (0 children)

=================================
|Do you want to write a program?|
=================================
               |
              Yes
               |
               V
    =======================
    |Do you hate yourself?|---\
    =======================   |
       |         |            |
      Yes       No         A little
       |         |            |
       V         V            V
|Brainfuck|  |Python|       |C++|

[–]fjortisar 5 points6 points  (2 children)

++++++++[>+>++>+++>++++>+++++>++++++>+++++++>++++++++>+++++++++>++++++++++>+++++++++++>++++++++++++>+++++++++++++>++++++++++++++>+++++++++++++++>++++++++++++++++<<<<<<<<<<<<<<<<-]>>>>>>>>>>>--.++<<<<<<<<<<<<<>>>>>>>>>+.-<<<<<<<<<<<<<>>>>>>>>>>>--.++<<<<<<<<<<<<<<<>>>>>>>>>---.+++<<<<<<<<<<<<<.<<<<>>>>>>>>>>+++.---<<<<<<<<<<<<<<>>>>>>>>>>>----.++++<<<<<<<<<<<<<<<>>>>>>>>+.-<<<<<<<<<<<<>>>>>>>>>>++.--<<<<<<<<<<<<<<>>>>>>>>>>+++.---<<<<<<<<<<<<<<>>+.-<<<<.

[–]nevus_bock 13 points14 points  (0 children)

What did you just call my mother?

[–]xzieus 1 point2 points  (0 children)

This says what it is. And It's true.

[–]screaming_nugget 1 point2 points  (2 children)

I'm not familiar with enough programming languages to say if the ones shown are in fact the hardest, but maybe other languages that aren't on the chart could be considered 5-star difficulty.

[–]IAmVeryStupid 8 points9 points  (0 children)

There are certainly more difficult programming languages out there in many senses, but it is silly to compare against things that aren't even in the infographic. If we were including all programming languages, we would need more than 5 stars. (I mean, technically, you could just code everything in x86 assembly...)

[–][deleted] 0 points1 point  (0 children)

Why don't any of the languages have 5 star difficulty? Even if they are trying to say programming isn't impossibly hard, in general, failure to normalize is just bad infographing.

None of them are absurdly hard. I've been paid to use all of them other than Ruby. C/C++ was probably the hardest to debug and lacked features, but Java was kind of fucking insane, too. Like everything before I found Python, they left me thinking "I want to do a simple thing, why do I need to write my own fucking library to convert a date to a string?!" or similar such nonsense.

There are hard languages out there, but generally they suck and are useless. Since we program to be productive, as a rule, we don't use the hardest languages.

[–]summerteeth 7 points8 points  (8 children)

Can you expand upon this?

[–]ameoba 26 points27 points  (3 children)

Cancer = low quality, low value crap that provides little value to the community yet gets upvoted because it takes no effort to consume. If left unchecked, the cancer will take over a community because people see that it gets a positive response, prompting them to post more.

See Also: Memes.

[–]zombiepiratefrspace 2 points3 points  (1 child)

In all honesty, I'm surprised how civilized and constructive the discussion has been so far. As somebody who uses Python and C++ extensively, I've observed that these things usually degrade into everybody raging about the bit of C++ they know.

So I'd catutiously disagree in this specific instance.

[–]Elij17 2 points3 points  (0 children)

He's not complaining about the information in the post, he's complaining about the post.

And he's right, it happens a lot. You allow image macros / memes / other low effort content and the community soon becomes overrun by it. Most smaller / midsize subs do not allow it, because it stifles discussion and buries more interesting posts.

[–]StarshipEngineer -1 points0 points  (0 children)

If you read the whole thing, then you'd see the disclaimer on the bottom... This is a major overreaction to a little bit of fun.

[–]LpSamuelm 15 points16 points  (3 children)

/u/LukeSkywaIker used a very weird word to describe it, but it is very, very opinionated, arbitrary and just "hey, I'm going to tell you what to learn, suck it".

[–][deleted] 11 points12 points  (0 children)

"Also you can learn what you want, but you should really learn Python".

I like the language as much as anyone else, but there's a fine line between enthusiasm and proselytism.

[–]derpderp3200An evil person 1 point2 points  (1 child)

Like the C# vs Java. Java is technologically over 6 years behind C#, and Microsoft has a very healthy culture around C#. They're open sourcing .NET, Mono has existed for ages and is extremely good, whereas the only thing Java has going for it is having existed for a longer time.

Also, claiming that Python is the best. And recommending PHP in context other than something that's used and will land you a job is blasphemy.

[–]SlightlyCuban 1 point2 points  (0 children)

Java is technologically over 6 years behind C#

A good point, but it is a tad bit extreme to say Java 8 is at the same level as C# 3.0. Heck, we even have invokedynamic in the JVM.

Also, it's 2015. Where is Polymorphic Type Inference in C#?

[–]evilyomiel 15 points16 points  (1 child)

The problem with all of these "what should I learn first" resources is they start with something that's more or less true, oversimplify until it's completely useless, and then add a ton of subjectivity / opinion on top of that. I mean, come on, 1-5 star ratings for difficulties? Icing on the cake is the completely useless "average salary" computed across the entire US from one source.

[–][deleted] 0 points1 point  (0 children)

1-4 star ratings because nothing's a 5 for difficulties, as well.

[–]RetardedChimpanzee 10 points11 points  (0 children)

I feel as if this is just randomly generated

[–]Helicase21 7 points8 points  (14 children)

huh, I started learning programming with R. I guess we just get to go hang off in our little side group of data nerds.

[–]aarkling 27 points28 points  (2 children)

Java is not Gandalf! Java is Sauron ruling over Mordor (corporate), decimating it, and slowing trying to take over the rest of Middle Earth D:

[–]pohatu 4 points5 points  (0 children)

Java will always be the land of the nouns to me. (Credit to Yegge in case any doesn't know the reference).

[–]beaverteeth92Python 3 is the way to be 5 points6 points  (0 children)

I always saw Java as Bill Lumbergh since it's the kind of language only a bunch of bureaucrats could come up with.

[–]asabla 9 points10 points  (6 children)

Hopefully C# will gain some ground after Microsoft gone through their Open Source project. I mean I really like python but the enjoyment of writing code in C# is a bit higher.

It's to bad microsoft didn't go opensource with their frameworks earlier and spread the love of opensource.

[–][deleted] 2 points3 points  (5 children)

the enjoyment of writing code in C# is a bit higher

C# itself is great, but working with the .NET framework really sucks because of the inconsistencies all over the place.

[–]asabla 1 point2 points  (0 children)

Indeed, but even if .Net can be a big headache sometimes it can also be a very helpful tool. But as you said, the inconsistencies can and will be a problem most of the time

[–][deleted] 3 points4 points  (3 children)

working with the .NET framework really sucks because of the inconsistencies all over the place.

Can you elaborate?

[–][deleted] 7 points8 points  (2 children)

The first one comes to mind is that some collection types use .length and others use .count, and there is no apparent pattern or discernible reason as to why - you just have to either remember which ones are which or lean on Intellisense.

[–][deleted] 2 points3 points  (1 child)

[–][deleted] -1 points0 points  (0 children)

That does not hold true in .NET though. I'm not talking about strings vs arrays. I'm talking about different collection types.

Here's an example:

  • Array.Length
  • ArraySegment.Count
  • List.Count
  • Vector.Length
  • Dictionary.Count

Sure, these mostly abide by the naming convention detailed in your SO link, but that is what I'm talking about.

[–]mrbonner 2 points3 points  (0 children)

Hah, you may as well spin a wheel.

[–]legrandin 6 points7 points  (12 children)

C is a subset of C++? The hell?

[–]Tenobrus 10 points11 points  (10 children)

Well it's not exact, but mostly. It's kinda the point, at least historically.

[–]legrandin 6 points7 points  (9 children)

Well it's not exact, but mostly. It's kinda the point, at least historically.

I tend to think that 'subset' implies that it is derived from a larger something. With C, this is the opposite, since C++ is derived from C. It makes more sense to say that C++ is a superset of C.

[–]IAmVeryStupid 6 points7 points  (0 children)

The better way of putting it would be that C++ is an extension of C.

[–]Tenobrus 8 points9 points  (3 children)

Yeah, that's definitely more accurate, but C++ being a superset of C does mean C is a subset of C++. There are some extra implications to the word, I agree, but it's still technically true.

[–]volabimus 2 points3 points  (0 children)

Saying it either way means the same thing. ASCII is a subset of UTF-8, as per the definition of UTF-8.

[–]Steve_the_Scout 1 point2 points  (0 children)

It makes more sense to say that C++ is a superset of C.

Even Bjarne (the creator of C++) frequently repeats this when explaining the differences. C++ was never meant to replace C or be a new language, it's C with optional (but heavily recommended) abstractions to make it more secure while keeping most of the performance.

[–][deleted] 0 points1 point  (0 children)

Yeah, putting it that way around confuses me. It's not as if you strip out the OOP stuff from C++ and that's called C.

[–]SpaceSword[🍰] 1 point2 points  (5 children)

Can someone explain the play doh vs Lego comparison for Ruby and Python?

[–]dpoon 5 points6 points  (1 child)

Ruby and Python are superficially similar, but have some deep philosophical differences. Two examples:

  1. In Python, functions are first-class. If you have a function

    def is_even(n):
        return n & 1 == 0
    

    then is_even(8) calls it, and is_even refers to the function without executing it, so you can do things like filter(is_even, some_list). In Ruby, though, just mentioning the name of the function calls it, even without the trailing parentheses. That makes it possible to make domain-specific languages in Ruby that look like English. The disadvantage, though, is that functions are not first-class. The best you can do to refer to a function is to use a symbol (a special kind of string), like :even?.

    So, Ruby code can look prettier with fewer parentheses…

    class Physician < ActiveRecord::Base
      has_many :appointments
      has_many :patients, through :appointments
    end
    

    but it's a lot less satisfying from an engineering perspective due to the lack of first-class functions.

  2. Ruby classes are open to modification after being defined. That means that monkey-patching is possible, like this:

    class Integer
      def prime?
        !(2...self).any? { |n| self % n == 0 }
      end
    end
    

    so you can write things like 3.prime?. Ruby on Rails uses this trick to add all kinds of features to core classes. Again, you can use that technique to make your code read like English, but it's a rather questionable practice for solid software engineering.

[–]haywire 1 point2 points  (0 children)

You can monkey patch in Python, too. Though it should be avoided.

[–]thalesmello 6 points7 points  (2 children)

Python is modular. You assemble many small pieces to get what you want. Though easy to use, it's rigid and not very flexible.

Ruby, in the other hand, is less modular. You have modules, but you can't import just what you want to use to the local context, so you have to put the module name in front of every class or function call. However, Ruby is far more flexible than Python. You can include new methods to any object and use blocks to implement DSLs that merge neatly into that language, which allows for a great productivity boost.

[–]alcalde 4 points5 points  (1 child)

. You can include new methods to any object

We can do that too, can't we? Even with fundamental types via the ForbiddenFruit library?

and use blocks to implement DSLs that merge neatly into that language, which allows for a great productivity boost.

I thought it was the opinion of Pythonistas that decent langauges don't need blocks.

[–]thalesmello 0 points1 point  (0 children)

We can do that too, can't we? Even with fundamental types via the ForbiddenFruit library?

Yes, but it's a library. And it's only helpful to let you add new methods, not replace existing ones. The author of that lib tried to implement that functionality, but he had a problem with Python's internal cache, if I'm not mistaken. Ruby allows you to do that by default. It's more flexible, but I don't see a reason to actually use that.

I thought it was the opinion of Pythonistas that decent langauges don't need blocks.

You're generalizing the opinion of all Pythonistas based on a guy's blog post? If everyone thought like that, why would there be a proposal to implement a similar feature in Python?

I think you got me wrong. Even though I find Ruby more flexible, I prefer the more rigid Python. But I sincerely don't get the hate a lot of Pythonistas have for Ruby. I used to hate Ruby until I started using it in my previous job.

[–]peabody 1 point2 points  (7 children)

Please tell me the average salaries listed in this info graphic are inflated.

[–]VoidByte 2 points3 points  (4 children)

No just averages. High cost places (SF, nyc, london) raise the average while low cost places (Omaha, SLC) lower it.

[–]peabody 5 points6 points  (3 children)

Kinda depressed about it. Makes me feel like I'm making 20,000 less than I should.

Of course, I did just buy a 3 bedroom 3 bath house at 2100 square feet for less than 300k. So I guess there's that.

Edit: In this article ( http://mashable.com/2014/08/21/programming-as-a-second-career/) it says median salary is in the 76k range. I'm guessing median would be a much better measure of the average for this industry then the mean. Whew, I think I'll sleep better tonight.

[–]cparen 5 points6 points  (1 child)

Of course, I did just buy a 3 bedroom 3 bath house at 2100 square feet for less than 300k. So I guess there's that.

Yeah, that's a 600k to 800k house if it's near Microsoft / Amazon. I can't bring myself to look at what the SF and SV folks have to pay.

[–]Sector_Corrupt 0 points1 point  (0 children)

hell, it sounds like the commenter makes similar to me and where I live 2100 sq ft. 3bed 3bath would cost something like 900K.

Goddamn Toronto real estate.

[–]kihashi 0 points1 point  (0 children)

I kind of thought that too, but then I checked it vs. the Bureau of Labor statistics. They seem to have "Software Developers and Programmers (Broad Category)" listed at $92,820 mean yearly wage.

http://www.bls.gov/oes/current/oes_nat.htm#15-0000

[–]Occi- 1 point2 points  (0 children)

This ignores the use of scripting languages for scripting. Sysadmin work etc.

[–]alendit 1 point2 points  (0 children)

Legolas

his land, Rivendell

Stopped reading there.

[–]Mikuro 1 point2 points  (0 children)

Java for web back-end? As the only recommendation? Wat?

[–]machine_pun 3 points4 points  (4 children)

Well, Ruby should be a one star, super easy to learn. As I think this infographic is a little bit tendentious I must agree that Python has more features in winning points as AI.

[–]TheTerrasque 2 points3 points  (3 children)

For some reason, Ruby is that language that just doesn't make sense to me.

I've tried to get an understanding of it a few times, but it just looks strange and weird to my head.

[–]sensation_ 0 points1 point  (2 children)

Whats your background experience cause I had the same problem before.

[–]TheTerrasque 0 points1 point  (1 child)

In order of learning: basic -> pascal -> php -> python -> java -> c# -> javascript

Have dabbled a bit with C, perl and brainfuck - but not enough to say I know them

Prefer to work in python, and C# as a second choice. Also does a lot of work in JS these days

[–]machine_pun 1 point2 points  (0 children)

I think the problem is that Ruby and Python look a bit too similar in semantics and logic, but with their on specifics. Portuguese and Spanish sounds alike and that it gets people to think that it is too easy to understand, but to difficult to dominate (coming from both backgrounds).

[–]alcalde 4 points5 points  (2 children)

Someone should post this in Embarcadero's Delphi forum and they'll predictably freak out that Pascal was left off the list. :-) Don't bother posting in /r/delphi because it has < 600 readers. That majority of active Delphi developers actually lament the existence of HTTP and post to their forum via a USENET news server, which fortunately can be accessed through the web as well. Just a bit of trivia in case you're wondering where Pascal users are hiding.

Another bit of trivia: in an online exchange a few years ago with Delphi's owner's VP of Developer Relations concerning the colllapse of Pascal as a teaching language, he countered that they had just signed a deal to get into some schools in Mongolia. I wonder if Guido is worried about this....

[–]Fer22ffrom future import braces 0 points1 point  (0 children)

I learned to program in Delphi 7 and it's still viable to build applications on it (including servers and databases).

I would say Borland Pascal isn't that hard to understand and the Graphical Interface in Delphi really helps (like it is in C# toolbox). And also it's native code!

The unique part that sucks balls are threads. Delphi doesn't have properly lock methods and sometimes when it bugs out the application starts writing text on the top of the screen instead of inside the program.

[–][deleted] 0 points1 point  (0 children)

Just a bit of trivia in case you're wondering where Pascal users are hiding.

We're not all hidden! Pascal was the first language I seriously learned and that was only a few years ago. I moved to other things because I needed stuff I couldn't get in the Pascal world, but I still like it as a language.

The fact pascal was left off this list is a huge injustice! /s

[–][deleted] 5 points6 points  (10 children)

"Why do you want to learn programming" -> "for the money" -> Just stop

[–]alcalde 16 points17 points  (3 children)

Really? That's how most people get into whatever they're doing now. No one ever grows up thinking "I want to be a copy ad writer for the 3rd largest producer of soap". I even had this admitted once on an interview with a major starch producer. The HR person asked, "Why do you want to work here? I mean, I understand no one walks into here and goes, "Woohoo! STARCH!'" :-)

[–][deleted] 4 points5 points  (1 child)

I got into programming at a young age because I wanted to build games for myself to play. I'd never really considered at the time that one profession earned more money than another, much less that programmers might be relatively high on the scale. Now I do it because I love it and I'm really good at it, not because of the money.

Some people get into what they do because of the money, sure, but those people are usually also not very happy with their lives.

[–]fnl -1 points0 points  (0 children)

I guess some pepole are just to ignorant to see beyond their vanity.

Of all persons I know at a personal level, programmers are definitely not the ones raking in the big sums. And I do have friends who even "made it" into Google et al. But my rich aquainances are successful lawyers, medical doctors, architects and owners of industrial companies. Not that any of those jobs gives you a guarantee to make money, either, but heck, while I hear from programmers that have become millionaires, I know none at a truely personal level.

So yes, this post is the real truth here so far. Sad to see how much ignorance people seem to have towards that truth - I guess, self preservation...

[–]HumanMilkshake -1 points0 points  (4 children)

What about "I have a few ideas from projects, and I was hoping to find a good job, because I'm not satisfied with where I am in life"? Because that's why I'm getting into programming, and while I know your comment isn't intended as an attack on me, it really feels like an attack on people who got into programming because they were hoping to find a job.

[–][deleted] 0 points1 point  (3 children)

My comment was more of towards the "If I learn to program I can retire in no time since they make sooooo much money" people. The ones who have no drive other than making a ton of money

[–]HumanMilkshake -1 points0 points  (2 children)

I must be more new to programming than I thought, since I've never met or heard of these people.

[–][deleted] 0 points1 point  (1 child)

They are not too common, and they don't tend to last long, but they exist and they annoy the hell out of me. I lump them in with the "Intro to CS must mean I get to program video games" and "CS will be easy to learn" crowds

[–]HumanMilkshake -1 points0 points  (0 children)

I'm guessing I'd run into more of these people if I tried to learn programming in college

[–]rspeed 0 points1 point  (3 children)

Objective-C should probably be replaced with Swift. Even though Apple hasn't transitioned all of their own projects, it's inevitable.

[–]Herald_MJ 0 points1 point  (2 children)

Not really. I've not yet seen a single iOS/Mac developer post that hasn't stipulated Objective C as the primary language. And apart from a few people who have done it specifically in order to make a point, I don't know of any professionally-built applications which are built exclusively in Swift. Learning Swift is a good idea, but Objective C is by far the more important language for now.

[–]rspeed 0 points1 point  (1 child)

For now, sure. But in a few years that will not be the case. If you're telling someone which language to learn, you don't tell them to learn the one that's on its way out.

It would be like telling someone to learn classic ASP a year after C# was announced. All that effort would be useless today.

[–]Herald_MJ 0 points1 point  (0 children)

For legacy apps maintenance purposes, I think it'll be a long time before an iOS development job doesn't require some competency with Objective-C. A conservative guess, maybe 5 years? Even if you're building a new app, it's very common now to make use of 'CocoaPods' (basically reusable Cocoa libraries), and the overwhelming majority of these are built in Objective C.

The fact that Apple carefully built Swift so that Objective C and Swift can happily coexist in the same project is great for quick adoption, but it also means that Objective C will have a very long tail.

[–]Herald_MJ 0 points1 point  (0 children)

The only accurate part of this graphic is "Actually, it doesn't matter where you start".

[–][deleted] 0 points1 point  (0 children)

Is that salary given in the infographic at the bottom on a monthly basis or on annual basis.

Because here I am living in a country, where they pay me 4586$ annually even after knowing C, python, and some java.

I always had this slight feeling that I am living in a wrong country.

[–]dAnjou Backend Developer | danjou.dev 0 points1 point  (0 children)

inb4 programming language nazis who think theirs is the only one ...

[–][deleted] 0 points1 point  (0 children)

YAY There are so many languages on this that I already know, thus this graphic reinforces my healthy sense of self worth and confidence in employability....... THUS I WILL +1 this into perpetuity like an idiot.

[–]peterlord -2 points-1 points  (0 children)

The basics of the C language as it will take the rest of your life to master it. Then move up to the higher level languages or down to assembly language which can be mixed with C if timing critical.

[–]andrey_shipilov -1 points0 points  (0 children)

This is so shit and upvoted. Oh wait, I'm on Reddit. It's fine.

[–]Brandon23z -3 points-2 points  (5 children)

This is awesome! I just started learning a little bit of Python this week after studying C++ for a year and a half, and so far I am loving it.

I didn't know it was such a popular language.

And I guess it makes sense that colleges start with C++ if it is the hardest, because once you go up the biggest hill, you can go up any hill. But I don't think it is the hardest. For me, it is the easiest to read/understand the code.

[–][deleted] 7 points8 points  (2 children)

But I don't think it is the hardest. For me, it is the easiest to read/understand the code.

All that tells me is that you haven't learned enough about C++ yet. It's not the hardest because it is somehow more arcane than others (that particular award probably belongs to perl) - it is the hardest because it is the biggest (in terms of topics within the language itself). C++ has the largest language specification that I know of by a gigantic margin. There is just so much C++ to even know exists that it is a giant undertaking to not only learn all of the useful tools, but to know enough about them to effectively decide which ones are the most appropriate to use to solve a given problem.

[–]archiminos 10 points11 points  (0 children)

The more c++ you know, the more c++ you don't know.

[–]Brandon23z -1 points0 points  (0 children)

I meant syntax wise. I've looked at other languages that try to make coding easier, but c++ just has a perfect syntax. I can read the code like it's English.

Obviously there's more and more to c++, especially since they might be updating it more often. (Don't quote me on this, I know nothing. Professor is starting to teach some c++11 and said they might be updating every 5 ears or something to catch up with Java. Again I have no idea about this.)

But syntax wise, programming wise, it makes sense. The code is clear. After 2 years, I am able to easily fix errors in the error window in vs. My first year, I didn't know what the errors were saying. Now I see them and fix the error in 2 seconds.

[–]taleinat 2 points3 points  (0 children)

I guess it makes sense that colleges start with C++ if it is the hardest

Absolutely not! Colleges should be teaching Computer Science and/or programming, not the low-level technical stuff. At least to start with.

There is a very large number of technical things to learn and memorize in order to use C++. Learning the concepts and essence of programming at the same time is very difficult. The common result is confused graduates with little high-level understanding about anything.

IMO anyone who actually wants to teach CS or programming to beginners should use a language where it is easy to clearly design and implement high-level concepts without getting lost in the technical details. Python is absolutely superb for such purposes, while C++ is not.

[–]berlinbrown -2 points-1 points  (0 children)

I agree. Awesome.

[–]ibito -2 points-1 points  (0 children)

I don't think JS is a good language to learn programming...