<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Vickie Do on Medium]]></title>
        <description><![CDATA[Stories by Vickie Do on Medium]]></description>
        <link>https://medium.com/@vdo9?source=rss-7bccaac43c72------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*YQYwC4t2RtHVbnY_dmtxDA.jpeg</url>
            <title>Stories by Vickie Do on Medium</title>
            <link>https://medium.com/@vdo9?source=rss-7bccaac43c72------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Mon, 08 Jun 2026 17:41:52 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@vdo9/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[What I Learned In My First Hackathon]]></title>
            <link>https://medium.com/@vdo9/what-i-learned-in-my-first-hackathon-f6dc22c6efd6?source=rss-7bccaac43c72------2</link>
            <guid isPermaLink="false">https://medium.com/p/f6dc22c6efd6</guid>
            <category><![CDATA[hackathons]]></category>
            <category><![CDATA[project-management]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[developing-mobile-apps]]></category>
            <category><![CDATA[ux-design]]></category>
            <dc:creator><![CDATA[Vickie Do]]></dc:creator>
            <pubDate>Sat, 11 Feb 2023 23:19:35 GMT</pubDate>
            <atom:updated>2023-02-11T23:19:35.387Z</atom:updated>
            <content:encoded><![CDATA[<p>Participating in a hackathon brings a mixture of nervousness and excitement. I went into it not knowing what to expect, unsure if I could create a project within 36 hours. Nevertheless, I saw it as a chance to work on a project and collaborate with a team.</p><p>To my surprise, our team won “Best Health Hack” for our app, ‘SkinDeep’. The app is a community-based Q&amp;A platform that focuses on skin health and features a user-friendly design. Although winning a touchscreen air fryer was a nice perk, my biggest reward was the sense of accomplishment I felt as part of a team.</p><p>Below are my key takeaways and tips from the hackathon experience:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/400/0*vEqsChInFQHbecMB.jpg" /><figcaption>One Step Forward Multiplies!</figcaption></figure><h4>Put yourself out there.</h4><p>As we all know, coming in with an open-mind is a necessity. If you have a project idea, make sure to sum up your idea with answering the minimum of “what is it?” and “why should we build it?”. This gives an idea to potential team members what your vision is and help them determine whether they wish to work with you. If you’re lacking inspiration for a project, it might be helpful to identify the technology skills you want to develop or determine whether you want to create a mobile or web app, as well as select a theme or topic. This can give you a better idea of whether other people would be interested in collaborating or pursuing a similar project for their own learning and growth.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/563/0*vEFcar_7BXx_MKFu.jpg" /></figure><h4><strong>Finding teammates can be difficult.</strong></h4><p>Plans may fall through with teammates or you may have conflicting ideas. There may also be individuals you wished you had the opportunity to work with. While these are all normal occurrences, it’s important to handle them gracefully and feel comfortable declining if necessary. Remember, the ultimate goal is to gain experience. Consider reaching out to these individuals through LinkedIn or other platforms, and explore the possibility of working on a personal project together.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/563/0*Oro0aBP_qCidotRV.jpg" /></figure><h4>Be prepared to lose sleep.</h4><p>After this experience, you may feel burnt out. Usually, I’d say to not burn yourself out, but in this case, think of it as a temporary discomfort. No pain, no gain. Pushing through those tutorials, documentation, and bugs will give you maximized effort for a short period of time. And the outcome? Something to show for your efforts! Don’t forget to eat to fuel your brain!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/563/0*uddDVHCz2euVhQ7z.jpg" /></figure><h4>Teamwork makes the dream work.</h4><p>It was amazing to see how my team and I developed a system naturally. We initially talked about our design on paper to get on the same page (pun intended), delegated our tasks, and then dispersed. While working on our tasks, we’d check in with each other and did not hesitate to ask for help. These forms of communication helped us speed up any bugs encountered and added to our team morale. Once finished with our tasks, we would reconvene to discuss merges.</p><blockquote>Git fetch, git pull, git merge, git push.</blockquote><p>We probably went through over 10 instances of this git cycle. It was exciting to see our code smoothly merge together. Team work really makes the dreams come to life.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/564/0*jwY-6HI_rCHtoJwc.jpg" /></figure><h4>Take a breaker and breathe.</h4><p>Close your eyes, space out, take a walk, drink some water, talk and laugh with your teammates. Building tension during the duration of the hackathon will definitely result in lazy days the coming days after.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/563/0*VgtM_IN5tnv0nE8I.jpg" /></figure><h4>The final stretch is the most important.</h4><p>Although having a functional prototype is important, I would emphasize that presentation is the home run. Without a proper presentation of your project, it can be difficult for an audience with a short amount of time to fully understand the project. In our case, we filled out the necessary background information such as what inspired our project, what it was built with, if we came across any challenges. But along with these descriptions, we documented screenshots, recorded videos of use cases, and prepared a short elevator pitch as the deliverables / materials necessary. When you are so involved in the small details of building out the interface, it is easy to forget about the purpose of components. We think about how they function and lose sight of the how and why. It’s important at this final stage of the hackathon to reflect on the project in order to guide the judges through the reason for your application and the process of building it.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/564/0*36LFtxioIq7LpFgZ.jpg" /></figure><h4>Congratulate yourself.</h4><p>Regardless of the outcome of the hackathon winnings and awards, every single person should congratulate themselves for committing their time and efforts. Fortunately, our team won, but prior to finding out, we were all nervous and discussed our expectations. We saw other teams that had amazing projects as well and acknowledged the fact that we may not win. Even if we didn’t win, we concluded it was a good time and even acknowledged that we learned more about software development in this 36 hour than in our classes.</p><p>Hackathons are truly a great experience. If you have a chance to sign up and join one, don’t wait on it. You won’t regret it!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f6dc22c6efd6" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[A Quick Insight On How To Get Out Of Tutorial Hell]]></title>
            <link>https://medium.com/@vdo9/a-quick-insight-on-how-to-get-out-of-tutorial-hell-d829dc31b6fd?source=rss-7bccaac43c72------2</link>
            <guid isPermaLink="false">https://medium.com/p/d829dc31b6fd</guid>
            <category><![CDATA[learning-programming]]></category>
            <category><![CDATA[mobile-app-development]]></category>
            <category><![CDATA[coding]]></category>
            <category><![CDATA[learning-to-code]]></category>
            <category><![CDATA[app-development]]></category>
            <dc:creator><![CDATA[Vickie Do]]></dc:creator>
            <pubDate>Fri, 20 Jan 2023 10:33:59 GMT</pubDate>
            <atom:updated>2023-01-20T17:49:54.540Z</atom:updated>
            <content:encoded><![CDATA[<p>Often times, as a beginner in programming, it is common to go through an endless cycle of coding tutorials. Tutorial after another, we often give up on one video when we encounter an extremely difficult bug.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Lcms5Web8aEgYN0woByC0g.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*hL-K66CBXRUkvBrd1ek_sQ.png" /></figure><p>I have an anecdote to share with you that may give insight on how you can overcome these hurdles and optimize your time when watching tutorials.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/612/0*nl7ddX8UHSJpNkmd" /></figure><h3>Situation — Displaying An Image</h3><p>In my application, I wanted to upload and view an image in the profile section of my application. For my application, I used Expo, which is a framework used to build React Native applications. In order to implement this feature, I found a youtube tutorial that was:</p><ol><li>Up-to-date / current — since new code is always being written, packages are constantly needing to be updated.</li><li>Uploaded at a relatively early date — since we need current updated packages, it can be assumed that a more recent tutorial upload date correlates with an up-to-date version of packages used in the tutorial.</li></ol><p>For videos that are 2 years old, I found that many viewers would ask questions about their bugs even though so long has passed since the videos were posted. When viewers come across a bug from these older videos, they assume that ‘nothing works’ or ‘this tutorial sucks’ and the frustration can potentially build up. Rather than getting frustrated, there are many different alleyways to explore in resolving the issue!</p><h3>Task — Finding An Alternative</h3><p>Even though my tutorial video was up-to-date, I was one of those viewers that came across an unresolvable bug. Since there weren’t many tutorials for me to view regarding the library I wanted to use, I was stuck when I came across this bug. Everything seemed to work fine, except one component. How I found my bug:</p><ul><li>I wasn’t getting the results I imagined. I tested to see whether my function was working using the power of <strong><em>console.log(). </em></strong>When in doubt, console logging helps with providing sanity checks for yourself in regards to checking whether your functions are working.</li></ul><p>When you are looking at your code, it is important to be able to predict what the output of your code would look like or how you want it to run. In this way, you can choose the correct areas to insert those sanity checks. As for me, I used an Expo library called <strong>expo-image-picker</strong> which, from the tutorial, required accessing the image through a variable called ‘<strong>assets.uri’</strong>. I was almost done with the tutorial but came across an error. The squiggly line under this variable was an indicator that this variable name was nonexistent, therefore it did not correlate with the data needed to update the display picture for users’ profiles.</p><h3>Action — Executing The Changes You Want To See</h3><p>I noticed that I wasn’t getting the results I expected when using a print statement. From reading the message error in my terminal that read “<em>___ has been deprecated,</em>” this prompted me to review the documentation. It turned out that the field I was using became deprecated.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*jsILd9uMyJ-3d5RV.png" /><figcaption>Deprecation</figcaption></figure><p>Originally ‘<strong>assets.uri</strong>’ was supposed to represent a string with the hyperlink to an image. However, the new update noted thats assets could be accessed as an array. My first approach to finding a solution was to understand what was in assets. I decided I needed to view the contents of the array to see whether the image hyperlink was definitely there.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*AZy8VVLh-GuFYWj-.png" /></figure><p>To get creative, I ignored my code as a whole for a brief moment and started to test out scripts for manually parsing the <strong>assets</strong> array. The array contained many objects and displayed a clump of data in the terminal. It turned out the assets array included many objects with key/value pairs. It was difficult to dissect the objects as there were objects displayed as the value portion.</p><pre>// Here is a simplified and made up example <br>// Showing the complexity of object data<br><br>{<br>  “userID”:<br>     “1356xDhen65VCCmms”,<br>  “recentSearches”:<br>     [<br>     “kimbap”, <br>     “kimchi”, <br>     “jajangmyeon”, <br>     “bossam”<br>      ],<br>  “profileData”: {<br>      “imageURI”:<br>          “imgur.com/hfbsb4ks”,<br>      “profileDetails”:<br>          {<br>           “friends”:<br>             {<br>              “Joe”,<br>              “Sam”,<br>              “Eugene”<br>              },<br>           “caption”: “none”<br>          }<br>  }<br>}</pre><p>The winning line of code was to use “assets[0].key” as the hyperlink was actually not a value, but part of a key. By using the print statements in the console, I was able to play around with the data type and finally grab the correct hyperlink that was needed.</p><h3>Result — Overcoming My Tutorial Bug</h3><p>While investing in the process of problem solving, I realized I overcame my tutorial cycling. I started to become more conscious of package updates and ensuring versions are up to date. If there are discrepancies, this gives me motivation to read the documentation, while also giving me context on how I should approach the problem. I’ve developed a preference to read documentation while coding, instead of reading it beforehand.</p><p>This process ties back to the idea of how computer programming is essentially problem solving. There isn’t a tutorial that will teach you everything in a nutshell. Instead, in order to continually grow as a programmer, it is important to remember <strong>what were the problem solving techniques that we tried. Did they work? Did they not work? Can one problem be solved in a similar way? Can this problem solving technique be used as a template for another problem? Answering these questions adds onto our experiences.</strong> I understand why in the beginning, out of many tips for “learning programming,” the biggest one was to keep coding and challenge myself to build something. By building something, you naturally develop skills that build upon each other.</p><p>I hope this article helped! Please give me a clap if so! I’d also love to hear your insights or ways you’ve approach solving a bug. Thank you!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d829dc31b6fd" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Getting Rid Of Tab Overload]]></title>
            <link>https://medium.com/@vdo9/getting-rid-of-tab-overload-d9b78075befb?source=rss-7bccaac43c72------2</link>
            <guid isPermaLink="false">https://medium.com/p/d9b78075befb</guid>
            <category><![CDATA[tabs]]></category>
            <category><![CDATA[research]]></category>
            <category><![CDATA[google-chrome]]></category>
            <category><![CDATA[habits]]></category>
            <category><![CDATA[google-search]]></category>
            <dc:creator><![CDATA[Vickie Do]]></dc:creator>
            <pubDate>Tue, 01 Nov 2022 04:00:52 GMT</pubDate>
            <atom:updated>2022-11-01T04:00:52.180Z</atom:updated>
            <content:encoded><![CDATA[<p><em>This article is for the ones who have a ton of unused tabs and unvisited bookmarked pages. This has been an unhealthy habit and you no longer can bear it. Yes, you aren’t the only one.</em></p><blockquote>I have too many tabs.</blockquote><p>Back then, I used to wonder why my roommate always had so many tabs open. I was a north campus major (humanities) while she was a south campus major (STEM). Now that I am in STEM and studying Computer Science, I’ve transitioned to adapting this habit and it’s been a daily annoyance. A friend of mine pointed out my tabs and noticed that I started opening new windows to redirect my focus from the amount of tabs I opened. I did not notice, how funny.</p><p>Apparently many people do not want to close their tabs due to some emotional attachment towards the information from the website. They fear that they might need something from that site and want to keep it open incase they need to use it in the future or fear they won’t able to find it again. Interesting.</p><p>In attempt, this blog post is dedicated to my accountability on decreasing this bad habit and here are 3 steps I believe will help:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/202/0*SLpjTc5X22ZW22xo" /></figure><h4><strong>1. Take your cursor to the top right and just click the ‘X’</strong></h4><p>Yes, I know the pain. It hurts to close your hard efforts into finding these valuable pieces of knowledge and resources. If you relate, you’ve probably rarely click that big X on the right. Chances are if you haven’t used the information from the tab or you haven’t visited that website in the past 24–72 hours, you aren’t going to use the website. Don’t be in denial. If you haven’t touched that tab for a week and it’s still sitting there from over the weekend and you also said you would get to it, here is the reality check. The information is irrelevant and clicking that ‘X’ can not only help declutter your search, but also help you focus on what’s important right now.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/798/0*qaqQy2q5upqbsPlt.png" /></figure><h4><strong>2. Go to that one tab, skim over the material and summarize 1–3 key information in your head and trust your gut that you will retain this information</strong></h4><p>For me personally, I fear that I won’t remember what I’ve read or learned. Thus that fear ends up making me keep these ridiculous tabs of google searches and YouTube videos open. Every time I am using resources to learn something such as YouTube videos, I try to ask myself:</p><ul><li><strong>What was this about? (It helps because everything has a title)</strong></li><li><strong>What did I learn?</strong></li><li><strong>How has this helped me with what I want to do?</strong></li></ul><p>When I think about the answers to these questions, then I ask myself whether I still need this resource anymore since I’ve technically utilized it in my ‘understanding’. Yes, perhaps you did not physically use the information, but actually, you should give yourself credit for even being exposed to this information. Lastly, after answering these questions and giving yourself a final closure with this tab, you can finally make it your X (bad pun intended).</p><p>I know this task isn’t meant to be so deep, but I believe trusting your gut that you understood and took something away from what you just read or viewed will go a longs way. Imagine putting this idea into a little knowledge box and then locking and throwing away the key. You can never forget the knowledge and if you really need to go see it again (the website), you can always go find the key (google search). If anything, when you research it again, you might find a better answer!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*DTMLUjKtAz8NFZMV.png" /></figure><h4><strong>3. Ask yourself, do I need this now? And is it important or relevant at this moment in time?</strong></h4><p>Think about today or the week, how relevant are your tabs in this moment in terms of the topics you need to cover today / this week? If the resource you have cluttering your browser is not pertaining to the assignment you need to work on that is due tomorrow or the task you must complete by the end of the week, then it must go.</p><p>Honestly, this suggestion is hard to follow for myself. I have a problem with detaching myself from my tabs. I think, “Oh this posting looks interesting, I’ll check it out some more later” or “Hmm, this YouTube video is relevant.. I think”. These two phrases illicit feelings of wanting to do something in the future and also feeling uncertain.</p><p>I think if you want to get something done now, you need to do it in that moment, otherwise your productivity is taken away by all these ideas.</p><p>If the answer to this question is that it is important or relevant, then grouping together tabs based on topics will help to stay organized. I really love the feature that google chrome has where you can group together tabs, label them, and choose color themes for your grouped tabs. That way, when it is time to clear your tabs, all that needs to be done is to just ‘X’ out of the grouped tabs.</p><p>My last commentary on this unwanted habit is the thought that ‘how many times do we come back a week later to clear tabs and we find the tabs we opened as not useful?’</p><p>This happens 90% of the time for me where I skim through a window of 10 tabs and think to myself, “I’ve already settled this, *deletes*” But during the same week I was stressing about how many tabs I had open. What a cycle, but I’m working on it!</p><p>I am curious, what are your tab habits? Do you have any insights, advice, or tips for what I call “tabs management”? Please comment and let me know! ;)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*H8_RexAHnjrFX4aW.jpg" /><figcaption>Also, don’t forget what else happens when you have so many tabs…</figcaption></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d9b78075befb" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Designing My First Application Using Competitive Analysis and Learning Figma]]></title>
            <link>https://medium.com/@vdo9/designing-my-first-application-01-competitive-analysis-and-learning-figma-cf6dc326dc01?source=rss-7bccaac43c72------2</link>
            <guid isPermaLink="false">https://medium.com/p/cf6dc326dc01</guid>
            <category><![CDATA[ux]]></category>
            <category><![CDATA[designing-a-website]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[ui]]></category>
            <category><![CDATA[first-app]]></category>
            <dc:creator><![CDATA[Vickie Do]]></dc:creator>
            <pubDate>Sat, 11 Dec 2021 06:37:09 GMT</pubDate>
            <atom:updated>2023-02-12T17:31:33.507Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*JnKpYnhS_foBWqzg.jpg" /></figure><h3><strong>Competitive Analysis: What are the users feedback? Let’s check the data…</strong></h3><p>In my previous blog post, I mentioned towards the end that I would use the Whole Foods application to make an analysis and decide what to include in my application. My idea was to do an analysis of the mobile application reviews by scraping the reviews on the App Store website. I managed to reference the information from this LinkedIn post to scrape my data:</p><p><a href="https://www.linkedin.com/pulse/how-scrape-app-store-reviews-4-simple-steps-using-python-kundi/?trk=public_profile_article_view">How to scrape App Store reviews in 4 simple steps using Python</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*4LAQHzDRNwtTaT4O.png" /><figcaption>Using Jupyter Notebook to perform my data scraping</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*o3VQTMceXpO2nRTZ.png" /><figcaption>Attempting to use excel for analysis</figcaption></figure><p>After exporting the information into a CSV file, I imported the file into excel, but to my dismay, it seemed less productive to use excel when there was another option using VSCode. In VSCode, I ran some filters to test whether I could find the data I was seeking for. Originally, I wanted to find whether there were<em> repeated issues </em>users had with the app. I decided to write Python code that will analyze the data and seek for the phrase <strong>“be able to”</strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*IUIazGxqd_SOXKl9.png" /></figure><p>If users had issues with the application, usually they would say something along the lines of, “the app is okay, just wish I was <strong>able to</strong> …”. In the results, there was one specific detail that I would like to include in my application which is the option to “add a comment to items”. I think this is useful incase customers want to use the app to create a grocery list and take note of the quantity of items they intend to buy. I was surprised the Whole Foods application did not have this feature and this review was posted two years ago. It has me wondering what methods do companies use to brainstorm new features?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/750/0*qbtvxIGe4KFpGNSf.jpg" /></figure><h3><strong>Learning Figma: Am I doing this right?</strong></h3><p>Before creating the design of my application, I went and informally interviewed my very own mother on her grocery shopping process. I realized this process is very important and questions should be thought out in advanced in order to get a more fulfilling answer that could inspire a design idea. This is my first draft, and I must say it is better than nothing.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/821/1*9DJA09eFvHquOxKcHLNLSQ.png" /><figcaption>My attempt at creating a “low fidelity” prototype, as you can see, this should be called a low-low fi prototype . . .</figcaption></figure><p>I took my low-low fi prototype and ventured into the world of Figma. It was quite easy to grasp functionality of the tools since everything was straight forward. In the end, I managed to create a much more refined prototype. Some feedback for myself is 1) get used to creating container templates 2) utilize the margin pixel count to ensure everything is technically spaced evenly (the eyes can fool you) 3) don’t be lazy to learn and practice shortcuts.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/497/1*vsKPCn4xPRRkwIrA4rpl0w.png" /><figcaption>refined prototype!</figcaption></figure><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.figma.com%2Fembed%3Fembed_host%3Doembed%26url%3Dhttps%3A%2F%2Fwww.figma.com%2Fproto%2Fb2trfwBVbuguPbAl18SpkW%2Fmarket%3Fscaling%3Dscale-down%26page-id%3D0%253A1%26starting-point-node-id%3D1%253A3%26node-id%3D46%253A33%26show-proto-sidebar%3D1&amp;display_name=Figma&amp;url=https%3A%2F%2Fwww.figma.com%2Fproto%2Fb2trfwBVbuguPbAl18SpkW%2Fmarket%3Fscaling%3Dscale-down%26page-id%3D0%253A1%26starting-point-node-id%3D1%253A3%26node-id%3D46%253A33%26show-proto-sidebar%3D1&amp;image=https%3A%2F%2Fapi-cdn.figma.com%2Fresize%2Fthumbnails%2Fbf1b8a5f-c269-4c22-bc3c-aa4c54e57923%3Fheight%3D450%26bucket%3Dfigma-alpha&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=figma" width="800" height="450" frameborder="0" scrolling="no"><a href="https://medium.com/media/15d5f36e62a8efb8bee7a7f760790c46/href">https://medium.com/media/15d5f36e62a8efb8bee7a7f760790c46/href</a></iframe><p>Here is the live prototype. Feel free to click the available dates and the sales or buy-more deals button. I definitely have more features I am working on, but this is what I have so far.</p><p>Since I’ve been generally thinking about the colors and layout of the items, I haven’t been thinking about the usage of the application. This is bad. I like how the items are laid out without descriptions (pricing, quantity, etc.). But I wonder if this is important for the customer to see right away. I will most likely try to do a survey on this. As of now, I am trying to mimic this design using the Angular framework.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/543/1*Ol_VjE6L1xsRXx0B7fGbXQ.png" /><figcaption>Web version</figcaption></figure><p>Since Angular allows me to create a web-app hybrid application, I am first testing out my html/CSS/JavaScript skills by developing the web UI. The journey to creating this application is taking some time since I had finals this week, but I hope to have more updates in the near future this month.</p><p>Wish me luck! :)</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=cf6dc326dc01" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How I Researched To Design My First Application]]></title>
            <link>https://medium.com/@vdo9/designing-my-first-application-00-intro-5800641412af?source=rss-7bccaac43c72------2</link>
            <guid isPermaLink="false">https://medium.com/p/5800641412af</guid>
            <category><![CDATA[ideas]]></category>
            <category><![CDATA[app-development]]></category>
            <category><![CDATA[ux]]></category>
            <dc:creator><![CDATA[Vickie Do]]></dc:creator>
            <pubDate>Mon, 18 Oct 2021 07:00:16 GMT</pubDate>
            <atom:updated>2023-02-12T17:30:30.643Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/332/1*xJCvVydY-MTvy1VhhKlV8A.gif" /><figcaption>“Being mindful to <strong>think less and do more</strong>…I can do this! I can do this!”</figcaption></figure><p>If you’re the same type of person who constantly thinks about different ideas for an app, but just don’t know where to start, I hope following me along creating my first app idea will inspire you to start on your own.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*dYI0gHzpaNzIbvrcWtohZg.jpeg" /><figcaption>This is a ‘Green Tea Flavored Frozen Wafer Sandwich’, commonly sold in Japanese supermarkets. My favorite part of this ice cream is the discrete layer of chocolate.</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*tBddy_qBO1CX5NXM_Q6u2Q.jpeg" /><figcaption>Now you may be wondering why I have pictures of ice cream..</figcaption></figure><h3>Backstory:</h3><p>When I got a chance to work at a Japanese supermarket as a clerk, I took note of a few interesting observations.</p><ul><li>Either I don’t go to the grocery store as much or I’ve noticed that Japanese supermarkets <strong><em>always</em></strong> have different items on sale marketed with big red and white signs. It seemed like the whole store was tagged and I could barely see the actual items.</li><li>I would say 80% of the customers that came in were regulars. It was quite interesting to see what people bought and do some real-time data collection and analysis.</li><li>While working mainly weekends, a large amount of parties were obsessed with 2 things: <em>Tadashizen Nomu yogurt</em> and<em> Yoshinoya sauce</em>. In which customers bought in bulk (12–20 pieces). This prompted me to try the yogurt drink but I was not a fan, it was quite too fermented for my taste.</li><li>However, based off my own customer purchase analysis, I became a fan of the green tea ice cream sandwich. The original price is around $2, but on sale, you save approximately $0.70, which in my opinion is great. $1 for that much ice cream is lovely.</li></ul><h3><strong>App Idea:</strong></h3><p>Now, I love the ice cream sandwiches, but only when they’re on sale. In order to check whether they are on sale, I went onto the markets website and checked for a weekly email subscription on the sale items. When I got the email, the presentation of the weekly sales were in an embedded newsletter format:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/1*s-HWhkYxf1UX-FMkLoa7yw.jpeg" /><figcaption>Weekly Ad for Sale Items</figcaption></figure><p>When I saw this, I was pretty happy to see that my ice cream sandwiches are on sale, but an idea popped in my head. The style of this newsletter is very plain and cluttered with information and images. Since it is filled with a lot of important information, I thought it would be fun to <strong>transform this newsletter into an application</strong>.</p><p>Since I am still new to creating something, I can’t guarantee what I will include, but just as a brainstorm, I would like this app to at least have the following features:</p><ul><li>Sales page to show all the items on sale organized according to the newsletter</li><li>Grocery list to add future shopping items</li></ul><p>In order to generate ideas for this app, I did research on Whole Food’s grocery application in the app store. In my next blog post, I want to share what I did to analyze the application and how I will use the information inferred.</p><blockquote>Thank you for taking the time to read my blog posts! <br>I appreciate the feedback and input.</blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=5800641412af" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How to Succeed in First CS Internship with No Experience: What I Learned About the ‘Software…]]></title>
            <link>https://medium.com/@vdo9/what-i-learned-about-the-software-development-life-cycle-during-my-internship-7cf118f130fd?source=rss-7bccaac43c72------2</link>
            <guid isPermaLink="false">https://medium.com/p/7cf118f130fd</guid>
            <dc:creator><![CDATA[Vickie Do]]></dc:creator>
            <pubDate>Sat, 09 Oct 2021 23:00:02 GMT</pubDate>
            <atom:updated>2022-07-28T00:51:20.908Z</atom:updated>
            <content:encoded><![CDATA[<h3>How to Succeed in First CS Internship with No Experience: What I Learned About the ‘Software Development Life Cycle’</h3><p>I recently came across a video about the ‘Software Development Life Cycle’ and wanted to write a reflection piece on my experiences during my internship.</p><p>In my internship, I had the opportunity to work on a project centered around creating an AI-inspired application to assist First Responders in driver safety and hazardous material identification and safety precautions.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2Fi-QyW8D3ei0%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Di-QyW8D3ei0&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2Fi-QyW8D3ei0%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/9e5b50fd38e27d71e05ee4152cf757fc/href">https://medium.com/media/9e5b50fd38e27d71e05ee4152cf757fc/href</a></iframe><p>Referencing to this video, there are 7 Stages of the ‘SDLC’ or also known as, the ‘Software Development Life Cycle’:</p><ol><li>Planning</li><li>Requirement Analysis</li><li>Design</li><li>Implementation/ Coding</li><li>Testing</li><li>Deployment</li><li>Maintenance</li></ol><p><strong>Planning and Requirement Analysis:<br></strong>Before coming onboard as an intern, the project was in its’ First Phase and Stage 3 of the SDLC. After communicating with my mentor and engineering team lead, I learned the planning and requirement analysis was already conducted over a 3-month time period through meetings with stakeholders, field specialists, and target users. The end goal of the First Phase was a MVP (Minimal Viable Product). In definition, the goal of a MVP is to create a product with basic features to present to consumers in order for them to see the value of the product and increase interest in further development of the project.</p><p><em>What I learned</em>: <br>In a software development project, documentation and organization is very important. I asked a lot of questions about the direction of the project. However, I realized instead of asking redundant or unnecessary questions, I could have read up on the documentation to understand the overall objective or goals.</p><p><strong>Design </strong><br>Our team did not have a designated UX or UI designer. Of around 20 people, the project team members consisted of a project manager, task manager, 2 lead engineers, researchers from universities, contract engineers, and interns. The outcome of the design of our app was a simple iOS and Android app built with Ionic Components. We did not thoroughly plan any color schemes or create wireframes / prototypes before implementation.</p><p>The chatbot for our application would be used to help First Responders access the Emergency Response Guidebook (ERG). The ERG is filled with different guides for hazardous materials and within each guide, there are listed categories for potential hazards, public safety concerns, and emergency response guidance. We used Google’s Developer tool, ‘Dialogflow’, which uses machine learning to generate natural conversations between humans and computer. I documented my progress on my tasks, created a journal of what worked and didn’t work for me, and started a tutorial document incase another developer or intern would have to learn the tool in the future.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/1*1O3cuApHIm6_mswv39s4-A.jpeg" /></figure><p>After a few ups and downs understanding the technicalities on how to build a conversation for the chatbot in the console, I ran into an issue. The method used to build the chatbot in Dialogflow was not scalable. Through research on stack overflow, I found that a database with the guide information and a webhook would be needed to allow our chatbot to assist with any guide queries. In the end, the chatbot was not needed to be scaled in the First Phase of the project as we only had a determined set of queries we had to demonstrate for our sponsors.</p><p>While creating a few query prototypes in Dialogflow, I learned in order to adhere to the target users (First Responders), I needed to understand in detail the processes used to access the guidebook in order to replicate the process in our app and understand gaps for improvement of processes. Therefore, I went to my local police and fire department to gather interviews. I demonstrated a brief conversation I created using Google Assistant with a Dialogflow conversation imported. I created this demo with research from law enforcement training published online. The information and feedback from the law enforcement and firefighters helped tremendously in understanding the target users and how our application could help them. I used the information gathered to restructure my conversation flow and received great feedback from First Responders.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/480/1*7ted0yerOOiMMp9jkLogdA.jpeg" /></figure><p><em>What I learned</em>: <br>The method I used to approach the design of the chatbot was <strong><em>completely messy</em></strong>. If I had the chance to redo this process, I would have read up on the documentation on the Dialogflow first before trying to test it and create my conversation. Secondly, I should have communicated with my mentors thoroughly on what the expected outcome is for the chatbot in order to spend less time configuring a solution that was not needed. Lastly, the interviews with the local fire department and police department should have taken place before learning the developer tools. If I conducted my research beforehand, I could have generated a better demonstration to get feedback on and less time would be used on the feedback and feature adjustment process.</p><p><strong>Implementation / Coding<br></strong>My Dialogflow conversation was set for integration. To integrate the chatbot, I learned the Ionic / Angular Framework. This was the most challenging part of my internship. Another intern on the team advised me to watch a set of Udemy videos on the Ionic and Angular framework to familiarize myself with the structure and code of our application. During this process, I learned how to create my own working branch on Github using Fork, which is a desktop application used to stage and push commits, pull and push code, and is a great tool for visualizing git and workflow management between other members of the team.</p><p>In this process, I made many mistakes. I filled my .json file with dependencies that I did not use. I wrote the logic of my functionality in the wrong service. There was a lot of debugging in VS code and Android studio. I’ve been told how computer science isn’t something you master in school, it is mastered by doing. I got first-hand experience with this and completely understand as I had to delete my branch and redo the same process over again from cloning the repository, creating a new boilerplate, and importing the necessary libraries. In the end, through a lot of hard work, I was able to integrate my chatbot and learned new skills along the way: the Ionic / Angular framework, Typescript, Html/CSS, and debugging methods.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/1*6uhOTDJZo-hoW8db4D9WGA.jpeg" /></figure><p><em>What I learned</em>:<br>Google is my best friend. Whatever issue I had with my code, I was able to google the solution. Some solutions took longer to find, but I learned that as I understood more, I was able to find my solutions faster or at least ask the right questions from my mentors to help me find the solution. I also learned that learning the tools like the language syntax and the framework takes as equal or even more time than writing the actual program. I felt a lot of pressure to show a physical update during each progress meeting, but I learned that progress in knowledge is more helpful in the long run than attempting a complete work.</p><p><strong>Testing<br></strong>Our project was nearing the last two months of the First Phase and we were scheduled to have a sponsor meeting in the middle of our testing stage. Our team did not have a group of testers, therefore we each had to partake in the testing of our application and system and give feedback to the team members and their respective parts. Our testing phase had been too short. Many bugs were found and new questions arose regarding the standards of our test cases. Some questions were: ‘What is considered a success and a failure?’, ‘Is the adjustment of this functionality required?’, ‘How will we make sure we properly demo our applications features and its’ appeal?’.</p><p>Since I was working closely with First Responders and gathering their feedback on the chatbot, I also asked them for feedback on other aspects of our project. For example, along with testing the app, I was involved in testing the vehicle simulations using CARLA (an open-source simulator for autonomous driving research). I created demonstration and tutorial videos of the application and driving simulations to get feedback from law enforcement and firefighters. They were very interested in the system and curious how it would be applied in a real-life scenario versus a simulation. In order to answer, more data collection and samples of use cases would be needed to truly test the capabilities of a real-life application.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/1*Pb4cTNxkW4CrZndKYSpqoA.jpeg" /></figure><p><em>What I learned</em>:<br>Testing is the most crucial aspect of the software development life cycle. I asked my mentor about his opinion on testing. He said usually the testing phase of a software should be equal or even lengthier in time compared to development part. I noticed we did not have enough time to plan in detail our testing method and therefore the testing was not consistent among each other. Everyone had different impressions of what they were searching. If we started the testing phase with a concrete plan of what to search for, we may have saved time. The testing phase panned out nicely eventually due to organizing the bugs as tickets on GitHub. During every meeting, we would go through our tickets and clear them and that helped us keep track and speed up the process quickly.</p><p><strong>Deployment / Maintenance<br></strong>During the last month, after the testing phase, we made changes to our application and code and finalized our product. In this phase, I volunteered to create a tutorial for our application and simulator as well as demonstration videos for all 12 scenarios for our sponsors to view. Although it was a lot of work, I really enjoyed this part of the project. I got to partake in creating the deliverables that would be presented in the final meeting with the sponsors. It was rewarding to be able to put together and highlight everyone’s hard work and see it be presented during the final meeting. The response from the sponsor were very positive.</p><p><em>What I learned:</em><br>My internship ended right before the end of the First Phase and the final deployment process was handled by the lead engineers and task manager. My internship had already ended before the last meeting with the sponsors, but I volunteered to work on creating deliverables as I had experience with creating videos before. In this process, I learned that I am very results-oriented and that is what drives me in my work.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/303/1*7sECWDwBhJ1h9CAWU2z9Pw.png" /></figure><p><strong>Conclusion:</strong><br>Overall, I would conclude that I learned a lot more than I thought I did. My internship was around 7–8 months and it was one of the most challenging, yet best experiences I’ve ever had. I am glad I got to work with a small team. I did not miss a single Monday 8:00 AM meeting and I applaud myself for this. Through these meetings, I got to listen in on what all the other engineers and interns were doing. I also received a great amount of mentorship from my team on technical skills and career opportunities. In the beginning of my internship, I asked a lot about the other teams work and what my team lead and other interns were working on, but I later dived deep in my own tasks, learning the tools and technology. If I could redo the internship, I would have communicated more thoroughly with my mentors about expectations in order to manage my time more evenly to include time for asking questions and learning.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7cf118f130fd" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>