Open Side Menu Go to the Top
Register
Any C++ Programmers in here? Any C++ Programmers in here?

03-23-2011 , 09:32 PM
Quote:
Originally Posted by TakiToki
Okay, this thread looks as good as any to ask. I've been using VBA BS for several years in relation to various needs. I understand that's not saying a whole helluva lot, but I've developed a pretty good understanding of the logic. My Access Developer's Handbooks are tattered and torn, and I've built some pretty damned good stuff, if I do say so myself.

Anyway, if I were wanting to jump into the serious programming realm, what would my optimal first step be?
I was a kid when I got into it and I don't know **** any more, so I may be worthless, but learning a flexible scripting language should be eye-opening. I don't know which would be best, Python, PHP, Lisp, Perl, Lua, whatever.

Anyway, these languages are simple enough that you don't need to know too much in order to learn them, but sophisticated enough that you can apply what you learn to pretty much anything else you do. You can also learn the core of a good scripting language easily, and then pick up new techniques and learn about more components as you go.

After that, maybe learn about high-level design concepts. Algorithms and data structures are (were at any rate) a big thing in computer science, but I'd cover them last because they really aren't that important unless you're very advanced.

Again, I may be full of **** on this, if so I apologize.
Any C++ Programmers in here? Quote
03-23-2011 , 09:59 PM
I went from Classic ASP (Vbscript) to ASP.net (c#). The transition is fairly difficult at first, but there are actually a lot of resources in regards to making that sort of change.

Plus C# is an awesome language. I'd probably go for C#. It's very marketable as well.

Also familiarise yourself with higher quality DBMS such as SQL Server, that's a good one to step up to after Access. This should be dead easy for you.
Any C++ Programmers in here? Quote
03-23-2011 , 10:38 PM
Quote:
Originally Posted by sards
There's no reason you can't learn high-level design while working in C++.
you can, but it will be much harder and you'll be forced to waste your time learning a bunch of memory management stuff that has nothing to do with high-level design.
Any C++ Programmers in here? Quote
03-23-2011 , 10:43 PM
Quote:
Originally Posted by TakiToki
Okay, this thread looks as good as any to ask. I've been using VBA BS for several years in relation to various needs. I understand that's not saying a whole helluva lot, but I've developed a pretty good understanding of the logic. My Access Developer's Handbooks are tattered and torn, and I've built some pretty damned good stuff, if I do say so myself.

Anyway, if I were wanting to jump into the serious programming realm, what would my optimal first step be?

Thanks.
Python, Haskell, or Java imo.

But it's not about the language. Anything that supports OO programming or true functional programming will work. You want to learn the design concepts. I really recommend:

http://www.amazon.com/Software-Devel.../dp/0135974445

and also, for an introduction to design patterns I think this book:

http://www.amazon.com/First-Design-P.../dp/0596007124

is even better than the famous gang of four one.
Any C++ Programmers in here? Quote
03-24-2011 , 12:47 AM
Quote:
Originally Posted by chezlaw
I also don't think the language matters that much. Master one and you can quickly master all the similar ones (and most of the others as well).
This (at least all imperative languages: http://en.wikipedia.org/wiki/Imperative_programming).

As others have already pointed out though: it's not the programming (or "learning to program") that's the hard part... The hard part, and what takes the most learning, is the design/discipline aspect and how not to end up in a huge mess as the size of your project grows. You'll find this bit by far the hardest being a self-taught programmer.

Juk
Any C++ Programmers in here? Quote
03-24-2011 , 04:18 PM
Quote:
Originally Posted by jukofyork
The hard part, and what takes the most learning, is the design/discipline aspect and how not to end up in a huge mess as the size of your project grows. You'll find this bit by far the hardest being a self-taught programmer.

Juk
Yes, though I would add that it's not limited to being a self-taught programmer, it's simply the hardest part of programming well. I might even argue it IS what programming well means.
Any C++ Programmers in here? Quote
03-25-2011 , 10:46 PM
Any chance we could get this thread moved to the new programming playground forum:

http://forumserver.twoplustwo.com/19...d-programming/

Juk
Any C++ Programmers in here? Quote
03-29-2011 , 10:02 PM
Lets say you have a windows operating system XP and later (please specify if the later ones require any special different treatment in terms of the following) and you have just installed it fresh. You want to install all the necessary programs and data needed to start programming in C++. You also have many relevant books.

Question;

What exactly are you going to install in this computer ?

Please name one by one everything you would want to have on that machine to start producing programs that you can create simulations with or even create simple windows applications.

I am looking for someone to actually tell me everything that a decent programmer would want from day 1 installed on their laptop to start doing interesting things (of course i am not at all decent in terms of C++ yet although i have programmed in other simpler and more ridiculous but still effective for my purposes languages like basic and i am familair with the core ideas)

I do not care for cost although if some of these are free even better.

So basically my question to you that regularly author programs to eg test various poker problems or other ideas from monte carlo simulations in physics or stock market to macros in excel to applications that can read screens of poker tables and collect data, you name it. What is it that you want to start installing to your computer in a new harddrive , brand new operating system to get yourself going all over again (if say you lost all your prior computers but not the software that you had bought or downloaded)
Any C++ Programmers in here? Quote
03-30-2011 , 01:21 AM
Thead moved to more appropriate forum. Enjoy.

-Zeno
Any C++ Programmers in here? Quote
03-30-2011 , 02:24 AM
Quote:
Originally Posted by masque de Z
Lets say you have a windows operating system XP and later (please specify if the later ones require any special different treatment in terms of the following) and you have just installed it fresh. You want to install all the necessary programs and data needed to start programming in C++. You also have many relevant books.

Question;

What exactly are you going to install in this computer ?

Please name one by one everything you would want to have on that machine to start producing programs that you can create simulations with or even create simple windows applications.

I am looking for someone to actually tell me everything that a decent programmer would want from day 1 installed on their laptop to start doing interesting things (of course i am not at all decent in terms of C++ yet although i have programmed in other simpler and more ridiculous but still effective for my purposes languages like basic and i am familair with the core ideas)

I do not care for cost although if some of these are free even better.

So basically my question to you that regularly author programs to eg test various poker problems or other ideas from monte carlo simulations in physics or stock market to macros in excel to applications that can read screens of poker tables and collect data, you name it. What is it that you want to start installing to your computer in a new harddrive , brand new operating system to get yourself going all over again (if say you lost all your prior computers but not the software that you had bought or downloaded)
this is easy... Visual Studio C++ Express.

http://www.microsoft.com/express/Dow...010-Visual-CPP

done and done. and its free.
Any C++ Programmers in here? Quote
03-30-2011 , 02:37 AM
Quote:
Originally Posted by gaming_mouse
Most modern languages are good enough that you don't need to understand the low-level memory management stuff.
I think it's difficult to be a great programmer if you don't understand that stuff, though. Maybe it's just my opinion but I think it's important to have a fairly good idea of what the code you're writing actually does when it runs on a processor. I posted this article in another thread but think it's especially relevant here: The Perils of JavaSchools (and I just learned from the bottom of the page that the guy who wrote it co-founded StackOverflow).


For OP - since you already know C, I would suggest learning C#. There are two important reasons to learn C++:
- lower-level stuff like memory management
- OOP design

and by knowing C already, you kinda have the first one covered. The second one, you can learn from a number of languages - Java and C# are both good choices, so you might as well learn OOP design theory from a language that does it right (or at least, better than C++). At any point in your programming career, if you need to, it'll be easy to take the OOP concepts you've learned in C# or Java and go back to C++ to learn how it does all those things in a universally uglier and ****tier way - and if you don't need to use C++, then hey, you spared yourself having to do this:

Quote:
Originally Posted by gaming_mouse
learning about the nuances of the C++ new and delete operators
which really isn't worthwhile unless you find yourself having to learn the language.
Any C++ Programmers in here? Quote
03-30-2011 , 11:10 AM
C++ is certainly the language #1 on my list of languages I want to start using more. You can do some pretty fun stuff with it and I certainly agree that working with memory management makes you a better programmer.

It's obviously more important in some areas (i.e. games/engines; operating systems) and for many projects faster development times etc. far outweight the need for more control and I think one can be a good programmer with no knowledge of C/C++ (let alone asm) or even algorithms etc. but it does help a lot if you know them and will make you better.
Any C++ Programmers in here? Quote
03-30-2011 , 12:01 PM
Quote:
Originally Posted by goofyballer
I think it's difficult to be a great programmer if you don't understand that stuff, though. Maybe it's just my opinion but I think it's important to have a fairly good idea of what the code you're writing actually does when it runs on a processor. I posted this article in another thread but think it's especially relevant here: The Perils of JavaSchools (and I just learned from the bottom of the page that the guy who wrote it co-founded StackOverflow).
I'm not saying you should never learn that stuff. I am saying it is far more important to learn high level design. And I am also saying, to someone starting out, DON'T start at the bottom and learn your way up. Start at the top and, as needed or as you are interested, learn your way down.


I have known programmers who know low-level stuff *really* well, but who don't understand high level design. And for the large majority of projects I would *much rather* work with guy who understands high level design but not low-level than vice-versa. Now, it's true that most people who are really good at one are also at least pretty good at the other, but it's not necessarily true. They are different disciplines. And I am saying, unequivocally, one is more important than the other.

Knowing low-level details in programming is like knowing grammar and sentence diagramming really well in writing. Usually, it will improve you as a writer, and overall it's probably a positive thing to learn. But good writing, essentially, is not about good grammar. You can be a great writer and never truly understand grammar at a deep level. And, if you are a grammar expert but don't really understand what good writing is, you can become someone who completely misses the big picture, but has a smug superiority about being able to correct others on technical details that don't matter. And I think this happens even more often in the world of programming.
Any C++ Programmers in here? Quote
03-30-2011 , 12:43 PM
Grunch:

Don't go into C++ treating it like C with classes.

Life gets better if you do. And with C++, you need every boon you can get.
Any C++ Programmers in here? Quote
03-30-2011 , 01:13 PM
Quote:
I'm not saying you should never learn that stuff. I am saying it is far more important to learn high level design. And I am also saying, to someone starting out, DON'T start at the bottom and learn your way up.
Design is more often related to the underlying language than one would want though. A pretty dumb example would be designing stuff with multiple inheritance and then finding out...oh snap we write this stuff in JAVA, rly? Design Patterns are usually rather language specific as well. It is tons easier to do high level design if you actually know the ins and outs of the low level stuff. If you want to design something and think Aspects would be a neat way of solving stuff it's pretty usefull to understand exactly how Python metacalsses work etc. etc.

Either way, generic programming with the funny-old templates is just too much fun to pass.
Any C++ Programmers in here? Quote
03-30-2011 , 03:05 PM
Quote:
Originally Posted by clowntable
Design is more often related to the underlying language than one would want though.
I think this is a different point altogether. Obviously you need to understand the capabilities of the language you are working with. But that has nothing to do with the value of learning how to use pointers in C, how to manage memory manually, etc. These are the kinds of things I mean when I say low-level stuff.

I am not advocating learning design as a complete abstraction removed from any programming language. Although honestly I think that would *still* be more valuable than learning C as an introduction to programming, and by quite a wide margin.
Any C++ Programmers in here? Quote
03-30-2011 , 03:38 PM
Quote:
Originally Posted by Neil S
Grunch:

Don't go into C++ treating it like C with classes.
What do you mean by this? I mean, C++ is basically C with classes.
Any C++ Programmers in here? Quote
03-30-2011 , 03:51 PM
Quote:
Originally Posted by sards
What do you mean by this? I mean, C++ is basically C with classes.
I think he means this:

http://www.parashift.com/c++-faq-lit....html#faq-20.1

EDIT: and even more to the point this:

http://www.parashift.com/c++-faq-lit...e.html#faq-6.9
Any C++ Programmers in here? Quote
03-30-2011 , 04:13 PM
Geeze, what does that guy have against Missouri?
Any C++ Programmers in here? Quote
03-30-2011 , 04:21 PM
Quote:
Originally Posted by mr_stinky
this is easy... Visual Studio C++ Express.

http://www.microsoft.com/express/Dow...010-Visual-CPP

done and done. and its free.
Just that? Thanks! How about any classes, any subroutines to do major typical calculational tasks. I appreciate the hint but i bet there is a lot more that you advanced guys would want to have installed. My question is not what do i need. I know i will be more than ok with the visual studio for now. My question is what you advanced programmers like to work with to do fancy stuff. From simulations to solve probability problems often posted here to fictitious play huge strategy convergence tasks for more complicated games , to restricted 3 body problem simulations , to even little programs that read quotes of stocks from a webpage and do math with it all day producing analysis . You know imagine any kind of wild scientifically oriented application you would love to be able to do plus applications that can read data from other windows or the internet etc.
Any C++ Programmers in here? Quote
03-30-2011 , 04:31 PM
Quote:
Originally Posted by sards
What do you mean by this? I mean, C++ is basically C with classes.
Except that it's not. C++ brings a lot more than classes, plus changes the behavior of things like structs. You've got templates and the whole standard library. Plus you've got the issues surrounding C's continued evolution after the C++ "fork", introducing other incompatibilities.

C is a language meant for lots of bitwise and pointer manipulation. You shouldn't be going down to the metal like that in C++. If you want to use C, use C. If you want to use C++, use C++ constructs and mechanisms from the ground up.
Any C++ Programmers in here? Quote
03-30-2011 , 04:32 PM
Quote:
Originally Posted by gaming_mouse
This goes back to my point: Let the *compiler* do your fancy pointer manipulations. That's its job.
Any C++ Programmers in here? Quote
03-30-2011 , 08:18 PM
Quote:
Originally Posted by Neil S
Except that it's not. C++ brings a lot more than classes, plus changes the behavior of things like structs. You've got templates and the whole standard library. Plus you've got the issues surrounding C's continued evolution after the C++ "fork", introducing other incompatibilities.

C is a language meant for lots of bitwise and pointer manipulation. You shouldn't be going down to the metal like that in C++. If you want to use C, use C. If you want to use C++, use C++ constructs and mechanisms from the ground up.
Ok, I see what you are saying. I don't agree that you shouldn't be "going down to the metal" in C++ though. C++ makes a lot of that unnecessary, but sometimes it is still required and there's nothing wrong with doing pointer manipulation and bitwise operations when needed.
Any C++ Programmers in here? Quote
03-30-2011 , 10:50 PM
Quote:
Originally Posted by Neil S
C is a language meant for lots of bitwise and pointer manipulation. You shouldn't be going down to the metal like that in C++. If you want to use C, use C. If you want to use C++, use C++ constructs and mechanisms from the ground up.
Maybe I'm missing something obvious here, but what do you consider to be the C++ replacement of pointer arithmetic?
Any C++ Programmers in here? Quote

      
m