Sprint – Retrospective – 6

this last sprint. we the team covered a lot on the project. Proceeding from the last sprint that we were figuring how to integrate all other teams project to make a whole application, we had some issues. things were not going as planned. we were able to make some of the stuff work but some were not working appropriately and even the testing was kind of not working rightly also. with time pass by, we thought of upgrading our previous project since we were not able to complete the integration of all the sup projects of other teams.
Our previous project was the search bar. which was very easy to do. Because of that we offered to take a bigger problem to solve which is the integration of sub projects of other teams. I specifically handled the search bar and let other handle how to make the integration work.
As I said we were able to integrate some of the other teams sub projects. So we were able to get a web page where the search bar page can be found. So from there I tried to see if I can add more features to it. But seem to have some little issues. When I add a tag or a line of code. all the things on the web page disappear. Not all the tag but when they do not disappear, they do not function properly. But with that, we the team figured it out. We notice we needed to download or install some materials for the tag or line of code to work. Some line of code needed to be added to the module.ts before some of the code can work. while making sure the search area is being upgraded. The rest of the team members figured how to make the integration work perfectly.

Now that everything is working perfectly, we are dealing with all our final project will be handled in the right proportion. This has been fun, working with the team has given me a little comfy, preparing me to the real work

From the blog CS@worcester – Site Title by Derek Odame and used with permission of the author. All other rights reserved by the author.

Practice, Practice, Practice

Hello dear readers. Welcome to my last blog post about the Apprenticeship Patterns. This is the 10th Pattern that I really found interesting and wanted to share with you all.

You are graduating, you probably have a job offer (or a few) in the table, you are ready to start this whole new journey and you think you have a good background to create a successful career. YES you do and Congratulations, but it doesn’t end here. You have worked hard to be here but you still got a lot of work to do.

After you Find your Mentor you will see that the Mentor will be giving you different exercises for you to work on based on your skills and weakness and you will see that every exercise will teach you something better or perfect your skills. When you start working in the company, you will face challenges in every project but don’t stop your exercising outside of work. I feel like in companies you apply a very specific knowledge and you would want to be on top of the new stuff that come out if you want to have a good career.

I really like the title of this pattern ” Practice, Practice, Practice”. I used to have a Math teacher in high school and she was always saying “It’s 99% hard work and 1% talent” and I totally agree with her now. That’s why the practice should never stop, doesn’t matter how far up you have gone in your career.

Also look at the bright side, while you just pick random exercises or small projects to work on, you don’t have to worry about deadlines and no pressure. You will notice at the end how happy you will feel about what you have worked on independently.

So just like the authors of this book suggest, go online and find different problems to work on. If you want to feel more challenged find coding competitions and enter them. Don’t worry if you don’t win. You will definitely learn something out of that experience.  After a while go back to where you started and you will see how you have progressed. my last advice you all of you would be: don’t just settle when you start working in a company. Keep growing outside of it. Practice, Practice, Practice…

From the blog CS@Worcester – Danja's Blog by danja9 and used with permission of the author. All other rights reserved by the author.

AMPATH-WSU Sprint 5 Retrospective

Hello my dear readers. Welcome back to my next sprint retrospective blog post for all of you who have been following me through my journey and welcome to all new readers (I would strongly suggest you to read all the sprint so you are familiar what I am talking about). Are you excited to know what we have been up to this past sprint?!

The other team working on this project was able to push their changed and the professor merged and deployed their changes. I got to say they did a very good job in the tool bar. Now it is our time to add our search bar. While doing that we were thinking that we wanted to work on some other stuff in the project to feel more productive. We started to look at the issues that were listed in the github repository but an idea crossed my mind.

I am taking this class in parallel with another software development concentration class: CS 348, Software Process Management. There were two classes were our professor wanted to teach us about CI/CD and Travis CI. Yeah I know most of you are like: “English please!” For all of you that are not familiar with the terms, CI means continues integration, CD means continues deployment and Travis CI is a software used to set up your project with CI/CD. But why is good to CI/CD?

