SIG / PEOPLECERT
Quality Software Development: Maintainability Foundation
I certified in Quality Software Developer (#QSDcert) via SIG / PEOPLECERT. In this post I share what the exam is about, why I think it is a must have for a software developer, and how you can prepare for it.
Quality Software Development Advanced Certificate
This is SIG’s second certification which covers building software teams. It follows the goal, question, metric or GQM approach. The material includes topics like version control, automated tests/deployment (CI), environments and working with third-party code. You can read more about it here.
OReilly School of Technology (OST)
I obtained various programming certificates at the O’Reilly School of Technology (OST). As OST is unfortunately closing end of this month (Jan 2016) I pasted the course info below as a reference what I learned. The nice thing about these courses was that they were very practical, you learned by doing, building projects, submitting them for instructor feedback. These projects have contributed greatly to my coding skills and building up a library of useful code.
Python Programming Series
Java Programming Series
Advanced Java Programming Series
### Android 1: Introduction to Mobile Application Development
More info about the courses I completed at OReilly
Android 1: Introduction to Mobile Application Development
Learn the fundamentals of writing an Android application. Mobile devices have become a prominent part of our daily lives, and we have come to rely on them for on-the-go information. Since its inception in 2005, Android has grown to become an integral part of this revolution. Most Android applications are developed using a customized version of Java. Upon completion of this course, you will be able to:
- Demonstrate understanding of basic view components and application classes.
- Program strings, drawables, and lists.
- Display dialogs, menus, styles, and themes.
- Save and manipulate data using Shared Preferences and SQLite databases.
- Thread processes.
- Create an application that implements multiple activities and can interact with a SQLite database.
- Course pdf
- End project: Free Monkey, a fun implementation of Hangman
Java Programming 1: Introduction to Java and the Eclipse Development Environment
Learn the fundamental concepts and syntax of the Java programming language. Throughout this course, you will learn by building examples using the Ellipse IDE, which is supplied as a Learning Sandbox. Completion of this course will give you a basic understanding of Object-Oriented techniques in Java. Upon completion of this course, you will be able to:
- Build Java applications and applets in the Eclipse IDE.
- Create control structures, classes, objects, and methods in Java.
- Add interaction to programs using components and listeners.
- Apply the Java API to draw graphics.
- Demonstrate understanding of modularity, modifiers, permissions, scope, and inheritance.
- Course pdf
Java Programming 2: The Java Programming Language
Learn more in-depth concepts and syntax of the Java Programming language. Throughout this course, you will learn by building examples using the Ellipse IDE, which is supplied as a Learning Sandbox. Completion of this course gives you a basic understanding of Object-Oriented techniques in Java. Upon completion of this course, you will be able to:
- Demonstrate knowledge of basic algorithm constructs in Java.
- Develop and compile Java applications that utilize primitive data types, statements, expressions, and GUIs.
- Output and manipulate strings, fonts, and numbers.
- Apply decision logic and operational precedence to Java code.
- Implement multidimensional arrays, loops, and branching statements.
- Trace code for better software quality.
- Course pdf
Java Programming 3: Java Programming Foundations
Learn to build the programmer’s repertoire of fundamental Java application capabilities. You will achieve an understanding of the structure and purposes for many classes in the Java API. In-depth experience with user interfaces, event and exception handling, Java I/O, and the collection framework will provide you with a toolkit for implementing applications and understanding source code of others. Programs designed in the course using Java Threads, Client/Server Sockets, and Database Connectivity provide a solid basis for application building. Upon completion of this course, you’ll be able to:
- Develop code that is clean, reusable, flexible, and user-friendly.
- Design object-oriented software that utilizes fundamental programming constructs, abstraction, and packages.
- Implement interfaces using the Model-View-Controller (MVC) architecture.
- Enhance Java flexibility with enumeration, casting, interface extension, generics, and the collection framework.
- Handle and map images.
- Deploy applications using Eclipse and Java JAR files.
- Course pdf
Java Programming 4: Java Application Building
Learn to understand of the structure and purposes for many of the classes in the Java API. In-depth experience with user-interfaces, event and exception handling, database connectivity, multiple threads and synchronization will provide you with a toolkit for implementing applications as well as understanding source code of others. Programs designed in the course using Java Threads, Client/Server Sockets, and Database Connectivity provide a solid basis for application building. Upon completion of this course, you will be able to:
- Enhance Graphical User Interfaces in Java using views, frames, panels, and Swing.
- Implement error checking, exception handling, and try/catch clauses to minimize bugs.
- Catch unchecked exceptions and prepare for problems through graceful degradation.
- Create and manipulate threads for concurrent programming.
- Connect with databases using JDBC API factory design patterns and view controllers.
- Document and tag code using Javadoc and API pages.
- Course pdf
Java Programming 5: Distributed Java Applications
Learn to develop a client/server distributed Java application from the ground up. Here you will exercise all of your Java skills to implement a graphical client that communicates with a remote back-end server using XML messages. You will learn the tradeoffs that are common in client/server systems and gain valuable insights into how to design your own distributed, multi-threaded applications. Upon completion of this course, you will be able to:
- Extend your stand-alone Graphical User Interfaces to communicate with a remote server.
- Develop a multi-threaded server that simultaneously supports a number of connected clients.
- Design a protocol using an XML XSD specification.
- Develop client- and server-side controllers that follow the protocol.
- Develop effective JUnit test cases to validate the execution of these controllers.
- Develop a testing framework that maximizes code coverage of JUnit test cases.
- From the very first lab, you will be developing a client/server application, adding new features and functionality with each successive lab. You will learn by following the design and implementation of the application in the lab. Each quiz will validate that you learned the key information and the projects, performed at your pace, will describe useful extensions to the main development of the overall project.
- Course pdf
Java Programming 6: Data Structures and Algorithms
Learn to work with the core data structures and algorithms needed to write efficient code. In many circumstances, the proper answer comes down to choosing the right data structure and implementing the right algorithm. Throughout the course, students are shown how to connect their growing knowledge of data structures with algorithms so they can design their own algorithms effectively. It will cover the core data structures in computer science including fixed arrays, linked lists, maps, queues and dequeues, trees and graphs, and will use existing implementations in the JDK to solve real problems. Upon completion of this course, you will be able to:
- Work effectively with the Java Collections Framework.
- Analyze the performance of your algorithms.
- Demonstrate mastery of core data structures, such as trees, graphs, maps, queues and dequeus.
- Design complex data structures and algorithms based on these core data structures.
- Course pdf
Python 1: Beginning Python
Learn the basics of programming with Python. You will learn about expressions, variables, conditionals, loops, lists, sets, dicts, functions, objects, and exceptions. Upon completion of this course, you will be able to:
- Store and manipulate user-input data using Python.
- Implement basic Python decisions, iteration, sequence containers, sets, and dicts.
- Read and write files using Python.
- Define custom functions and call built-in Python functions.
- Import modules and namespaces from the Python Standard Library.
- Define classes and instantiate objects using Python’s Class mechanism.
- Handle exceptions and document code.
- Build and debug an entire program written in Python.
- Course pdf
Python 2: Getting More Out of Python
Learn more in-depth techniques and strategies for programming with Python. You will get hands-on experience with Python’s modular unit testing features; file handling, storage, and archival; graphical user interfaces; and technologies for working with databases and email. Upon completion of this online Python course, you will be able to:
- Demonstrate understanding of Agile processes and test-driven development.
- Manage files, persistent storage, archives, and serialization.
- Create a Graphical User Interface in Python.
- Design and implement relational databases using Python and SQL.
- Create and send emails from Python programs.
- Build a full-fledged Python database application.
- Course pdf
Python 3: The Python Environment
Learn more high-end techniques and strategies for programming with Python. Upon completion of this course you will be able to:
- Parse command-line arguments and perform string validation.
- Build sophisticated structures such as bunch classes.
- Create your own APIs.
- Enhance your code with iterables, iterators, and generators.
- Manipulate textual data with regular expressions.
- Apply advanced object-oriented programming techniques to Python development.
- Exchange binary data with other languages and systems.
- Configure user setups and log activity.
- Calculate date and time.
- Course pdf
Python 4: Advanced Python
Learn to incorporate further object-oriented design principles and techniques with the intention of rounding out your skill set. Techniques like recursion, composition, and delegation are explained and put into practice through the ever-present test-driven practical work. Upon completion of this course, you will be able to:
- Extend Python code functionality through inheritance, complex delegation, and recursive composition.
- Publish, subscribe, and optimize your code.
- Create advanced class decorators and generators in Python.
- Demonstrate knowledge of Python introspection.
- Apply multi-threading and multiprocessing to Python development.
- Manage arithmetic contexts and memory mapping.
- Demonstrate understanding of the Python community, conferences, and job market.
- Develop a multiprocessing solution to a significant data processing problem.
- Course pdf
- Not sure if this course, but you had to answer a Stackoverflow question, I did this one