Linux Format forums Forum Index Linux Format forums
Help, discussion, magazine feedback and more
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Please help me make up my mind!

 
Post new topic   Reply to topic    Linux Format forums Forum Index -> Programming
View previous topic :: View next topic  
Author Message
blundakat



Joined: Wed Jul 18, 2012 10:53 pm
Posts: 13

PostPosted: Sun Aug 19, 2012 3:03 am    Post subject: Please help me make up my mind! Reply with quote

Hello

I have always been interested in learning to program and as a result have flitted between many different languages without actually settling on one, resulting in a very basic knowledge of a few language but not enough to program anything. I would like to be able to master one then move onto the next one if needed. The languages in which I have dabbled are Java, Assembly, VB, VBsctript, C and SQL. When I say “dabbled” I mean I have read the first few chapters of a reference book, so if you were to show me a piece of code I could probably tell what it was programmed in but not what it does!  I realise this question is very subjective but I would like to know from your experience what language you would learn first? Bearing in mind my aim is to contribute to open source software. Any insight would be much appreciated!
Back to top
View user's profile Send private message
Dutch_Master
LXF regular


Joined: Tue Mar 27, 2007 2:49 am
Posts: 2431

PostPosted: Sun Aug 19, 2012 5:26 am    Post subject: Reply with quote

Depending on your other skills, in order:

  • assembler
  • C++
  • Python
Or the exact reverse Wink
Back to top
View user's profile Send private message
Bazza
LXF regular


Joined: Sat Mar 21, 2009 11:16 am
Posts: 1474
Location: Loughborough

PostPosted: Mon Aug 20, 2012 10:02 pm    Post subject: Reply with quote

1) Python 3.x.x.
2) ANSI C.
3) Shell programming.

Contrary to what DM says, FTTB steer clear of Assembly... ;o)
_________________
73...

Bazza, G0LCU...

Team AMIGA...
Back to top
View user's profile Send private message
einonm



Joined: Fri Apr 20, 2012 11:19 am
Posts: 29
Location: Cardiff, UK

PostPosted: Tue Aug 21, 2012 11:14 pm    Post subject: Reply with quote

