Author Topic: I want to learn, I swear!  (Read 12522 times)

0 Members and 1 Guest are viewing this topic.

Offline deadly7

  • 42
  • x86
  • Hero Member
  • *****
  • Posts: 6496
    • View Profile
I want to learn, I swear!
« on: December 23, 2009, 03:59:21 pm »
So I know I've posted multiple times in this subforum (and I'm sure other times in other locations as well), but since I have to learn programming anyway, I've decided to take an active interest in it.

What language(s) would you recommend starting out with, given I have programmed a little before but nothing too in-depth? I'm in the process of learning MATLAB, which is a C derivation (I believe). Is C a good language to learn, in general? And, compilers/debuggers for any language is a must. Also, good beginner's guides that explain structure, data manipulation, etc. would be good accompaniments.
[17:42:21.609] <Ergot> Kutsuju you're girlfrieds pussy must be a 403 error for you
 [17:42:25.585] <Ergot> FORBIDDEN

on IRC playing T&T++
<iago> He is unarmed
<Hitmen> he has no arms?!

on AIM with a drunk mythix:
(00:50:05) Mythix: Deadly
(00:50:11) Mythix: I'm going to fuck that red dot out of your head.
(00:50:15) Mythix: with my nine

Offline iago

  • Leader
  • Administrator
  • Hero Member
  • *****
  • Posts: 17914
  • Fnord.
    • View Profile
    • SkullSecurity
Re: I want to learn, I swear!
« Reply #1 on: December 23, 2009, 04:05:50 pm »
That's really a difficult question to ask, and there's no single answer. Which language to learn depends greatly on what your intended goals are, and what you're good at.

C is a great language. If you are comfortable in C, you can get comfortable in anything. I use it quite a bit, myself.

That being said, Java or C# are useful if you intend to write bigger applications or want to learn object oriented programming. They're the most common languages used in enterprises, in my experience, and are useful that way. I don't use these much, though.

If you're more interested in the Web/HTML stuff, then Ruby on Rails, PHP, or even C# are good things to learn. Ruby has become incredibly popular lately, and it seems to be a nice language. I don't personally know Ruby, but I use PHP on occasion.

And finally, if you want to write quick stuff or you need to automate tasks, you should learn a language that I would call a "scripting" language, like Perl, Python, PHP, Ruby, Lua, etc. These are usually quick and simple, but also powerful. The vast majority of work I do is in languages like this, in my field.

Hope that helps!

Offline deadly7

  • 42
  • x86
  • Hero Member
  • *****
  • Posts: 6496
    • View Profile
Re: I want to learn, I swear!
« Reply #2 on: December 23, 2009, 04:34:19 pm »
Well, I can specify about my goals I think..
I don't know so much if I'll need to make large applications at any point; industry standard in my field is very much so MATLAB-oriented. But my current project requires me to call certain functions from DLLs, send out commands to different peripherals connected via a GPIB port, and then receive certain data input. But obviously I have other interests in modifying programs, maybe making a custom plug-in or two for something. And a future use I could have is writing scripts for *nix systems; which language would be best for that?
[17:42:21.609] <Ergot> Kutsuju you're girlfrieds pussy must be a 403 error for you
 [17:42:25.585] <Ergot> FORBIDDEN

on IRC playing T&T++
<iago> He is unarmed
<Hitmen> he has no arms?!

on AIM with a drunk mythix:
(00:50:05) Mythix: Deadly
(00:50:11) Mythix: I'm going to fuck that red dot out of your head.
(00:50:15) Mythix: with my nine

Offline iago

  • Leader
  • Administrator
  • Hero Member
  • *****
  • Posts: 17914
  • Fnord.
    • View Profile
    • SkullSecurity
Re: I want to learn, I swear!
« Reply #3 on: December 23, 2009, 04:42:31 pm »
That's all pretty generic stuff, so skills from learning any language will cross over to most of it.

Your best bet, in my opinion, would be to start with one of the "scripting"-style languages I mentioned -- Perl, PHP, Python, and Ruby are all great languages, and powerful in their own way. I'm partial to Perl, myself, but Python and Ruby are more modern.

Offline deadly7

  • 42
  • x86
  • Hero Member
  • *****
  • Posts: 6496
    • View Profile
Re: I want to learn, I swear!
« Reply #4 on: December 23, 2009, 04:59:02 pm »
Any books you know of [and would recommend] for either of the 3? As well as compilers? Currently on WinXP.
[17:42:21.609] <Ergot> Kutsuju you're girlfrieds pussy must be a 403 error for you
 [17:42:25.585] <Ergot> FORBIDDEN

on IRC playing T&T++
<iago> He is unarmed
<Hitmen> he has no arms?!

on AIM with a drunk mythix:
(00:50:05) Mythix: Deadly
(00:50:11) Mythix: I'm going to fuck that red dot out of your head.
(00:50:15) Mythix: with my nine

Offline iago

  • Leader
  • Administrator
  • Hero Member
  • *****
  • Posts: 17914
  • Fnord.
    • View Profile
    • SkullSecurity
Re: I want to learn, I swear!
« Reply #5 on: December 23, 2009, 06:40:51 pm »
They are all free, you shouldn't have any problem finding an interpreter for them.

And no, I don't use books.. I generally read the online docs + look at others' code till I know what's going on. :)

Offline rabbit

  • x86
  • Hero Member
  • *****
  • Posts: 8092
  • I speak for the entire clan (except Joe)
    • View Profile
Re: I want to learn, I swear!
« Reply #6 on: December 23, 2009, 09:17:37 pm »
Perl ... quick and simple
Error: division by zero
As for MATLAB, I hated learning it, and have promptly forgotten all of it.
Anyway, Perl is very powerful.  For Windows, you'll need ActivePerl, which is annoyingly bulky, or MingW (where you might have to compile Perl first), though I still recommend it.

