About Course Learn how to use Linux to boost your programming productivity and become a more efficient developer. In this comprehensive course, you will learn: The best Linux terminals to use for programming How to use clipboard managers to save time and effort How to use Vim, the most powerful text editor for programmers How to use Zsh and the oh-my-zsh framework to customize your terminal experience Extensive lessons on terminal commands, including how to find and replace text, work with pipes and subshells, and automate tasks And much more! You will also receive access to a repository of scripts and an eBook containing all of the examples and explanations from the course. This course is perfect for programmers who are new to Linux or who want to learn how to use Linux more effectively. Enroll today and start your journey to becoming a more productive programmer with Linux! Here are some of the benefits of learning how to use Linux for programming: Linux is a powerful and flexible operating system that can be customized to meet your specific needs. Linux is also very efficient, which can make a big difference in your productivity, especially when working with large projects. Linux has a wide range of built-in tools and utilities that are designed for programmers, such as the Bash shell, Vim, and Git. Linux is also open source, which means that there is a large community of developers who are constantly contributing to and improving the platform. If you are serious about becoming a more productive programmer, then learning how to use Linux is an essential skill. This course will teach you everything you need to know to get started. Enroll today and start boosting your productivity! What Will You Learn? I'll increase my terminal productivity by using Terminator, Guake and other tools I'll be able to use regular expressions, pipes and subshells and external shell scripting libraries I'll work with files like a vim-fu master I'll increase my command line productivity (by learning how to use sed, find, tmux, network, autoenv and more) I'll be able to launch a webserver, modify images and productively work with Git I'll edit files without leaving the terminal, use the screen space efficiently and copy-paste like a pro All in all: I will double my terminal productivity Course Content Introduction Introduction Terminator- Hasta La Vista Terminal Guake - Not Quake! Clipit- Forget Everything, Paste from History Productive Shells: Reinvent The Way You Work Pre Chapter Vim Oh-my-zsh Your Terminal Never Felt This Good Before! Basic Regular Expressions Pipes and Subshells Your Shell's Salt and Pepper Shell Scripting for Fun and Profit Shell Scripting Libraries Vim Kung Fu Supercharging Vim Keyboard Kung Fu Plugin Steroids for Vim Vim Password Manager Extra- Fast Configuration Restore CLI: The Hidden Recipe Sed - One-Liner Productivity Treasure You Can Run, But You Can't Hide From 'Find' Tmux Virtual Consoles, Background Jobs and The Likes Network Who's Listening Autoenv Set a Lasting, Project-Based Habitat Don't rm The Trash Developers' Treasure On the Spot Webserver Shrinking Spells and Other Image Magic Go With the Git Flow Merge Git Conflicts With Ease From Localhost to Instant DNS JSON Jamming in The New Age No More Mister Nice Guy Closing Chapter Bonus Chapter Terminal Art Bonus Chapter Closing Chapter A course by Bogdan Vaida Experiential Trainer RequirementsYou need to have prior experience in the Linux command lineYou must have access to a Linux/Unix terminalBasic programming skills are recommended (but not required)Some basic shell scripting and web development knowledge make the course easier to understand Audience System administrators Developers who already know the basics of Linux and want to sharpen their skills People working in the Linux command line This course is not for people who are opening a terminal for the first time Audience System administrators Developers who already know the basics of Linux and want to sharpen their skills People working in the Linux command line This course is not for people who are opening a terminal for the first time
Duration 3.5 Days 21 CPD hours This course is intended for This course is aimed at students new to the language who may or may not have experience with other programming languages. Overview Learn how Python works and what it's good for. Understand Python's place in the world of programming languages Learn to work with and manipulate strings in Python. Learn to perform math operations with Python. Learn to work with Python sequences: lists, arrays, dictionaries, and sets. Learn to collect user input and output results. Learn flow control processing in Python. Learn to write to and read from files using Python. Learn to write functions in Python. Learn to handle exceptions in Python. Learn to work with dates and times in Python. In this Python training course by Webucator, Inc, students learn to program in Python. Python Basics Running Python Hello, World! Literals Python Comments Data Types Variables Writing a Python Module print() Function Named Arguments Collecting User Input Getting Help Functions and Modules Defining Functions Variable Scope Global Variables Function Parameters Returning Values Importing Modules Math Arithmetic Operators Modulus and Floor Division Assignment Operators Built-in Math Functions The math Module The random Module Seeding Python Strings Quotation Marks and Special Characters String Indexing Slicing Strings Concatenation and Repetition Common String Methods String Formatting Built-in String Functions Iterables: Sequences, Dictionaries, and Sets Definitions Sequences Unpacking Sequences Dictionaries The len() Function Sets *args and **kwargs Flow Control Conditional Statements The is and is not Operators Python's Ternary Operator Loops in Python The enumerate() Function Generators List Comprehensions File Processing Opening Files The os and os.path Modules Exception Handling Wildcard except Clauses Getting Information on Exceptions The else Clause The finally Clause Using Exceptions for Flow Control Exception Hierarchy Dates and Times Understanding Time The time Module The datetime Module Running Python Scripts from the Command Line The sys Module sys.argv
Duration 3 Days 18 CPD hours This course is intended for Java Fundamentals is designed for tech enthusiasts who are familiar with some programming languages and want a quick introduction to the most important principles of Java. Overview After completing this course, you will be able to: Create and run Java programs Use data types, data structures, and control flow in your code Implement best practices while creating objects Work with constructors and inheritance Understand advanced data structures to organize and store data Employ generics for stronger check-types during compilation Learn to handle exceptions in your code Since its inception, Java has stormed the programming world. Its features and functionalities provide developers with the tools needed to write robust cross-platform applications. Java Fundamentals introduces you to these tools and functionalities that will enable you to create Java programs. The course begins with an introduction to the language, its philosophy, and evolution over time, until the latest release. You'll learn how the javac/java tools work and what Java packages are - the way a Java program is usually organized. Once you are comfortable with this, you'll be introduced to advanced concepts of the language, such as control flow keywords. You'll explore object-oriented programming and the part it plays in making Java what it is. In the concluding lessons, you'll be familiarized with classes, typecasting, and interfaces, and understand the use of data structures, arrays, strings, handling exceptions, and creating generics. Introduction to Java The Java Ecosystem Our First Java Application Packages Variables, Data Types, and Operators Variables and Data Types Integral Data Types Type casting Control Flow Conditional Statements Looping Constructs Object-Oriented Programming Object-Oriented Principles Classes and Objects Constructors The this Keyword Inheritance Overloading Constructor Overloading Polymorphism and Overriding Annotations References OOP in Depth Interfaces Typecasting The Object Class Autoboxing and Unboxing Abstract Classes and Methods Data Structures, Arrays, and Strings Data Structures and Algorithms Strings The Java Collections Framework and Generics Reading Data from Files The Java Collections Framework Generics Collection Advanced Data Structures in Java Implementing a Custom Linked List Implementing Binary Search Tree Enumerations Set and Uniqueness in Set Exception Handling Motivation behind Exceptions Exception Sources Exception Mechanics Best Practices
Duration 2 Days 12 CPD hours This course is intended for This course is designed for people who want to learn the Python programming language in preparation for using Python to develop software for a wide range of applications, such as data science, machine learning, artificial intelligence, and web development. Overview In this course, you will develop simple command-line programs in Python. You will: Set up Python and develop a simple application. Declare and perform operations on simple data types, including strings, numbers, and dates. Declare and perform operations on data structures, including lists, ranges, tuples, dictionaries, and sets. Write conditional statements and loops. Define and use functions, classes, and modules. Manage files and directories through code. Deal with exceptions. Though Python has been in use for nearly thirty years, it has become one of the most popular languages for software development, particularly within the fields of data science, machine learning, artificial intelligence, and web development?all areas in which Python is widely used. Whether you're relatively new to programming, or have experience in other programming languages, this course will provide you with a comprehensive first exposure to the Python programming language that can provide you with a quick start in Python, or as the foundation for further learning. You will learn elements of the Python 3 language and development strategies by creating a complete program that performs a wide range of operations on a variety of data types, structures, and objects, implements program logic through conditional statements and loops, structures code for reusability through functions, classes, and modules, reads and writes files, and handles error conditions. Lesson 1: Setting Up Python and Developing a Simple Application Topic A: Set Up the Development Environment Topic B: Write Python Statements Topic C: Create a Python Application Topic D: Prevent Errors Lesson 2: Processing Simple Data Types Topic A: Process Strings and Integers Topic B: Process Decimals, Floats, and Mixed Number Types Lesson 3: Processing Data Structures Topic A: Process Ordered Data Structures Topic B: Process Unordered Data Structures Lesson 4: Writing Conditional Statements and Loops in Python Topic A: Write a Conditional Statement Topic B: Write a Loop Lesson 5: Structuring Code for Reuse Topic A: Define and Call a Function Topic B: Define and Instantiate a Class Topic C: Import and Use a Module Lesson 6: Writing Code to Process Files and Directories Topic A: Write to a Text File Topic B: Read from a Text File Topic C: Get the Contents of a Directory Topic D: Manage Files and Directories Lesson 7: Dealing with Exceptions Topic A: Handle Exceptions Topic B: Raise Exceptions
Duration 4 Days 24 CPD hours This course is intended for This course is appropriate for anyone who wants to create applications or modules to automate and simplify common tasks with Perl. Overview Working within in an engaging, hands-on learning environment, guided by our expert web development, PHP practitioner, students will learn to: Create a working script that gets input from the command line, the keyboard, or a file Use arrays to store and process data from files Create formatted reports Use regular expressions Use the appropriate types of variables and data structures Refactor duplicate code into subroutines and modules What is available in the standard library Use shortcuts and defaults, and what they replace Introduction to Perl Programming Essentials is an Introductory-level practical, hands-on Perl scripting training course that guides the students from the basics of writing and running Perl scripts to using more advanced features such as file operations, report writing, the use of regular expressions, working with binary data files, and using the extensive functionality of the standard Perl library. Students will immediately be able to use Perl to complete tasks in the real world. Session: An Overview of Perl What is Perl? Perl is compiled and interpreted Perl Advantages and Disadvantages Downloading and Installing Perl Which version of Perl Getting Help Session: Creating and running Perl Programs Structure of a Perl program Running a Perl script Checking syntax and warnings Execution of scripts under Unix and Windows Session: Basic Data and I/O Numeric and Text literals Math operators and expressions Scalar variables Default values Writing to standard output Command line arguments Reading from the standard input Session: Logic and Loops About flow control The if statement and Boolean values Using unless and elsif Statement modifiers warn() and die() The conditional construct Using while loop and its variants Using the for loop Exiting from loops Session: Lists and Arrays The list data type Accessing array elements Creating arrays List interpolation Arrays and memory Counting elements Iterating through an array List evaluation Slices and ranges Session: Reading and writing text files File I/O Overview Opening a file Reading text files Writing to a text file Arrays and file I/O Using the <> operator Session: List functions Growing and shrinking arrays The split() function Splitting on whitespace Assigning to literal lists The join() function The sort() function Alternate sort keys Reversing an array Session: Formatting output Using sprintf() and printf() Report formatting overview Defining report formats The write() function Advanced filehandle magic Session: Hashes Hash overview Creating hashes Hash attributes Traversing a hash Testing for existence of elements Deleting hash elements Session: References What is a reference? The two ways to create references References to existing data References to anonymous data Dereferencing scalar, array, and ash references Dereferencing elements of arrays and hashes Multidimensional arrays and other data structures Session: Text and Regular Expressions String length The substr() function The index() and rindex() functions String replication Pattern matching and substitution Regular expressions Session: Raw file and data access Opening and closing raw (binary) files Reading raw data Using seek() and tell() Writing raw data Raw data manipulation with pack() and unpack() Session: Subroutines and variable scope Understanding packages Package and Lexical variables Localizing builtin variables Declaring and calling subroutines Calling subroutines Passing parameters and returning values Session: Working with the operating system Determining current OS Environment variables Running external programs User identification Trapping signals File test operators Working with files Time of day Session: Shortcuts and defaults Understanding $_ shift() with no array specified Text file processing Using grep() and Using map() Command-line options for file processing Session: Data wrangling Quoting in Perl Evaluating arrays Understanding qw( ) Getting more out of the <> operator Read ranges of lines Using m//g in scalar context The /o modifier Working with embedded newlines Making REs more readable Perl data conversion Session: Using the Perl Library The Perl library Old-style library files Perl modules Modules bundled with Perl A selection of modules Getting modules from ActiveState Getting modules from CPAN Using Getopt::Long Session: Some Useful Tools Sending and receiving files with Net::FTP Using File::Find to search for files and directories Grabbing a Web page Some good places to find scripts Perl man pages for more information Zipping and unzipping files
Duration 5 Days 30 CPD hours This course is intended for Experienced Programmers and Systems Administrators. Overview Throughout the course students will be led through a series of progressively advanced topics, where each topic consists of lecture, group discussion, comprehensive hands-on lab exercises, and lab review. This course is ?skills-centric?, designed to train attendees in core Python and web development skills beyond an intermediate level, coupling the most current, effective techniques with best practices. Working within in an engaging, hands-on learning environment, guided by our expert Python practitioner, students will learn to: ? Create working Python scripts following best practices ? Use python data types appropriately ? Read and write files with both text and binary data ? Search and replace text with regular expressions ? Get familiar with the standard library and its work-saving modules ? Use lesser-known but powerful Python data types ? Create 'real-world', professional Python applications ? Work with dates, times, and calendars ? Know when to use collections such as lists, dictionaries, and sets ? Understand Pythonic features such as comprehensions and iterators ? Write robust code using exception handling An introductory and beyond-level practical, hands-on Python training course that leads the student from the basics of writing and running Python scripts to more advanced features. An Overview of Python What is python? 1 -- An overview of Python What is python? Python Timeline Advantages/Disadvantages of Python Getting help with pydoc The Python Environment Starting Python Using the interpreter Running a Python script Python scripts on Unix/Windows Editors and IDEs Getting Started Using variables Built-in functions Strings Numbers Converting among types Writing to the screen Command line parameters Flow Control About flow control White space Conditional expressions Relational and Boolean operators While loops Alternate loop exits Sequences About sequences Lists and list methods Tuples Indexing and slicing Iterating through a sequence Sequence functions, keywords, and operators List comprehensions Generator Expressions Nested sequences Working with files File overview Opening a text file Reading a text file Writing to a text file Reading and writing raw (binary) data Converting binary data with struct Dictionaries and Sets About dictionaries Creating dictionaries Iterating through a dictionary About sets Creating sets Working with sets Functions Defining functions Parameters Global and local scope Nested functions Returning values Sorting The sorted() function Alternate keys Lambda functions Sorting collections Using operator.itemgetter() Reverse sorting Errors and Exception Handling Syntax errors Exceptions Using try/catch/else/finally Handling multiple exceptions Ignoring exceptions Modules and Packages The import statement Module search path Creating Modules Using packages Function and Module aliases Classes About o-o programming Defining classes Constructors Methods Instance data Properties Class methods and data Regular Expressions RE syntax overview RE Objects Searching and matching Compilation flags Groups and special groups Replacing text Splitting strings The standard library The sys module Launching external programs Math functions Random numbers The string module Reading CSV data Dates and times Working with dates and times Translating timestamps Parsing dates from text Formatting dates Calendar data Working with the file system Paths, directories, and filenames Checking for existence Permissions and other file attributes Walking directory trees Creating filters with fileinput Using shutil for file operations 17 ? Advanced data handling Defaultdict and Counter Prettyprinting data structures Compressed archives (zip, gzip, tar, etc.) Persistent data Advanced data handling Defaultdict and Counter Prettyprinting data structures Compressed archives (zip, gzip, tar, etc.) Persistent data Network services Grabbing web content Sending email Using SSH for remote access Using FTP Writing real-life applications Parsing command-line options Detecting the current platform Trapping signals Implementing logging Python Timeline Advantages/Disadvantages of Python Getting help with pydoc
Duration 5 Days 30 CPD hours This course is intended for This introductory-level Python course is geared for experienced users who want to use Python in web development projects, or system administrators and web site administrators who want to use Python to support their server installations, as well as anyone else who wants to automate or simplify common tasks with the use of Python scripts. Basic familiarity with any programming or scripting language would be helpful, along with a working, user-level knowledge of Unix/Linux, Mac, or Windows. Overview This course is approximately 50% hands-on, combining expert lecture, real-world demonstrations and group discussions with machine-based practical labs and exercises. Our engaging instructors and mentors are highly experienced practitioners who bring years of current 'on-the-job' experience into every classroom. Throughout the hands-on course students, will learn to write essential Python scripts using the most current and efficient skills and techniques. Working in a hands-on learning environment, guided by our expert team, attendees will learn to: Create working Python scripts following best practices Use python data types appropriately Read and write files with both text and binary data Search and replace text with regular expressions Get familiar with the standard library and its work-saving modules Use lesser known but powerful Python data types Create 'real-world', professional Python applications Work with dates, times, and calendars Know when to use collections such as lists, dictionaries, and sets Understand Pythonic features such as comprehensions and iterators Write robust code using exception handling Mastering Python Programming is an introductory and beyond-level practical, hands-on Python training course that leads the student from the basics of writing and running Python scripts to more advanced features such as file operations, regular expressions, working with binary data, and using the extensive functionality of Python modules. Extra emphasis is placed on features unique to Python, such as tuples, array slices, and output formatting. This comprehensive, practical course provides an in-depth exploration of working with the programming language, not an academic overview of syntax and grammar. Students will immediately be able to use Python to complete tasks in the real world. An overview of Python What is python? Python Timeline Advantages/Disadvantages of Python Getting help with pydoc The Python Environment Starting Python Using the interpreter Running a Python script Python scripts on Unix/Windows Editors and IDEs Getting Started Using variables Builtin functions Strings Numbers Converting among types Writing to the screen Command line parameters Flow Control About flow control White space Conditional expressions Relational and Boolean operators While loops Alternate loop exits Array types About array types (AKA sequences) Lists and list methods Tuples Indexing and slicing Iterating through a sequence Nested sequences Sequence functions, keywords, and operators List comprehensions Generator Expressions Working with files File overview Opening a text file Reading a text file Writing to a text file Reading and writing raw (binary) data Converting binary data with struct Dictionaries and Sets About dictionaries Creating dictionaries Iterating through a dictionary About sets Creating sets Working with sets Functions Defining functions Parameters Global and local scope Nested functions Returning values Sorting The sorted() function Alternate keys Lambda functions Sorting collections Using operator.itemgetter() Reverse sorting Errors and Exception Handling Syntax errors Exceptions Using try/catch/else/finally Handling multiple exceptions Ignoring exceptions Modules and Packages The import statement Module search path Creating Modules Using packages Function and Module aliases An Introduction to Python Classes About o-o programming Defining classes Constructors Methods Instance data Properties Class methods and data Regular Expressions RE syntax overview RE Objects Searching and matching Compilation flags Groups and special groups Replacing text Splitting strings Using the Standard Library The sys module Launching external programs Math functions Random numbers Reading CSV data Dates and Times Working with dates and times Translating timestamps Parsing dates from text Formatting dates Calendar data Working with the File System Paths, directories, and filenames Checking for existence Permissions and other file attributes Walking directory trees Creating filters with fileinput Using shutil for file operations Advanced Data Handling Defaultdict and Counter Prettyprinting data structures Compressed archives (zip, gzip, tar, etc.) Persistent data Network Programming Using requests Grabbing web content Sending email Using SSH for remote access Using FTP Writing real-life applications Reading input files a la Unix Parsing command-line options Detecting the current platform Implementing logging Additional course details: Nexus Humans Mastering Python Programming (TTPS4820) training program is a workshop that presents an invigorating mix of sessions, lessons, and masterclasses meticulously crafted to propel your learning expedition forward. This immersive bootcamp-style experience boasts interactive lectures, hands-on labs, and collaborative hackathons, all strategically designed to fortify fundamental concepts. Guided by seasoned coaches, each session offers priceless insights and practical skills crucial for honing your expertise. Whether you're stepping into the realm of professional skills or a seasoned professional, this comprehensive course ensures you're equipped with the knowledge and prowess necessary for success. While we feel this is the best course for the Mastering Python Programming (TTPS4820) course and one of our Top 10 we encourage you to read the course outline to make sure it is the right content for you. Additionally, private sessions, closed classes or dedicated events are available both live online and at our training centres in Dublin and London, as well as at your offices anywhere in the UK, Ireland or across EMEA.
Duration 5 Days 30 CPD hours This course is intended for This course is intended for individuals who are Java programmers and have worked with databases and with object-oriented programming techniques, who are now ready to create more complex and advanced programs using Java SE 7. Overview Upon successful completion of this course, students will be able to: - create and manage custom classes. - control program flow by writing code to respond to specific criteria. - implement object-oriented programming techniques to create reusable and reliable programs. - work with Java utility class libraries. - use the capabilities of the Java I/O package to read and write data to external files or media. - use collection APIs in Java to manage data. - use generics to enforce compile-time type checking. - use multi-threaded programs to help handle multiple tasks concurrently. - manage Java applications for memory efficiency and create distributable versions of a Java application. Students will work with advanced features of Java. Working with Classes Create Classes Create Variables Write an Expression Work with Arrays Work with Static Class Members Define Methods Use Enumerated Data Types Controlling Program Flow Work with Conditional Statements Work with Looping Statements Handle Exceptions Handle Chained Exceptions Write and Enable Assertions Implementing Object-Oriented Programming Concepts Extend a Class Overload and Override Methods Work with Interfaces Create Inner Classes Examine Object-Oriented Design Concepts Working with Java Utility Class Libraries Work with Strings Format and Parse Strings Work with Dates, Numbers, and Currencies Using the Java I/O Package Work with the File Class Work with Byte Streams Work with Character Streams Read Files Write to a File Manipulate I/O Objects Using Collections Work with the Collection Interface Work with the Set Collection Work with List Collections Work with Queues Work with the Map Collection Work with Collection Utilities Working with Generics Declare Generics Implement Generics Using Multi-Threaded Programs Create a Multi-Threaded Program Synchronize Threads Managing Java Applications Implement Garbage Collection Deploy a Java Application Additional course details: Nexus Humans Java Programming (Java SE 7) training program is a workshop that presents an invigorating mix of sessions, lessons, and masterclasses meticulously crafted to propel your learning expedition forward. This immersive bootcamp-style experience boasts interactive lectures, hands-on labs, and collaborative hackathons, all strategically designed to fortify fundamental concepts. Guided by seasoned coaches, each session offers priceless insights and practical skills crucial for honing your expertise. Whether you're stepping into the realm of professional skills or a seasoned professional, this comprehensive course ensures you're equipped with the knowledge and prowess necessary for success. While we feel this is the best course for the Java Programming (Java SE 7) course and one of our Top 10 we encourage you to read the course outline to make sure it is the right content for you. Additionally, private sessions, closed classes or dedicated events are available both live online and at our training centres in Dublin and London, as well as at your offices anywhere in the UK, Ireland or across EMEA.
Duration 3 Days 18 CPD hours This course is intended for If you have worked in C++ but want to learn how to make the most of this language, especially for large projects, this course is for you. Overview By the end of this course, you'll have developed programming skills that will set you apart from other C++ programmers. After completing this course, you will be able to: Delve into the anatomy and workflow of C++ Study the pros and cons of different approaches to coding in C++ Test, run, and debug your programs Link object files as a dynamic library Use templates, SFINAE, constexpr if expressions and variadic templates Apply best practice to resource management This course begins with advanced C++ concepts by helping you decipher the sophisticated C++ type system and understand how various stages of compilation convert source code to object code. You'll then learn how to recognize the tools that need to be used in order to control the flow of execution, capture data, and pass data around. By creating small models, you'll even discover how to use advanced lambdas and captures and express common API design patterns in C++. As you cover later lessons, you'll explore ways to optimize your code by learning about memory alignment, cache access, and the time a program takes to run. The concluding lesson will help you to maximize performance by understanding modern CPU branch prediction and how to make your code cache-friendly. Anatomy of Portable C++ Software Managing C++ Projects Writing Readable Code No Ducks Allowed ? Types and Deduction C++ Types Creating User Types Structuring our Code No Ducks Allowed ? Templates and Deduction Inheritance, Polymorphism, and Interfaces Templates ? Generic Programming Type Aliases ? typedef and using Class Templates No Leaks Allowed ? Exceptions and Resources Exceptions in C++ RAII and the STL Move Semantics Name Lookup Caveat Emptor Separation of Concerns ? Software Architecture, Functions, and Variadic Templates Function Objects and Lambda Expressions Variadic Templates The Philosophers' Dinner ? Threads and Concurrency Synchronous, Asynchronous, and Threaded Execution Review Synchronization, Data Hazards, and Race Conditions Future, Promises, and Async Streams and I/O File I/O Implementation Classes String I/O Implementation I/O Manipulators Making Additional Streams Using Macros Everybody Falls, It's How You Get Back Up ? Testing and Debugging Assertions Unit Testing and Mock Testing Understanding Exception Handling Breakpoints, Watchpoints, and Data Visualization Need for Speed ? Performance and Optimization Performance Measurement Runtime Profiling Optimization Strategies Cache Friendly Code
Duration 5 Days 30 CPD hours This course is intended for In order to be successful in this course you should have incoming hands-on experience with another programming language. This course is not for non-developers or new developers. Possible roles that may attend this course include: Software Developers: Professionals who have been working with other programming languages and want to expand their skillset by learning Java and its object-oriented features. Web Developers: Those who work on web applications and want to enhance their back-end development capabilities with Java. Mobile App Developers: Developers who wish to enter the world of Android app development, where Java is a widely used language for creating mobile applications. Overview This 'skills-centric' course is about 50% hands-on lab and 50% lecture, designed to train attendees in core OO coding and Java development skills, coupling the most current, effective techniques with the soundest industry practices. Our engaging instructors and mentors are highly experienced practitioners who bring years of current 'on-the-job' experience into every classroom. Working in a hands-on learning environment, guided by our expert team, attendees will learn to: Understand what OO programming is and what the advantages of OO are in today's world Work with objects, classes, and OO implementations Understand the basic concepts of OO such as encapsulation, inheritance, polymorphism, and abstraction Understand not only the fundamentals of the Java language, but also its importance, uses, strengths and weaknesses Understand the basics of the Java language and how?it relates to OO programming and the Object Model Learn to use Java exception handling Understand and use classes, inheritance and polymorphism Understand and use collections, generics, autoboxing, and enumerations Become familiar with the concept of functional programming using Lambda Expressions Process large amounts of data using the Stream API introduced in Java 8 Discover the new Date/Time API Use the JDBC API for database access Work with annotations Take advantage of the Java tooling that is available with the programming environment being used in the class Java 8 Features: Lambda Expressions, Method and Constructor references, The Streams API, Collectors, The Optional class Geared for experienced developers, Basic Java Programming for Developers New to OO, this hands-on, workshop-style course will provide you with an immersive learning experience that will expand your skillset and open doors to new opportunities within the ever-growing technology landscape. Mastering Java and its powerful capabilities will provide you with the competitive edge you need to stand out in today's fast-paced development world. Working in a hands-on learning environment led by our expert coach, you?ll thoroughly explore the foundations of the Java platform, essential programming concepts, and advanced topics, ensuring you acquire a strong understanding of the language and its ecosystem. The object-oriented programming principles taught in this course promote code reusability and maintainability, enabling you to streamline development processes and reduce long-term costs. As you progress through the course, you will also gain familiarity with using an IDE, enhancing your development workflow and collaboration with other Java developers, enabling you to integrate seamlessly into new projects and teams. You?ll also gain practical experience in applying the concepts and techniques learned, solidifying your newly acquired skills and facilitating their direct application in real-world scenarios. You?ll exit this course empowered to create robust, scalable, and efficient Java-based applications that drive innovation and growth for your organization The Java Platform The Java Platform Lifecycle of a Java Program Responsibilities of JVM Documentation and Code Reuse Using the JDK Explain the JDK?s file structure Use the command line compiler to compile a Java class Use the command line Java interpreter to run a Java application class The IntelliJ Paradigm Introduce the IntelliJ IDE The Basics of the IntelliJ interface IntelliJ Projects and Modules Creating and running Java applications Writing a Simple Class Write a Java class that does not explicitly extend another class Define instance variables for a Java class Create object instances Primitives vs Object References Implement a main method to create an instance of the defined class Adding Methods to the Class Write a class with accessor methods to read and write instance variables Write a constructor to initialize an instance with data Write a constructor that calls other constructors of the class to benefit from code reuse Use the this keyword to distinguish local variables from instance variables Object-Oriented Programming Real-World Objects Classes and Objects Object Behavior Methods and Messages Inheritance, Abstraction, and Polymorphism Encapsulation Inheritance Method Overriding Polymorphism Essential Java Programming Essential Java Programming Language Statements Arithmetic operators Operators to increment and decrement numbers Comparison operators Logical operators Return type of comparison and logical operators Use for loops Switch Expressions Switch Expressions and yield Using Strings and Text Blocks Create an instance of the String class Test if two strings are equal Get the length of a string Parse a string for its token components Perform a case-insensitive equality test Build up a string using StringBuffer Contrast String, StringBuffer,and StringBuilder Compact Strings Text Blocks Specializing in a Subclass Constructing a class that extends another class Implementing equals and toString Writing constructors that pass initialization data to parent constructor Using instanceof to verify type of an object reference Pattern matching for instanceof Overriding subclass methods Safely casting references to a more refined type Fields and Variables Discuss Block Scoping Rules Distinguish between instance variables and method variables within a method Explain the difference between the terms field and variable List the default values for instance variables Final and Static fields and methods Local Variable type inference Using Arrays Declaring an array reference Allocating an array Initializing the entries in an array Writing methods with a variable number of arguments Records Data Objects in Java Introduce records as carrier of immutable data Defining records Java Packages and Visibility Use the package keyword to define a class within a specific package Discuss levels of accessibility/visibility Using the import keyword to declare references to classes in a specific package Using the standard type naming conventions Visibility in the Java Modular System Correctly executing a Java application class The Java modular system Defining Modules Inheritance and Polymorphism Write a subclass with a method that overrides a method in the superclass Group objects by their common supertype Utilize polymorphism Cast a supertype reference to a valid subtype reference Use the final keyword on methods and classes to prevent overriding Interfaces and Abstract Classes Define supertype contracts using abstract classes Implement concrete classes based on abstract classes Define supertype contracts using interfaces Implement concrete classes based on interfaces Explain advantage of interfaces over abstract classes Explain advantage of abstract classes over interfaces Static, default and private methods in interfaces Sealed classes Introduce Sealed classes The sealed and permits modifiers Sealed Interfaces Exception Handling Introduction to Exception Handling Introduce the Exception architecture Defining a try/catch blocks Checked vs Unchecked exceptions Exceptions Defining your own application exceptions Automatic closure of resources Suppressed exceptions Handling multiple exceptions in one catch Helpful Nullpointers Enhanced try-with-resources Java Developer's Toolbox Developing applications Introduce the wrapper classes Explain Autoboxing and Unboxing Converting String representations of primitive numbers into their primitive types Defining Enumerations Using static imports Deprecating methods Advanced Java Programming Introduction to Generics Generics and Subtyping Bounded Wildcards Generic Methods Legacy Calls To Generics When Generics Should Be Used Lambda Expressions and Functional Interface Understanding the concept of functional programming Writing lambda expressions Understanding functional interfaces Collections Provide an overview of the Collection API Review the different collection implementations (Set, List and Queue) Explore how generics are used with collections Examine iterators for working with collections Using Collections Collection Sorting Comparators Using the Right Collection Lambda expressions in Collections Bonus Topics: Time Permitting Streams Understanding the problem with collections in Java Thinking of program solutions in a declarative way Use the Stream API to process collections of data Understand the difference between intermediate and terminal stream operations Filtering elements from a Stream Finding element(s) within a Stream Collecting the elements from a Stream into a List takeWhile and dropWhile intermediate operations Collectors Using different ways to collect the items from a Stream Grouping elements within a stream Gathering statistics about numeric property of elements in a stream