Computer programming is the process of designing and building an executable computer program for accomplishing specific computing task. Programming involves tasks such as: analysis, generating algorithms, profiling algorithms' accuracy and resource consumption, and the implementation of algorithms in a chosen programming language (commonly referred to as coding). The source code of a program is written in one or more languages that are intelligible to programmers, rather than machine code, which is directly executed by the central processing unit. The purpose of programming is to find a sequence of instructions that will automate the performance of a task (which can be as complex as an operating system) on a computer, often for solving a given problem. The process of programming thus often requires expertise in several different subjects, including knowledge of the application domain, specialized algorithms, and formal logic.
Tasks accompanying and related to programming include: testing, debugging, source code maintenance, implementation of build systems, and management of derived artifacts, such as the machine code of computer programs. These might be considered part of the programming process, but often the term software development is used for this larger process with the term programming, implementation, or coding reserved for the actual writing of code. Software engineering combines engineering techniques with software development practices. Reverse engineering is the opposite process. A hacker is any skilled computer expert that uses their technical knowledge to overcome a problem, but it can also mean a security hacker in common language.
Director of Developer Experience at Red Hat
Apache DeltaSpike P.M.C
SCJA / SCJP / SCWCD / SCBCD / SCEA
JBCD / JBCAA
Red Hat Certifications:
OpenShift / Containers / Ansible
SAP Netweaver / ITIL / IBM Software Quality
Video Training: bit.ly/microservicesvideo
Free eBooks from developers.redhat.com
Kubernetes for Java Developers
Why do you want to run your application inside containers?
● Lightweight footprint and minimal overhead,
● Portability across machines,
● Simplify DevOps practices,
● Speeds up Continuous Integration,
● Empower Microservices Architectures.
A way to run a Linux container:
$ docker run -d <image-name>
A single and isolated Linux process
running in a single machine
DevOps challenges for multiple containers
● How to scale?
● How to avoid port conflicts?
● How to manage them in multiple
● What happens if a host has a
● How to keep them running?
● How to update them?
● Where are my containers?
Greek for “Helmsman”; also the root of the word
“Governor” (from latin: gubernator)
● Container orchestrator
● Supports multiple cloud and bare-metal environments
Inspired by Google’s experience with containers
● Open source, written in Go
Manage applications, not machines
Hosted on GitHub