PDA

View Full Version : Very detailed post help me choose a language <3



jennifer1992
November 20th, 2012, 08:28 AM
Hey guys the reason I'm on this forum posting my thread is....well the nature of it is absolutely complex. It's also personal in nature I suppose. I am going to try to be as detailed as possible in order to paint a literal 'portrait' for you...i hope this help's give you an idea of my abilities in order to give me a good suggestion. :popcorn:

(personal details *skipping this paragraph is ok*)
I am 20 years old..my adoptive parents died in an accident when i was 16. My grandma has been looking out for me ever since...she absolutely rocks and is my 'anchor'. Recently grandma got leukemia & I had to drop out of college to help take care of her. My life's goal/dream now is to learn programming, in order to help provide myself a stable platform from which to run my own business from home. So that I can spend my days working + taking care of my grandma instead of choosing one or the other. With that said...I am now making enough to pay my bills (barely).

(return to str8 logical data pls read)
About 2 months ago I decided to start learning Visual Basic (via the .net 2010 studio). The reason being is that I want to one day rely on MYSELF for the programming in my little start-up company. Essentially what I am looking to be able to do is...Provide management of small business's social networking accounts/profiles/pages (i.e. facebook youtube). Now in order to do this for the # of companies I will need to service to fully support myself and my grandma is well...too many to do by hand alone.

Well I soon realized that I would need to automate a lot of the daily duties for each company. I picked up visual basic & ran with it. What I've found is that the language is not ideal for automating website tasks (from my desktop/windows operating system). The webbrowser controls are old/antiquated & quite honestly useless beyond websites made in 2003/prior. Then using webrequests for most websites requires extended time doing what other programmers have told me is essentially packet sniffing for stuff to insert into your code.

So now I am on a personal quest of sorts...and unlike the ones I made in the world of warcraft...this quest is very real & will have a direct effect on my ability to feed/clothe myself + my grandma for the long term future.

This quest is to find the perfect programming language/operating system that is most 'capable' of handling my future programming needs. Which is to say interacting with remote social networks/social video networks. In terms of logging into accounts/interacting with users/uploading videos/updating status's...accepting friend requests/replying to customers emails with automated responses etc. I also hope to be able to reply to customers based on the text contained in their questions (using databases etc.) I.E. getting into a beginning form of artificial intelligence I guess is the best way to describe that. Also later I will want to provide the same management/support for mobile social networks/apps (way down the road I'm guessing)

I also know that a programming language is only as good as the other people who use it. More specifically the community of people behind the scenes in forums just like this one, who provide support/encouragement/tips & generally make an otherwise 'staring at code all day' existence a much better one! So I want to choose a language that has an active community willing to help out total newbs/novices.

I have exactly enough $ to spend a FULL 2 months learning a programming language. And I have enough resources to hire a 'tutor' for maybe 10-15 sessions... or to take some part time courses with an online college or whatever as well. I think I would prefer to hire a tutor though. After that I'll be able to dedicate 2-3 free hours every day I have to continued learning. So with that in mind...and...with the above prerequisites as to "what i need to do with the language".


So What language(or language's) would you personally suggest to me..that can most directly/efficiently deal with this type of 'scripting/programming/software' mentioned above. Assuming I take the time to learn it properly. I am open to all platforms/OS's etc.

Lastly....
My previous OS experience is as follows: Mostly windows operating system, on which I would consider myself intermediate-professional (not expert). Linux (very much beginners level). DOS/UNIX (novice level). My programming experience is as follows: Visual Basic 6 & Visual Basic 2010 (beginner level)..essentially i am proficient enough to take sample code, change it around to my needs...program basic scripting functions to interact with the operating system/access files etc. Have no experience yet with databases/mysql etc. PHP (beginner) able to do very basic tasks. I do learn fairly quickly though. I am very good at problem solving & I am a very logical person especially when it comes to problem solving/diagnostics. Ok that's it I really appreciate anyone that took the time to read this...& appreciate even more anyone who took the time to read this & is about to post their suggestions/opinions! :guitar:

MG&TL
November 20th, 2012, 08:49 AM
Pretty much any language of your choice + a networking / socket / HTTP library would allow you to do what you want to do.

<opinion>
But for the love of <insert deity here>, please ditch VB. It's a horrible language, and it's not exactly cross-platform. Trust me, I have to use it for school. ANY major language would be better. Java, C, C++, Python...even C# if you want to go down the .NET route you're (presumably) comfortable with.

</opinion>

But in the end, just make sure you have fun with what you're doing, because otherwise it's not going to be a lot of fun. Good luck with your quest though, sounds like an epic. ;)

greenpeace
November 20th, 2012, 01:12 PM
hey! Firstly, good luck with it!

Echoing the comments above... most languages will have the basic tools to cover what you're doing.

2 months is not all that long, but more than enough to get you started on something, but even so I would choose something with a shallower learning curve, perhaps Python or PHP.

