In-Depth Post #2

Since my first post on In-Depth, I got to know my mentor much better and we have met twice (online). Together, we worked on my plan and made some important changes to it. I also made some good progresss on my calculator in the past few weeks.

Background of my mentor

Here’s a more detailed description of my mentor.

For my In-Depth project, I am working with Steven Zhang. He works on the “tools” part of games at Electronic Arts, and has lots of experience with how games work in general. He doesn’t work with Java very much (which I will be using for my project), so I will learn the specific syntaxes of Java myself (from other resources). He will teach me tips and lessons that are the same across different coding languages.

Changes to my plan

In our first meeting, my mentor suggested that I drop one or two of the projects from my plan, and try to go deeper into the other projects. For example, I could try to create an AI opponent for the chess game, or I could make a graphing calculator instead of a normal one. I really like this idea, and I think it make my In-Depth project much more fun and interesting!

I haven’t really decided what to do yet; I will decide later depending on how long it takes to finish the basic calculator application.

Progress update for my calculator app

In our first and second meetings, my mentor gave me some advice on my calculator:

  • For a basic calculator, it is not necessary to use data structures; they will only complicate the code.
  • Try to write clean code. This is especially important when working with other people, as they will be able to better understand the code.

Based on this advice, I changed my approach to making the calculator, so there might be some delay. But, I am still confident I will be able to get it done according to schedule.

How to have a beautiful mind

During my second meeting with my mentor, I tried to apply the principles from a book called “How to have a beautiful mind”:

  1. How to agree

    Here’s an example of me agreeing with my mentor. First, I thought of a circumstance where his suggestion would make sense – coding with other people. Then, I thought about where my mentor was coming from – I tried to understand what it would be like for a person who was working with an unorganized teammate. From this, I came to the conclusion that it would be really hard for anyone to understand how my calculator works. Lastly, I found a point to help me agree with my mentor.

  2. How to disagree

    Here’s an example of me disagreeing with my mentor. We were working on setting up GitHub so he could better help me with my project(s). We were selecting options for a download, and it seemed at least one option from each drop down needed to be picked. My mentor suggested we just uncheck all the boxes so we could move on, but I wanted to be able to have a gitignore file to be able to commit only certain files to GitHub. I noticed that if I checked only the gitignore box and ignored the license box, I would be able to continue with the download. I asked my mentor if we could try, and he told me we should look for a “Java” option in the drop down. I quickly found it, and I was able to continue with the download.

  3. How to differ

    Here’s an example of me being different from my mentor. We were trying to solve a problem with concatenating a decimal digit to another number. My mentor showed me a possible idea of how we could make the algorithm work, but I had another possible solution in mind. I thought it was better than his solution because it was more concise, and to me it seemed more interesting because it involved string methods. So, I waited for him to finish with his solution, and then I showed him my solution. Later on, after some explaining, we ended up agreeing that it would be very hard to get my solution to work because of complications with floating-point numbers. So, we used his solution in the end.

Update on my learning

In the past couple of weeks, I learned about many new data structures:

  • ArrayLists
  • Stacks
  • Queues (linear implementation)
  • LinkedLists

Thank you for reading! Keep an eye out for new blogs posts later, as normally I will be posting every two weeks.

Leave a Reply

Your email address will not be published. Required fields are marked *