top of page

Software Development

Relevant Coursework:

  • CSCE 1030 - Computer Science I

  • CSCE 1040 - Computer Science II

  • CSCE 2100 - Foundations of Computing (not Discrete Structures)

  • CSCE 2110 - Foundations of Data Structures (not Computer Organization)

  • TECM 2700 - Technical Writing

  • MATH 1710 - Calculus I

Recommended Electives:

  • Software Engineering: Learn modular design, software testing, and documentation practices.

  • Artificial Intelligence: Explore machine learning, natural language processing, and data science.

  • Database Systems: Gain insights into database functionality and how to design efficient data storage solutions.

Each course is designed to build on the knowledge gained in previous ones, ensuring you develop a comprehensive understanding of computer science. We encourage you to take advantage of these opportunities to learn, grow, and prepare for a rewarding career in technology.

Median Total Comp: (will be updated with resources)

  • Front-end Developer: $50,000 to $70,000 annually

  • Back-end Developer: $55,000 to $75,000 annually

  • Full-stack Developer: $58,000 to $80,000 annually

  • Mobile App Developer (iOS, Android): $50,000 to $75,000 annually

  • Game Developer: $40,000 to $65,000 annually, depending on the specific focus within game development

  • DevOps Engineer: $60,000 to $85,000 annually

Top Tech Companies:
Google, Microsoft, Apple, Amazon, Facebook (Meta), Tesla, SpaceX, Netflix, IBM, Intel, NVIDIA, Salesforce, SAP

​

Front-end Developer​​

HTML (Hyper Text Markup Language)

  • Structure web pages effectively.

  • Understand and apply semantic HTML for accessibility and SEO.

  • Use various HTML tags appropriately.

CSS (Cascading Style Sheets)

  • Master styling techniques for web pages.

  • Utilize CSS preprocessors like Sass or LESS.

  • Implement responsive design principles for cross-device compatibility.

JavaScript

  • Understand the core programming concepts of JavaScript.

  • Manipulate the DOM (Document Object Model) for interactivity.

  • Work with asynchronous operations using callbacks, promises, and async/await.

  • Apply modern JavaScript features (ES6+).

JavaScript Frameworks and Libraries

  • Familiarity with frameworks like React, Angular, or Vue.js.

  • Knowledge of state management libraries such as Redux or Vuex.

  • Implement component-based architectures.

Responsive Design

  • Create responsive layouts using media queries.

  • Embrace mobile-first design principles.

Cross-Browser Compatibility

  • Ensure applications work consistently across various browsers.

  • Debug using browser developer tools.

Version Control / Git

  • Use Git for version control.

  • Understand branching, merging, and pull requests.

Build Tools and Task Runners

  • Work with tools like Webpack or Parcel.

  • Automate tasks with npm scripts.

Web Performance Optimization

  • Optimize website speed and performance.

  • Implement lazy loading, code splitting, and other best practices.

Basic Graphic Design Skills

  • Understand design principles: color theory, typography, and layout.

  • Use design tools like Adobe XD, Figma, or Sketch.

Command Line / Shell

  • Navigate and execute commands using the command line.

  • Understand basic shell scripting.

RESTful APIs and AJAX

  • Make API calls using AJAX or Fetch API.

  • Integrate external data into web applications.

Testing and Debugging

  • Write unit tests using frameworks like Jest.

  • Debug efficiently with browser developer tools.

Continuous Learning

  • Stay updated on industry trends, technologies, and best practices.

  • Engage with the developer community through forums, blogs, and conferences.

Back End Developer 
Server-Side Programming Languages
  • Proficiency in at least one back-end programming language such as:

    • Java (with frameworks like Spring or Jakarta EE).

    • Python (with frameworks like Django or Flask).

    • Ruby (with Ruby on Rails).

    • PHP (with frameworks like Laravel or Symfony).

    • Node.js (using JavaScript or TypeScript).

Database Management

  • Knowledge of relational databases (e.g., MySQL, PostgreSQL, Oracle) or NoSQL databases (e.g., MongoDB, Cassandra).

  • Understanding of database design and optimization.

  • Ability to write complex SQL queries.