First time I cam across with CI/CD  it was at work, when one of my teammates suggested to have CI/CD in one of our systems. After his idea was approved, he set up our system with CI/CD and it was seriously a life savior! At my work place we use two main branches: dev and master. Dev branch is for all developers to merge and test their changes in a live environment. Dev is not production. Master branch is the production branch where only managers can merge and deploy. Whenever a change is made, we merge our branch into the dev branch and that’s where CI/CD kicks in and makes everything easy. Before we had to wait for the managers to deploy our changes to dev and then we could test. Long story short, CI/CD made us more productive and efficient.

My idea was to set up the AMPATH project with the CI/CD via Travis CI. The good thing about using Travis is that differently from Jenkins you don’t need a server. We talked with our professor and we were very happy that the idea was welcomed and approved. While me and Kristi will be working on integration for the next sprint, the other team members will be picking up another issue.

This past sprint was mostly a reflection on what we have worked on and what else we should do. I am very excited for the next sprint though, as this is the last sprint and then we have to present our work. I am really looking forward to figuring out how to set up an angular project with Travis CI and make everyone’s job easier. Please don’t miss my last sprint for this capstone class..See ya next time ?

 

From the blog CS@Worcester – Danja's Blog by danja9 and used with permission of the author. All other rights reserved by the author.

Find Mentors

Hi dear readers. Welcome to my next blog post. In this blog post I am going to talk about the next pattern called “Find Mentors”. I strongly believe this is a very important pattern and I will explain why below.

In the path of your career, you will always find yourself struggling learning about new stuff or not knowing what to learn . Don’t freak out though, this is normal. I know it sounds weird, but this is just the start of your journey and you are expected to not know everything. However, sometimes is very hard on to determine what to learn next or what is your next step in your career. So as the book suggests, a mentor is always a good help to have.

Finding the perfect mentor for you is not easy and you probably will never find him/her. It is true that there are a lot of people out there who  are professionals in what they do, but that doesn’t mean they are meant to be mentors. However, do not get discouraged because there are plenty of people who like to be mentors, you just got to be patient until you find him/her.

Another good point that the authors make in the book is that you might change mentors often or have multiple mentors as different people are specialized in different areas and have different knowledge. The hard part in all this process is finding and convincing this person to be your mentor. It might be awkward for you to ask and also weird for them. Unfortunately there might also be cases when they will refuse, but do not get discouraged. You will find other mentors. If you really really like a specific person to be your mentor, you got to win his/her ‘heart’.

While you grow you will be able to understand if you are in need of changing mentors and there is nothing wrong with that. Also as they teach you, you will understand what you really like and what you want your focus to be in. So start being part of communities and look for your mentors based on what you’re interested.

From the blog CS@Worcester – Danja's Blog by danja9 and used with permission of the author. All other rights reserved by the author.

“Retreat into Competence” Apprenticeship Pattern

I am writing this blog post about the “Retreat into Competence” apprenticeship pattern from the Apprenticeship Patterns book. To summarize the idea of this pattern, it is about handling being overwhelmed by new challenges. This is something I experience frequently, particularly because I actively search for new challenges and often find ones that are beyond my current ability. The recommended response is to go do something else that is more familiar instead. Succeeding at something familiar and reflecting on past success is comforting in the face of overwhelming ignorance. There are two definitions of the word “overwhelming” that I can imagine here, and the one that this chapter seems to be using is in an emotional sense. Recognizing one’s own incompetence is uncomfortable, so taking a moment to go back and successfully complete a familiar task feels better than struggling with an unfamiliar one. The other definition would be being overwhelmed in the sense of lacking the capacity to complete the given challenge. Retreating into competence is done for the sake of regaining confidence, and it is important to be able to handle being emotionally overwhelmed before trying to handle being academically overwhelmed. I have confidence in myself and my abilities, but when I am challenged by something new, I remain confident in what I know and recognize that it is a challenge because of what I do not know. I was doing a problem recently that required a certain background knowledge of combinatorial game theory that I did not have. Despite my aptitude for problem solving, my lack of education on the matter made the problem challenging (or overwhelming) to the extent that talent would not make up for inexperience. I saw it as a learning opportunity and started researching the information that I was not familiar with, and also did some easier problems instead that did not require a level of education I was lacking. Remaining in one’s own comfort zone is a good thing, but only briefly, as the chapter notes. It is taking a step backwards in order to prepare to continue moving forward and learning.