I think the most important thing in learning a language is having the motivation. You mention that you're aiming to contribute to an OSS project, so I'd suggest finding one that you have an interest in ( e.g. if you're into photography, nudge wink, go for a photo editor), and learn the language used alongside trying to understand the project's code. That way, you also pick up useful domain knowledge which can be more complex than the language itself.

Contrary to what DM says again (soz), I'd stay clear of C++ as a first language, as everyone uses it in their own particular way which can be confusing for the beginner. IMHO Python would probably be your best bet, followed by C.
_________________
"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." --Brian Kernighan
Back to top
View user's profile Send private message
AndyBaxman
LXF regular


Joined: Tue Oct 04, 2005 9:47 am
Posts: 523

PostPosted: Wed Aug 22, 2012 4:50 pm    Post subject: Reply with quote

einonm wrote:
I think the most important thing in learning a language is having the motivation.

I quite agree. Nothing worse than trudging through a load of dull examples that will never do anything useful (for you).

As to language. Personally I'd choose either Java or C#. These are rich, but strongly typed languages that run on virtual machines (freeing you from the the drudgery of memory management). I'd steer clear of scripting languages like Javascript (horrible object paradigm) or Perl (Where producing the most obscure code is seen as some kind of badge of honour). Python is good, but, IMHO, learning a language with "C" style syntax will give you knowledge that is portable to many more languages.

Personally having enormous fun coding Minecraft (Bukkit) extensions (in Java). The expression on the kid's faces when the chicken they hit explodes with the force of a small nuclear device is something to behold.........
_________________
Bomb #20: "Let there be light"
Back to top
View user's profile Send private message
blundakat



Joined: Wed Jul 18, 2012 10:53 pm
Posts: 13

PostPosted: Sun Aug 26, 2012 10:19 am    Post subject: Reply with quote

I do like gaming so maybe I could contribute in that area? Or am I being too ambitious?
Back to top
View user's profile Send private message
Dutch_Master
LXF regular


Joined: Tue Mar 27, 2007 2:49 am
Posts: 2431

PostPosted: Sun Aug 26, 2012 1:23 pm    Post subject: Reply with quote

If you'd think you could develop a new gaming platform, then yes: too ambitious Wink But I'm sure developers would welcome your efforts in bug-finding (and -reporting!) to improve their games, or translate it into foreign languages.
Back to top
View user's profile Send private message
leke
LXF regular


Joined: Mon Oct 22, 2007 6:45 pm
Posts: 503
Location: Oulu, Finland

PostPosted: Sun Aug 26, 2012 3:06 pm    Post subject: Reply with quote

I think your first language should be suitable for the type of things you wish to code.

I love coding web apps with php because there's so much open source php code to reuse out there.
If you like making humble games, check out Löve, a game engine you can program with Lua code.
If you want to get into Android development, Java is good investment.

I'm a little like you, I can't keep mind focused on one language while being enticed by others. I'm currently being distracted by newLisp Rolling Eyes
_________________
http://truecenterpublishing.com/zenstory/maybe.html
Back to top
View user's profile Send private message
AndyBaxman
LXF regular


Joined: Tue Oct 04, 2005 9:47 am
Posts: 523

PostPosted: Mon Aug 27, 2012 10:23 pm    Post subject: Reply with quote

blundakat wrote:
I do like gaming so maybe I could contribute in that area? Or am I being too ambitious?


Quite the contrary. Writing bukkit server extensions is rather straightforward and you can get fun things happening really quickly.

Not actually "contributing", as such. There is a published API for extensions which can be used to modify the server to react to custom commands or handle events differently to standard.

See here for more info:-
http://wiki.bukkit.org/Plugin_Tutorial
_________________
Bomb #20: "Let there be light"
Back to top
View user's profile Send private message
Bruno
LXF regular


Joined: Tue Sep 18, 2007 7:07 pm
Posts: 139
Location: Cambridgeshire, UK

PostPosted: Tue Aug 28, 2012 1:16 pm    Post subject: Reply with quote

Have a look at http://www.codecademy.com. It contains many exercises designed to take you from beginner onwards. It has quite a strong web slant (html, css, js, etc.), but has recently published a python track. It is free and I have been using it recently to update my html and css skills.
Back to top
View user's profile Send private message
Ram
LXF regular


Joined: Thu Apr 07, 2005 10:44 pm
Posts: 1671
Location: Guisborough

PostPosted: Tue Aug 28, 2012 3:40 pm    Post subject: Reply with quote

Bruno wrote:
Have a look at http://www.codecademy.com. It contains many exercises designed to take you from beginner onwards. It has quite a strong web slant (html, css, js, etc.), but has recently published a python track. It is free and I have been using it recently to update my html and css skills.


I'll second that, having just finished the current Python course.

There some good tutorials at http://www.tuxradar.com/code
_________________

lubuntu LXDE 13.10 running on AMD Phenom II*4; ASUS Crosshair III Formula MB; 4 GB Ram.....
Back to top
View user's profile Send private message MSN Messenger
blundakat



Joined: Wed Jul 18, 2012 10:53 pm
Posts: 13

PostPosted: Tue Aug 28, 2012 9:07 pm    Post subject: Reply with quote

Making some Minecraft plugins sounds pretty cool.

I think java is the language to learn for me then, will have to play minecraft first though! Smile
Back to top
View user's profile Send private message
guy
LXF regular


Joined: Thu Apr 07, 2005 1:07 pm
Posts: 1071
Location: Worcestershire

PostPosted: Tue Aug 28, 2012 9:49 pm    Post subject: Reply with quote

Wrong question.

Ask what Open Source software project grabs your hormones. After that, go find out what language it's written in.

Writing code for something that doesn't get you out of bed is just a yawn.
_________________
Cheers,
Guy
The eternal help vampire
Back to top
View user's profile Send private message
tweetiepooh



Joined: Fri Jun 30, 2006 5:02 pm
Posts: 10

PostPosted: Fri Sep 28, 2012 6:02 pm    Post subject: Reply with quote

I like Perl and you don't have to programme in an obscure manner. That said what I think is a strength some look as a weakness and that is the Perl philosophy of "More that one way to do it".

There is a wealth of learning material out there and the O'Reilly books are excellent. "Learning Perl" is a really good way to get programming quickly and being untyped and unstructured means you can get doing the stuff straight away. I remember looking at Java and having to write loads of code for "Hello world!" I found off putting.
Others would look at this another way in that having structure and typing forced on you encourages you to programme better.
Back to top
View user's profile Send private message
Crispy



Joined: Mon May 31, 2010 7:35 pm
Posts: 57

PostPosted: Thu Oct 18, 2012 2:05 pm    Post subject: Reply with quote

I agree that its probably best for you to find a project your interested in and then learn the language that is used in that project.

However, if you just want to learn a language with no real project in mind then I would say it depends on what you want to learn, or what you want to do? For example, if your not too worried about some of the lower level stuff, but would rather create nice GUIs then C# or Java (maybe C++) would probably be the best place to start.

Having said that, I found C++ a complete mess when I first started; I didn't really understand what was happening. But having started to learn C, C++ seems to make more sense and so sometimes learning the lower level stuff can be beneficial. As for C# / Java, I found that they were very easy to use but weren't that flexible sometimes, largely due to the lack of pointers. Hence I found that I was often writing a lot more code than I would have in C or C++ to accomplish a particular task. However, that is definitely task dependent. I also found that with C# / Java I didn't feel I "learnt programming", most likely because they are high level languages, I think. So it does completely depend on what you want to learn/do.

In terms of languages like Perl or Python, I believe they are more scripting languages than programming languages, as I don't believe they use a compiler, they just use an interpreter? But I am unsure so perhaps someone else can clarify that - I've never learnt Perl or Python. If I'm right, then I would say if you want to learn programming, a scripting language probably wouldn't the best place to start.
Back to top
View user's profile Send private message
View previous topic :: View next topic  
Display posts from previous:   
Post new topic   Reply to topic    Linux Format forums Forum Index -> Programming All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Linux Format forums topic RSS feed 


Powered by phpBB © 2001, 2005 phpBB Group


Copyright 2011 Future Publishing, all rights reserved.


Web hosting by UKFast