-  [WT]  [PS]  [Home] [Manage]

[Return]
Posting mode: Reply
Name
Email
Subject   (reply to 8530)
Message
File
Password  (for post and file deletion)
  • Supported file types are: GIF, JPG, PNG, TXT
  • Maximum file size allowed is 5120 KB.
  • Images greater than 200x200 pixels will be thumbnailed.
  • Currently 401 unique user posts. View catalog

  • Blotter updated: 2009-07-22 Show/Hide Show All

File 126679422338.png - (14.90KB , 904x538 , langGraph2.png )
8530 No. 8530
So I know nothing about programming, but I want to start somewhere.

I searched Amazon for some Java books and most of them assume at least some programming knowledge. Fuck that. Finally, I find some "complete idiot's guide" everyone's praising, except it was written 5 years ago. It instructs me to download some ancient IDEs from 404'd sites, the screenshots look nothing like the recent versions of the IDEs it wants me to download, and the programs it wants me to write assume some preexisting libraries/API I can't find for shit. The book dives right into the code, without explaining what the fuck are classes and other fundamental stuff.

So I said let's try Qt, everyone loves Qt, right? Except they state on the homepage that the documentation requires previous knowledge of motherfucking C++.

Then I visit the Wikipedia page for C++ and it says it's a broken mess of a language, outdated by today's standards and unnecessarily complex.

I head over to Microsoft's .NET site and I can't even find a starting place. There's ASP, Microsoft Azure, Visual Studio, MSDN and they seem to assume people who want to try .NET are just programmers who got bored of Java.

Any advice? Career advice like "programming is not for you" is accepted. Maybe this shit is too fucked up for me.
Expand all images
>> No. 8536
http://www.cplusplus.com/doc/tutorial/
>> No. 8544
Wikipedia lies.
>> No. 8545
To OP,

I will teach you.

"Why?", you ask? Because I'm bored and that's what I do anyway.

You can generally find me on irc.7chan.org#lrn2code as Dalek

I've got lots of good books assuming no prior programming knowledge that you can have.
>> No. 8546
If you want to learn an object oriented language then you must learn not only how to use the language but OO principles as well. A book targeted at begginers will teach these along with how to program, others won't and will simply confuse you. Learning a new language is easy - learning how to program correctly is not.
The most important aspect of a first language is how well documented it is. So choose something widespread (C, C++, Java, Python, etc) and you'll be fine.

tl;dr: choose a language that is in use, then read whichever book Wikipedia recommends (and if you don't like the book find another one).
>> No. 8554
ok. what the fuck? cobol is the coolest, lisp sucks, and pascal is in the middle? who made this up?
>> No. 8557
File 126688707358.jpg - (27.34KB , 275x291 , hawking-cyborg.jpg )
8557
well...

I RECOMMEND IVOR HORTON BEGINNING VISUAL C++ 6.0

(haven't read the later versions, so I can't comment on them)
>> No. 8579
>>8530
C, K&R
>> No. 8582
I'd suggest learning Python.

It's modern, easy to learn, and you can use it for anything.

If you need more efficiency, you can learn C after that.
>> No. 8586
>>8582
Bonus points if you use the Python/C API to write the code in Python + C.
>> No. 8588
In my not so humble opinion, programming is not for you. C/C++ is a fundamental programming language and you'll go nowhere in the practical world without it. Now, however, if you got motivation, I would recommend not any particular book or web page. Take a more self-involved interest in the subject. A great place to start in my more humble opinion is cplusplus.com because it has a complete reference of the C++ language as well as the entire Standard Template Library, and the String library, and every C library and of course the IOStream library. It's your every-tool, complete with examples. That's how you look shit up. Next, grab some simple source code for a program like "cat" or "echo" (look up "gnu cat" and "gnu echo" and you'll be all set), and look at it. You'll see patterns, take note and look anything you don't understand up. Next, cannibalize the code into something different, like make it add an extra letter, or omit specific things. From there, write your own stuff like "hello world". Some people think this approach is backwards, but I think it gives you a starting point.

