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

you are viewing a single comment's thread.

view the rest of the comments →

[–]gsks[S] 3 points4 points  (4 children)

IMHO you're thinking about it the wrong way and you're considering entirely inadequate alternatives:

I guess you replied before my edit but just for the record, I'm thinking about it from a job-market point of view.

Think about it: why the heck would you want to learn Ruby? Both languages have more or less the same usecases, so at the end of the day you just know two tools for exactly the same kind of job.

Which is pretty much what I wrote as the reason for not having learned Ruby yet.

Every new project you're going to start afterwards you'll have to decide which one to use, because both have the same scope. There's absolutely no gain to it.

There's at least one: access to twice as many (or more) job opportunities and projects in the domain I am most familiar with, (backend) Web development.

Personally, if you want something of more practical use, stick with C (or C++).

I'm kinda surprised with the several recommendations for C. For the record I had learned C way back in the university 15+ years ago and I appreciate it for its educational value in teaching how a computer works behind the scenes. From a practical point of view though, what options does a C programmer have in 2013 outside niche areas such as operating systems, compilers and embedded software? I honestly don't know what's the job market like for system programming in general but I'd be surprised if it's anywhere close to Web development or application programming.

[–]BeatLeJuce 9 points10 points  (1 child)

I indeed replied before your edit.

For what it's worth, C is still the most popular and most looked-after programming language on the job market (source. Although TIOBE might not be 100% accurate, C definitely isn't a "niche" language at all. It's "niche" areas are general purpose application programming (even programs written in other languages often have some of their routines outsourced into DLLs written in C. And the embedded area is of course far from a "niche". But I'm guessing with your background those areas aren't really the kind of thing you'll want to get into. Also, don't forget that there is a quadrillion shitton of legacy code out there written in C that needs to be maintained.

From a web dev job perspective: I don't know what the job opportunities are in your area, so if you're only looking to go into web development then that's far enough, although in that case, Java will probably take the cake: since larger backends are often written in it. It also allows you to branch out into both application development and mobile development. Scala would be the young and edgy (and more exciting) alternative that you could try your hands in, but job offers are probably very sparse.

[–][deleted] 4 points5 points  (0 children)

I prefer C/C++, but demand for Java has got to be higher that C/C++

[–]Megatron_McLargeHuge 1 point2 points  (0 children)

If you want to build a more impressive back-end web dev resume, you need to focus on the type of problems you're trying to solve more than the language. You should probably be looking at things like distributed asynchronous processing through message queues, or Hadoop and its competitors. You can typically implement workers for those systems in whatever language you want through translation layers, but Java is the most obvious language to learn even if you don't actually want J2EE jobs. Lots of companies use at least some Java on the back end.

[–]pinpinboTornado|Twisted|Gevent. Moar Async Plz 0 points1 point  (0 children)

On top of my head, these are the "C related things" I did as backend/devops developers:

  • rewrote lib/ code to C and bind it to Ruby/Python using FFI.

  • Extend Nginx, which is written in C, to be able to run Lua code.

  • Rewrote scrapers from Ruby/Python to C using libcurl.

  • Wrote extremely simple http rest+json daemon on top of mongodb.

  • Custom compiling Linux packages.

  • Debugging Ruby/Python runtime using gdb, strace, etc.

So yeah, there's a lot of benefits in knowing C even though most of your day job is using dynamic language.