Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

So, I've been working on Ruby with the goal of self-employment (I'm an impoverished philosopher (not even in university!) and can't get a normal low-paying job).

But there is a quandary in my road of learning and discovery: I keep getting sidetracked by CS (mostly theoretical). I'm starting to think that I should consciously stop myself from straying into the theoretical until I am, I dunno, not starving? :)

So I would like opinions on whether or not my view is rational (I guess a better term would be pragmatic), and of course discussion in general relating to the interrelationship between language mastery and general CS mastery is welcome.

share|improve this question

1 Answer 1

It depends greatly on what you're attempting to do with the language. Ruby is a fairly straightforward language that can easily be used in a regular imperative manner and that comes with a massive amount of libraries and frameworks (most notably Rails).

If you want to develop standard business information systems and/or websites, there's not a whole lot of computer science required to get extremely far. Most of it will pop up when a site you've developed becomes very popular and performance and scalability becomes an issue. Up until then, what you'll need to learn are programming practices, design patterns, testing tools, modularity approaches, etc. Nothing that is very theoretical.

There are basically two reasons you might need to dive into computer science concepts to get further:

  • You want to implement all kinds of algorithmic functionality (from sorting to indexing, etc.) yourself or want to write an application focused on these kinds of activities.
  • You want to use everything Ruby has to offer and use internal DSLs, metaprogramming, full functional style, etc.

Both I would say are entirely optional until you've been working as a Ruby developer for a couple of years and really want to go further.

At the same time, I am a firm believer that a serious, in CS-grounded approach to software engineering is the only way to really excel in your field. But if you desperately need a job now, forget about that (but not indefinitely, because I don't want to be hired a couple years down the road to maintain your stuff :))

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.