Graduation day brings a lot of mixed feelings and expectations, a feeling of excitement and accomplishment in one hand and the uncertainty of what the future holds on the other. I remembered my mother asking me few days post graduation, “so congrats on getting your degree. Now what!?”
On a personal level, deciding which job position to apply to was the most difficult part for me when I started applying for full-time job as a recent grad with a degree in computer science and IT. I came to realize that I did not have a clear idea or understanding of what most of the job tittles meant nor the skills required in order to succeed at those positions. But I was confident with the basic knowledge I had in programming, software development tools, and computer concepts.
The knowledge we acquired in classrooms prepared us to meet the demand in the workforce market. Now, computer scientists are employed in all sort of job positions in nearly every company or industry that has a computerized business model or system.
However, the job duties vary significantly and are subject to change according to the technological needs or domain of expertise of that specific company. For illustration, a software engineer at google have different job duties comparing to a software engineer working in financial or healthcare companies.
So, I’m going to try to list some of the job positions I’m familiar with including the necessary skills needed to succeed in those positions, and their domain of expertise.
Software application developer
Designing or customizing computer applications software. Modifying existing software to optimize operational efficiency or correct errors. Evaluating software requirements and user needs to determine software feasibility
Computer systems analyst
Analyzing data processing problems to improve computer systems. Developing and testing system design procedures. Enhancing system compatibility so information can be shared easily
- Application Analyst
- Data Analyst
- System Analyst
Software systems developer
Designing, developing and testing software for a variety of industries. Altering existing software to correct errors or improve performance. Analyzing data to identify, recommend and plan new system installations or modifications
Writing, designing or editing web page content, or directing others producing content. Identifying and correcting problems uncovered by testing or user feedback. Specifically engaged in, the development of World Wide Web applications, or applications that are run over HTTP from a web server to a web browser.
knowledge of the following are some of the tools, concepts, platforms and programming languages used by web developers.
- Mobil App: NativeScript, React Native, Ionic, Xcode, Android Studio, Xamarin, Redhat, Kony, iFactr, Sencha, PhoneGap, etc.
- Concepts: APIs, REST, HTTP protocols
- Web designer
- UX designer
- Mobile App developer
- Game developer
Network systems administrator
Installing and supporting an organization’s network system. Examining website functions to ensure performance without interruption. Performing data backups and disaster recovery operations
Testing and administering computer databases. Coordinating changes and correcting errors to computer databases. Applying security measures to safeguard information.
FullStack Software Engineer
A full–stack developer is simply someone who is familiar with all layers in computer software development. These developers aren’t experts at everything; they simply have a functional knowledge and ability to take a concept and turn it into a finished product. They have a fair knowledge of Networking, Database, User Interface , API, Security etc. They work on both back-end and front-end. I currently work as a full-stack software engineer and that is something i enjoy very much.
DevOps Software Engineer
I worked as a DevOps engineer intern in my senior year in college. But defining what DevOps engineers do is still in flux because DevOps is not a framework or a workflow. It’s a culture that is overtaking the business world. DevOps ensures collaboration and communication between software engineers (Dev) and IT operations (Ops). The video bellow gives a broad and detailed definition of DevOps.
- System Engineer
- QA Engineer-Automation
- Software Test Engineer
To sum up, self evaluation is key to choosing a job and potentially turn it into a career. Freshmen or Sophomores are able to choose their career path in light of courses at which they perform the best. Junior and Seniors should utilize their remaining years of education in developing the skills for a job of interest. This can be done by taking on projects outside the classroom, focusing on courses closely related to jobs aspired, and getting internships.