From the blog cs-wsu – klapointe blog by klapointe2 and used with permission of the author. All other rights reserved by the author.

Reflecting on “Apprenticeship Patterns” – Confront Your Ignorance

Here we are – the last Apprenticeship Pattern of the semester! I’ve learned so much about how to successfully transition from a budding computer science undergraduate to a new software development professional. Now that the semester is just about over, I am going to be spending most of my time between now and the start of my new job learning about their tech stack. As I’ve discovered while getting to know the engineering team, I don’t have any experience with the technologies that they use. This brings me to the apprenticeship pattern for this week, “Confront Your Ignorance.”

Confront Your Ignorance pretty accurately describes the position that I am in right now. In this situation, the apprentice has identified several areas or skills that they don’t know much about, and they are interested in learning more. Sometimes, those around the apprentice may already feel comfortable with these skills. The simple solution for the apprentice is to begin “filling in the gaps” in what they know about any skill(s). This could be in the form of articles, tutorials, or Breakable Toys (personal, private projects that allow the apprentice to safely learn about different tools without consequence of failure), among other methods. This pattern is closely related to Expose Your Ignorance, another pattern that I wrote about in the past (found here). While it is possible to keep these patterns mutually exclusive, a balance should be made between the two so that the apprentice feels comfortable enough to share what they don’t know about different subjects with other teammates, as well as puts in the effort to work on it and learn more.

I have been able to relate to each of my discussed apprenticeship patterns in some way, and this pattern is no different. While I am aware that I have a lot of ground to cover in order to understand as much as I can about my company’s tech stack before the start date, it will be great to combat this by confronting this ignorance head-on with multiple learning strategies, mostly by reading more books and completing online coursework.

Thanks for reading! I hope to keep up with this blog as I continue self-learning throughout my professional career.

From the blog CS@Worcester – Hi, I'm Kat. by Kat Law and used with permission of the author. All other rights reserved by the author.

Learn How You Fail

One of the many proverbs which I was raised on that I think about to this day when I am trying (and often struggling) to learn something new and master it, is “practice doesn’t make perfect; perfect practice makes perfect”. And while perfection is an impossible goal to set for oneself, the idea that it is important to analyze how you are practicing is instrumental in developing your skills.

This apprenticeship pattern “Learn How You Fail” speaks volumes to this idea. The main idea the authors are trying to impart is to not only accept that perfection is an impractical goal to strive towards, but to analyze and remember the qualities or areas that make you fail. By applying the practice of becoming aware of what you don’t know that you don’t know, my perspective and ultimate success will be much better for it.

Specifically, the authors make it a point to demonstrate this practice by suggesting to create an implementation of a common problem, in this case binary search, in a simple text editor. Once the problem is implemented we are to design tests and iterate the code until we believe it is perfect and only then can we compile and run the tests. The focus of this exercise is to illustrate that even when we think something is complete or as perfect as possible, there will be gaps in our knowledge that we are not aware of, and applying this practice will make you more familiar with the holes in our understanding, allowing us to get a better view of ourselves and our limitations, with the goal of overcoming them.

This apprenticeship pattern definitely spoke to me, because I am very interested with not only the concrete skills in software development, but also the process of learning and finding new ways to learn more efficiently. One quote from this section of the book which stuck with me because of its blunt honesty was “someone who has never failed at anything has either avoided pushing the boundaries of their abilities or has learned to overlook their own mistakes”. I will definitely be taking this lesson to heart and do my best to get as accurate of a self-assessment as possible, so I can practice honing my skills as perfectly as possible.

