Saturday, May 28, 2022

Week 2. Post 3.

 Today was a day off but I still had to continue working on the random number generator program in SpringBoot. What I realized was my mistake this week is that I let my perfectionist mindset rule the way I am completing my internship. What I mean by that is that in the world of software engineering, for me in most situations it is hard to focus on making sure that I’m not «overdoing» my task. For example, if I need to write an algorithm that would make the controller either return just a number to a browser or an HTML page that has a random number in it - I often spend unnecessary time trying to perfect the unnecessary things such as styling that HTML page, etc; however, I learned that in business — time is money; so I will be fine with less "beautifully looking" web page but still very valuable algorithm working which my manager or mentor needs now. Time matters. So I have to make sure to avoid this toxic perfectionist approach when tackling tasks like these — first, I have to make sure I have a program that executes what it needs to do at the very bare minimum and communicate with the relevant end-user about the outcomes. Only then, if I have the bandwidth, I can focus on perfecting the other parts including styling the code, the documentation, etc. Of course, I still have to make sure that my code does its minimum responsibility well — that is why I conduct unit tests. However, this week I learned to avoid spending weeks and weeks on «perfecting» a code that already works and does its minimum responsibilities. Rather, I should spend that time on other more valuable assignments.

Friday, May 27, 2022

Week 2. Post 2.

 Today I was asked by my supervisor to build a controller either an @RestController or an @Controllerthat that will return a randomly generated number which returned should be different for every request to the server. I have never worked with controllers especially integrating them with the help of SpringBoot using Java. I was assigned this task 2 days ago but I kept procrastinating with the work. All this time I kept thinking about the task but would try to do all other unnecessary smaller tasks not related to this project instead of this big task. I knew that it would take me a long process to get it done to complete that program. 

I realized that I tend to procrastinate with the things that I do not feel comfortable solving. I am letting the difficulty of the problem prevent me from thinking about the solution. The moment I start thinking about the assignment, I freak out because I simply do not know where to start and also feel insecure asking "dumb" questions. Thus, I decided that if I feel comfortable with completing smaller tasks - let me break that bigger task into small ones. I decided to look at that assignment as not something big and unachievable, but as something I can break into smaller chunks of sub-problems. First, I needed to create watch the tutorial about Springboot; secondly, I had to look into how to create methods in Java; thirdly, I had to learn about class wrappers and creating objects of the class for randomizing. Looking at the assignment through the lenses of smaller sub-problems helped me to complete the program. 

Thursday, May 26, 2022

Week 2. Blog Post 1.

 


For the last three days, I have been working on trying to set up the basic environment for the harvesting software that we will be utilizing. Getting yourself familiarized with the software you have never not only used but never even heard of can make you feel quickly intimidated. First, I was asked to install such software as Docker, IntelliJ, OpenJDK, Git, and others. I have never worked with most of them and I kept getting server problems when trying to run my basic SpringBoot projects. I honestly wanted to give up at some point when I got stuck on just the setting the environment part for hours and hours. This situation made me feel "How do you want to be a software developer when you cannot get done basic things with the installation?". I do not think I would have felt that way if I at least got stuck on the bigger problem with the code, but not the installation part.


I felt frustrated and even after a lot of attempts to find error solutions on the internet, I was getting solutions that did not work. It made me feel like the time just got stuck, I was afraid to talk about my results as I have not moved on at all. To tackle this feeling of frustration and stuckness, I decided that I have to approach these obstacles differently. If solutions on the internet did not work and you have tried your best to approach the problem - it is time to seek help from a mentor or co-worker about the issue. I did that and I could fix my problem in 10 minutes. I realized that it is good to try to tackle the error by yourself and helped you learn a lot of things. However, I have realized that I should not overspend time on something just for the seek of "getting it done by MYSELF". I have limited time and there are many more other much more meaningful tasks waiting for me and I cannot spend hours and hours trying to solve a small issue that can be solved in a few minutes if you seek help. I realized that sometimes you have to put off your ego and the mindset of "Getting done by MYSELF" for better productivity on the project. 

Saturday, May 21, 2022

Week 1. Post 2.

 Today in the meeting, we worked on understanding Scrum and Scrum Development principles. Understanding the Scrum framework can get tricky because it forces me to get used to an entirely new structure of teamwork that I am not used to. There was no such thing as pair-programming, answering questions together in Google Docs like I used to do during teamwork assignments, and many other things. No longer could I split the work between my teammate and myself as "You work on the adding function, and I will work on the main function." The scrum team is self-organizing in that there is no overall team leader who decides which person will do which task or how a problem will be solved. It took me a lot of time to understand how this worked. It feels that you are now more independent about how you approach your tasks in the team, and nobody is controlling you. If I could do the teamwork assignments at school, I could get used to the Scrum framework. However, the question is - how do I make it happen?  

To make that happen, I realized I should spend more time trying to research the Scrum framework. I have learned that when I get introduced to something new to me, I get overwhelmed and start complaining about it instead of spending this time trying to tackle my comfort zone. So, I decided to read more about Scrum and even asked my mentor for some books. I skimmed through the book and realized it still feels overwhelming. I started thinking of how can I get more real-life insights and decided to read other people's feedback online about how they handle the Scrum framework setting at the workplace. After doing it, I started feeling much less overwhelmed, and I was surprised how my mindset changed as I started learning more and more about Scrum. I have realized that the more I know about the new topic - the more I feel comfortable, and the less I freak out. But most importantly, I have realized that what matters to me more is getting feedback from real people, and only in this way do I get a better understanding of things, and they start to make more sense to me. That is the strategy that I used to understand the Scrum framework better. 


Wednesday, May 18, 2022

Week 1. Post 1. Early in the internship

The internship officially started on May 15, 2022. The first week will be virtual, and before starting it, I had very mixed feelings about what it would be like. On the very first day, we had an orientation for the interns where I had a chance to be introduced to the organization, other interns, general rules/policies, and most importantly, my project team. My reactions during the first day were all positive - I could not imagine that having orientation over zoom could be so much fun. I never felt boring even once during the whole day as everything was very well-structured and interactive. That gave me an excellent impression of the organization and staff and how organized they keep their events. Through the games during the ice breakers, I have learned a lot about other interns and myself. I realized how adaptive, flexible, and friendly I can be as I have been playing some games that I have never played before, making me a more open-up person. It was fascinating to meet other interns and learn about their backgrounds; I think I am the youngest intern there, which made me feel proud of myself and yet a little bit intimidating. 

By the end of the orientation, I was finally introduced to my mentors, co-mentors, and other interns I will be working with within our project. Our mentor is a fantastic person who gave me an impression of a very well-thought, kind, supportive, and intelligent person. He was very supportive and reflective and talked in detail about our project. I am glad I did not feel overwhelmed with the amount of information received about our project, yet it was challenging enough, and I like it. I met my only co-worker, who is a graduate student from another institution, and I think we have established good relationships, which will hopefully grow into effective teamwork during the summer. 

Friday, May 13, 2022

 Hello, welcome to my Blog about my Software Engineering Internship at NCARđź’–

Reflection Summary.

 July 30th marks the last day of my internship. It has been a fantastic experience and surpassed all my expectations, making me sad to see i...