Once you conquer C/C++, you'll realize like most other programmers that not only is it the most Flexible, Speedy and Extensible language around (remember Qt stuff is just C++ with a specialized preprocessed). It is used by professional game developers, operating system programmers (GNU/Linux, Windows, etc. are all largely C/C++ code), application developers, and so on. If you can manage it, you can try other neat things like Objective-C (a C++ work-alike) which is/was (dunno anymore) popular in the MAC/NeXT worlds.

If you learn all the facets of C++, you can conquer any language with ease... except assembly. That's a whole different ballgame. I would recommend it if you feel you got the balls.
>> No. 8590
Python because it has huge amounts of tutorials and resources for beginners, and i'm told it's not a massive leap to C from Python, so it's not a dead end.
>> No. 8859
Choose some languages, like python, C, etc. And look up some samples. Start with some easy ones to learn the main components and then some with loops.

Choose the one you like best. Each language has it strong points or else it wouldn't be used.
In my opinion:
C/C++:Difficult at first, resembles mostly the human mind in the program. Most options, widely used.
Python:Seems simple, not for graphics it seems. I don't have experience with this one, srry.
Java:Easier, but OOP is hard to learn without someone nagging...
Haskell: Abstract language, hard to learn/read, very powerful, not for games. Maybe as extra language.
Assembly: Don't, too hard, long and unreadable. It doesn't learn you program, it learns puzzling. Maybe later, as an experiment.

Extra: C++ is old, but it still exists must have a reason.
C/C++/Java/Python resemble eachother much with their syntax. Know one, know BASIS of all. Each has it unique properties.

If you know a first programming language, try another very different one. Multiple languages are useful.
>> No. 8862
I've been having this problem myself. From what I've figured out:

1) You're not learning C, C++, C#, C$, C-2, Coffee, SNAKES ON A CPU or any other language, you are learning *to program.* This is an important distinction. Python's apparently a very good learning language as it enforces some good habits, but I don't have enough experience to say for sure.
2) "C in 5 minutes" is bullshit. It takes 5 minutes to learn how to make eggs. Programming is complicated, it takes years to master.
3) It's usually better to go for published books from credible sources rather than online sites and crappy tutorials...
4) ...but cprogramming.com and cplusplus.com are apparently cool for learning C/C++.
5) The white bible is aptly named. Use it.
>> No. 8869
I miss the mid 80's. Computer section in the library would always be full end to end with BASIC programming books. I can't remember the name of any of them now, unfortunately. Combine that with QBASIC.EXE/QBASIC.HLP and you had it made.

*NOT* Visual Basic. I mean honest to goodness DOS-era QBASIC.

There also was a lot of BASIC books for the old Apple II back in the day. Google "Applewin" for a nice Apple II emulator if you find anything. Start by googling "Apple II User's Guide." User guides for computers in the early 80's always had good introduction to BASIC programming, which can give you a nice gentle start.

Seriously, I think BASIC was excellent to transition someone from knowing nothing about programming to getting a good start with serious stuff like C, etc. People here will say BASIC teaches poor habits, but you have to start somewhere and for that I think BASIC fits the bill.
>> No. 8890
>>8588
I second most of what is said there.

If you want to learn programming; REAL programming, not web design, or hobby game design, but real ground up / graphics engine / operating systems / anything that runs code programming – Lean C/C++.

Also wanted to note that while classes and OOP are in general fundamental, they are not basic fundamentals. (Programs, even large scale applications, can actually be without OOP, using only functional programming – this is however extremely inefficient and not something that is done in modern programming) In the colligate environment OOP doesn’t even get started until the end of the second semester. You can’t properly learn about OOP until you have a solid understanding of basics such as variables, functions, code blocks, and general syntax, as the discussion of OOP is in these terms. This is why your book “dives right into the code”, mainly because the basics aren’t highly conceptual and are easier to teach by explanation and examination of basic code.

A five year old C/C++ book will in general be fine as the language has not really changed drastically in that time. (Although you didn’t specific if the books was “C++ for dummies” or “Programming for dummies”) As for getting 404 errors for IDE’s it’s suggesting – that’s odd. I would seriously doubt the quality of a text that suggested a piece of software that no longer exists after only 5 years.

