Units 1 & 2
The module began with a introduction into the world of computer science, however, what interested me most about units 1 and 2 were a topic that I haven’t often considered in my working life- emerging practices (such as big data) and the ethics involved. It can be easy to not see yourself as part of a global industry with each person having a role to play, depending on which sector you work in, but the forum discussions taught me to look at things differently. The posts (and comments) made by my fellow students helped show me that there are ways to become involved with the field in a meaningful way; whether it’s creating change at an organizational level by addressing risks and challenges introduced by new trends, or by using your own personal voice on the Internet. My personal opinion now is that being a professional involves more than just writing code- there’s an element of connectedness that needs to be maintained. Being part of the field at large through contributions is critical; this can take multiple forms such as sparking a discussion with other professionals, or through contributions such as academic writing and blogging. Conversations and debate are what help companies and employees navigate challenging topics and balance somewhat opposing factors, such as innovation and ethical usage of data.
An additional task given was to determine a desired career in computer science and determine the skills necessary to obtain that role. Currently, my goal is to become a Senior Software Engineer, and to reach that goal, I read a variety of job listings in order to determine what skills are required for someone in that role. One challenge in this exercise was that most job postings contain requirements that can seem vague. This, however, can be counteracted by a deeper analysis of the specific point: if you’re able to find the underlying requirement of what is written, you can discover concrete skills that you need to have, and then create tasks you can do to gain that experience. Furthermore, knowing that underlying requirement allows you to know what’s necessary and thereby reflect on your own experiences, and update your resume in such a way that you explain experiences you had, that meet this requirement. By applying the methodology explained previously, it becomes easier to describe the core skills of a Senior Software Engineer; the critical skills I’ve ascertained have been listed below:
- Ability to solve problems for the company and create a software architecture/design specification based on this solution.
- Ability to balance multiple factors in development for the purpose of increasing development/release efficiency, although the exact factors that require balancing will depend on the technology stack and company.
- A wider range of skills- Senior Engineers work on multiple aspects of a product, across multiple platforms and programming languages. As an example, they may work on core server functionality, but may be tasked to work on testing, front-end development, CI/CD, and/or high-level planning.
- Ability to make sound technical decisions that positively impact the product at a larger scale.
- Have strong teaching skills and be able to mentor junior developers.
- Must take accountability for critical aspects of a project, such as deadlines, product reliability, and so on.