Computer programs are implemented everywhere nowadays, from cars to smartphones and in almost any workplace. As the world becomes more and more digital, the demand for new programs will continue to increase. If you have the next idea that can change the world, why not make it your own? Start with step 1 to find out how to learn a programming language, develop your ideas into a product that can be tested, and then correct it until ready for publication.
Steps
Part 1 of 6: Finding an Idea
Step 1. Think of ideas
A good program performs a task that makes life easier for the user. Research the programs currently available for the task you want to do and see if there are ways to make the process easier or clearer. A successful program offers the user a lot of usefulness.
- Examine what you do on your computer every day. Is there a way you could automate a portion of these tasks with a schedule?
- Write down each idea. Even those that seem silly or absurd to you, because they could create something useful or brilliant.
Step 2. Study the other programs
What are they doing? How could they be improved? What is he missing? Answering these questions can help you come up with ideas.
Step 3. Write a project document
This document will describe the characteristics and objectives of your project. During the development phase you will be able to refer to the project document in order not to lose focus and not to deviate from the original idea. Writing the project document will also help you decide on the best programming language.
Step 4. Start with something simple
When you're new to programming, your best bet is to start small and work your way up to more challenging ones. You will learn a lot more if you set yourself tangible goals that you can achieve with a simple program.
Part 2 of 6: Learning a Language
Step 1. Download a good text editor
Most programs are written in text editors and then compiled to run on computers. While you can use programs like Notepad or TextEdit, it is highly recommended to download a syntax highlighting editor like Notepad ++, JEdit or Sublime Text. These programs will greatly facilitate the visual analysis of your code.
Some languages such as Visual Basic include an editor and compiler in one program
Step 2. Learn a programming language
All programs are created by writing code. If you want to create your own programs, you will need to be familiar with at least one programming language. The languages you will need to learn will vary according to the type of program you want to create. Some of the most useful and important include:
- C - C is a low-level language that interacts very closely with computer hardware. It is one of the older languages that is still used a lot.
- C ++ - the biggest downside to C is that it's not object oriented. And C ++ solves this problem. C ++ is currently the most used programming language in the world. Programs like Chrome, Firefox, Photoshop and many others are written in C ++. It is also a widely used language for video games.
- Java - Java is an evolution of C ++, and is extremely portable. Most computers, regardless of their operating system, can run a Java virtual machine, making the program almost universally usable. It is widely used for video games and by companies, and is often recommended as an essential language.
- C # - C # is a Windows-based language and is one of the most used for creating Windows programs. It is very similar to Java and C ++, and it should be easy to learn if you already know those languages. If you want to create a program for Windows or Windows Phone, you will need to know this language.
- Objective-C - This is another cousin of the C language designed specifically for Apple systems. If you want to create an application for iPhone or iPad, this is the language for you.
Step 3. Download the compiler or interpreter
For any high-level language, such as C ++ or Java, and many others, you will need a compiler to convert your code into a format that can be used by your computer. There are many compilers to choose from, based on the language you are using.
Some languages are interpreted, which means they don't need a compiler. They only require the language interpreter to be installed on the computer, and the program can be run right away. Some examples of interpreted languages include Perl and Python
Step 4. Learn the basics of programming
Whichever language you choose, you will need to learn some basic common concepts. Knowing how to handle language syntax will allow you to create much more powerful programs. Common concepts include:
- Declare variables - variables are the way data is temporarily stored in your program. This data can then be saved, edited, and recalled in other parts of the program.
- Use conditional statements (if, else, when, etc.) - these are the basic functions of the program, and dictate how the logic works. Conditional statements are based on the "true" and "false" conditions.
- Using loops (for, goto, do, etc.) - loops allow you to repeat processes over and over until the stop command is given.
- Use escape sequences - these commands perform functions such as creating new lines, indentations, quotes, etc.
- Commenting on your code - Comments are essential for remembering what your code does, helping other programmers understand your code, and for temporarily disabling parts of your code.
- Understanding regular expressions.
Step 5. Find texts on the language of your choice
There are books for every language and for all levels of experience. You can find them in local bookstores or on the internet. A text can be an invaluable tool because you can keep it handy when you work.
In addition to books, the web is an inexhaustible source of guides and tutorials. Look for guides on the language of your choice on sites like Code.org, Bento, Udacity, Udemy, Khan Academy, W3Schools, and many more
Step 6. Take courses
Anyone can learn how to create a program for themselves if they have the right determination, but in some cases a teacher and classroom environment can be very helpful. Private time with an expert can greatly reduce the time it takes to grasp the fundamentals of programming. Classrooms are a great place to learn advanced math and logic concepts needed for more complex programs.
Classes cost money, so be sure to sign up for classes that will help you learn what you want to know
Step 7. Ask questions
The internet is a great way to connect with other developers. If you get stuck on a project, ask for help on sites like StackOverflow. Make sure you are asking the questions intelligently and giving proof that you have already tried several possible solutions.
Part 3 of 6: Building Your Prototype
Step 1. Start writing a simple program with the main features
This will be the prototype showing the features you are looking to achieve. A prototype is a fast program, and it should be corrected until a design that works. For example, if you are creating a schedule for a calendar, your prototype will be a simple calendar (with the correct dates!) And a way to add events to it.
- Your prototype will often change during the development cycle as you find new ways to tackle problems or think of an idea that you want to integrate into the program.
- The prototype doesn't have to be graphically curated In fact, graphics and design should be one of the last things to focus on. Using the calendar example again, your prototype should consist of text only.
- If you're making a game, your prototype should be fun! If the prototype isn't fun, the full game probably won't be either.
- If the desired mechanics don't work in the prototype, it's probably time to start from scratch.
Step 2. Form a team
If you are developing a program on your own, you can use a prototype to help build the team. A team will help you spot bugs faster, fix features and design the graphics aspects of the program.
- A team is not necessary for small projects, but it will significantly reduce development time.
- Leading a team is a complex and difficult operation, and requires good management skills and a well-built team.
Step 3. Start from scratch if necessary
Once you are familiar with your language, you may be able to create working prototypes in a matter of days. For this reason, don't be afraid to trash your idea and start over from a different point of view if you're not happy with your progress. It is much easier to implement major changes at this stage and not later when you have already created the features.
Step 4. Comment everything
Use the commenting syntax of your programming language to leave notes on all important lines of code. This will help you remember what you were doing if you have to leave the project for a while, and it will help other developers understand your code. This is very important if you work as part of a programming team.
You can use comments to temporarily disable portions of code during testing. Just include the code you want to disable in the comment syntax and it won't compile. You can then delete the comment syntax and the code will be restored
Part 4 of 6: Alpha Testing
Step 1. Assemble a testing team
In the alpha stage, the testing team should be small. A small group will help you get relevant feedback and give you the opportunity to connect with testers personally. Each time you update the prototype, new versions will be submitted to the alpha testers. Testers will try all the features included and will also try to find errors, documenting their results.
- If you are developing a commercial product, you will need to make sure that all your testers sign a non-disclosure agreement (NDA). This will prevent them from divulging information to other people about your program, and will prevent tip-offs to the press and other users.
- Spend time designing a solid test plan. Make sure your testers have an easy way to report bugs to the program, and access new versions of the alpha. GitHub and the other code repositories are a great way to manage this.
Step 2. Test your prototype continuously
Bugs are every developer's bane. Errors in code and unexpected uses can cause a lot of problems in the finished product. As you continue to work on your prototype, test it as much as possible. Do everything you can to find errors in the program and then try to avoid errors in the future.
- Try entering strange dates if your schedule works with dates. Very old dates or in the distant future can cause strange reactions in the program.
- Enter the wrong variable types. For example, if you have a template that asks for the user's age, enter 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?
Step 3. Fix the bugs in order of priority
When you fix the program in alpha, you will spend a lot of time fixing features that don't work properly. When organizing bug reports from your alpha testers, you will need to sort them by two values: Severity And Priority.
- The Severity of a bug is the measure of the damage it can cause. Bugs that cause the program to crash, corrupt data, and prevent the program from running are called Blockers. Features that don't work or return incorrect results are called Critical, while features that are difficult to use or look ugly are called Major. There are also Normal, Minor, and Unnecessary bugs that affect smaller sections or less important features.
- The Priority of a bug determines the order in which you will address them in the fix. Fixing bugs in a program is a time-consuming process, which must be subtracted from time to add new functionality and refine the program. Therefore you will need to take into account the priority of a bug to make sure you meet deadlines. All Blocking and Critical bugs have the highest priority, in some cases referred to as P1. The bugs in P2 are usually the Major bugs that need to be fixed, but they will not prevent the product from being released. Bugs P3 and P4 usually do not have a deadline for resolution, and they fall into the category of improvements that would be nice to implement.
Step 4. Add more features
During the alpha phase, you will add more functionality to your program to make it more like the program you described in your project document. During the alpha phase the prototype evolves into the basis of the complete program. By the end of the alpha phase, your program should have all of its features implemented.
Don't stray too far from the original design. A common problem in software development is feature build-up, which is the constant addition of new ideas that result in the original design being lost and time-consuming in development - Your program should be the best in its class, and not a handyman
Step 5. Test each feature as you add it
When you add a new feature in alpha stage, deliver the new version to your testers. The regularity of the new releases will entirely depend on the size of your team and the speed of your progress.
Step 6. Lock the features when the alpha phase is over
Once you have implemented all the features in your program, you can finish the alga phase. At this point, you won't need to add any other features to the program, and the included ones should work. Now you can move on to a more extensive testing phase and program refinement, known as the beta phase.
Part 5 of 6: Beta Testing
Step 1. Increase the size of the test group
In the beta phase, the program is made available to a much larger group of people. Some developers make the beta phase public, in this case called open beta. This allows all people to sign up and participate in the product testing phase.
According to the needs of your product, you can decide whether to organize an open beta
Step 2. Test connectivity
As programs become more and more interconnected, there is a good chance your program will rely on connecting to other products or servers. Beta testing allows you to make sure that these connections are running under a higher load, and this will ensure that the program can be used by the public at the time of release.
Step 3. Refine your schedule
In the beta phase, you no longer need to add features, so you can focus on improving the aesthetics and ease of use of the program. At this stage, the design of the user interface becomes a priority, to ensure that users do not find it difficult to navigate the program and are able to take advantage of all its features.
- Interface design can be very difficult and complex. There are professionals who are dedicated only to this aspect of programming. Just make sure your personal project is easy to use and pleasing to the eye. It may not be possible to build a professional interface without a significant expense and team of developers.
- If you have the cash, you can hire a graphic designer to build the interface for you. If you've created a great project that can become a successful program, find a good designer and get him on the team.
Step 4. Keep looking for bugs
Throughout the beta phase, you should still catalog and prioritize bugs found by your users. As new testers are testing the program, new bugs will likely be discovered. Eliminate bugs according to their priority, keeping in mind your final deadlines.
Part 6 of 6: Publish the Program
Step 1. Advertise your program
If you want to find users, you need to make sure they know your program exists. As with any product you will need to do some advertising to make yourself known to people. The extent and depth of your marketing campaign will be dictated by the capabilities of your program and your budget. Some simple ways to increase your program exposure include:
- Post about your program on specialized forums. Make sure you follow the posting rules so you don't risk your posts being flagged as spam.
- Send press releases to technology sites. Find some blogs and tech sites that cover topics similar to your program content. Send editors a press release describing the details of your program and how it works. Include some snapshots of the program screens.
- Make videos to upload to YouTube. If your schedule is designed to complete a specific task, create a YouTube video that shows your schedule in action. Structure your videos as guides.
- Create pages on social networks. You can create Facebook and Google+ pages for your program, and you can use Twitter to release news about your company and the program.
Step 2. Make your program available on your website
For smaller programs, you may be able to upload the file directly to the site server. You could include a payment system if it is a paid software. If your program becomes popular, you may need to upload the file to a server that can handle multiple downloads.
Step 3. Create a support service
When your program has been published, there will inevitably be users with technical problems or who do not understand how the program works. Your website should offer complete documentation and some kind of support service. These can include a technical support forum, a support email, live help with an operator, etc. What you can offer your users depends on your budget.
Step 4. Keep your product up to date
Almost all programs nowadays receive patches and updates long after their release. These patches can fix critical and non-critical bugs, update security protocols, improve stability, or even add functionality or change graphics. Keeping your schedule up to date will help him stay competitive.