• A Programming Language to start with and a good book?
    27 replies, posted
I'd like to start programming, and I have no previous knowledge about any programming language. Which language would be best to start with? And also I want to get a good easy for beginners book for the language you're suggesting. Thanks :D
Honestly you can start learning with any programming language. As long as you learn the concepts behind the language and not just the syntax itself (eg know what a class is, not just "that thing that's at the top of every Java file"), you can jump between different programming languages very easily just by knowing what syntax means what in the new language. I'm personally a big fan of C#, it's a Java-like language created by Microsoft that isn't as restrictive with object orientation, it allows you to create things like structs, delegates, use lambda functions, and even do some pointer math. Anyways, a good book for starting C# is "Head First C#" - [url]http://headfirstlabs.com/books/hfcsharp/[/url] Also note that it is possible to develop, compile, and run C# applications under non-Windows machines using Mono. The other really common languages I hear people recommending for beginners are Java (strictly object-oriented, very simple and easy to learn), C (old, tiny standard library, allows you to learn the fundamentals before you get into the newer fancier languages that have massive standard libraries and do a lot of the work for you), and Python (very simple and effective, lets you write useful code very fast without having to reinvent the wheel for everything) Not sure about a good book for Java, try Head First Java or just follow the official Oracle tutorials here: [url]http://docs.oracle.com/javase/tutorial/index.html[/url] A good book for C: [url]http://www.amazon.com/Programming-Language-2nd-Brian-Kernighan/dp/0131103628[/url] A good book for Python: [url]http://learnpythonthehardway.org/[/url]
I'm putting in my vote for Python.
Learn C
[QUOTE=robmaister12;33439947]Honestly you can start learning with any programming language. As long as you learn the concepts behind the language and not just the syntax itself (eg know what a class is, not just "that thing that's at the top of every Java file"), you can jump between different programming languages very easily just by knowing what syntax means what in the new language. I'm personally a big fan of C#, it's a Java-like language created by Microsoft that isn't as restrictive with object orientation, it allows you to create things like structs, delegates, use lambda functions, and even do some pointer math. Anyways, a good book for starting C# is "Head First C#" - [url]http://headfirstlabs.com/books/hfcsharp/[/url] Also note that it is possible to develop, compile, and run C# applications under non-Windows machines using Mono. The other really common languages I hear people recommending for beginners are Java (strictly object-oriented, very simple and easy to learn), C (old, tiny standard library, allows you to learn the fundamentals before you get into the newer fancier languages that have massive standard libraries and do a lot of the work for you), and Python (very simple and effective, lets you write useful code very fast without having to reinvent the wheel for everything) Not sure about a good book for Java, try Head First Java or just follow the official Oracle tutorials here: [url]http://docs.oracle.com/javase/tutorial/index.html[/url] A good book for C: [url]http://www.amazon.com/Programming-Language-2nd-Brian-Kernighan/dp/0131103628[/url] A good book for Python: [url]http://learnpythonthehardway.org/[/url][/QUOTE] Thanks. I think ill go with C# and "Head First C#"
I started with python, Really neat and simple.
I would like to try Python aswell. Question : which version? The 2.something or the 3.something?
I would say learn the princibles of programming first. Find out what things like Variables and Syntax are and then try python.
I would recommend Python as well, I started learning programming last year and starting with the other languages had me a little confused... Python is a really great language if you know nothing about programming prior and wish to start programming. I would also recommend thenewboston tutorials on youtube and phyces tutorials on youtube just to start.
[QUOTE=ChaosUnleash;33448396]I would like to try Python aswell. Question : which version? The 2.something or the 3.something?[/QUOTE] 2.X is for backwards-compatibility. Even though 3.X has been around for a while, many things still aren't compatible with it. If you don't explicitly need backwards-compatibility (like if you're writing a new program from scratch), go with 3.X.
Python is incredibly confusing. It just runs whatever I type as soon as I type it, so whenever I try doing any if statements it fails because it doesn't know what to do, when it doesn't give me chance to tell it what to do etc. Is there any way to stop the bastard running every line I type and only running when I ask it to? (Like in VB)
[QUOTE=ChaosUnleash;33448609]Python is incredibly confusing. It just runs whatever I type as soon as I type it, so whenever I try doing any if statements it fails because it doesn't know what to do, when it doesn't give me chance to tell it what to do etc. Is there any way to stop the bastard running every line I type and only running when I ask it to? (Like in VB)[/QUOTE] If you don't want things run as you type them, write a script instead of running things directly in the interpreter. This alone, however, isn't causing your problem. You can write complex statements in the interpreter and the interpreter won't proceed until it has everything it needs. The issue is likely that you aren't indenting your blocks. Unlike other languages which have explicit "end" statements or curly braces, python uses indentation levels to indicate which lines are part of a block. The advantage of this is that it increases expressiveness and forces programmers to write in a consistent style that anyone can read. You won't get arguments about indentations styles in Python ("K&R vs Allman vs Whitesmiths", etc.) because there's only one way that actually [i]works[/i].
[QUOTE=ChaosUnleash;33448609]Python is incredibly confusing. It just runs whatever I type as soon as I type it, so whenever I try doing any if statements it fails because it doesn't know what to do, when it doesn't give me chance to tell it what to do etc. Is there any way to stop the bastard running every line I type and only running when I ask it to? (Like in VB)[/QUOTE] you need to run IDLE, then File > New window Then to run your finished code just click on run > launch module (or just push F5) Also i use 2.7, mainly because most tutorials are on 2.x.
[QUOTE=ChaosUnleash;33448609]Python is incredibly confusing. It just runs whatever I type as soon as I type it, so whenever I try doing any if statements it fails because it doesn't know what to do, when it doesn't give me chance to tell it what to do etc. Is there any way to stop the bastard running every line I type and only running when I ask it to? (Like in VB)[/QUOTE] I was a bit confused by this, too. I have a book that really clears the matter up, and is incredibly informative. I'm still quite new and I've hit a bit of a block (.pyc files not being automatically generated, creating all sorts of import issues), but if you want some help I'd start with [url=http://www.amazon.com/Learning-Python-3rd-Mark-Lutz/dp/0596513984]here[/url] There are 2 companion books that you can get later (a syntax reference guide and a book to put to use what you learn in Learning Python). [editline]26th November 2011[/editline] Also, that book assumes you're using 3.X, but also has 2.X functions listed within to make it possible to learn with 2.X. I've started with 3.X because I just want to get the basics of programming down, such as syntax and the semantics of syntax, and I'm not planning on using older python programs.
I recommend brainfuck....
Good book for Java -->[url]http://www.pearsonhighered.com/educator/product/Java-Software-Solutions-for-AP-Computer-Science-3E/9780131374690.page[/url]
[url]http://greenteapress.com/[/url] This is where I learned to program.
Start with C# or Visual Basic .NET. Never use any textbooks, use only handbooks when really needed.
Java is generally very easy to learn, and it uses the same keywords as C, C# and so on (for the most part) so you get a foot into those as well when learning it. Java is easier to learn since you don't have to start caring about memory leaks etc right away as it deals with that itself (so you can focus on the actual programming to start out with). Almost everything can be googled when learning a programming language, but if you'd very much like a book I'd recommend you to NOT buy an American book. They're known for being too long and over-explanatory.
Probably the best Python tutorial on the web: [url=http://www.swaroopch.com/notes/Python]A Byte of Python[/url]. What's great about this is that it comes in 2 up-to-date versions, one for 2.7 and another for 3.2, and it can also be downloaded as a PDF (which is useful if you get distracted by the internet, like me). After going through the book, doing some examples, go to your python documentation and learn about the specific modules, and try to write a few scripts that implement them. I'm not a great programmer (I only started programming this September with Pascal) but I hope this is useful.
Besides Head Start C#, are there any good project based programming books out there? All too much I come upon the equivalent of reference books for programming that only tell you about, yet don't explore real application. Any ideas?
Not 100% thread related, but we could use a big sticky in this forum that answers these questions. Like the Web Dev forum has. There seems to be a "What language should I start with?" thread pretty often. So a sticky that answers this question and gives examples of good learning resources.
[QUOTE=Fear_Fox;33642663]Not 100% thread related, but we could use a big sticky in this forum that answers these questions. Like the Web Dev forum has. There seems to be a "What language should I start with?" thread pretty often. So a sticky that answers this question and gives examples of good learning resources.[/QUOTE] This has been tried before, but has never really succeeded.
[QUOTE=sim642;33642754]This has been tried before, but has never really succeeded.[/QUOTE] I love the webdev one, it should be tried again. Well, maybe not. Just can't think of and reasons why it didn't work out.
C++.
DarkBASIC Professional is good. [url]http://www.thegamecreators.com/?m=view_product&id=2000[/url] Hands On DarkBASIC Volume 1 and 2: [url]http://www.thegamecreators.com/?m=view_product&id=2000&page=Hands[/url] Though I'd suggest using video tutorials.
I wouldn't start with any form of BASIC. I mean, you can, and you'll probably learn a few things, but we've kind of moved away from BASIC for a reason.
[QUOTE=ROBO_DONUT;33676127]I wouldn't start with any form of BASIC. I mean, you can, and you'll probably learn a few things, but we've kind of moved away from BASIC for a reason.[/QUOTE] There's actually something in starting with BASIC that a lot of people forget. The fact that you need to switch to another language later. It's a good thing. It forces your brain to adapt to a new environment and that will help for to break from the one-tool-for-everything mindset later.
Sorry, you need to Log In to post a reply to this thread.