Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Its that time again (suggest a language)

Name: Anonymous 2007-04-26 3:48 ID:WgsXgi3d

What's the best language for a complete beginner to pick up and learn?

I'm able to read through sources in various languages and understand whats happening on a fundamental level.

I want to learn a language over the next 3~5 months and i cant make any informed desicions on which.

Suggest the language best suited to an entry level programmer.

IN BEFORE SHITSTORM

Name: Anonymous 2007-04-26 4:08 ID:eiuU1als

JScript .NET

Name: Anonymous 2007-04-26 4:35 ID:lDuDf6D/

I'd say C and C++, but I'm probably biased.  If you can already read source at an abstract level then you are miles ahead of being a beginner really, even if you have no clue how to write something yourself.  If you already understand the idea behind variables and functions the next step is to learn the technical syntax, e.g. get a compiler and follow a tutorial to write 'hello world' in a language of your choice.

After you follow, say, 3-5 tutorials you'll know exactly which functions allow you to print to screen, how to take input from the user, and what the basic rules about variable operations are.  Ostentibly it tends to just get easier from here, as you just keep following tutorials to learn the syntax for more and more advanced things, e.g. arrays, classes, etc.

Once thing that you need to learn though that a typical online tutorial could leave out is what is going on at the bit level (abstractly that is, the literal bit representations you will never need to commit to memory).  Not just to understand pointers either, but so you appreciate what class inheritance does and what goes on when your program jumps from function to function.

Name: Anonymous 2007-04-26 4:43 ID:gmuymD6I

It depends what approach you want to take. If you wish to program on a relatively low level, then go for C. Otherwise choose something like VB.Net or Python for more high level.

Also, avoid stuff like Haskell or Prolog, for now.

Name: Anonymous 2007-04-26 4:55 ID:lDuDf6D/

Oh and let me add to my previous comment (>3).  One barrier for beginners that people seem to forget is how you go about actually obtaining and installing a compiler in the first place.  I remember I learned C/C++ through a class as an undergrad and was next to useless after the class ended because I was always had used the lab computers and had no compiler of my own. 

For windows there are quite a few free C++ compilers that will install just as easily as any program.  Microsoft Visual C++ (MSVC) is the standard windows compiler out there, and the 'Express edition' is free.  However it is incredibly unintuitive to use (completely geared to large scale projects, I can't even figure out some of it).  Dev C/C++ another compiler/IDE combo like MSVC but much more practical (personally I've had problems getting it to compile, but it might just be my end of things).

g++ is the GNU compiler that makes linux kiddies wet themselves, and it is probably tied (if not surpassing) MSVC in terms of being _the_ standard c++ compiler.  It doesn't have an integrated development environment, so you'll only be interacting with it on a console/terminal to compile something you've written in notepad or what have you.  The problem with g++ is that installing it (especially on windows) is one fucking pain.  If you want g++ I happen to know possibly the ONLY online tutorial for installing g++ on windows that isn't made of fail.

Name: Anonymous 2007-04-26 4:59 ID:gmuymD6I

>>5

How is MSVC unintuitive?

Name: Anonymous 2007-04-26 5:07 ID:WgsXgi3d

>>3

What compiler do you recomend?

Im stuck on a windows machine atm, my wife blatantly refuses to figure out linux (not that KDE was all that different from what she was used to, but it had no ZOMG WHERES MY ITUNES, HOW DO I TRANSFER OVER SONGS TO MY PROPRIETRY FORMAT SONY ATRAC MACHINE) the usual compatability bullshit.

