Hi There (this turned out kinda long but i appreciate you reading),
I've been in IT for about 10 yrs. I've had exposure in everything from rolling out server environments, to routing, to security. I've worked quite a bit with web servers and have been exposed to the superficial structure of things like asp.net, css, html, xml, php, mysql, mssql etc.
With that said, I'm comfortable in those environments, but i've never gotten into the programming side of things - well i've done a couple databases, know how to write a SELECT statement, and can probably deduce how a few lines of code function if i stare at them long enough.
Anyway, I've been reading up on programming languages for 2 days. There are probably 30 posts on stackoverflow alone about getting started in programming. Usually these assume nontechnical people either under a deadline crisis "ill get fired if i dont know java by this afternoon" or the casual "programming looks neat, can i try?"
I haven't found any posts that address people with technical backgrounds and our learned or inherent ability to think and deduce logically and analytically.
My interest is as an systems "inventor", I find my hands tied when wanting to prototype an idea, and often have to seek out help to do things. For instance if i wanted to write a web app or desktop app or even create a small device that would allow me to surf the web on my TV (i know spend the 200 bucks on appleTV or find a cheap laptop) I would have to find help for almost every step of that, or ineffectually ramble through trying to do it myself. In both circumstances, i would have no idea of evaluating whether what was done was of any quality or possessed any flaws or had potential pitfalls.
So, with that said, i was looking for a programming language that would allow me to start tinkering quickly (eliminates c and c++/ and java is supposed to be verbose and bloated), would allow me to be creative, and open the door for understanding when moving into something much more in depth... building a small OS or the next facebook.
I'm currently tossing around Ruby, Python, and C#.
-Ruby sounds exciting but I understand it's mostly hyped because of rails, may be a bit shallow in depth, and could lead to poor programming technique... in the end though, isnt technique more conceptual than syntax?
-Python seems like a good option in that it has the ease of Ruby, but is perhaps more extensible? My concern is that it may not be widely supported or accepted. Although I've read to the contrary, I don't ever remember hearing "yeah that awesome... was built in python", but then maybe i just havent been listening. From a publicity level, i dont think i've ever heard python talked about.
-C# seems to have very mixed opinions from it being the next evolution in C,C++... to it just being Microsofts hand being crammed down our throats because of their breadth in the industry.
With that said, I'm not really looking for a language debate, so much as which is gonna get me going so i'm tinkering this weekend and for years to come.
I'm not saying I'll have google built by monday, but i'd like to get past the card and dice games and into something more interesting (yes, i took a java class in college which i did well in but was turned off after becoming bored by the course's pace).
Like most of you here, I'm a pretty smart guy. I pick up things quickly, i have a high IQ, and I'm driven when i get my hands into something. My problem is that I lose interest if I hit deadends with no resources to get me through (potential pitfall of ruby?). I want to find something that will allow me to get going, but I don't want to find out in a year that "oh you learned .... pfft, you shoulda learned ... and you be able to do SO much more"
I do understand that most people learn multiple languages, but I would bet that many also still use their first language quite a bit, unless its obsolete of course (and even then?).
Thanks for reading, that was a bit more wordy than I'd anticipated, but sure would be helpful to get feedback.
//EDIT I just typed a bunch of stuff realizing that this couldn't possibly be the etiquette for responses, so I'll post like the rest of ya!
//EDIT2 aparently there's no way to post. Sorry I suppose i need to get past thinking of this as a forum.
Anyway, The opinions i've brought up are clearly not my own, so comments like java being bloated are just reitterations of the info available to me... of course i cannot form an educated opinion b/c i'm obviously uninformed.
To the posts about employment, I'd be more concerned with demand. I do really quite well as an IT/Security consultant, so the job thing doesnt attract me as much as the ability to create things that other people want.
I'm absolutely mindblown by the volume of activity on my post in such a short time. I agree that I will probably learn more languages in the future, but i think like anything, in laying the foundation, you are initially although perhaps not permanently shaping your course for growth... and in some sense i think that probably sticks with you inevitably.
In regard to what I want to do, I think its pretty inevitable that I'd want to develop something web based and/or mobile. From an IT standpoint, things have been going that direction for years. And as far as platform, i'm pretty agnostic. I'm writing this to you from Vista (bleh) but run Ubuntu on my laptop and use VM's to run a bunch of flavors of linux. I even have that Mac OS VM, but it runs like crap. Maybe that's a good allegory for programming languages. I'm versed in many OS's because I have to be, and even run Vista on my desktop so I'm familiar with it, and in this case, how bad it is (lets not get off topic)
About Objective-Basic, i think that has the same quality of C# in that its platform specific, actually more so than C#.
C# seems more intimidating than the other two.
On the Dreamer's side of things> Wordpress, Twitter, Facebook - all huge, if you were going to make the next big one, which would you use? On the Practical side of things> Is Ruby really extensive enough to bother with? I still am not sure what Python is used for. C# and Ruby I've seen working, and I've even rolled out C# sites on servers so they seem more tangible. Can someone nail down python a bit more for me?
//Edit3 So realistically, I think I'd mostly work on web based stuff... albeit hopefully more innovative than FORM->DB->OUTPUT... Does that affect Python as a good option?