Takeaway of 8 months Internship as Software Engineer
#🚀 Introduction
Wrapping up 8 months of internship at start up software engineering company as a Software Engineer has been an enriching journey. Here's a summary of key takeaways:
As I mentioned above in my LinkedIn post, there are many changes in technology and updates in the field of programming in general, not just in the field of AI, which is still a new field. Top-notch engineers, after all. I also think that one thing that managers try to do every day is to update their skills and be able to adapt to changes, so here are some tools that I utilize on a daily basis to keep up with the trends.
#🧠 Mental Agility
Communicating effectively means separating facts from feelings. Clarity in articulating tasks and research ensures smoother collaboration and understanding among team members.
#💻 Embrace Innovation
Staying abreast of the latest tech trends, particularly in AI, is paramount. Engaging with coding as more than just a job fosters a mindset of continuous learning and creativity.
Technical sites are a great place for engineers and programmers to find out what has changed and what new technologies are available, from personal to corporate blogs. While I understand the need for caution, as some of the information may be incorrect, I recommend that you check out the personal blogs, as they are often quicker and more comprehensive.
As a bilingual engineer, my intuition tells me that Japanese-language literature is written in a way that is easier to understand, with more personal output, diagrams, and actual code used than in the U.S. or other countries.
Qiita : sharing engineering knowledge. You can easily record and publish your programming tips, know-how, and notes.
Zenn : Community for engineering to share ideas and skills.
I also have the impression that there is not much in the English literature that is written by individuals with correct and personal information, and that there are blogs and the like that you can only view if you pay a fee.
LinkedIn : always nice place for formal skill share space
Twitter : always nice place for informal skill share space
#🔑 Simplicity Wins
The principle of KISS (Keep It Simple, Stupid) reigns supreme. Simplifying tasks and breaking them into manageable sub-modules enhances productivity and clarity in execution.
I feel that many college students and interns, when faced with a large task, struggle to break it down and determine where to begin, and I was one of them. When approaching a task, I always consider the bigger picture and the background knowledge required. I'd like to share some tools that I typically use.
Goblin Tools is that one such tool allows me to break down tasks into smaller components. While I rely on LLM for accuracy, I find it invaluable for task subdivision and prioritization.
For instance, the other day, I had to measure the execution time of a function. However, the function was implemented using AWS ECR, so I needed to confirm that this was indeed the case. As I delved deeper into this technology, I realized the importance of understanding Docker, and even further, I needed to grasp the function's decorator. This experience highlighted the effectiveness of breaking down tasks into manageable steps.
#🎯 Purposeful Coding
Having a clear rationale behind coding approaches is essential. Confidence in one's abilities breeds irreplaceability, contributing to a robust and purpose-driven coding ethos.
As for meaningful coding, consider the following example. You are an engineer and must create a model for a website. This website will receive data from users and return a json of that data. You will create this model in Python streamlit.
Ex I came up with the following I would take input from the user, access the database based on that input, and generate an error if the input information is missing.
However, there are many drawbacks to the above idea. The first major one is that it gives the user time to think. What I mean is that the user needs to remember the information of the data in detail, which has the drawback that typing errors may occur and the user cannot check the information of data that he/she does not know. By providing the user with the option of knowing what data is available, the code will be more meaningful.
#⏰ Efficiency Matters
Time management is key. Providing estimated task durations and visualizing final outcomes promptly streamlines workflow and fosters alignment across teams, particularly in frontend development.
Reflecting on these lessons, I'm grateful for the growth opportunities and experiences during my tenure at start up software engineering company. Excited to carry these insights forward as I embark on new endeavors in the dynamic world of software engineering.