Server-Side Frameworks

  • Familiarity with server-side frameworks that streamline development (e.g., Express.js for Node.js, Django for Python, Ruby on Rails for Ruby).

API (Application Programming Interface)

  • Design and implementation of RESTful APIs.

  • Knowledge of API authentication and authorization (e.g., OAuth, JWT).

Web Servers and Deployment

  • Configuration and management of web servers (e.g., Apache, Nginx).

  • Deployment of applications using platforms like Heroku, AWS, or Docker.

Server-Side Templating

  • Using templating engines to generate dynamic content on the server-side (e.g., EJS, Jinja).

Version Control/Git

  • Proficiency in using Git for version control.

  • Understanding of branching, merging, and pull requests.

Authentication and Authorization

  • Implementation of user authentication and authorization mechanisms.

  • Security best practices to protect user data.

Testing

  • Writing unit tests for server-side code using testing frameworks (e.g., JUnit for Java, PyTest for Python).

  • Integration testing and end-to-end testing.

Caching

  • Knowledge of caching strategies to optimize performance.

  • Use of caching mechanisms like Redis or Memcached.

RESTful Services

  • Building and consuming RESTful services.

  • Knowledge of HATEOAS (Hypermedia As The Engine Of Application State).

Web Security

  • Awareness of common web security threats (e.g., Cross-Site Scripting, SQL Injection).

  • Implementation of secure coding practices.

Scalability and Performance Optimization

  • Designing scalable and efficient back-end systems.

  • Performance profiling and optimization.

Command Line/Shell

  • Basic command line navigation and execution of commands.

  • Familiarity with basic shell scripting.

Continuous Integration/Continuous Deployment (CI/CD)

  • Understanding of CI/CD pipelines for automating testing and deployment processes.

Logging and Monitoring

  • Implementing logging for debugging and monitoring purposes.

  • Familiarity with monitoring tools like Prometheus, Grafana, or New Relic.

Full Stack Developer 
Front-End Development:
  • HTML, CSS, JavaScript

  • Front-end frameworks/libraries (e.g., React, Angular, Vue.js)

  • Responsive web design

  • Cross-browser compatibility

  • State management (e.g., Redux, Context API)

Back-End Development:

  • Proficiency in a back-end programming language (e.g., JavaScript/Node.js, Python, Java, Ruby, PHP)

  • Server-side frameworks (e.g., Express.js for Node.js, Django for Python, Spring for Java)

  • Database management (SQL and NoSQL databases)

  • API design and development

  • Authentication and authorization mechanisms

Database Management:

  • Relational databases (e.g., MySQL, PostgreSQL, Oracle)

  • NoSQL databases (e.g., MongoDB, Cassandra)

  • Database design and optimization

  • ORM (Object-Relational Mapping) tools (e.g., Sequelize, Hibernate)

Version Control/Git:

  • Proficiency in using Git for version control

  • Branching, merging, and pull requests

Web Servers and Deployment:

  • Configuring and managing web servers (e.g., Apache, Nginx)

  • Deployment of applications using platforms like Heroku, AWS, or Docker, Kubernetes

API Integration:

  • Consuming and integrating third-party APIs

  • Understanding of RESTful and GraphQL APIs

Front-End Build Tools:

  • Familiarity with front-end build tools (e.g., Webpack, Parcel)

  • Task runners (e.g., npm scripts)

Testing:

  • Unit testing for both front-end and back-end code

  • Integration testing and end-to-end testing

  • Testing frameworks (e.g., Jest, Mocha, Jasmine)

Asynchronous Programming:

  • Understanding asynchronous programming concepts

  • Handling asynchronous tasks using callbacks, Promises, or async/await

Web Security:

  • Awareness of common web security threats

  • Implementation of secure coding practices

Command Line/Shell:

  • Basic command line navigation and execution of commands

  • Shell scripting for automation

Cross-Functional Collaboration:

  • Ability to collaborate with designers, front-end developers, and other team members

  • Understanding of UI/UX principles

