While I applaud anyone trying to get into software development I find it hard to believe that in 2011 "the resources available to a new student developer were limited". I'd also object to ruby being the best first language for someone to learn. Maybe you had trouble getting advice as to where to look to get started, but the internet is full of folks who are eager to give you their 2 cents on that topic. As far as ruby goes, nothing against the language but I personally think it's much more difficult to learn than java or c# which have more applications, a wider audience (and hence more material to read) and better support in terms of IDEs. They are also syntactically much easier for newbies.
That said, I congratulate you on your new found love of programming and your willingness to share the knowledge.
My only problem with Java and C# as beginner languages that starting off takes so much understanding or glossing over of details. In Java, it's a class with "public static main void" before anything will work.
PHP or Python are a better way to start because "hello world" is literally a line or two of code.
That said, I always recommend Python over PHP because it enforces good a habits from day one. Once you learn the skills and concepts, working in the much looser PHP environment is safer.
the syntax is much more regular and more verbose, but that can be a good thing. The regularity means that it's easier to remember what's supposed to come next/how to do something, and the verbosity means that there's less obfuscated phrases.
Granted, ruby and python aren't as bad as perl, but they definitely aren't as regular as java either.
Of course, once you start getting into advanced topics, all that can go out the window, but at that point we aren't talking about a newbie anymore, so what we/they will expect from a language will be different.
> Granted, ruby and python aren't as bad as perl, but they definitely aren't as regular as java either.
I wouldn't mix those two when making a comparison to Perl.
As an example, there are like four different ways to write a simple 'if' statement in Ruby, with some blurring the difference between that statement and conditional expression (ternary operator in C-like languages). In Python, there is just one 'if' statement which is also clearly distinct from 'if-else' conditional expression.
This is a great list/discussion of resources. I am also helping someone get started learning software development but I have taken a slightly different approach. I am focusing on the computer science fundamentals first and afterwards focusing on web development. I have found that the Coursera courses as a great starting point. There is the Algorithms I and II with two introduction to programming courses using Python.
I also believe the Stanford courses (such as CS106A) is a great resource. I also would not discount the Oreilly Technology School.
The danger with starting with web development is that unless the person is very keen on learning, gaps in knowledge can develop and bad coding practices can be learned.
That said, I congratulate you on your new found love of programming and your willingness to share the knowledge.