Sup /prog/, I want to learn a language. I'm thinking something fairly simple to start off with like PHP but I hear alot of people saying it's shit. I'll be learning on my own from a reference book plus ebooks I can find.
So what would be a good language for a beginner to master before progressing to something more complex.
1)C (read K&R)
2)x86 (read Intel Processor Manuals) and maybe some RISC asm
3)LISP, or another functional language such as Haskell or ML-based ones (read SICP here)
4)C#/Java, maybe C++ for common real world work
5)You're now free to decide if you want to learn PHP, or any other language
Name:
Anonymous2009-02-17 3:15
>>8
I ordered the Intel Processor Manuals hoping to learn some x86 assembly, but couldn't understand shit. I wouldn't recommend it to beginners.
>>11
C is a very simple language, but a very powerful one.
it's one of those easy to learn, hard to master languages.
it will teach you most of the fundamental concepts that you need for programming
>>21
What are you talking about? I don't understand why you use ``suck''.
Name:
Anonymous2009-02-17 5:14
Yes, learn C. That way you can pretend computer software engineering hasn't had any advances in the last 20 years. Programming like its 1989 is how people really learn.
The once you "know" programming, you can struggle for a month to re-implement the most basic of shit.
Think of it like this. Lets say you want to be a chef. Learning C is like learning how to build the machines in the factory that process your food while learning how to do it all by hand. Its like learning to build flour mills and food processors and such. Knowing how to do that means you will be the best chef ever.
Learning a real language is like learning how to be a chef, when your goal is to become a chef.
Name:
Anonymous2009-02-17 5:26
>>24 Yes, learn LISP. That way you can pretend computer software engineering hasn't had any advances in the last 50 years. Programming like it's 1959 is how people really learn.
fixed that for you.
((Yes, learn LISP.) (That way you can pretend computer software engineering hasn't had any advances in the last 50 years.) (Programming like it's 1959 is how people really learn.))
Don't forget the redundant braces as an excuse not to write a decent parser.
Name:
Anonymous2009-02-17 5:35
>>24
wat?
you're saying that you've never used any low level concepts for programming?
enjoy memorising what hundreds of inbuilt classes/functions/etc do, but never understanding how they do it; also, enjoy having to learn a completely new set of them once your chosen language is obsoleted by some newer toy programming language
Name:
Anonymous2009-02-17 5:47
Learning C, LISP and assembler will teach one fundamental concepts about coding that will ultimately make one a very good programmer who is able to solve many complex problems and understand the underlying workings of his system.
Learning a high level language like C# or Python might teach one how to do some imperative object-oriented coding which might satify their immediate coding needs, and probably be even enough to make a living, but it won't give them insight about how everything works and how to solve certain complex coding problems.
tl;dr: If you want to be a coding monkey, just learn what you need for the job. If you want to achieve satori, you might want to consider learning the fundamentals and gain a more complete knowledge.
Name:
Anonymous2009-02-17 6:02
>>28
You can solve complex coding problems in higher level languages. The real problem is failing to understanding the processing cost of some code.
character?? why would anybody use a single character as a variable!?
LOL
haven't you ever heard of strings? you guys are living in the stoneages, jeeze.
i've never heard of this stupidity before - single characters are completely useless, nobody uses them EVAR.
and why would anybody use an integer? why do programming languages still use integers when my computer can use dynamically sized numbers WHICH ALSO support decimal points.
learn perl or java or somewthing - these old languages are stupid and don't take advantage of new technology like strings.
faggots sure got told
character?? why would anybody use a single character as a variable!?
Because you can't do the most basic of string functions without it. Like making a string upper/lowercase, sorting it, comparing it, just to name a few things.
IHBT
Name:
Anonymous2009-02-17 6:27
>>31
lol, but i have a function that does that for me!
i just say x.toUpper!
you need to change every individual character rather than do it in a single move like me.
enjoy your wasted cpu cycles
Name:
Anonymous2009-02-17 6:38
>>30 character?? why would anybody use a single character as a variable!?
And how the fuck do you think all those string operations are implemented? by doing operations on single characters, which are usually just signed bytes(8bit) or shorts(16bit). Do you think common CPUs implement operations such as string concatenation directly? (some do have opcodes for aiding string processing)
why do programming languages still use integers when my computer can use dynamically sized numbers WHICH ALSO support decimal points.
The integer(for example, an unsigned 32bit integer) is one of the most basic data types, and is used everywhere inside compiled code(hint: guess what a CPU's register contain, and how many bits does a x86 cpu general purpose register has). Your computer runs on them. How do you think your beloved JVM or Perl interpreter is even implemented you idiot? Let's say for a second that you would use floats for everything. Do you understand the performance penalty you'd have to pay, as well as all the amount of cycles you'd be wasting, not to mention due to the current CPU design, it could be incredibly hard to avoid normal register usage. In case you meant bignums, then guess how the fuck those are implemented internally, and what do they run on.
You can solve complex coding problems in higher level languages. The real problem is failing to understanding the processing cost of some code.
True, but in the case of speed critical applications ( OS, runtime libraries, multimedia (ex. encoder/decoder for a video codec), embedded systems, ... ) knowing C and the underlying CPU is quite useful, if not required if you wish to achieve the needed performance.
In the case you're designing a compiler or a dynamic code recompiler, you'll need to understand your target architecture as well, and knowing C is useful too for multiple reasons ( coompiling to C, understanding pointer arithmethic, linking with native code, etc ).
Knowing LISP or other functional languages, will help you reason about certain problems in different ways than you would if you only knew imperative languages, which in some cases provide you with a different way to see a problem, and possibly let you find better solutions.
Name:
Anonymous2009-02-17 6:51
Even without those specific applications, knowledge of C and asm will help you when you have a bug which may be connected to system or library code, where the only practical solution is to fire up a debugger and understand what's going on.
In fact, all of the complex shit's been done already. Quit clinging to old shitty inconvenient languages and try coding in something that doesn't waste your time.
In fact, all of the complex shit's been done already.
If only reality was as forgiving, but the demand for lower level implementations of certain features exists all the time. I could give plenty of examples (ex. device drivers, dynamic recompilation engines, ...), but I think there's little point in enumerating them since you don't want to see all these applications because they're probably unrelated to the usual boring applications you're coding.
Quit clinging to old shitty inconvenient languages and try coding in something that doesn't waste your time.
I never said that you had to code something in a lower level language. I said that the knowledge of these languages will help you along the way. There's no point in wasting one's time doing everything manually, however, there are tasks which can only be solved in that way, I encounter them often, but I suppose most code monkeys don't really see them because their job rarely requires interacting (or writing) with lower level code.
Name:
Anonymous2009-02-17 13:41
>>38
I agree, Sepples is the most expressive language