Originally Posted by _michaelm
I would seriously debate the value of learning HTML, SQL or similar 'languages' for someone looking to try to program.
that rather depends on your reasons for wanting to program.
I would say that if you want to make web services, the HTML is pretty essential, if you want to do anything involving storing or retrieving data from any database then SQL is pretty important, if not essential also.
No, these are not programming languages, but I think it's fairly important to at least understand the fundamentals of each of these.
Originally Posted by Gamernerd212
Thanks guys for your insight!!! Berry HTML isn't a programming lan.?
no, HTML is not a programming language, HTML stands for Hyper Text Markup Language.
it's based on the idea that printing presses used to use, when a paper sent their paper to press it'd all be hand written text.
so to instruct the print setter which printing blocks to attach to the press plate the writer would leave notes written on the manuscript that they set.
so the title would be marked as title, (and the printer would know to print this is 3" high bold letters, then the strap line would be written in a smaller text, then the article test would be written in standard size text and the byline written in smaller text at the bottom.
this same thing has been carried over to the way text is written on web pages.
anything marked inside the blocks that denote a title is written in the title bar at the top of the browser.
<title> your title here </title>
anything that you want to be bold you write in side <b> </b> tags, italics are marked <i> </i> etc...
HTML is a language that tells your browser how to display text, it's no more of a programming language than it is to put square brackets around a b on this forum [ b ] to mark text as bold
[ / b ]
I'm going to learn java,C,python and then C++. Probably not in order but should be something like that!
That's quite a list...
First, good luck.
I have to agree with Berry though, there is no one language to learn, no one ring to rule them all kind of scenario.
yes, it is easier to start with one language rather than trying to learn 50 at once, but it doesn't really matter what that language is.
It's more important to understand what you're doing than how you're doing it.
the code used to make a loop is pretty similar in give or take most languages.
Originally Posted by berry120
Actually, there's a crap load of undefined behaviour in C that's incredibly easy to stumble upon,
I read this more in the way that there is a well defined structure to programs, not that the function returns etc are well defined across different systems or architectures.
Personally I find C very easy to understand, because it have such a rigid way of writing code, there is very little room for any kind of flair. (C has quite strict formal grammar), so once you have an understanding it's relatively easy to go look at the source for any program and see what's going on. or at least be comfortable with what you're seeing.
It doesn't hide much detail, but for some bizarre reason people always seem to assume this is a good thing! If you're starting out you generally *want* something at a high level of abstraction so you can broadly understand what's going on, without worrying about whether that chunk of memory over there was actually free-d up or not. It's akin to saying that before I wire up a simple circuit consisting of a bulb and battery, I should understand theories of wave particle duality, quantum tunnelling, internal resistance and so on.
I'd say it's more like understanding that batteries store power, wires are conductive, and incandescent light bulbs are resistive. we're hardly talking intimate knowledge of the CPU and it's registers!
and the comparison is hardly fair in other ways.
putting a bit of wire from a battery to a light bulb and back is a simple circuit.
no special skills or in depth theory needed for a hello world program.
but other wise I agree, who cares what buffer you're writing to when you just want to print stuff to the screen, or who cares about input buffers and whether you've flushed them etc, who cares abut checking data input to make sure that it's of the correct anticipated size and type?
Arguably everyone *should* care about what's going on, and learning to not care is a bad habit, on the flip side, yes too much too soon is a bad thing.
Yes, but when you actually come to build anything in it this means you add on a ton of libraries that aren't standard quite quickly, which, when you go beyond the simple 10 line programs, gets much more diverse much more quickly than learning something like Java.
I'd like to see the program that goes beyond ten lines and suddenly needs a libraries that aren't standard, I think you're exaggerating there.
Any what do you mean by aren't standard? don't conform to standards, or are extensions to the original standard operators?
Are we talking standard keywords, or standard functions?
What do you class the BSD socket library in C as? writing code to create a network socket usign this library will result in code that compiles and works on Unix, Linux, BSD, and Mac OSX, on any architecture.
but it won't run on windows because that uses winsock instead of BSD sockets.
is the library standard? yes, it's very much standard.
is it portable. mostly yes, but clearly not entirely.
I'd put money on the same situation being true in Java, (that there are libraries that are system or architecture specific). it doesn't make the language bad or inflexible though! it doesn't even make the library bad!
From my point of view, I like using C because for me it's a one size fits all language. whether I'm writing software on my x86 PC, or my Arm Raspberry pi, or my MIPS based PVR box the code is mostly portable.
yes when you start writing software using network sockets Microsoft implementation of sockets differs from the rest of the world, but I can still write a server application on my x86 Linux machine, and port the code directly to my raspberry pi or PVR. (yes I need to recompile for the different architectures, but that's no more difficult than just typing make.
it's also easy to use for programming micro controllers, -though that's a non standard implementation of the language, but evn though it's non standard it's close enough to be useable.
The big question here though really is, how many people will write programs that need to be completely portable?
*MOST* people in the world do not.
Sorry, but this is just plain wrong. What do you mean by other languages are "written in" C? That doesn't make any more sense than saying Spanish is written in Latin. I can only assume you mean what language the compiler is written in - for Python there's all manner of different compilers, only one of the major ones I believe is written in C. And the Java compiler isn't written in C either - at least not since the 90's.
yes this makes about as much sense as saying original C was compiled using B so we should learn that, or assembler.
Generally speaking, in my mind there's also too much emphasis on learning one language, then another, then another - don't plan to do that, you'll end up dropping your first language too quickly. Just pick one, that will more than set you up for learning others as and when you choose. Contrary to popular belief, you're not going to "outgrow" something like Java in a year - I've been working with it near enough daily for the past 7-8 years now, and I'm *still* very much learning!
I sort of agree, and sort of disagree.
Yes, ANY language will be a good language, and you'll likely never outgrow any language that you start with, and there are likely careers in any language that you like to learn. anything from Visual basic to C, or Java, I bet there are still Fortran jobs around.
but I do think that it's very difficult to just start programming.
Certainly I'm sure that I started with something simple.
I think that anyone wanting to learn how to Program would do well learning something like scratch first, (which is a language specially developed to be easy to learn) the reason they would do well to learn this is because there is no real writing or coding as such, just dragging blocks of code.
This will allow people not to learn how to write text of the screen, or draw complex forms, but will teach about the basic structure of programs, and make you think about how do do things.
In turn this would make going onto a newer language easier.
I think most people around my age would have started programming wth a program called Qbasic, (or RM Basic) certainly not an awesome programming language, not something that you're likely to see enterprise software written in, but a very good starting point for getting basics,
most software can be reduced to a simple:
I want to get an input make a decision, and output something based on that.
something basic, (like Basic, or scratch) is well suited to introducing