PDA

View Full Version : I want to program -- Where to start?



-gabe-noob-
April 16th, 2012, 05:44 PM
Hey, this thread is simple and I thought I'd ask the UF community.

I'm off to college next year and I want to learn how to program, what language would you guys say I start off with? Are there any good tutorials or exercises floating around I should look at?

Thanks,
-Gabe-Noob-

roelforg
April 16th, 2012, 05:46 PM
What do you want to create?

The more languages, the better.

ojdon
April 16th, 2012, 05:49 PM
Ubuntuforum's actually has a pretty decent sub-community regarding starting programming. Try looking through these links here:

http://ubuntuforums.org/showthread.php?t=1766253

Personally, I started with Java, it's one of those languages that are safe, straight-forward and best of all it has plenty of updates, documentation and community help!

Obviously you're going to have to take things slowly, you're not going to make the greatest application ever, so I'd suggest looking for a "Hello World" tutorial. This will give you the basic feel on how to get started with any Programming language.

Hope this helps and good luck!!

CharlesA
April 16th, 2012, 05:52 PM
Java or Python gets my vote.

trivialpackets
April 16th, 2012, 06:58 PM
If you're interested in learning some Ruby, I recommend rubylearning.org and their course, or the humble little ruby book.

http://www.humblelittlerubybook.com/book/html/index.html

No matter what you learn, I would stick to something with simple syntax to start out, because the beast of programming is learning how to use the structures, loops and logic and when to use them.

-gabe-noob-
April 16th, 2012, 07:25 PM
Thanks you guys, a little addendum to the question though:

I am a very objective-oriented person, that is to say I focus best when I have a clear goal infront of me.

Are there any basic tasks/programs for me to create as my goal that I can set forth/guides to help me reach them? The 'hello world' thing is a perfect example for me. Things like that would be good, and I think I've settled on wetting my appetite with Java before leaping out to other things.
(it really came down to java or python, but from what I've read python is very easy to learn, and so I want to learn something slightly harder first in order to prep myself for other languages I may encounter.)

juancarlospaco
April 16th, 2012, 07:56 PM
Go with Python

samalex
April 16th, 2012, 09:42 PM
Most will probably scoff me for suggesting this, but go with C++. It's the grandfather of most modern languages, it's VERY well documented with plenty of free resources online, and I'd bet most of the seasoned and good coders out there cut their teeth on C or C++.

C++ is VERY powerful, but it's a very low-level building block that probably won't have you writing corporate or mobile apps out of the gate... but if you can get proficient in C++ it'll definitely help you learn most other languages. Kinda like a linguist learning Latin which is the root of many modern spoken languages.

With this check out http://www.cplusplus.com/ and just Google for other resources though this one is the best. And if you want to get into GUI programming check out gtkmm - http://www.gtkmm.org/en/.

http://www.codeblocks.org/ is a good open source IDE for C and C++, so start there. Also check out http://www.programmingvideotutorials.com/ or search YouTube for "c++ tutorial" and you'll find tons of great videos.

Hope this helps --

Sam

F.G.
April 16th, 2012, 09:50 PM
so, there have been a few threads about this in the programming chat forum. also, no-one has suggested C++, so i'm going to.

any of the languages mentioned would be good. but i think learning C++ or Java would probably teach you more than ruby or python (c++ and java have more lower level stuff, python and ruby are both pretty high level languages). also if you learn either C++ or Java well you'll find picking up the other one pretty easy as they are quite syntactically similar and in fact once you know one programming language well in general you'll find other ones pretty easy to pick up.

anyhow, good luck and have fun programming.

ps. if you want to learn scripting (the kind of thing ruby and python are used for) another option is also bash, the basic programming language of the bash terminal (the basic ubuntu command line) it is in fact a complete porgramming language, and can be amazingly powerful as you can integrate command line tools like grep, awk, sed, find etc. into your scripts.

edit -> i guess sam beat me to the punch. in truth i would also actually recommend C++ above the others. not only is it the 'grandfather' of most modern object oriented stuff it is also very current and had a new release at the end of last year. it also runs directly on the machine, not on the JVM and includes C, therefore you can also get to learn some basic C stuff.

Bandit
April 17th, 2012, 03:10 AM
Java or Python gets my vote.

Same here. I was just going to suggest those two.
Both are intro level languages but still extremely powerful.

Primefalcon
April 17th, 2012, 03:58 AM
I'd say python if your interesting in desktop apps, I'd hoenstly steer clear of java

F.G.
April 17th, 2012, 08:20 AM
hey -gabe-noob-
so, just to explain myself, the reason i rekon c++ or java is a good choice is not because they are 'easy for beginners'. in fact it is quite the opposite. C++ is quite a hard language to learn and it would be easier to go through some python tutorials to quickly 'make something happen'. however i really think that this really is a false economy, and will lead to you having way more to learn later when you want to learn something more complex. if you learn C++ (or probably java) you'll gain an understanding of basic computer science/algorithmic issues such as space/time complexity and data structures, which is all obscured in higher level languages with magic built in functions.

another reason is that i started with C and then C++, and learned them both fairly thoroughly, since then i've learned groovy, python, ruby, tcl, bash, javascript, even used java professionally for a major piece of development having never written more that a couple of lines of it previously (and yes, i was complete honest about this with my employer) and it only took a couple of days to get the bones of these languages, the credit all goes to having learnt C++ and some idea of what is going on underneath these higher level languages.

anyhow... the most important thing is probably just to get programming, whatever language you choose it will be a steep (and fun) learning curve and you will get loads out of it.

samalex
April 17th, 2012, 02:32 PM
I agree with F.G... If the OP wants to learn how to program (in a heterogeneous since of programming) C++ is the best option IHMO, but if he wants to just write applications and get going as quickly as possible then Java or Python will work. Problem though is you're learning a specific framework and mindset that isn't too portable. Yes, lots of languages are based on Java so it's probably more portable than some, but C++ will help a budding coder learn some wonderful habits since it doesn't hold your hand as much as other languages do. There's not as much 'under the hood' with C++ as there is in Java, Python, or the frameworks built over C/C++ like Tcl or Qt, so you have to think alittle more when writing your apps in C or C++.

Good and bad... but we run Linux because we like to tinker under the hood and get the fullest out of our applications, and C++ just seems to fit that paradigm. If we wanted to take the easy way where someone else sets the rules we'd be running Windows :)