The IDE I always suggest is Bloodshed Dev-C++, its easy enough to use for the beginner and works fine even for advanced work. (Plus, it’s free.)

One suggestion I give for finding good texts on the topic on the cheap: Look over Amazon for textbooks, and get a used copy of the previous version (for comp-sci books this usually means at absolute most 2 years old). New editions cause the old ones to go for 10% or less of what the cost new. This doesn’t work for all topics, but for something like C/C++ (and basic programming in general)that hasn’t changed significantly in that time fame it works fine.
>> No. 8892
>>8890
>Programs, even large scale applications, can actually be without OOP, using only functional programming
You mean procedural programming, right?

>The IDE I always suggest is Bloodshed Dev-C++
It's crap. Enjoy your lack of std::getline() (among other things).
>> No. 8898
>>8892
>You mean procedural programming, right?
My apologies, Procedural programming is the correct name for the paradigm I was intending to describe, my mistake.

>It's crap. Enjoy your lack of std::getline() (among other things).
Personally, I've always found it more than adequate. I'm not quite sure what you're talking about regarding std::getline(), the presence or lack of a library function has nothing to do with the IDE, but rather with the included libraries. Both string and iostream are part of the C++ Standard Library; they are available in any ISO compliant C++ compiler, including MinGW (the compiler used by Dev-C++).
>> No. 8900
>>8898
The version of MinGW that comes with Dev-C++ is shit. Aside from not including a proper implementation of a very important chunk of the standard libraries (off the top of my head, it doesn't include std::wstringstream, std::getline(); and a couple wide functions, such as wsprintf(), aren't standard), it's also really buggy.
>> No. 8915
LLINNNUUUUUUX
>> No. 8917
the absolute easiest language to learn is turing. it isn't a good language, but it as made specifically for learning and it accomplishes this quite well.

it's free from compsci.ca and the site has pdf books such as "introduction to turing", which starts from the most basic area of programming possible.
>> No. 8918
>>8917

I feel the need to restate that turing is NOT a good language.

it is slow, buggy and lacks a lot of features; but if you are new to programming its ease of use and beginners documentation can greatly help to teach you basic programming concepts; which will make it easier for you to learn the better, more complicated languages later on.
>> No. 8925
Learn French.
>> No. 8931
>>8557
Seconding this. I've been reading this lately and it covers most topics better than anything I've tried thus far.
>> No. 8932
>>8900
I'm still not sure what you're talking about with std::getline(), it is available. The following compiles and runs as one would expect.

#include <iostream>
#include <string>

int main ()
{
std::string str;
std::cout << "Please enter full name: ";
std::getline (std::cin,str);
std::cout << "Thank you, " << str << ".\n";
}

wstringstream is just a typedef [ typedef basic_stringstream<wchar_t> wstringstream; ], but you are correct in that the wide-character parts of libstdc++ haven't yet been ported to windows, and minGW will throw errors for that with its default libraries: however STLPort library can be used as an alternative if it is needed. Personally I've never had need for it; and as the original topic was regarding a person trying to learn to program I don't think this will come up for them any time soon. As for it "being buggy" I have not found that to be true. If you could perhaps cite something more specific and testable then "it is shit"?
>> No. 8937
>>8932
Okay, I just tested the std::getline() part and you're right. I guess I got some wrong information.

>As for it "being buggy" I have not found that to be true. If you could perhaps cite something more specific
Sure.
I can't remember the one bug that caused me to stop using Dev-C++ and its MinGW, but I do remember that it was pretty serious, and I also remember the bug that caused me to stop using MinGW 3.x for anything serious.
I was writing a class for output redirection, of which there would be three instances being passed different data at different times. The code produced by VC++ and GCC (and, eventually, MinGW 4.x) worked as expected without a hitch. The one produced by MinGW 3.x would behave randomly. Sometimes working correctly, sometimes sending the output of one instance to the file of another, sometimes doing nothing.
If that's not a bug, I don't know what is.
[Return]


Delete post []
Password  
Report post
Reason