Welcome guest. Before posting on our computer help forum, you must register. Click here it's easy and free.

Author Topic: My brain hurts - need some thoughts - c++  (Read 4945 times)

0 Members and 1 Guest are viewing this topic.

zaryk

  • Guest
My brain hurts - need some thoughts - c++
« on: June 19, 2008, 11:16:53 PM »
For the past few days I have dedicatedly put my mind into how certain types of programs work, and looking up information.  These programs consist of:

1. internet browser
2. IM chatbot
3. Instant Messenger
4. compiler
5. operating system

I eventually plan on making one of each of these in my lifetime, and I have a long ways to go unless I get hit by a car or just plain out right die over. 

I have a pretty good understanding of the basics of c++, can't say I have it all memorized or I've used it all, but I do have the understanding most of the time.  I understand these are difficult tasks.  For the goals that require internet access;  yes, I know the first step would be to look up tcp/ip; for compiler, it would require a greater understanding of how compilers work and the c++ language.  And for operating systems; how the operating system works or go and get a linux kernel blaahh blah blah.  Honestly, reading through all these things that explain how something works doesn't teach me anything about how to program what they are talking about or at least give me all the commands and their definitions and how they are used, and not too many people around the internet are very helpful. 

what I have learned so far has been through hands-on and the availability of explanations, plus working with php before c++ helped a whole bunch.  (working on a forum right now, but having trouble with the login, but ill get there. The forum has gotten better each time I have lost it...well, I mean after I restored the computer a few times without backing up my forum hehe)  But, anyway, any ideas on books for these topics, since there doesnt seem to be too many options left for me.  And don't say, search Google; these forums were created to help people, not make stupid, downgrading remarks.  I come as a beginner, asking a professional for advice (in a sense).  Thanks.

Dias de verano

  • Guest
Re: My brain hurts - need some thoughts - c++
« Reply #1 on: June 20, 2008, 12:26:13 AM »
working on a forum right now, but having trouble with the login

I'm working on dating girls, but I'm having trouble with the "asking them" part...  :)

zaryk

  • Guest
Re: My brain hurts - need some thoughts - c++
« Reply #2 on: June 20, 2008, 04:36:01 PM »
Wow.  You have proved that people are as inconsiderate and stupid as I thought they were.  But honestly, maybe that's just your excuse, maybe your really into guys.  It's ok, I can ask my sister to go talk to some of her gay guy friend's so you all can go *hang out*.

Dias de verano

  • Guest
Re: My brain hurts - need some thoughts - c++
« Reply #3 on: June 20, 2008, 05:11:36 PM »
Zaryk, I answered as I did partly because of a certain section of your post. I reproduce it below for convenience:

Quote
And don't say, search Google; these forums were created to help people, not make stupid, downgrading remarks.

You surely are a beginner, if you do not realise the first thing about web forums, (as you apparently do not) namely, asking not to receive "stupid" answers is a sure-fire way to guarantee that those are the only answers that you will receive!

The reason for this is that the web is an intensely democratic medium, and people don't like being hectored by arrogant dorks.

Your subsequent reply showed, if further proof were needed, just how much you richly deserved that description.

So, in my language of choice, I recommend that you váyase a la mierda...

Quote
You have proved that people are as inconsiderate and stupid as I thought they were.

That's how you think people are? Study karma. Learn how you see in other people what you really are. Classic case of projection, there, doctor.



zaryk

  • Guest
Re: My brain hurts - need some thoughts - c++
« Reply #4 on: June 20, 2008, 05:59:11 PM »
Really?  Sweet. So do you have anything important to say?  Because none of that helped me or offended me any.

BC_Programmer


    Mastermind
  • Typing is no substitute for thinking.
  • Thanked: 1140
    • Yes
    • Yes
    • BC-Programming.com
  • Certifications: List
  • Computer: Specs
  • Experience: Beginner
  • OS: Windows 11
Re: My brain hurts - need some thoughts - c++
« Reply #5 on: June 20, 2008, 06:14:15 PM »

1. internet browser
2. IM chatbot
3. Instant Messenger
4. compiler
5. operating system


There really isn't any series of steps involved in the creation of any of these types of programs. In fact, in most cases the only things they have in common is function.

As an example, creating a compiler requires far more then just knowledge of the C++/C language, but also a intimate understanding of assembly, and/or Machine code(as ideally, that is what is written as output). It also requires an intimate knowledge of file handling, string parsing, expression evaluation, tokenizing, etc...

This is why you can't find any specific information as to the creation of these programs, they are, as with any program, built with a group of smaller components. Once you gain an intermediate understanding of the types of data structures and algortihms required for the development of such tools, you can set foot into creating one. How does one develop such an understanding? Creating other programs. For example, one could gain the skills necessary for creating a compiler by creating a Expression Evaluation library, as well as a dissassembler. These two separate programs, once created, will give you [some] of the combined knowledge to effectively create a compiler of some sort (not necessarily C/C++, don't we have enough of those? I mean, as a learning experience it makes sense, but otherwise....)

For the other items, the same type of stuff applies- one would need to learn any algorithms involved. With Operating System, of course, comprising the behemoth, as one would require intimate knowledge of any and all hardware that the OS is intended to run on, the ability to write a compiler to create the executables that can run on your platform, in addition to the drivers that it uses.




I believe I can think of a good book off-hand for Operating Systems, one called "Operating Systems: Design and Implementation"


Their are countless numbers of networking related books, but a good low-level TCP/IP book I find myself browsing is "TCP/IP foundations" by Sybex publishing.