Continuous Integration/Continuous Deployment (CI/CD):

  • Setting up CI/CD pipelines for automated testing and deployment

Logging and Monitoring:

  • Implementing logging for debugging and monitoring purposes

  • Familiarity with monitoring tools like Prometheus, Grafana, or New Relic

Full-Stack Frameworks:

  • Familiarity with full-stack frameworks (e.g., MEAN, MERN, LAMP)

Development Tools and IDEs:

  • Proficiency in using development tools and integrated development environments (IDEs)

Soft Skills:

  • Effective communication and collaboration skills

  • Problem-solving and critical thinking

  • Adaptability and willingness to learn new technologies

Mobile App Developer (iOS, Android)

Programming Languages:

  • iOS (Swift):

    • Proficiency in Swift programming language.

    • Understanding of Objective-C for compatibility with existing codebases.

  • Android (Java/Kotlin):

    • Strong knowledge of Java or Kotlin for Android development.

    • Familiarity with the Android NDK (Native Development Kit) for native code integration.

Integrated Development Environments (IDEs):

  • iOS (Xcode):

    • Proficiency in using Xcode for iOS app development.

  • Android (Android Studio):

    • Familiarity with Android Studio as the primary IDE for Android app development.

Mobile App Architecture:

  • Understanding of mobile app architecture patterns.

  • Familiarity with iOS MVC, MVVM, or VIPER architecture.

  • Knowledge of Android's recommended architecture patterns like MVC, MVVM, or MVI.

User Interface (UI) Design:

  • Proficiency in designing mobile app interfaces.

  • Familiarity with iOS Human Interface Guidelines and Android Material Design.

  • Use of Interface Builder in Xcode for iOS development and XML layouts for Android.

Mobile App Lifecycle:

  • Understanding of the lifecycle of mobile applications on both iOS and Android.

  • Handling app states, background processes, and memory management.

APIs and Web Services:

  • Integration of RESTful APIs into mobile applications.

  • Handling JSON or XML data formats for data interchange.

Version Control/Git:

  • Proficiency in using Git for version control.

Mobile App Testing:

  • Unit testing and UI testing for mobile applications.

  • Familiarity with testing frameworks like XCTest (iOS) and JUnit/Espresso (Android).

Mobile App Deployment:

  • Understanding the app submission process for the Apple App Store and Google Play Store.

  • Knowledge of code signing, certificates, and provisioning profiles for iOS.

Cross-Platform Development:

  • Familiarity with cross-platform frameworks (e.g., React Native, Flutter) for building apps that run on both iOS and Android.

Push Notifications:

  • Implementing push notifications for both iOS and Android platforms.

Security Best Practices:

  • Awareness of mobile app security best practices.

  • Secure handling of sensitive data and user authentication.

Performance Optimization:

  • Profiling and optimizing mobile app performance.

  • Efficient handling of resources to ensure smooth user experience.

Continuous Learning:

  • Staying updated with the latest platform updates, SDKs, and best practices.

Soft Skills:

  • Effective communication and collaboration skills.

  • Attention to detail and user-centric mindset

Game Developer

Programming Languages:

  • Proficiency in programming languages commonly used in game development, such as:

    • C++ (for engines like Unreal Engine)

    • C# (for engines like Unity)

    • Python or JavaScript (for web-based games)

