Being a self taught programmer, I tend to jump right into coding. This is a problem. Over the last year, and have started to realize that coding without a concise plan only makes life more difficult as a code base grows. After a while, I am having to fit squares into circles…
Often times, I have a loose plan and jump right into writing code. This works fine for small projects, however its counter productive and unprofessional.
I realized that when I code, my mind is split in half. One half is concentrating on learning the syntax of the language (In my case, Rust or Python) . The other half is coming up with the design of the application on the spot! After a while, I get stuck, and have to delete a bunch of code and rewrite another mediocre implementation. I waste hours and hours of my time shooting in the dark until it works. THIS IS INEFFICIENT!
Starting today, I want to learn how to approach a problem like professional developers approach a problem. I am reaching out to anyone who has experience starting from scratch.
I searched around and found a term called [Software Development Life Cycle](https://www.tutorialspoint.com/sdlc/index.htm).
In general, it involves the following:
- Planning
- Requirements Analysis
- Design
- Coding
- Unit Testing and
- Acceptance Testing.
Which models do you think I should learn?
From what it appears, I need to start by learning how to plan, perform requirement analysis, and design. These articles are informative, however the descriptions are more of a general overview. I would like to hear more practical examples. I want to learn how to inherit this methodology into my own practice as if this is my profession (Perhaps someday).
For example, let’s say your stakeholders come to you and your team with a new feature that they want to launch next quarter. They describe the idea from the users perspective and put you in charge of building it from scratch. Describe the process that you take step by step. What does the planning step look like? What does the requirement analysis look like? Help me understand how to perform each task effectively.
Thank you!
Sincerely,
an amateur programmer
submitted by /u/cc9zero
[link] [comments]