Question:
How to develop small software or application [C++]?
gh0st Rider
2011-02-10 11:08:29 UTC
Hya ,

I've been learning c++ for 8 - 10 months and want to develop a software or small applications (i am self taught using some books) so just consider me as C++ programmer. . since i don't know win32 etc for GUI development i can use some library .

but problem is that i am unable integrate all my knowledge to build a software and i think i am am a adhoc coder. when i see even small simulation or little application codes i understand the code sometimes (sometimes not since understanding them is hard by just seeing code) but i find even code of page 4 - 7 so large that i think i can't develop applications.

for e.g : if i want to develop my own chm reader or FTP or any appz or softw. you consider serious coding, how do i develop it? then i find myself completely lost by just start typing code i know won't ever be able to develop it. (you can call this my less confidence)

so what i want to how programmers learn to develop serious application when after drilling their teeths in c++ only, do i need some other books to learn how to develop software? or what is the process to become serious application developer ?

Any help is very appreciated.

P.S (Impotant) : i'd love if you could tell me how you became serious developer after learning C++ , what you had done etc pleaseeeeeeeeee. and any personal advices to me .

Thanks a lot again ))
Three answers:
Cubbi
2011-02-10 12:01:48 UTC
"just start typing code" is indeed very different from an actual software development cycle.



To break it down, briefly: (note that here I'm not answering your title question "small application", this is more to answer you "serious application developer" part)



1) specifications. Describe all program requirements, inputs and outputs, use cases. Not just "FTP client", but exactly what functionality will it have and what will it not have. What will the user see, what will the user do, what will the user get.

2) design. The most time-consuming part, where you come up with interfaces, class hierarchy, public methods, state changes, data flows, all the inner workings of the application, but without any code. At the end of design, ideally, you would have a class diagram (look up UML), with every class and public method described, their relationships, function and purpose.

3) programming. The simplest stage of all. Take each class and each method from the design, and write it down in C++. Good design means you don't care at this point about the rest of the program. Bad design means you have to go back and redesign. Best products have been redesigned many times.

4) unit testing: Each and every code path must have a unit test that makes sure it happens as expected. For every method you need a test case. For every if/else condition you need two test cases.

5) functional testing: Each point in the functional spec must have a functional test. What the user sees, what he does, and what he gets. Once you know each line in the spec is shown to be true, it's release time.

6) bug fixes, patches, new releases..



How did I learn it? Through experience. I walked up the ladder. Worked as a bugfixer for years, delighting in finding that one character or one line of code that needs to be changed to fix everything, then worked as a programmer for more years, writing testable code and meeting detailed design specifications, now I design new projects and make those specifications.



I've never done one-man projects though, and would probably spend a lot more time than your average opensource developer if I were to start one.. I am sure there are opensource people here too, who can share their experiences.



Come to think of it, I do write one-off tools as needed.. one approach for *small* apps that I like is a skeleton/scaffold approach. Instead of designing the master plan and implementing it top to bottom or building up from separate pieces of code and tests to an application, my first priority is always get a minimal proof-of-concept prototype together, just one user function, with minimal code. Then add on as needed.
anonymous
2011-02-10 11:36:15 UTC
You need to start doing any simple application. Best of all, that it was a very simple application. You can even copy the code from the book, but to understand what you are doing. Then progressively to complicate your project. It is best that you showed someone how to do it. In two words the whole process can not explain. Once understood, you can create your own program
anonymous
2011-02-10 11:17:10 UTC
Get yourself visual studio express ( or the full blow version if you have money to blow ). Let it handle the UI stuff for you.



Then, pick a simple project and just do it. Look online for examples, browse the microsoft help files. When you have that finished. Find another simple project and do it. Repeat, over and over.



Each one will give you another tool to use. Start simple and work your way up.


This content was originally posted on Y! Answers, a Q&A website that shut down in 2021.
Loading...