Game Engines:

  • Mastery of game engines for development, such as:

    • Unity (using C#)

    • Unreal Engine (using C++)

    • Godot Engine (using GDScript or C#)

    • Phaser (for HTML5 games using JavaScript)

Mathematics for Game Development:

  • Understanding of essential mathematical concepts used in game development, including:

    • Vector and matrix operations

    • Physics calculations

    • Trigonometry

Graphics and Animation:

  • Knowledge of graphics programming and rendering techniques.

  • Understanding of 2D and 3D graphics concepts.

  • Animation principles and techniques.

Game Design Principles:

  • Understanding of game mechanics, dynamics, and aesthetics.

  • Familiarity with player experience (UX) and user interface (UI) design.

  • Level design and storytelling for creating engaging gameplay experiences.

AI (Artificial Intelligence) in Games:

  • Implementing AI for non-player characters (NPCs) and enemies.

  • Pathfinding algorithms and decision-making processes for AI entities.

Physics in Games:

  • Implementing realistic physics for game objects.

  • Collision detection and response algorithms.

 Sound and Music Integration:

  • Integrating sound effects and music into games.

  • Understanding audio engines and middleware.

Virtual Reality (VR) or Augmented Reality (AR):

  • Knowledge of VR or AR development if working on immersive experiences.

  • Familiarity with platforms like Oculus, HTC Vive, or ARKit/ARCore.

Networking and Multiplayer:

  • Implementing multiplayer functionality in games.

  • Networking protocols and synchronization techniques.

Game Monetization:

  • Understanding monetization models for games (e.g., in-app purchases, ads).

  • Integrating monetization features into games.

Game Testing:

  • Conducting thorough testing of games for bugs and performance issues.

  • Familiarity with testing frameworks and tools.

Version Control/Git:

  • Proficiency in using Git for version control.

Virtual Development Environments:

  • Setting up and working with virtual development environments for testing.

Cross-Platform Development:

  • Building games that can run on multiple platforms (PC, console, mobile).

Continuous Learning:

  • Staying updated with the latest game development trends, technologies, and tools.

Soft Skills:

  • Effective communication and collaboration skills.

  • Creativity and problem-solving abilities.

DevOps Engineer 

Version Control:

  • Proficiency in version control systems like Git.

  • Understanding branching strategies and merging techniques.

Continuous Integration/Continuous Deployment (CI/CD):

  • Setting up and maintaining CI/CD pipelines for automated testing and deployment.

  • Familiarity with CI/CD tools such as Jenkins, Travis CI, GitLab CI, or CircleCI.

Infrastructure as Code (IaC):

  • Using IaC tools to automate infrastructure provisioning and management.

  • Familiarity with tools like Terraform, Ansible, or Chef.

Containerization:

  • Understanding of containerization technologies like Docker.

  • Experience with container orchestration tools like Kubernetes.

Cloud Platforms:

  • Proficiency in using cloud platforms like AWS, Azure, or Google Cloud.

  • Knowledge of cloud services for infrastructure provisioning.

Monitoring and Logging:

  • Implementing monitoring solutions for applications and infrastructure.

  • Familiarity with tools like Prometheus, Grafana, ELK stack (Elasticsearch, Logstash, Kibana).

Collaboration and Communication:

  • Collaboration with development, operations, and other teams.

  • Effective communication skills for documenting processes and sharing knowledge.

Scripting and Automation:

  • Scripting skills in languages like Python, Bash, or PowerShell.

  • Automation of repetitive tasks and workflows.

Security Practices:

  • Implementing security best practices in infrastructure and code.

  • Awareness of security vulnerabilities and mitigation strategies.

Networking:

  • Understanding of networking concepts and protocols.

  • Configuration of network infrastructure and security groups.

Database Management:

  • Database configuration and management in a DevOps context.

  • Handling database backups, migrations, and optimizations.

Incident Response and Recovery:

  • Developing incident response plans.

  • Implementing strategies for system recovery and resilience.

Collaboration Tools:

  • Proficiency in collaboration tools like Slack, Microsoft Teams, or communication platforms.

  • Use of issue tracking systems like Jira or GitHub Issues.

Agile and Scrum Methodologies:

  • Understanding of Agile and Scrum principles.

  • Integration of DevOps practices into Agile workflows.

Continuous Learning:

  • Staying updated with the latest DevOps trends, tools, and best practices.

  • Pursuing relevant certifications (e.g., AWS Certified DevOps Engineer, Docker Certified Associate).

Soft Skills:

  • Strong problem-solving skills.

  • Adaptability and flexibility in a dynamic environment.

  • Team collaboration and interpersonal skills.

Understanding of Microservices Architecture:

  • Familiarity with microservices architecture and its implications on DevOps practices.

bottom of page