View Full Version : C++ Guidance?
fatsheep
October 5th, 2006, 10:10 PM
About a month ago I decided to get into C++ programming. I bought one of those "Sams How to Teach Yourself C++ in 24 Hours" books and I've also gotten some practice off internet tutorials. In the begginning I was really excited but the further I get into it the more tedious it is. All I'm doing is reading a few explanations, copying some source code that doesn't do anything practical, and then compiling it. I fiddle around with it of course but I don't really know where to go with it. Don't get me wrong, it's great to learn from the book and the tutorials but if I don't know how to use and apply techniques practically then learning them was a waste of time. It's like being taught how to program in theory and not in practice. The latter is my goal of course.
Did any of you feel this way starting out and if so what would you advise me to do? I don't want to frustrate myself with something way over my head but I don't want to stick to doing nice little examples that just print useless messages - it's not going to get me very far.
po0f
October 5th, 2006, 10:41 PM
fatsheep,
Do you feel confident enough to take on a project? Think of one and post back. I'm kinda itching to work on something myself, and have an idea or two.
lnostdal
October 5th, 2006, 10:53 PM
Did any of you feel this way starting out..
no..
.. and if so what would you advise me to do?
..just keep going until you "get it"..
Chickencha
October 6th, 2006, 12:26 AM
Well, first of all, the Sams' books aren't too great in my experience. I realize it may be too late now, but there are much, much better books out there.
That said, if you think you pretty much understand the basics*, it might not be a bad idea to start some kind of project of your own. You might not finish it, but I bet you'll learn a lot more than you will by reading someone else's source code to programs that don't do anything useful. Try not to bite off more than you can chew, though -- it's very easy to do even for experienced programmers.
Try to think of some small utility that might be useful to you but wouldn't be too complicated.
*I'd say if you've gotten into classes a fair amount, then you've got the basics down. Although it kind of depends on what order the book teaches things in, I guess.
amo-ej1
October 6th, 2006, 02:23 AM
(All ?) books about C++ give you a basis of programming in C++, being language fundamentals, syntax, what is a function, what is a pointer, what is a class, .... and they go extremely deep in that.
It's the same with learning regular languages, what good is learning one if you have nothing to say ?
You should dive into doing something, pick a goal, choose some API and dive into it. Learn how to use other libraries because 'only' C++ will not get you very far ? C++ doesn't have gui support, network support, threading, xml support, etc ...
So what I'd suggest is, get to know the basics of the C++ language up to a level that you are capable of following 'technical' tutorials, than think about a goal, gui programming ? graphics ? audio ? network ? Than search for some library which helps you accomplish that goal and read the tutorials of those api's / libraries that will boost you C++ knowledge and you will 'feel' more progress as you can more easily see result from those things instead of the regular 'switch two number', 'print out a fibonacci sequence', 'find the primes' exercises ...
amo-ej1
October 6th, 2006, 02:26 AM
po0f, and now i'm curious for you idea or two ;)
po0f
October 6th, 2006, 02:42 AM
amo-ej1,
The project that I'm most interested in doing is a battle.net chat client, or bot. I have always wanted to write one. This is what actually got me interested in programming in the first place. I have (kinda) started one a couple of times, but never got passed the planning phase.
Another project idea I have is a file manager. Since switching to Ubuntu (and GNOME), I have hated Nautilus. I used to use Gentoo/KDE, and after Konqueror, I find almost everything lacking. This is the bigger of the two projects, and probably the one most likely to not get completed.
Anyway, those are my ideas. :)
boban
October 6th, 2006, 02:49 AM
Another project idea I have is a file manager. Since switching to Ubuntu (and GNOME), I have hated Nautilus. I used to use Gentoo/KDE, and after Konqueror, I find almost everything lacking. This is the bigger of the two projects, and probably the one most likely to not get completed.
That is very good idea... Only one file manager is good enough -krusader - but it dosn't work quite well under gnome...
slimdog360
October 6th, 2006, 03:11 AM
There are freelance places on the web. Where people write in to get somethign developed and then developers make the programs. Most if not all are probably a bit to sophisticated for you at the moment but I found that some are fun to have a go at anyway.
Although a lot are db programming, which I hate.
You dont have to take on the project but you can do it in your own time to see if you can do it. Lots of interesting ideas out there.
amo-ej1
October 6th, 2006, 03:37 AM
just out of curiousity, can you give some examples ?
asimon
October 6th, 2006, 05:20 AM
A very important thing to do when learning a programming language is reading and understanding other people's code. There is very much to learn from other's people code (good and bad). So I highly recommend to also try to fix some easy bugs in some project of your liking. Many have even so called junior tasks which are well suited for beginners (for example for KDE you find a 'Junior Jobs' link at bugs.kde.org . Have fun!
fatsheep
October 6th, 2006, 10:23 AM
I've wanted to get into GTK/GNOME programming but most of the tutorials I have found have been quite poor unfortunately. Another idea I had was writing super user prompt for Nautilus (http://www.ubuntuforums.org/showthread.php?t=265249).
A very important thing to do when learning a programming language is reading and understanding other people's code. There is very much to learn from other's people code (good and bad). So I highly recommend to also try to fix some easy bugs in some project of your liking. Many have even so called junior tasks which are well suited for beginners (for example for KDE you find a 'Junior Jobs' link at bugs.kde.org . Have fun!
What project's would you recommend to take a look at? I've looked at the source code for a few projects like beagle but the only thing they have done is confused me unfortunately. The most confusing thing about these projects is how all the components work together. I'm used to writing simple little command line programs that do very simple tasks and only take up one file. Beagle has many many files and folders...
kaamos
October 6th, 2006, 12:07 PM
What project's would you recommend to take a look at? I've looked at the source code for a few projects like beagle but the only thing they have done is confused me unfortunately. The most confusing thing about these projects is how all the components work together. I'm used to writing simple little command line programs that do very simple tasks and only take up one file. Beagle has many many files and folders...
I thought beagle was done in C# ? :shock:
Desi-Tek.com
October 6th, 2006, 04:40 PM
i think http://cplusplus.com has best tutorial in c++ many programmer learned c++ from there. they have made tutorial in very simple form any body can easily understand it plus they also have collection of lots of sample program to download.
even i learned c++ from there :)
kvorion
October 7th, 2006, 12:59 PM
Good to find this thread. Even I have a similar query.
I learned to program in C++ when I was in first year of college. I think I am pretty good at the language concepts etc and have written normal course related programs in it and did one project in VC++ .NET but never on the linux platform.
I need some kind of a guidance as to where I can start real development.
Currently I do software development in C#, and so I am looking for some small project that I can pursue during weekends.
So I would really appreciate it if someone tells me about a good API and a small/easy project that I can start off with. Reading code and fixing bugs seems to be a good idea, but I dont know what to start off with.
stock99
November 22nd, 2006, 12:30 AM
hi,
I have the similar issue too. I did a C/C++ language course back to uni first year but i didn't complete the C++ module. I don't have solid concept in OO design but the procedure part is all right. I would like to dive into the network programming part but reading book is abit bored. The idea of small project like writing simple online game bot or sth can sure keep my enthusiasm up.
Btw, any good studio with GUI in ubuntu? i used to use gcc(cli mode) but would prefer gui one. Besides, if i were to write game bot for windows, must i develop it under windows?
slavik
November 22nd, 2006, 01:46 AM
Here's a small project for you that will actually tech you something ...
You will write your own version of 'cp'.
your program takes 2 arguments, the source of the file and the destination. Then simply copy the file from one location to another.
here are some things to try:
-byte by byte copy (1 byte at a time)
-buffered copy (bunch of bytes at a time)
this is something simple, yet we can help you should you come across troubles.
vBulletin® v3.8.7, Copyright ©2000-2012, vBulletin Solutions, Inc.