Python is a solid scripting language, and my "weapon of choice" for most scripting problems. PHP makes making webpages very simple, and works nicely with Apache.

Setting up and maintaining LAMP (Linux, Apache, MySQL, PHP) installations is trivial on Ubuntu, and there are so many tutorials and Q&As available online, that supporting it should be fine.

Java might be a little "heavy" for the smaller applications that it sounds like you'll be creating, but of course is very stable, and very well documented. Perhaps the learning curve might be a little steep for your timescales.

Also, you might want to consider an application like Drupal or another CMS (Content Management System) to provide a framework to your work. These integrate nicely with PHP too for functionality not supplied by the base installation.

Now, it sounds like you might also want to have a look into the Facebook Apps tutorials, as these are the sort of "interactive" elements that social media clients love.

https://developers.facebook.com/docs/

There's a lot there... read about what you can do, and think about reporting as well, as everyone likes to know how they are performing.

Wish you all the best on the journey!!

slickymaster
November 20th, 2012, 06:40 PM
When it comes to programming languages ​​for beginners, C in my opinion is not a good choice, nor any language that is exclusively object-oriented, or one that does not make sense to use it without being so (C++, Java).

A good start, without resorting to Pascal, which is no longer used practically today, may be Python (not using the part of objects) or PHP. Both languages ​​are very simple and I think motivating in the sense that you do not lose much time debugging, and things work well and quickly with good results.

As an intermediate language, I would probably advise you Java and C in that order. It is true that Java is much easier than C, but I think that a good programmer has to have good bases of memory management, and it does not get much better than C.
The choice of Java falls more towards being a good language for introduction to object-oriented programming, and for being a good bridge between C and C++.

Finally as a final language C++. It has a superb performance (only overcomed by C), with the advantage of having objects, which makes the perfect match for all kinds of projects.

Cope57
November 20th, 2012, 07:03 PM
I would recommend Java, because of the wide range of uses. Java is used in almost every portable device such as tablets, smartphones, and netbooks. It is a widely used programming language, and is gaining even a larger spectrum of uses.

It is just my opinion, you are free to choose for yourself.

satsujinka
November 20th, 2012, 08:25 PM
Python has a facebook and twitter library in the Ubuntu repos. So that's probably as good a place to start as any.

Perl has a youtube library in addition to facebook and twitter libraries, however, perl's syntax isn't for the faint of heart.

lykwydchykyn
November 20th, 2012, 08:34 PM
I'll throw in my vote for Python. It's easy to learn, has a library for just about anything, and useful in a huge variety of situations.

Unterseeboot_234
November 21st, 2012, 02:03 AM
Whenever I start a project I first try the idea in Java. Java was made for the web. Java has access to all the computer resources. If you combine Java with Perl the web becomes pretty transparent. Java works as an automaton for OpenOffice (you need OOo, not LibreOffice at present).

Having said that... it is my observation that legacy code is the contract hours that pay. In academia you know Unix, SQL and Java. In the corporate world you know C#/VB on the .NET frameworks.

The highest hourly rate I have ever worked is COBOL and you would know about mainframes. The ancient languages have programs that were never upgraded by the fat cats that count beans.

The freelancers I read about that sell a product they created do it on the mobile phones. They would know Android or Objective-C.

No ONE language will do all things easily. Therefore, I restate my preference about Java calling Perl scripts or Java creating Slideshows in OOo or Java spydering for me on the internet.

I will tell you Linux, especially Ubuntu, lets you program faster. If you do program on Linux, be sure to keep an XP box around to scan your work for malware with a virus scanning program.

syerges
November 21st, 2012, 02:26 AM
Java is what you need for what you want to do, but once you know that well enough to do what you want, You need to learn C++ to expand yourself.

juancarlospaco
November 21st, 2012, 02:38 AM
I recommend you Python, is ideal for what you described...

llanitedave
November 21st, 2012, 05:48 AM
2 months is definitely a short time frame. While I recommend Python as a a good start, even that language will still leave you a beginner after 2 months. Programming at best is easy to learn, difficult to master. I know, because I've been working on my 3rd significant Python app for 8 months now, and while it wows some people, I still find myself pulling my hair out from time to time.

The great thing about Python is the "batteries included" philosophy -- you can take it as far as you want to go. It includes an SQLite library, and I think if you're going to get into programming in depth, learning databases and sql is a big plus.

As for other languages, I think eventually you'll develop a good idea of what you want to do, and then the choice will become clearer to you. Start with a good, simple, widely useful, flexible language like Python, get comfortable with it, and then start extending your expertise.

xytron
November 21st, 2012, 06:04 AM
If you wish to learn programming for personal projects for web programming I'd go with Python.

If you wish to make a living in programming I'd recommend Java AND also learn database programming (SQL). If you are going to program for Windows then VB or even C# are also good choice.

But for what you mentioned I'd go with Java first and after that VB and C# and all the while mastering SQL and several databases such a SQL server and MySql this is also very important.

You are not going to go far in business programming if you don't also know database programming.