This is my first post actually, but I thought - lets skip the introduction and get right to business.
The last 14-16 months I have been trying to get the grips of programming but I keep giving up. I either get annoyed by the books that I am reading (which are either too detailed or lack of) or find myself questioning - am I doing the right thing?
I started with C# because I thought it would appeal to me. After trying some basic code examples (and reading O'Reilly books) I noticed that it did all I want, however, people (that programmed for years) had advised me to pick something else. In their opinion .NET was actually slow and C++ could do a lot more (is faster) and was more commonly used. If you wanted to do GUI applications - C# was the answer, for anything else you would have issues. So it got me confused and after doing some research - it confused me even more so I called it a day and went on doing the "regular" studying.
What I am actually wondering about and this is basically aimed at people that do programming for a living: what language should I learn? One that can do anything, is widely accepted and more important - will still be relevant years to come?
I am sorry if this is not the correct sub-forum, but I was convinced that none of the other sections were actually related to my question. I should mention that I have absolutely no programming background, but I am an easy learner and pick things up rather quickly.
Cheers,
lunaaaa
Skizmo
July 29th, 2010, 08:36 AM
The opinions about which language to use is the same war as Windows vs. Linux vs. Mac. Everybody has something to say about it and for everything as a argument. I've written code in multiple languages and right now I'm using C++. C++ is (for now) the best language I've ever used, but I thought that about VB (a few years back) too, because I could do anything with it I wanted. In my opinion is the understanding of programming itself more important, because if you understand how coding works, it is only the language syntax you need to learn if you want to use another language.
If you want to make PC-based GUI applications in a short time, languages like C#/.Net or VB are fine. If you want to do more and really want to get everything out of your PC and do low-level stuff, you need to switch to C/C++. If you want to do internet coding you can use Java/PHP or one of the other zillion web-based languages. I guess it all depends on what you want your code to do and what your destination in the long run is.
lunaaaa
July 29th, 2010, 09:11 AM
That actually makes more sense than using Google for an answer, cheers!
Well learning what coding really is and how it can help me solve my own problems is my ultimate goal of course. I am a person which constantly gets annoyed by the fact that applications do way more than I ask for - which makes the application slow in my opinion, because it takes too long to obtain a result. I am certain that I can create something which can do it faster. That is basically why I want to learn programming.
I have about 100 pages of theory in my head from C# and the syntax made sense. When I started some C++ things were a little bit different, but for a non-native English speaker, comprehending terms such as; string, integer, looping made it easier - I already knew what they meant.
So I guess, taking in account that C# is usually GUI-based applications, and C(++) for everything else - I will have to make a choice between C and C++. From what I can remember, C++ is C with classes. I like to have my code organized, so I guess C++ would be the answer.
D_Drmmr
July 30th, 2010, 07:54 AM
I have about 100 pages of theory in my head from C# and the syntax made sense. When I started some C++ things were a little bit different, but for a non-native English speaker, comprehending terms such as; string, integer, looping made it easier - I already knew what they meant.
That's the thing, if you learn C# or Java first and then C++, you will have to learn programming all over again. The other way round is much much easier. However, C++ is more difficult to learn. There are more language features in C++ and there are more pitfalls. The biggest pitfall of all is learning C++ as if it was 20 years ago. The language (and the community) have evolved a lot since then, but some people (and even books) are stuck in time.
What's more, C# and Java come with a large set of library functions that let you do all kinds of things that are necessary in real-world applications. C++ comes with the STL, which is already really helpful, but to program real application you'll need to look for libraries yourself. They are there so you don't have to reinvent the wheel, but you have to find them.
So I guess, taking in account that C# is usually GUI-based applications, and C(++) for everything else - I will have to make a choice between C and C++. From what I can remember, C++ is C with classes. I like to have my code organized, so I guess C++ would be the answer.
IMO, there is no point learning C. If you want, just learn C++.
lunaaaa
July 30th, 2010, 08:57 AM
I understand, thanks for your input.
I am now in the process of gathering books and so far I have found a small collection which does not set me back that much. They are all qualified as being C++ so hopefully they are good.
Accelerated C++ Practical Programming (2000) from Addison-Wesley seems to be the book that everyone talks about as a good starting point. I should get it on Monday. I cannot wait!
The only thing which still confuses me, slightly, is what I should use to write code. I own a license for VS2010 but if I remember correctly, the C++ you do in VS is actually VC++. Which is an upgraded C++ that is similar to regular C++ but with extra options which are available through the use of VS? At least that is what Google tells me.
I already wrote a simple "Hello World" in VS with the console. As far as I know, I did not use anything special in VS but my Hello World application is still classified as being VC++, correct?
I am sorry for all the questions I am asking, but anything that could take away my confusion helps me immensely!
lunaaaaa
D_Drmmr
July 30th, 2010, 04:34 PM
The only thing which still confuses me, slightly, is what I should use to write code. I own a license for VS2010 but if I remember correctly, the C++ you do in VS is actually VC++. Which is an upgraded C++ that is similar to regular C++ but with extra options which are available through the use of VS? At least that is what Google tells me.
VC++ is a product, not a language. Every compiler deviates from the standard in one way or another, just all in different ways. Therefore, it is good to know what is standard and what isn't, so you know what is portable and what isn't.
lunaaaa
July 30th, 2010, 06:50 PM
I think I am grasping the thoughts.
In other words: it does not really matter if I write C++ in VS2010 or use IDE A or compiler B - in the end I am still writing C++ - correct?
I have already played with VS2008 when I was doing C# and I really liked the simplicity. I could even dig further and change all the generated code myself, which I thought was brilliant.
Thanks guys, I really appreciate the way you guys interact with the so called noobs. It makes you feel real appreciated!
I cannot wait to start and I will be visiting this site more often - that I am certain of.
lunaaaa
Turingmachine
July 30th, 2010, 09:15 PM
Being disillusioned might bring one to even killing :mad: (silly people), not just compiling a program,
So
To some people No is a no, yes is a yes
dglienna
August 1st, 2010, 06:59 PM
C# is more like C++, which is the main reason I still prefer VB.Net.
It does just about everything, and you don't need to end a line with ; :)
viperbyte
August 2nd, 2010, 01:08 AM
C++ was my first language I tried to learn. It made me want to write Goodbye world. I'll stick to Visual Basic.
Turingmachine
August 2nd, 2010, 08:57 AM
Learning anything costs a price,
I had to compete a lot to get a scholarship in college, then a job position
Then I realized that my boss never agreed to pay me until the end of...
He wouldn't pay if he could if any slightest chance available
I grow up. And perhaps I should promise anyone wanting to get anything from me must pay a price, once I am lower, i eat dirt, it's ok, wait up I'll grow up more and you will see, I unearth every single bit of single dirt you spit into my face
Sounds scary ?
dglienna
August 2nd, 2010, 07:03 PM
Just finished a project that I estimated to take 2 months, and just wrapped up after three. :eek:
Not a problem, as I was improving office efficiency (task) by observing what they had been doing.
Because of the detail functionality of the program, it could turn out to be just what the other branch offices are looking for.
The client doesn't care what language I used, and trusted me to switch his web site from Access to SQL Server (so the program could update it easier :))
Learn something, and learn it well. Usually, nothing learned is wasted forever. It all seems to come back some day...
I did invest in a subscription to DevExpress's Toolset, and had to learn the ins and outs of that (thru a major upgrade period as well)
viperbyte
August 2nd, 2010, 07:25 PM
DG says learn something and learn it well. I agree 100% on that. I spread myself thin in the early ninties on VB, C, C++ because everything else that I didn't know much of appealed to me. Sort of like the ole saying the grass is greener on the other side. Books on shelves were the sirens for me. After a few years I didn't know any one thing well. I thought i did but when I went to work man I really struggled and floundered. So since this December I have been back in the saddle trying to learn just one thing really well. VB. C++ is beyond my capabilities to learn at industry level. I hope to not get side tracked again and am self imposing a no other language rule until I can say I know this stuff inside out on the most advanced level.
TheComputer
August 2nd, 2010, 07:48 PM
..until I can say I know this stuff inside out on the most advanced level.
Those must be at least late 40s to speak that fluently about the subject, others younger I suppose to be showing off on decorated details of word use or just a particular research project they are working on. Later that day, time "fades away" the memories of it, getting back becomes seriously hard. One is truly never enough, Many is too much to grasp after all, there is no defined Average for proud survivals in competitive environments
viperbyte
August 2nd, 2010, 08:03 PM
Geeze was that a poem? :) Sounds right on though. One is never enough? I'll take the good with the bad for now being a one lanuage man. But then there's SQL. Can't drop that. I can hear the LINQ guys now. More than one is too tough for me at this point. I need to be able to just fool around with C++ and C# just to justify having it on my computer and having paid for it though.
lunaaaa
August 3rd, 2010, 06:29 PM
Going through Accelerated C++ as we speak and I like what I am seeing. If only I had digital copies of this.
Skizmo
August 4th, 2010, 09:13 AM
Going through Accelerated C++ as we speak and I like what I am seeing. If only I had digital copies of this.
Ask and you will receive (http://www.ebook3000.com/Accelerated-C---Practical-Programming-by-Example_9424.html).
lunaaaa
August 4th, 2010, 09:26 AM
Oh thanks, makes it easier to read.
codeguru.com
Copyright Internet.com Inc., All Rights Reserved.