So GCC + nix is out :(

Recomend me a decent c++ compiler that isnt from bloodshed.net

Name: Anonymous 2007-04-26 5:08 ID:WgsXgi3d

>>7 disregard that i suck cocks.

Out walking the mutt and didnt refresh before posting

Name: Anonymous 2007-04-26 5:10 ID:WgsXgi3d

>>5
>>g++ on windows that isn't made of fail.

Very do want.
Im not averse to using a syntax highlighting txt editor and im used to compiling source on g++

Name: Anonymous 2007-04-26 5:39 ID:lDuDf6D/

>>9
I'm about to fall asleep here so I'll try to make this brief and come back tomorrow:

http://nuwen.net/mingw.html

This is what I found to be the only pain free installation of g++ on windows.  I also seem to remember using another tutorial at one point for compiling g++ from source on windows.  I think it was because at the time the link I gave you didn't have the most recent version (I can see page has been updated since).  In anycase the tutorial I used was

http://www.aristeia.com/Misc/gcc4ForWindows_frames.html

Now, this tutorial worked but I had a metric ton of duplicate files to sort through after all was said and done.

One last thing, if you install msys (the linux like terminal for windows) take extra care to read step 23. in this guide:

http://www.mingw.org/MinGWiki/index.php/SmartQuickStart

Name: Anonymous 2007-04-26 5:41 ID:qErIpgVl

>>1
I highly recommend Python. I've never used Python, heck I don't even know Python, but it is good for beginners. It's very easy to use, and has no nonsense attached. It will also teach you good programming practices, forced indentation of code etc.

I definitely wouldn't pick up C++ right away. You'll get frustrated just trying to compile something, having to deal with stuff like ordering your classes, forward-declaring classes, header file disasters, etc. You can probably learn C right away, but it's very difficult.

Eventually though you will have to move to C/C++. It's the de facto standard for everything.

>>5
The problem with g++ is that installing it (especially on windows) is one fucking pain.
Colossal fail. To install g++ on a Debian box, apt-get install build-essentials. Most other Linux boxes have gcc pre-installed.

If you want g++ on Windows (i.e. MinGW), install Code::Blocks with integrated MinGW. It's a total joke to set up; it can even import your Linux makefile to generate a project file for Windows.

Don't use Dev-C++, and definitely DON'T use MSVC. Code::Blocks is incredibly sexy, and it's open source. Download RC2 and you'll be compiling programs with gcc on Windows in fifteen minutes.

Name: Anonymous 2007-04-26 5:49 ID:4pfsS9ku

My advice:

1. Start with anything simple. Pascal will be fine. Don't learn much of it, just the basic statements, expressions and operators, a couple of functions to play with, and how to define your own. Look for something with an IDE so that you can forget about compiling.

2. Now you have to shape your mind for it. You can read others' code, but you probably cannot figure how to write your own. Your mind needs to start working in an analytical way that will allow you to come up with your own algorithms. Play around, do simple exercises, try to think for yourself very hardly how to do things before looking at solutions.

3. Now you can do things on your own. Time to learn the tools. Forget Pascal and go for C if you want to learn things bottom-up (from a low-level perspective to abstract), or Python, Ruby or Lisp if you want to learn things top-down (from an abstract perspective to low-level). I suggest the earlier approach, because if you learn C after dynamic languages, it'll look so shitty and so much of a pain in the ass. So learn C. Use GCC on Linux and MinGW on Windows, without an IDE. Learn about compiling, libraries, and insanity. Don't bother with GNU autoconf, make and all that crap unless you have a purpose for them. You an use an IDE if you want interactive debugging though, it helps during learning. (In a few years your favourite debugging tool will probably be print, but for now let's use that.) Oh and by all means, do NOT learn Java. It'll fuck up your career and you'll end up hating it and dropping out of it. Don't bother with C++ either, too complicated.

4. Now you understand the real thing. You know how it works. But you need better abstraction, because C is very unproductive. C is only worth the time if you need to write performance critical applications or interact with the hardware or network more directly. Now you need a good programming tool. You can either read SICP for a more formal approach to it, or learn Python or Ruby for a more practical approach. Now it's the time to learn about object-oriented programming and functional programming. Pay special attention to functional programming. Enjoy the enlightening experience. You know you've been enlightened when C looks like shit and you became lazy. Again, DON'T learn Java. It's a bad language that introduces a poor object-oriented model, it doesn't properly support structured or functional programming, and it has a terrible, shitty API that will drive you insane. Don't bother with C++ either, too complicated and not a high-level language like you need.

(You will be through the "OMG OPTIMIZED" stage, where you care for performance and want things to run fast and wish your Windows games ran faster on your PC, or use Gentoo. However, your time is far more valuable than your hardware, so if you need better performance, buy better hardware and save the time. Plus early optimization will tend to fuck your programs all over.)

5. Ok, now you're all set. From now learn whatever you like to achieve satori. Or you can learn something to make bread. Prefer C++ over Java though, Java is the shit and you'll end up hating your job.


>>6
By being geared towards Xbox projects and being quite intimidating for hello world.

>>7
MinGW

Name: Anonymous 2007-04-26 6:04 ID:gmuymD6I

>>12

Xbox projects? Ha ha

Like anything else, MSVC is pretty straightforward once you're used to it.

Mmm, I remember going through the "OMG OPTIMIZED" stage. What a waste of time that was. Still, I learned some interesting things I guess.

Name: Anonymous 2007-04-26 6:16 ID:WgsXgi3d

Speaking from a relatively inexperienced users perspective i torrented it, downloaded it, installed it (fucking epic install times for HUEG IDE)
then after 3 days of perseverence i deleted it.

Those 3 days where akin to a first time computer user stumbling upon /b/

Much WTF IS GOING ON?!?!?!?!?! was uttered, the real insanity is that ive got all the documentation and even a couple of text books geard towards developing in the environment. the fact is the overwhelming complexity involved in getting a console to spout "hello world" was frankly too much of a turn off to even motiveate me to attempt to begin to learn the software.

When im looking to learn a language i dont need the massive roadblock of a bloated IDE to learn on top.

Not that ive got anything negative to say against it being used by someone who understands the language first. Im sure its actualy a nice environment to use and all the multitude of features must do something to aid the experienced user, but the learning curve involved made it an intolerable hinderance at that point.

Name: Anonymous 2007-04-26 6:55 ID:gmuymD6I

>>14

I do now remember what you mean, sort of. I had completely forgotten how difficult it is to understand at first. I started with MSVC 6 and it was quite an uphill struggle for a while.

FYI, here's how to do a Hello World using MSVC++ 2005 Express:
1. File menu -> New -> Project
2. Visual C++ -> Win32 Console Application
3. Enter hello as the project name
4. In the code editor, change program to
int _tmain(int argc, _TCHAR* argv[])
{
  printf("Hello world!\n");
  return 0;
}

5. Build menu -> Build solution

The program is then at in [your project folder]\Debug\hello.exe

You can run it using Debug menu -> Start debugging or Debug menu -> Start without debugging if you prefer.

So, yeah it's not quite as straightforward as

$ cat > hello.c
#include <stdio.h>

int main(int argc, char *argv[])
{
  printf("Hello world!\n");
  return 0;
}
[Ctrl+D]
$ cc hello.c -o hello
$ ./hello

but again you have to know the steps to take.

Name: Anonymous 2007-04-26 7:05 ID:WgsXgi3d

:o

I just realised this thread has actualy been helpful as have the individuals whove posted in it.

WTF is going on here?

Im more used to /g/'s "OPRAH.COM" "buy a mac" "FORMAT C" "Delete system32 folder" and other ralated AIDS.

This has unnervingly restored my faith in 4chan as an intelegent place to read.

Name: Anonymous 2007-04-26 7:08 ID:Heaven

>>16

/prog/ is ELITE

Name: Anonymous 2007-04-26 11:52 ID:H3DxPb6C

C is an okay choice. Stay far from C++ lest you want your brain to turn into oatmeal.

Also, Haskell.

Name: Anonymous 2007-04-26 11:55 ID:xPq9llHE

>>18
C is the best choice.
thread over.
You can all go home

Name: Anonymous 2007-04-26 12:51 ID:Heaven

>>11
Python
One word: forced indentation of code. THREAD OVER.

Name: Anonymous 2007-04-26 13:33 ID:O6CH+fF4

>>16
QUACK
QUACK
QUACK
QUACK
QUACK
QUACK

... Ok, that's better. Had to reset the stupidmeter.

Name: Anonymous 2007-04-26 13:45 ID:CueU9cvS

VISUAL BASIC

Name: Anonymous 2007-04-26 14:23 ID:Heaven

>>21=~y/QUA/DI/

wow, you sound gay.

Name: Anonymous 2007-04-26 14:30 ID:cLpCwL9+

>>23

wow, you sound gay.

Name: Anonymous 2007-04-26 15:27 ID:qErIpgVl

>>20
For new programmers, forced indentation of code is a good thing. It will teach them good programming style.

Name: Anonymous 2007-04-26 15:40 ID:Cu+Q1Hou

>>25
IT WILL TEACH THEM
 ONE THING
  ONE WORD
   THE FORCED INDENTATION OF CODE
    THREAD OVER

Name: Anonymous 2007-04-26 15:42 ID:4OXzZkf/

>>26
ONE RING TO RULE THEM ALL
  ONE RING TO FIND THEM
    ONE RING TO BRING THEM ALL
      AND IN THE DARKNESS BIND THEM

Name: Anonymous 2007-04-26 15:55 ID:Cu+Q1Hou

>For new programmers, forced indentation of code is a good thing. It will teach them good programming style, I DONT KNOW ANYTHING ABOUT PROGRMAMING

fixed

Name: Anonymous 2007-04-26 17:33 ID:RqU/ARRW

>>28
What, how on earth did you read that in between the lines?

Oh, wait, this is one of those "I don't agree with this person because I'm a fag" things, right?

Name: Anonymous 2007-04-26 18:03 ID:Cu+Q1Hou

>>29
yeah because everyone who doesnt agree with you is a "fag", heh.
You really need to learn to be more open minded and accept that you may not be right 100% of the time mate.

Name: Anonymous 2007-04-26 18:28 ID:/4Ce6+6k

HASKELL!

Name: Anonymous 2007-04-26 18:30 ID:cLpCwL9+

>>30
Mate

Name: Anonymous 2007-04-26 19:00 ID:Heaven

>>31
fagskell

Name: Anonymous 2007-04-26 20:50 ID:lyJI46sn

Ideally, your programming toolbox should contain a lot of languages which you use depending on the situation.  With all of the languages mentioned below, learn how to write GOOD code. Working or correct code is not good enough.

Learn Scheme. It will make you a better programmer for the rest of your days. Honestly. Read this book: http://www.htdp.org/

After that, if you find yourself able to stomach lesser languages, go for either Ruby or Python. Both are modern languages, easy to grasp, and have a large selection of libraries & tutorials available (these days). They're also fast enough for most applications, despite what you might hear some low-level fanatics say.

At this stage, learning a new language should not be a huge challenge anymore. When you know your way around one or two languages very well, similiar languages are easy to learn. Try out different coding paradigms.

Now learn C or C++. Try to understand how the computer really works at low level. Learn x86 assembler.

Try out Haskell and Prolog for variation. They're different from mainstream languages. Also, have a look at Erlang.

By now, you should be able to proceed without guidance.

Name: Anonymous 2007-04-26 20:52 ID:Cu+Q1Hou

>>34
haskell is really mainstream now

Name: Anonymous 2007-04-26 20:53 ID:lyJI46sn

Also, if you're planning on making money by writing code, learn Java at some point.

Name: Anonymous 2007-04-26 21:06 ID:lyJI46sn

>>35

Really? According to TIOBE, Haskell is the 38th most popular language. It is preceded by useful languages like Ada, COBOL and Fortran.. Guess it still beats brainfuck though.

Name: Anonymous 2007-04-26 21:50 ID:O6CH+fF4

>>37

Dunno. I wrote a cgi script in brainfuck once.

Name: Anonymous 2007-04-26 22:05 ID:O06pZgz6

Also don't become a language whore. Knowing the syntax of thirty different languages doesn't make you a programmer, having experienced the ENTIRE process of developing a non-trivial application be it a game or a desktop/web app makes you a programmer.

Name: Anonymous 2007-04-26 23:10 ID:O6CH+fF4

What if you've done both?

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List