From the blog CS@Worcester – Bit by Bit by rdentremont58 and used with permission of the author. All other rights reserved by the author.

Apprenticeship Pattern – Nurture Your Passion

The apprenticeship pattern Nurture Your Passion refers to the problem in which you feel the environment in which you work in is stifling your passion for the craft. Depending on which aspect of work you feel is doing this there may be different solutions for everyone. For example, if you’re in a situation of constant project death marches that are sapping your time and energy, then you need to set clear boundaries and protect your passion. Whether that means to decline working “culturally pressured” overtime to avoid burning out or not would likely depend on how much you feel these death marches are affecting you.

As someone who hasn’t had much if any experience in the industry, this pattern definitely worries me a little. I’ve heard similar horror stories about project death marches from game developers working in the games industry. People who were filled with passion for their craft entering an industry that commonly abuses that passion with forced overtime until they burn out. Then, once you finish the project you’re working on, you’re laid off in an effort to cut costs by reducing headcount because you’re no longer needed, not because you’ve done anything wrong.

Obviously this isn’t the case with every company and the software development industry likely has many differences when compared to the games industry, but they do bear many similarities as well. This problem can be avoided by finding the right company that offers what you’re looking for, whether that be working overtime on something you believe in and enjoy, or somewhere that offers you good work-life balance. I’m always a little bit worried getting stuck in a situation with poor work-life balance because I’m not sure I would be confident enough to put my foot down, so I’ll have to remember in the future that I should focus on what’s best for me because I’m sure most companies wouldn’t think twice to cut costs whenever they can.

Overall, I agree with what the pattern’s saying and hopefully I’ll remember to nurture my passion even if it means getting passed over for promotions or having to find somewhere else to work.

From the blog CS@Worcester – Andy Pham by apham1 and used with permission of the author. All other rights reserved by the author.

Apprenticeship Patterns: Learn How To Fail

You can’t be a good winner if you have never lost. That’s where this pattern aims to address, learn how to fail is exactly that. About learning how to fail and taking that opportunity as a learning platform to grow from. Failure especially in coding is bound to happen, and the lead up to that… Continue Reading →

From the blog CS@Worcester – Computing Finn by computingfinn and used with permission of the author. All other rights reserved by the author.

Needing a reading list

So for this week, I have decided to read “Reading List”  pattern from the Apprentice Patterns by Adevele Oshineye and Dave Hoover. I chose this one because I believe there is something that should be done on a daily basis. Since that reading is exactly that, it should be wise to read this pattern at least once.

This pattern starts off with the context of having so much information that is needed to learn after developing the language. The problem is that the number of books to read is increasing than that of actual reading them ourselves. There is also the issue of figuring out where to start from the number of books. To solve this issue, one must maintain a reading list that not only helps in remembering the books read but also track the books that are planned to be read. Creating a text file is an option to write the list down as it is under source control and simplest implication of the pattern. For what it is worth, there is a need for a clear understanding of which books to prioritize in reading and in order by the subject.

From this pattern, what I found useful is identifying the books that would be worth reading based on a list given by any book. This will help in finding hidden connections related to the topic or language to an extent.  Mentors may recommend must-read books that even peers can discuss with one other and advise with the aspects. With data gathering over the years, patterns, gaps, and trends is starting to be seen. This pattern has changed my mind in giving suggestions to other people in what to read. I don’t disagree with anything since it does give clarification in what to do with the knowledge gained thus far and all the books needed to be read in due time.

Based on the content of this pattern, I would say this is a great and simple read as a way in reflecting on a reading habit. This pattern has helped me understand in which to read first for what topic I could have next. For future practice, I will try to write a reading list in different ways beside a text file in case anything happens to that specific device.

Link to the blog: https://www.oreilly.com/library/view/apprenticeship-patterns/9780596806842/ch06.html#reading_list

From the blog CS@Worcester – Onwards to becoming an expert developer by dtran365 and used with permission of the author. All other rights reserved by the author.