44

How do I make software less overwhelming?

Profile picture
Software Test Engineer at Series B Startup2 years ago

My goal is to transition into a SWE role, but something I've struggled with is making the building of software projects more digestible. A lot of the time I'll look at some project I have to build, and I just don't know where to start or how to figure out what to do. Any tips on how to make this process less scary?

2.1K
1

Discussion

(1 comment)
  • 55
    Profile picture
    Tech Lead @ Robinhood, Meta, Course Hero
    2 years ago

    This is a feeling I completely resonate and empathize with - It's very common among earlier-in-career engineers. At a high-level, my advice is that any piece of software can be broken down into a series of steps. Here's a basic example with loading the main feed in the Facebook app:

    1. User opens the app up to the homepage
    2. The homepage makes an API call to fetch feed items from the server
    3. The server receives the request and queries the database for relevant items
    4. The server sends those items back to the app
    5. The app renders those items in a list

    And from there, each step can generally be broken down into more and more steps. For example, "queries the database for relevant items" can be broken down even further into:

    1. Establishing a connection to the DB
    2. Formulating the query
    3. Running the query
    4. Parsing the objects returned.

    The end goal is to keep breaking things down until everything is atomic (i.e. can't be broken down anymore). From there, just go in order and tackle them one at a time.

    Another dimension is that if you're working with the UI, you can also break things down visually. Take this Taro Q&A page on web for instance - You can break it down into:

    1. Submit button
    2. The header
    3. The footer
    4. The metadata on the question (asker level and company)

    Once you have split up this giant page into many "components", just start building them one at a time - Easiest to hardest, top to bottom, whatever makes the most sense to you!

    I heavily recommend these other resources within Taro to help you with this problem:

    Lastly, if you want very concrete, tactical help on breaking down a task/project, feel free to just share it within Taro (while obscuring company-specific details of course)! I'm always happy to come up with ideas on how to execute a project.