Monday, February 13, 2023

Apprenticeship Patterns Blog 3

Software development is a long-term pursuit that requires lifelong commitment towards learning and continuous improvements. This is what I learned from Chapter 3 from Dave’s story. His certificates were like medals that he had earned that showed his competence in the job he was doing. It’s interesting how after he collaborated face-to-face with exceptional software developers who were miles ahead of him and discovering that they kept on learning, he too started taking on side projects and reading anything he could get his hands on to be proficient in his crafts. I can relate this with the group that I'm currently working with, the scrum master is clearly ahead of us technically and I'm learning from him things that I didn't learn else where.
 
The chapter goes on to emphasize the importance of patience, persistence and having a long-term vision which I'll talk about later in this blog in the career of a software developer. Overtime software platforms and frameworks change, and this could lead to things breaking in several products. It’s therefore the developer’s responsibility to adapt to these changes and making the user’s experience seamless. An example I’ll give was the release of Angular 2, it was an overhaul of its predecessor Angular 1 which used vanilla JavaScript. Angular 2 on the other hand used TypeScript, a flavor of JavaScript with better performance, readability and easier to learn. I immediately decided to jump on the train and teach myself Angular 2 after hearing a youtuber say it did not make sense to learn Angular 1 since it wasn't going to be useful in the future. Easier to learn does not mean overnight or over a week but rather fewer weeks or months to come up with a relatively medium level application. If we couple this with the ten thousand hours rule which is close to three years taken learn to master a skill, we can agree that it’s traits such as passion that would maintain one’s desire to perfect their craft.
 
Moving on the idea of developers having long-term vision, it also helps developers in making short-term decisions. My interpretation is if you aim to be a Senior C++ developer for example, starting with learning to master how arrays and pointers work would be a great starting point for you. As we all know the wise saying, journey of a thousand miles starts with the first step, so this is that step. Day after day, a new framework is created for instance in the JavaScript world, having a long-term goal of what the craftsman wants to master, it’s easier to stick to a path that leads there with the most reasonable amount of time whether it's back-end or front-end. 
 
Just like the previous chapter, we are reminded again of the importance of seeking mentors to collaborate, guide and give feedback to the software developer. I’ve tried this and it never fails, many times an experienced developer will point you to look in a direction you didn't know was possible in achieving a task and it ends up working in your best interest.

No comments:

Post a Comment

Apprenticeship Pattern Blog 7

 This blog is an extension of chapter 6 of the apprenticeship patterns which talks about creating your own curriculum. The message is that t...