Maybe Erel will make us Veterans one day (?)Hi @Cableguy you know me pretty well pal as we've been members here since forever (both joining around the same time).
As you know, I'm a hobbyist programmer when it comes to using B4X. I write apps to fulfill my own needs and also enjoy providing advice here on the forum when I feel confident enough in my answers. Recently I've been very quiet on the forum even though I visit daily to skim through the new posts.
What you might not realise is that I'm an engineer by trade working in a manufacturer facility where I get to 'play' with industrial robots, vision systems and a whole host of PLC hardware. The concepts of programming here are much the same as writing an App in B4X.
I program at home using B4X when I feel like it, to relax, keep my mind sharp and because I enjoy learning new things and taking on new challenges. But I believe the thought process is pretty similar to a professional programmer (except time is not normally a consideration)....
If professionally designing apps I'm guessing that step 1 would be stipulated to you by the client design spec, or if it's something you're designing yourself for general release I'd think that you would include a step 1a which would be to check the competition, how much competition is there, what and how are they doing it and how will yours be better?
- Start with a concept, a basic idea of what your app should accomplish.
- Determine what are the fundamental requirements. These are the key building blocks that you may already know how to achieve but more than likely will require you to research and find ways of achieving what you need.
- Research. What libraries, sample code etc is already available?
- Rough out a basic structure (at least a mental picture if not something more substantial).
- Start coding. Try to break the project into bite-sized manageable chunks, this should be easier if you have taken sufficient time in step 4 (the hardest step is often knowing where to start!)
- When possible test each bite-sized chunk in isolation. This makes debugging the finished program a whole lot easier.
- To keep the project moving you should ideally set yourself some milestones.
- Completion, testing, debugging and initial release to beta testers.
- Final debugging and product release.
This is my point of view anyway
Lol, I've been programming for that long that most of the planning I do is in my head. It's a well laid out plan that only I knowLike Storyboards... anyone uses them?
Both are necessary, but for me the magic key is how to manage both things at the same time. The professional mind (how to bring something reliably into reality) working together with the creative mind (things will possibly change as long as I develop them because I will continuously see other paths). They can only work together with the correct mix of flexibility and good habits. But once you get it, the creative process turns into an amazing experience, as you won't only enjoy the results, but also the whole path to achieve them, it is like starting to write a book that will continue to be written on its own.I'd like to add that the technical part is one side of the story, innovative ideas another. It's only when you achieve to combine the two that you are on something.
I also think that finding the right people is also important, not only on the technical side. If they are the right people, they will let you fly higher or come back to earth when necessary. If not, just imagine...arriving to the moon with a one-way ticketI am aware that I know have enough knowledge, but it all depends on a good idea. People that are not at all into programming and know me often tells me that 'Just wait, one day you will get idea to a new app that might be a huge success. Nobody can even know what you might come up with...' quotes like that I am used to that, and that makes me very aware that it's not all about the programming part, it's about being innovative, timing, being social, find the right people at the right time
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?