Aspire Journeys

Programmer to Secure Agile Programmer

  • 24 Courses | 15h 15m 17s
  • 4 Labs | 32h
Likes 43 Likes 43
Every organization is looking to optimize their processes, as well as securing themselves from ever growing threats. As a result, there is an increasing demand for Secure Agile Programmers who have the relevant training and experience in Agile methodologies that relate to not only software development but to secure programming. 

Track 1: Programmer

In this Skillsoft Aspire track of the Secure Agile Programmer journey, the focus will be on programming standards for secure programmers.

  • 6 Courses | 4h 37m 33s
  • 1 Lab | 8h

Track 2: Secure Programmer

In this Skillsoft Aspire track of the Secure Agile Programmer journey, the focus will be on security concepts, vulnerabilities, encryption, attacks and resiliency coding for secure programmers.

  • 6 Courses | 3h 32m 38s
  • 1 Lab | 8h

Track 3: Defensive Programmer

In this Skillsoft Aspire track of the Secure Agile Programmer journey, the focus will be on defensive concepts and techniques, cryptography, code sampling, secure testing, and advanced defensive programmer concepts.

  • 7 Courses | 4h 51m 56s
  • 1 Lab | 8h

Track 4: Agile Secure Programmer

In this Skillsoft Aspire track of the Secure Agile Programmer journey, the focus will be on secure Agile programming concepts, techniques, modeling, and testing.

  • 5 Courses | 2h 13m 10s
  • 1 Lab | 8h


Secure Programmer: Intro to Programming Standards
In this course, learners can explore various IEEE programming standards, software requirement types, and requirements gathering techniques. Discover how software quality is defined and steps to take in the change management process. Begin this 10-video course with an introduction to basic programming and software engineering concepts. Then move on to a three-part tutorial on programming standards—part A on recalling IEEE programming standards including general, testing and quality, and maintenance and documentation standards; part B on IEEE standards, including NIST SP 800-27, ISO/IEC 15504 and 24744:2014, and ISO 29110; and part C on recalling IEEE and ISO programming standards. This leads into identifying software requirement types, the functionality, usability, reliability, performance, and supportability (FURPS) model, and the requirements gathering techniques. Next, you will explore requirements gathering techniques such as brainstorming, interviews, focus groups, and reverse engineering, and examine quality and the change management process. In the final tutorial, learners observe how to apply the IEEE Std 730 standard for software quality.
10 videos | 1h has Assessment available Badge
Secure Programmer: Software Design Techniques
In this 13-video course, learners will discover a range of software engineering techniques used to design software. This includes modular, resiliency, architectural, component-level, model-driven, and pattern-based design. You will also explore how to identify well-designed code and script. Learners begin by observing modular design, which starts with the premise that code should be encapsulated into independent modules. This leads into learning about resiliency design. The various design approaches examined here are not mutually exclusive, and can be used together, particularly resiliency design, which often goes hand in hand with other design approaches to augment and enhance them. Next, study architectural design, with a look at the architecture process and how to apply it. Following on from this, you will learn how to apply both component-level design and pattern-based design. You will delve into Well Designed Java Example, and explore what makes it well designed. Also, Well Designed Python Example, which contains some nuances not common to other languages. Well Designed C# Example, Well Designed Javascript, and model-driven design are also covered.
13 videos | 1h has Assessment available Badge
Secure Programmer: Software Modeling Techniques
This course extensively covers Unified Modeling language (UML), which is commonly used in software engineering to help design, understand, and work with software. It can be considered one of the core tools in a software engineer's toolbox. In this 6-video course, learners will delve into specific UML diagrams in order to obtain a deeper understanding, and some of which users will be able to use in their own software design. These diagrams will include class diagrams, activity diagrams, use case diagrams, and sequence diagrams. Next, follow an overview of Systems Modeling language (SysML), which is similar to UML but broader, so not only can it be used for software, but it can also be used for hardware, networks, or any system. Then discover how it can be used. In the final tutorial in this course, you will take a look at specific SysML diagrams, including block definition diagrams, internal block diagrams, and parametric diagrams.
6 videos | 31m has Assessment available Badge
Secure Programmer: Coding Practices
In this 12-video course, learners explore best practices for good coding along with exercises showcasing related examples. This includes good programming practices for Java, Python, C#, and Javascript. Begin with a look at how to perform software estimation of resources and time. One fundamental practice that learners need to know is how to estimate how long something will take and what resources one needs in place. You will then examine coding best practices, and some specific techniques to improve code, along with good coding examples. Following on from this, observe how to recognize bad coding examples, and examine Java code that is poorly written. Next, you will take a look at bad coding examples in Python, and recognizing bad Python programming; bad C# programming, and bad Javascript programing. This leads into learning about applying good coding examples in Java, in Python, in C#, and Javascript. The two most important takeaways from this course are understanding and recognizing both good and bad code, and the other is having a basic understanding of estimating and allocating resources.
12 videos | 52m has Assessment available Badge
Secure Programmer: Software Testing
Explore key aspects of software testing, software validation, and bug tracking methods in this 14-video course, beginning with a look at very specific testing methodologies, and an in-depth introduction into how to do testing. This leads learners into observing how to apply unit testing; integration testing; regression testing, and user acceptance testing. Another tutorial will explore the roles and responsibilities in testing, or who in one's team is responsible for what aspect of testing. You will also learn about specific testing methods, and how to do the individual test, regardless of what type it is. Following on from this, learners will examine test cases and reporting, where formalized testing requires some level of reporting and specific test cases. Then discover how to apply software metrics and explore software verification and software validation. To complete the course, you will learn about the concepts of bug tracking and how to use various bug tracking methods.
14 videos | 1h has Assessment available Badge
Final Exam: Programmer Apprentice
Final Exam: Programmer will test your knowledge and application of the topics presented throughout the Programmer track of the Skillsoft Aspire Programmer to Secure Agile Programmer Journey.
1 video | 30m has Assessment available Badge
Secure Programmer: Security Concepts
This 6-video course guides learners to discover the basics of secure programming, including common security concepts, authentication and authorization, and shows how to avoid common programming errors that can undermine security, as well as how to incorporate validation and verification into programming. These are the core security concepts that you need to master to ensure that your programs are produced in a secure fashion. To begin, you will examine secure programmer security concepts, including confidentiality, integrity, and availability, known as the CIA triangle, least privileges, and separation of duties. The next tutorial covers secure programmer authentication and authorization, looking at general authentication models such as discretionary access controls (DACs), mandatory access control (MAC), rule-based access control (RBAC), and attribute-based access control (ABAC). Next, you will explore and learn how to avoid common programming errors that can undermine security. The final tutorial in this course looks at the process and techniques of secure programming verification and validation.