Offline Joe

  • B&
  • Moderator
  • Hero Member
  • *****
  • Posts: 10319
  • In Soviet Russia, text read you!
    • View Profile
    • Github
Re: I want to learn, I swear!
« Reply #7 on: December 23, 2009, 09:29:10 pm »
If you want to get into serious programming, with the exception of C#, just don't do it in Windows. It's not worth it. An Ubuntu VM will set you back maybe 5GB of disk space and will run comfortably in 512MB of RAM, probably even 256.

EDIT -
If you want to get into web programming, Ubuntu Server is your friend. I don't think ubuntu-server and ubuntu-desktop packages are mutually exclusive, and the server package installs PHP, MySQL, Apache, etc, automatically. Just make sure you use the ubuntu-desktop kernel, since the server kernel is not true 64-bit and uses Physical Address Extension, which some VM's don't support.
« Last Edit: December 23, 2009, 09:30:49 pm by Joe »
I'd personally do as Joe suggests

You might be right about that, Joe.


Offline warz

  • Hero Member
  • *****
  • Posts: 1134
    • View Profile
    • chyea.org
Re: I want to learn, I swear!
« Reply #8 on: December 24, 2009, 02:50:42 am »
If you're already working with something like C then sure, go with C. You will learn plenty of valuable practices, hopefully, while learning C. You could start with something like Python, but I wouldn't recommend it. Python is a great programming language but it's not something I would suggest to somebody for something like this. If I were you, I'd go with C++, Java or C#. From those you will learn the most valuable programming knowledge you can.
http://www.chyea.org/ - web based markup debugger

Offline Joe

  • B&
  • Moderator
  • Hero Member
  • *****
  • Posts: 10319
  • In Soviet Russia, text read you!
    • View Profile
    • Github
Re: I want to learn, I swear!
« Reply #9 on: December 24, 2009, 03:49:03 am »
@warz: +1 for continuing a lost cause. :)
I'd personally do as Joe suggests

You might be right about that, Joe.


Offline iago

  • Leader
  • Administrator
  • Hero Member
  • *****
  • Posts: 17914
  • Fnord.
    • View Profile
    • SkullSecurity
Re: I want to learn, I swear!
« Reply #10 on: December 24, 2009, 08:23:53 am »
I don't recommend C++ -- it's an ugly hack. :)

Offline Sidoh

  • x86
  • Hero Member
  • *****
  • Posts: 17634
  • MHNATY ~~~~~
    • View Profile
    • sidoh
Re: I want to learn, I swear!
« Reply #11 on: December 24, 2009, 12:43:39 pm »
C is good.  It's very minimalistic, but unless you know what you're doing, it's easy to become a master spaghetti code chef.

Personally, I'd recommend Java, C, C# in that order.  While perl, python, etc. can be useful, I think they're limited in some annoying ways.

Offline deadly7

  • 42
  • x86
  • Hero Member
  • *****
  • Posts: 6496
    • View Profile
Re: I want to learn, I swear!
« Reply #12 on: December 24, 2009, 01:29:43 pm »
For *nix scripts, can you theoretically use any language or are there specific ones?

@Sidoh: Java? I've never understood what's so great about that language, care to fill me in?
[17:42:21.609] <Ergot> Kutsuju you're girlfrieds pussy must be a 403 error for you
 [17:42:25.585] <Ergot> FORBIDDEN

on IRC playing T&T++
<iago> He is unarmed
<Hitmen> he has no arms?!

on AIM with a drunk mythix:
(00:50:05) Mythix: Deadly
(00:50:11) Mythix: I'm going to fuck that red dot out of your head.
(00:50:15) Mythix: with my nine

Offline iago

  • Leader
  • Administrator
  • Hero Member
  • *****
  • Posts: 17914
  • Fnord.
    • View Profile
    • SkullSecurity
Re: I want to learn, I swear!
« Reply #13 on: December 24, 2009, 03:47:51 pm »
"*nix scripts" can mean multiple things. At the core, shellscripting is generally done in one of the shell languages (bash, sh, zsh, csh, tcsh, etc), using their built-in functions and Linux's utilities. I use that a lot, and it's generally easy to pick up. It's really about knowing the tools and what they can do (grep, sed, awk, join, etc etc)

More generally, scripting languages can be considered any language in which you can write something quickly without a lot of planning/structure. Those can include any language, if you think about it hard enough, and I do use C as a scripting language on a regular basis (normally when I need to process binary data of some sort, and I don't know how to do it in any other language). In generally, though, Perl, PHP, Python, and Ruby are what most people consider languages that are good for scripting.

Offline Sidoh

  • x86
  • Hero Member
  • *****
  • Posts: 17634
  • MHNATY ~~~~~
    • View Profile
    • sidoh
Re: I want to learn, I swear!
« Reply #14 on: December 24, 2009, 04:03:03 pm »
@Sidoh: Java? I've never understood what's so great about that language, care to fill me in?

What about other languages do you understand that gives them an advantage over Java?  Unless you're writing software that's really performance critical, C has almost no advantage over Java.  Java is object oriented and has loads of libraries at your disposal so you're not writing or searching for software to do very trivial things, unlike C, and is syntactically consistent and is overall much cleaner than C++.  C# is fine too, but unless you start with the basics, I think it's very easy to get overwhelmed with all of the capabilities of the .NET framework.

It's also a rather non-trivial advantage that you get cross-platform compatibility for free.  It's awesome to be able to go on any computer I own and pick up development from where I left off, despite that it was started on linux while I'm on OSX now.