Also, on a unrelated note, an unsaid first step to almost every post of this nature is to search google. If the hits you find are unhelpful or onconclusive, then you make a post. Although there is of course no harm in bending this rule, it sets yourself up, since if another member finds that the information you wanted was the first hit on google, it makes you look lazy, or requiring attention, or something along those lines... search for "how to write operating Systems" not in quotes, and the first hit seems relevant.


working on a forum right now, but having trouble with the login

I'm working on dating girls, but I'm having trouble with the "asking them" part...  :)

ahh, see theres the problem, I don't bother asking. I just go up and say "me like u. You come to movie tonight." See, no question. Of course, some actually Misunderstand and think I was asking them, they make friends with duct tape.

"This is a good movie, isn't it, dear."

"mmmf mmuff meef meffff fffff mffff"

"I'm not taking the tape off, because you'll scream. And that's bad. because we were meant to be together."

"muffff muuuu mfffome"

"So what kind of music do you like?"

"mufff"

"Muff... never heard of them"
« Last Edit: June 20, 2008, 06:24:47 PM by BC_Programmer »
I was trying to dereference Null Pointers before it was cool.

Dias de verano

  • Guest
Re: My brain hurts - need some thoughts - c++
« Reply #6 on: June 21, 2008, 03:48:09 AM »
OK, I've been shamed into actually contributing (or trying to). I can only echo BC_Programmer's excellent advice. Basically, learn how to program. Then learn how to design software applications. (These are not the same thing).

Very few large projects such browsers or complete operating systems are written by individuals. They are generally collaborative efforts by teams of programmers, and for this reason, the ability to write code that can be maintained and understood by others is important. Far more important than competence in any one programming language is a deep understanding of topics such as algorithms, logic and project design and planning.

Unless you are a very special kind of genius (and given the need to work with others, even if you are!) you should go to college and, to begin with, take a degree level course in computer science with a particular emphasis on software design methodologies.

Books are in many ways better than web browsing. Some books that I have found very useful include:

The Elements of Programming Style, by Brian W. Kernighan and P. J. Plauger.

A very good introduction to the "art" of programming. This book is crammed with good advice. I still have my 1982 edition and it is not only useful but a good read as well. Not many programming books are!

The Practice of Programming by Brian W. Kernighan and Rob Pike.

This book covers a lot of things like debugging, etc that you don't normally learn in college courses, and touches on the topic of style.

The C Programming Language, Second Edition by Brian W. Kernighan and Dennis M. Ritchie.

The bible for many programmers.

Assembly Language for Intel-Based Computers by Kip R. Irvine

It's possible to learn Intel assembly language using this book alone, not taking a formal class, even though the text isn't really designed to be a "teach yourself" programme. Assembly language is a rather difficult topic, so you would have to be very motivated. I learned 68000 assembly before any other language, so maybe I am biased, but I think it is indispensable.

I hope you won't think I am trying to get all hi-falutin' and put you off, but I don't think it is a good idea to pretend that serious software design is easy.
« Last Edit: June 21, 2008, 07:37:24 AM by Dias de verano »

zaryk

  • Guest
Re: My brain hurts - need some thoughts - c++
« Reply #7 on: June 21, 2008, 12:46:58 PM »
Code: [Select]
Also, on a unrelated note, an unsaid first step to almost every post of this nature is to search google

Google is my bible.  But, just like the bible to most people, they can read it but there are things that are hard to understand.

Thanks for both of your input.

zaryk

  • Guest
Re: My brain hurts - need some thoughts - c++
« Reply #8 on: June 23, 2008, 10:07:53 AM »
Code: [Select]
you should go to college and, to begin with, take a degree level course in computer science with a particular emphasis on software design methodologies.

right now, Im working on an Associates of Science, then transferring to start working on Computer Science....the few computer classes that I have had are not required for graduation nor transferrable though (just wanted to take them), but I was exceedingly more knowledged than the rest of the students.

Dias de verano

  • Guest
Re: My brain hurts - need some thoughts - c++
« Reply #9 on: June 23, 2008, 10:39:05 AM »
I was exceedingly more knowledged than the rest of the students.

I hope you hid that opinion from them.

zaryk

  • Guest
Re: My brain hurts - need some thoughts - c++
« Reply #10 on: June 23, 2008, 11:42:40 AM »
I didn't have to, they knew it.  There were a few times the teacher began thinking in java, and I would correct him.  I was the first one done with tests, first one done with writing programs.  They then started coming to me for help.  I kinda got bored of the class, so at the end of the class period we would talk about java or winapi....of course, students stayed around and listened....and of course, the talking doesn't help too much because I learn better by doing step by step.

BC_Programmer


    Mastermind
  • Typing is no substitute for thinking.
  • Thanked: 1140
    • Yes
    • Yes
    • BC-Programming.com
  • Certifications: List
  • Computer: Specs
  • Experience: Beginner
  • OS: Windows 11
Re: My brain hurts - need some thoughts - c++
« Reply #11 on: June 25, 2008, 03:48:43 AM »
shell_notifyicon is my favourite API. closely followed by DeviceIoCtl and DrawEdge. I suppose that I could give honorable mention to GetProcAddress and GetModuleHandle. I'd also like to thank the brothers SendMessage,PostMessage,DispatchMessage,TranslateMessage and GetMessage, for keeping the pump going.

 I hate to name names but I have to call out TerminateThread for being exceedingly stupid, as well as TerminateProcess. And how can I forget, good old RtlMoveMemory in my old friend, Kernel32.dll, why if it wasn't for you, I wouldn't have been able to copy that entire structure back and forth from the alternate structures, and for that, I must thank you.
I was trying to dereference Null Pointers before it was cool.