[QUOTE=Spoco;24762795]How do I tell you that? I don't exactly have a portfolio to show to you. I've been using it for over 5 years for various projects for my own purposes (though I rarely get ideas for these projects). I'd say I know more than one can possibly learn from one book.[/QUOTE]
Speaking as someone who would probably have said the same thing a couple weeks ago, you don't. Trust me.
I used to think that just learning from the internet was sufficient, but it isn't. You don't learn the language, you only learn the syntax.
[QUOTE=arienh4;24836259]Speaking as someone who would probably have said the same thing a couple weeks ago, you don't. Trust me.
I used to think that just learning from the internet was sufficient, but it isn't. You don't learn the language, you only learn the syntax.[/QUOTE]
You've been reading the wrong stuff then.
There's shitloads of information on how to approach various problems and efficient algorithms for many purposes.
If you're reading about syntax, whether it's in a book or from the internet, you're just wasting your own time. It's like reading a dictionary in an attempt to become a great writer.
[editline]05:30AM[/editline]
Also, "learning a language" is a phrase I hear a lot, but it's pretty retarded to begin with. If you learn to think like a programmer, language becomes irrelevant. You should be able to pick up the basics of a new language in a week or so.
[QUOTE=ROBO_DONUT;24836600]You've been reading the wrong stuff then.
There's shitloads of information on how to approach various problems and efficient algorithms for many purposes.
If you're reading about syntax, whether it's in a book or from the internet, you're just wasting your own time. It's like reading a dictionary in an attempt to become a great writer.
[editline]05:30AM[/editline]
Also, "learning a language" is a phrase I hear a lot, but it's pretty retarded to begin with. If you learn to think like a programmer, language becomes irrelevant. You should be able to pick up the basics of a new language in a week or so.[/QUOTE]
Yeah, no. My whole point is that using the internet only to learn a language is like reading a dictionary to become a great writer. 'Learning like a programmer' is different for each language as every language requires you to tackle problems differently.
[QUOTE=arienh4;24843607]Yeah, no. My whole point is that using the internet only to learn a language is like reading a dictionary to become a great writer. 'Learning like a programmer' is different for each language as every language requires you to tackle problems differently.[/QUOTE]
You won't learn it from a book either. It's something that you only get from experience.
They're just references, don't expect to be instantly better just because you've read either one, and don't think one is worthless just because you had unreasonable expectations.
[QUOTE=arienh4;24843607]'Learning like a programmer' is different for each language as every language requires you to tackle problems differently.[/QUOTE]
Only to a certain extent. Most of the difference is in formalities like structure and syntax. The general principles remain the same.
I know I'm late to the party, but realize any C++ you'd learn now is going to be out of date in a year or so.
[&](CPP&& O3_spec) { return boost.tr1 + O3_spec; }();
:v:
One year? One single year?
I don't think so. Not C++. The Standards committee is taking their sweet time.
[QUOTE=Chandler;24844242]I know I'm late to the party, but realize any C++ you'd learn now is going to be out of date in a year or so.[/QUOTE]
Doubt that :\
New specs aren't adopted until like ten years later (look at C99).
Even if there was some kind of instantaneous shift to C++0x, the junk I keep saying about all the general concepts remaining the same applies here.
[QUOTE=ROBO_DONUT;24844375]Doubt that :\
New specs aren't adopted until like ten years later (look at C99).[/QUOTE]
I believe C99 isn't even supported fully yet on any major compilers..?
[QUOTE=esalaka;24844500]I believe C99 isn't even supported fully yet on any major compilers..?[/QUOTE]
GCC supports every C99 feature I've ever tried. I think there might be a few missing, but it's really minor stuff. ICC (the Intel C compiler) has a -std=c99 flag, but I can't find any information on the extent to which it supports C99 (the lack of discussion on the subject might be an indication that there aren't many problems with it). TCC (the Tiny C compiler) claims to support "much of the new ISO C99 standard" (wikipedia), and I know absolutely nothing about the BSD toolchain.
So it's looking like C99 support is pretty universal right now. Maybe not for some niche embedded C compilers, but all the major ones support it. Most programmers, however, are still writing C89.
[QUOTE=ROBO_DONUT;24844928]GCC supports every C99 feature I've ever tried. I think there might be a few missing, but it's really minor stuff.[/QUOTE]
I believe GNU claims GCC doesn't fully support C99 yet.
[QUOTE=esalaka;24845672]I believe GNU claims GCC doesn't fully support C99 yet.[/QUOTE]
Yeah, but it's [url=http://gcc.gnu.org/c99status.html]mostly stuff that nobody uses[/url]. Only really GNU says they don't support C99. I think it's probably for the same reason GMail was marked as "beta" for six years. It works well enough, but they aren't going to say "we support c99" until they've got it totally perfect.
I think you should learn a higher-level language like Python or C#, before a more complex and powerful language like C++. It will help you understand OOP concepts and teach you good programming practices. Only when you start to fell you're limited either by the language itself, the managed environment or interpreter speed you should try C++.
I feel like if you start with C++ you're gonna spend more time on useless (for a beginner developer) concepts like memory management, addressing, pointers and references, buffers, c-style strings, template hackery, instead of actually PROGRAMMING.
[QUOTE=ROBO_DONUT;24843804]You won't learn it from a book either. It's something that you only get from experience.
They're just references, don't expect to be instantly better just because you've read either one, and don't think one is worthless just because you had unreasonable expectations.
Only to a certain extent. Most of the difference is in formalities like structure and syntax. The general principles remain the same.[/QUOTE]
Most of the 'general principles' you learn doing C# are useless in C++, vice versa, and this goes for most languages. For example, you'll only really use pointer stuff in C++ and not in any other language.
[QUOTE=q3k;24846133]I feel like if you start with C++ you're gonna spend more time on useless (for a beginner developer) concepts like memory management, addressing, pointers and references, buffers, c-style strings, template hackery, instead of actually PROGRAMMING.[/QUOTE]
There are a lot of people who think they can avoid these things their entire programming career and still be a decent programmer. You really can't. There's no sense in avoiding them now when you're just going to have to learn them in the future.
[QUOTE=ROBO_DONUT;24846252]There are a lot of people who think they can avoid these things their entire programming career and still be a decent programmer. You really can't. There's no sense in avoiding them now when you're just going to have to learn them in the future.[/QUOTE]
I never said you can avoid it. You can't. But I know form experience beginners will get much more fun from (and much more addicted to - and this is our goal, right?) programming languages that are easier to get started with. Hence why I suppose Python is an excellent choice - it's ridiculously easy to get started with, both in terms of the development chain, and the language itself, yet powerful enough to let people spread their wings and go wild.
It's also much easier for someone with at least a basic understanding of programming to get into complex parts of a low-level language. You know that feeling when suddenly instead of being magical everything just seems... logical? That's what we want.
[QUOTE=arienh4;24846221]Most of the 'general principles' you learn doing C# are useless in C++, vice versa, and this goes for most languages. For example, you'll only really use pointer stuff in C++ and not in any other language.[/QUOTE]
You don't seem to understand what I mean by "general principals". Objects, pointers, inheritance, etc. are all just details.
General principals are things like "don't repeat yourself", understanding that trees are good for organizing data because they provide O(log N) access to any element, good understanding of the merits of any other structure, understanding that the biggest performance hit is going to come from the code in your innermost loops, knowing what people mean by "premature optimization", choosing simplest solution over the most complete, etc.
These apply to every language equally. The measure of a programmer should not be how well he can regurgitate some syntactical trivialities he memorized. You can look them up easily in a reference while programming.
[QUOTE=q3k;24846447]I never said you can avoid it. You can't. But I know form experience beginners will get much more fun from (and much more addicted to - and this is our goal, right?) programming languages that are easier to get started with. Hence why I suppose Python is an excellent choice - it's ridiculously easy to get started with, both in terms of the development chain, and the language itself, yet powerful enough to let people spread their wings and go wild.[/QUOTE]
I've seen the opposite side of things. Programmers who learned with the likes of Java and C# trying to wrap their heads around the fact that computer memory is just a long string of numbers and that computers have no regard for types or scope when trying to program in assembly. It doesn't work. I believe that it's easier to transition from the nitty-gritty low level languages like C to the higher-level ones than vice-versa.
Regardless, I tend to recommend Python as a starter language. People need results to encourage them to program, and Python provides results quickly.
[QUOTE=ROBO_DONUT;24846482]You don't seem to understand what I mean by "general principals". Objects, pointers, inheritance, etc. are all just details.
General principals are things like "don't repeat yourself", understanding that trees are good for organizing data because they provide O(log N) access to any element, good understanding of the merits of any other structure, understanding that the biggest performance hit is going to come from the code in your innermost loops, knowing what people mean by "premature optimization", choosing simplest solution over the most complete, etc.
These apply to every language equally. The measure of a programmer should not be how well he can regurgitate some syntactical trivialities he memorized.[/QUOTE]
That doesn't mean you don't still have to learn things like objects, pointers, inheritance etc. They're exceptionally important to master a specific language, rather than all languages.
[QUOTE=arienh4;24846601]That doesn't mean you don't still have to learn things like objects, pointers, inheritance etc. They're exceptionally important to master a specific language, rather than all languages.[/QUOTE]
[url=http://www.facepunch.com/showpost.php?p=24846252&postcount=44]I've just been arguing that you [i]do[/i] have to learn all these things.[/url]
The point I was making is that, once you've learned a few languages, the differences are exceedingly easy to spot and you should be able to pick up a new language in no time flat. The language itself shouldn't be the focus of your programming efforts and programmers should not be judged by the languages which they "know" or "don't know".
[QUOTE=arienh4;24846221]For example, you'll only really use pointer stuff in C++ and not in any other language.[/QUOTE]
What a terrible example. There are dozens of other languages in use which have pointers. C, D, Pascal, Ada, C#, many BASIC dialects (like BlitzMax), Fortran - and that's not even counting the more general concept of references.
[QUOTE=ROBO_DONUT;24846482]I've seen the opposite side of things. Programmers who learned with the likes of Java and C# trying to wrap their heads around the fact that computer memory is just a long string of numbers and that computers have no regard for types or scope when trying to program in assembly. It doesn't work. I believe that it's easier to transition from the nitty-gritty low level languages like C to the higher-level ones than vice-versa.[/QUOTE]
It probably just depends on the person. I also started out with C, and it's still my language of choice unless I need to do some RAD. But I also know a brilliant programmer who'd kick my ass any day which started with Python. I think the transition order is actually what differentiates an 'programmer' from a 'hacker'.
[QUOTE=jA_cOp;24846707]What a terrible example. There are dozens of other languages in use which have pointers. C, D, Pascal, Ada, C#, many BASIC dialects (like BlitzMax), Fortran - and that's not even counting the more general concept of references.[/QUOTE]
Pointer != Reference. Close, but not the same, and the idea of a reference is way easier to grasp. That and pointers are much more likely to be involved in voodoo.
[QUOTE=q3k;24846743]
Pointer != Reference. Close, but not the same, and the idea of a reference is way easier to grasp. That and pointers are much more likely to be involved in voodoo.[/QUOTE]
I didn't say they were the same, I said they were related.
[QUOTE=q3k;24846743]It probably just depends on the person. I also started out with C, and it's still my language of choice unless I need to do some RAD. But I also know a brilliant programmer who'd kick my ass any day which started with Python. I think the transition order is actually what differentiates an 'programmer' from a 'hacker'.[/QUOTE]
I do agree with this. It does depend very much on the person.
[QUOTE=q3k;24846743]Pointer != Reference. Close, but not the same, and the idea of a reference is way easier to grasp. That and pointers are much more likely to be involved in voodoo.[/QUOTE]
I think jA_cOp's argument made sense. The idea of a pointer is very similar to the idea of a reference. You could also probably say that a pointer is a type of reference.
[QUOTE=q3k;24846743]It probably just depends on the person. I also started out with C, and it's still my language of choice unless I need to do some RAD. But I also know a brilliant programmer who'd kick my ass any day which started with Python. I think the transition order is actually what differentiates an 'programmer' from a 'hacker'.
Pointer != Reference. Close, but not the same, and the idea of a reference is way easier to grasp. That and pointers are much more likely to be involved in voodoo.[/QUOTE]
would starting with batch make me a hacker or stoopid?
[QUOTE=toaster468;24847006]would starting with batch make me a hacker or stoopid?[/QUOTE]
It makes you awesome.
Maybe you want a web framework? [url]http://secretgeek.net/dod_intro.asp[/url]
[QUOTE=ROBO_DONUT;24844375]Doubt that :\
New specs aren't adopted until like ten years later (look at C99).
Even if there was some kind of instantaneous shift to C++0x, the junk I keep saying about all the general concepts remaining the same applies here.[/QUOTE]
[url]http://gcc.gnu.org/gcc-4.5/cxx0x_status.html[/url]
Pretty decent track record for a standard that isn't even a standard yet.
[QUOTE=q3k;24846743]Pointer != Reference. Close, but not the same, and the idea of a reference is way easier to grasp. That and pointers are much more likely to be involved in voodoo.[/QUOTE]
Well actually, all the languages ja_cop mentioned have pointers.
[QUOTE=ROBO_DONUT;24844928]GSo it's looking like C99 support is pretty universal right now. Maybe not for some niche embedded C compilers, but all the major ones support it. Most programmers, however, are still writing C89.[/QUOTE]
You're forgetting Microsoft Visual C++, which technically allows you to compile C but doesn't support anything.
[QUOTE=shill le 2nd;24862360]You're forgetting Microsoft Visual C++, which technically allows you to compile C but doesn't support anything.[/QUOTE]
I didn't forget.
I excluded it because it makes no effort to be a proper C compiler.
[QUOTE=ROBO_DONUT;24862568]I didn't forget.
I excluded it because it makes no effort to be a proper C compiler.[/QUOTE]
How so? (honestly)
[QUOTE=efeX;24866592]How so? (honestly)[/QUOTE]
I've ranted about this quite a few times now. The gist of it is that Microsoft thinks C is a dead language and has no intention of updating its support in MSVC to the latest spec. Plenty of missing header files, etc. A few implementations of standard library functions ([url=http://www.di-mgt.com.au/cprog.html#snprintf]snprintf is one example[/url]) in MSVC are broken such that they are actually dangerous to use and Microsoft refuses to fix them.
Sorry, you need to Log In to post a reply to this thread.