June 14th, 2013, 02:32 AM
Scratchwork: on computer or paper?
Do you do your scratchwork on paper or on your computer?
At first I drew diagrams and did small calculations on paper, but I found that having my textbook, laptop, notebook, keyboard, mouse all on the same desk was a little cluttering.
So I switched to planning out on the computer, and I found Lucidchart was extremely useful for diagramming.
What are your methods for planning?
Also advices on efficient programming in general are much appreciated. (eg: tools on web)
June 28th, 2013, 02:24 PM
What I have found from a few years of searching for the best solution is using a hybrid approach. I use engineering paper to think about the software's algorithms as well as data flow prior to writing code, but also do the same thing on the computer. I also use Lucidchart for diagramming as well and I have begun using Compilr as a cloud solution to writing certain programs that I want constant access to. Now I break my own rules all the time in that sometimes I don't even bother with thinking and just start coding, it all comes down to personal preference and experience really.
Something else I have done is write the assignment's question in the comments at the top of the source code file. That way I don't have to have the book in my face and can focus on the actual problem.
Now considering better programming methods. What has worked best for me is to consider a process towards developing software.
1. Start by considering the problem. We have to know what we need to code in order to code it. On paper or on the computer, diagram the data flow, write some pseudo-code, anything that helps understand the problem space and the right approach towards writing the needed code. Especially in this object oriented world we live in, consider what classes need to be developed and what attributes and actions they each have.
2. Begin programming the solution by working from step 1. Start by developing the classes and then move into testing the classes. Test the getters, setters, and action methods with data you know will work, then with data you know won't work, such that we can check the error handling and that the code is doing what it should. Then begin to write the actual application, the class that will have the main method in it, and start wiring the classes together to get actual program functionality.
3. When you have a program you think is done, start testing it. Now, most of the testing is already done because we already tested the classes and should have a good idea of whether or not they are functional. At this state we can be testing the application logic more fully and making sure that it's performing as it should.
These are really the biggest factors to consider in developing a sense of better programming efficiency. It may seem like a lot to consider, and there's more to it like debugging code, but it all comes with experience as well and the only to get that is by coding.
Hope this helps...