Problem: Article: Even if it's just a 10-minute walk around your office building, putting yourself in a different environment for a bit helps your brain stay active and engaged. When you find yourself getting drowsy, you'll be a lot more productive if you go ahead and take that break. Be strict about taking your breaks. Even if you have a big deadline or project, working too much will cloud your mind. Take a small break every two to three hours and you will be more productive. If you can go outside, do it - even if its raining or freezing outside. The change in temperature will shock your body out of its afternoon lull. Get up and walk around frequently. When you sit in one place for too long, your circulation is impacted - and that has a big effect on your state of mind. The smell of citrus boosts serotonin, the hormone that puts you in a positive, uplifted mood. Having some orange or grapefruit wedges - or any other type of citrus - is a great way to overcome your mid-afternoon slump. Even squeezing a lemon into your glass of water can help. Ginseng is a natural stimulant that improves brain function. Having a cup of ginseng tea or taking 100 milligrams of ginseng extract can help improve your focus. Also, It will help your brain to feel refreshed. Ask your doctor before taking supplements. Ginseng should be avoided if you have high blood pressure. You might crave a latte and a cookie when 4:00 rolls around, but caffeine and sugar will only cause you to crash after a temporary high. For sustained energy and alertness, drink water or tea instead of coffee, and eat a high-protein snack like almonds. Maybe you don't think you're in the mood, but it can't hurt to give it a try! Put on the kind of music you usually dance to come Friday night. Soon your feet will be tapping and your head will be nodding - you won't be able to help yourself. Your slightly elevated heart rate will help you perk back up in no time. You can also catch up on an article, listen to an interesting podcast, learn a language, or do anything else that will get you excited and help you refocus. Instead of resisting the urge to close your eyes, give in! Taking a 15 to 20 minute nap will go a long way toward helping you feel much more alert. An afternoon nap might be just what you need to get through the rest of the day, especially if you didn't sleep well the night before.
Summary: Get a change of scene. Eat an orange or grapefruit. Drink ginseng tea. Avoid caffeine and sugar later in the day. Listen to upbeat music. Take a power nap.

Problem: Article: . A good program will perform a task that makes life easier for the user. Look at the software that is currently available for the task you want to perform, and see if there are ways that the process could be easier or smoother. A successful program is one that users will find a lot of utility in. Examine your daily tasks on your computer. Is there some way that you could automate a portion of those tasks with a program? Write down every idea. Even if it seems silly or outlandish at the time, it could change into something useful or even brilliant. Examine other programs. What do they do? How could they do it better? What are they missing? Answering these questions can help you come up with ideas for your own take on it. This document will outline the features and what you intend to achieve with the project. Referring to the design document during the development process will help keep your project on track and focused. See this guide for details on writing the document. This is a basic program that shows off the functionality that you're aiming to achieve. A prototype is a quick program, and should be iterated on until you find a design that works. For example, if you are creating a calendar program, your prototype would be a basic calendar (with correct dates!) and a way to add events to it. Your prototype will change often during the development cycle as you come up with new ways to tackle problems or think of an idea later that you want to incorporate. The prototype doesn't have to be pretty. In fact, art and design should be one of the last things you focus on. Using the calendar example again, your prototype should most likely just be text. Bugs are the bane of every developer. Errors in code and unexpected usage can cause all kinds of problems in a finished product. As you continue to work on your project, test it as much as possible. Do everything you can to break it, and then try to keep it from breaking in the future. Have friends and family test your program and report back results. Any way that you can get feedback will help your development process. Try inputting odd dates if your program deals with dates. Really old dates or far future dates may cause odd reactions with the program. Input the wrong kind of variables. For example, if you have a form that asks for the user's age, enter in a word instead and see what happens to the program. If your program has a graphical interface, click on everything. What happens when you go back to a previous screen, or click buttons in the wrong order? While it's fine to make a rough project for the prototyping and development phase, if you want others to use it you're going to need to spend some time on polish. This means making sure the menus flow logically, the User Interface (UI) is clean and easy to use, there are no glaring or showstopping bugs, and that it's coated in a nice looking finish. UI design and functionality can be very difficult and complex. People make whole careers out of designing UIs. Just make sure that your personal project is easy to use and easy on the eyes. A professional UI may not be possible without a budget and a team. If you have the budget, there are lots of freelance graphics designers who could potentially design a UI on contract for you. If you have a solid project that you're hoping will become the next big thing, find a good UI designer and make them part of your team. GitHub is an open-source community that allows you to share your code with others. This will allow you to get insight on your own code as well as benefit others who are looking for solutions that you may have come up with. GitHub is a great learning resource as well as a good way to build your portfolio. Once you have a finished product, you can choose whether or not you want to distribute it. There are a variety of ways you can do this these days depending on the type of software you created. One of the most common ways for small teams or independent developers to distribute their software is through a personal website. Make sure that all of your features are well-documented, and include some screenshots and tutorials. If you are selling your software, make sure you have a good digital payment system and a server to distribute the software from. If you are developing software for a specific device or operating system, there are multiple digital stores that you may be able to use. For example, if you are making software for Android devices, you can sell your app through the Google Play Store, the Amazon App Store, or your own personal website.
Summary:
Brainstorm ideas Write a design document. Create a prototype. Test it over and over. Polish your projects. Put your projects on GitHub. Distribute your software.