Link to home
Start Free TrialLog in
Avatar of docesam2
docesam2Flag for Saudi Arabia

asked on

What programming language for a hobbyist ?

i have plenty of spare time at home ,i want to :
1- show off in front of friends /family with programming stuff.
2- get a feeling of accomplishment /self satisfaction .
3- maybe doing my own commercial programming project in future . one of the projects in mind need very high performance .

=> what programming languages i knew ?
i was visual basic 6 programmer , i know some c++ ,glanced at python and java. i am somewhat geek in computer.

=> what i know about programming languages in general ?
i know things like the difference between static VS dynamic typing , compiled VS interpreted , high level VS low level , what are things like API and software engineering ..etc

=> what is the result of my research so far ?
well, i was searching for an answer to the question for some time and i came up with the following "facts" (please correct me if i am wrong):
1- every programming language has advantages and disadvantages , when you choose a language you have to live with both the advantages and the disadvantages.
2- programming languages are usually more suitable for certain programming domain(s) than others .you have to use the right tool for the right job.
3- you need more than one language in your toolbox , so that you can select the language that is more suitable for the job at hand ,or even use more than one language to construct a program.

=>what is going on in my mind?
1-i am a hobbyist not a professional , so the approach of "multilingual tool set" may not be practical for people like me. probably i will not be able to learn a programming language every time one comes out!
2- in the matter of high level vs lower level programming languages they say that your expertise in a programming language determine your productivity more than the language itself. so maybe if i learned something that does not change every so often (like c++) and stick with it i will become (over time) more productive and get the best of both worlds :)
3- i don't like python ,despite being very productive it has very low performance and it produce a byte code that is very hacker friendly! ,if it was not hacker friendly i would combine it with c++ and i will be very happy.
4- java : bad performance. oracle purchase of sun worry me too much.
5- GO : pretty sexy but still in development.

sometimes i feel that i should go with 2 languages one high level (? java) and one low level (c++) language so that i can do anything : cross platform stuff /web /mobile.

sometimes i feel i should go with c++ and engage in the fun of participation in open source software like Linux

i am pretty lost :)

=> why i am asking this question ?
i don't want to make a bad choice . bad choice at this moment means i will waste a lot of time.so taking your kind advice / opinion is very much valuable .

your_comments_thoughts_advice();

Open in new window



thank you
Avatar of Paul MacDonald
Paul MacDonald
Flag of United States of America image

You don't mention what platform you're targeting.  Certainly Java and C++ enjoy a wide variety of platforms, but aren't necessarily easy to learn or are hobby-worthy.

Visual Basic.Net is a decent option, but I'm biased towards it. C# is becoming popular, but like VB.Net, is Microsoft-centric.
SOLUTION
Avatar of HonorGod
HonorGod
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Without excessive detail here's my two cents.  

I considered starting with C++.....however, your mention of being a hobbiest and after programming in VB.Net for several years, I'm glad I did not pursue C++ to begin with.

VB and C# are good places to start.  Using VB has been a good choice for me. There is a lot of support out there. To simplify things the choice is really between VB and C#.

Having said that, I feel I would recommend C#.  The reason I mention this is from using the book "Beginning Asp.net 4: In C# and VB", by Imar Spaanjaars.  This walks you through exercises with both languages.  I started with VB and do not regret that decision but after working with this book I'm now learning C#.    If you have the time, you could work through creating a "Hello World' program in both languages to give you a feel for what you may prefer.   There's a lot of sites / books out there to help you get started.
Good luck
Avatar of docesam2

ASKER

You don't mention what platform you're targeting.  Certainly Java and C++ enjoy a wide variety of platforms, but aren't necessarily easy to learn or are hobby-worthy.
the problem is : i don't need to target a specific platform. i need pure fun .
I mean, are you programming for the web (HTML, PHP, Javascript, ASP.Net, Silverlight, Flash, etc)?  

Or for the desktop (VB.Net, C++, etc)?

Do you want and IDE like Visual Studo or JCreator?  Or will you write in Notepad?

Do you want to write games?  Or scientific simulations?

All these have a bearing on what I would recommend.  
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
"OOps...I meant "Visual Basic 6" not "Visual Basic 5" in the last paragraph.....:-)
thank you HonorGod for your comments

HonorGod  said >>> What kind of programs would a hobbyist be writing where they need to be concerned with "hacker friendly byte codes"?!?

i mentioned that maybe i would like to produce a commercial software ,are you welling to make hacker takes my code away :))
otherwise maybe python and c++ will be the best ever !!


====================

thank you DoveTails for your comments

>>>  DoveTails said : I'm glad I did not pursue C++ to begin with.

shall you please clarify why it is so ?

=====================
thank you craisin for your comments

>>>craisin said : You will probably (of course) get recommendations from everyone to use THEIR favourite language.

probably , that is why the justification of the choice becomes important.
> maybe i would like to produce a commercial software

  Whatever you choose to do, I wish you well.
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
If you really want to show off, learn the GPU programming language.  You can write the downloader in any language but what you can do with a graphics card is pretty amazing.  It runs stuff in parallel so even with 16 GPU cores, you can have spectacular graphics and even use it as an array processor.

thank you

shall you please enlighten me with some examples of what can be done? or the names of some of these technologies /languages used ?

thank you
Avatar of taggarwal_expert
taggarwal_expert

According to me, it depends on your level of experience. Say, if you are student then you should start with C (Procedural & Simple) language. After that you should go for Object-Oriented Languages (Java or C++). If you are not a student, then you should concentrate over the domain of your interest level. Then based on that domain, you can choose the appropriate language. That will be really helpful to make a significant change in your career progress. But, if you select any language of your interest and depends on that language if you choose domain, that might not be as beneficial. I might be wrong in this advice, but I used to apply this with me.
In brief, I can explain this in terms of programming pseudo-code:
if (you are a student)
{
   Start with C (Procedural Language)
   Move on to object-oriented languages (C++/Java etc...)
}
else if (you are programmer)
{
    Select domain of your interest
    Based on domain chose language
}
Ex.
If you chose networking/system-programming domain, you will have to go for hardcore C.
Add to last comment from my side:

your_comments_thoughts_advice()
{
if (you are a student)
{
   Start with C (Procedural Language)
   Move on to object-oriented languages (C++/Java etc...)
}
else if (you are programmer)
{
    Select domain of your interest
    Based on domain chose language
}
}

I think if anyone go by this way, he/she'll be able to achieve all these:
1- show off in front of friends /family with programming stuff.
2- get a feeling of accomplishment /self satisfaction .
3- maybe doing my own commercial programming project in future . one of the projects in mind need very high performance.

If you want any clarification, how to achieve these in my way... please let me know.
Just google for "GPU Programming Tutorial" and see what comes up - you have textures, rendering, ray tracing, parallel computations etc.  Some of them even take care of overlaps when sprites move over each other.
thank you guys for your comments.

nobody so far commented on WHY i should learn a particular language over the others. "why" is more important than "what" imo.
ASKER CERTIFIED SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
If you like codeless visual programming I'll suggest you:

Limnor Studio for .Net environment (currently free) building C# code
Tersus (Eclipse IDE) for MS Windows, Iphone, Android (Open source)

Best regards

Francisco
Oops...

Tersus supports Linux too.

Francisco
There is also "software through pictures" tools like matlab.  Basically every component is treated as a sofware integrated circuit.  It has both inputs and outputs.  All you need to do is select the components eg integrator and connect the inputs and outputs through it.  Many engineers love this.  Great for those who think coding is so last century, have very fast machines and love the clicky stuff.
i expected people telling me why they made the suggestion they provided.lack of justification leave me clueless.
Thanks for the assist and the points.

Good luck & have a great day.
Thanks for the points.....good luck with your quest!  :-)