Java Bootcamp Training Course

Course Summary

NewCircle's Java™ Bootcamp course serves as an introduction to the Java language and object oriented programming (OOP) in Java. The course provides students with the skills for analyzing, designing, developing, and troubleshooting Java applications.

The participants learn the syntax and the constructs of the Java programming language, the concepts behind object-oriented programming (OOP) with Java, packaging, Java documentation, exception handling, Java libraries (I/O, utilities, networking, JDBC, etc.), concurrent programming with Java threads, and design patterns in Java.

 

Duration [top]

5 days.

Objectives [top]

Upon completion of this course, the students will be able to:

  • Explain what Java is, what it is composed of, how it compares to other programming environments, what its advantages are, and how to install and configure the development environment.
  • Read as well as write Java syntax, including declarations, assignments, operators, flow-control structures, generics, annotations, enumerations, naming conventions, etc.
  • Understand object oriented programming principles, explain how OOP differs from structural programming, and discuss the advantages of OOP
  • Utilize OOP in Java by designing and writing Java classes, encapsulating logic, reusing existing code through inheritance/polymorphism and composition, and modeling real-world relationships between objects
  • Package and organize Java code into classes and libraries (JARs)
  • Read, understand, and write Java code documentation (JavaDoc)
  • Define and handle error conditions in Java through the use of exceptions
  • Leverage Java libraries (I/O, Utilities, Collections, Networking, JDBC, etc.)
  • Analyze and troubleshot complex Java programs
  • Use best-practice design patterns when developing Java code

Audience [top]

Java™ Bootcamp is intended for individuals who wish to learn how to design, build and debug Java applications. This includes software developers, quality assurance engineers, and other individuals with a programming background such as technical managers and system administrators.

Prerequisites [top]

This course assumes students have a programming background, with prior exposure to other structured programming languages such as C or Python. As this course focuses on the advantages of object-oriented style in software engineering, students with recent experience developing and maintaining large software codebases will benefit from this course the most.

Instructors [top]

Photo

Adam Breindel brings over 10 years of successes working with cutting-edge technology for small startups as well as major players in the travel, media/entertainment, financial, productivity, and consulting industries.

In addition to web sites, GUI applications, and mobile device software, Adam has also built high-volume middleware for one of the world's largest banks, and produced a new, modern integration to a 1960s-vintage mainframe app for one of the world's largest airlines.

Adam focuses on designing and coding systems in a way that yields predictable results, leverages best practices and high-productivity tools, minimizes excess code, and is fun to do. He has also spoken at tech conferences, written articles and skill assessments, and produced an open source tool for software development. Adam has enjoyed teaching large and small groups, covering topics from nuts-and-bolts Java programming to merging ideal process with real-world constraints in an organization.

More about Adam Breindel...
Photo

Doug Bateman is the Director of Training at NewCircle, where he oversees the quality and direction of NewCircle’s training offerings.

Doug has delivered over 100 corporate trainings on technologies including Java, Spring, Hibernate, Python, and Android and draws from over 15 years of experience as a professional software architect.

Previously Doug was the director of professional services for The Middleware Company, responsible for training, consulting, and new course development. Some of his notable projects and customers include Cisco, Hotwire.com, HSBC Bank, NASA, and the Florida State water management system.

In his spare time, Doug enjoys sailing and snowboarding.

More about Doug Bateman...
Photo

Gordon Force leads NewCircle as CEO, and brings 25 years of experience as a developer, architect, director and instructor.

Gordon has taught over 50 training courses on technologies like Java, JBoss, JavaEE, Apache, and Spring and Hibernate.

Previously, Gordon led development and application support for ConnectPay and Encompass products at First Data Corporation. He is also a Certified Scrum Master, and holds a B.A. in Business Administration with Area of Concentration in Quantitative Economics.

More about Gordon Force...
Photo

In 1986, at the age of 10, Jacob D. Parr became interested in software development. Just two years later, he began actively programming, and he’s been a developer ever since. As it grew from a hobby and passion, professionally, he’s spent many years in software testing and test automation for companies like Sierra On-Line, ImagiNation Network, and AOL Entertainment.

His career has spanned over 20 years of custom software development for websites, e-commere systems, real-estate specific applications, and enterprise tax consultants (devoting 15 of those years at Sierra Telephone). His background includes Telecommunications, Billing Systems, Service Order Systems, Trouble Ticketing Systems, and Enterprise Integration.

Jacob currently resides in Oakhurst, California with his wife and family. He loves to play practical jokes and in his spare time likes to (you guessed it) work on personal development projects.

More about Jacob Parr...

Outline [top]

About Java

  • History of Java
  • What is Java?
  • Why Java?
  • State of Java today

HelloWorld

  • Installing and configuring Java Virtual Machine (lab)
  • Implementing HelloWorld in Java (lab)
  • Java class/file structure and naming conventions
  • Java keywords and identifiers
  • Compiling and running Java programs
  • Comments in Java code
  • The main() method
  • Installing and configuring the Eclipse IDE

Data Types

  • Declaring and assigning variables
  • Primitive Java types
  • Conversion between types
  • Introduction to arrays and strings

Operators

  • Arithmetic operators - including shortcut operators
  • Relational operators
  • Logical-boolean operators
  • Bitwise operators
  • Assignment operators
  • Additional operators
  • Operator precedence

Flow Control

  • Local variable storage: stack
  • Branching statements: if-else and switch
  • Loop statements: while and for
  • Break and continue statements - including labeled
  • Return statement
  • Lab: Calculator

Object Oriented Programming

  • What is OOP?
  • Why OOP?
  • Class vs. Object
  • OOP in Java: classes, fields, objects, methods
  • Java memory model and garbage collection
  • Static vs. instance data and methods
  • Constructors - including constructor and method overloading
  • Constants
  • Encapsulation through access modifiers
    • Lab: BankAccount
  • Inheritance / in Java
    • Types and subtypes
    • Lab: School
  • Interfaces and abstract classes / in Java
    • Lab: OOP Calculator
  • java.lang.Object: super class of them all
    • Object Equality: equals() and hashCode() methods
    • Converting objects to strings: toString() method
    • Lab: Comparing students

Packaging

  • Reasons for packaging code
  • Packages and sub-packages in Java
  • Protecting package namespace
  • Using packaged code
  • Protecting packaged code
  • Java CLASSPATH
  • Java Archive (JAR)
  • Lab: Packaging

JavaDoc

  • Overview of JavaDoc
  • Java API
  • Defining and generating JavaDoc
  • Lab: Documenting Java code

Exception Handling

  • What are exceptions?
  • Why exceptions?
  • Built-in exceptions
  • Exception life-cycle
  • Handling exceptions
  • Throwing exceptions
  • Exception types: checked vs. unchecked
  • Creating new exceptions
  • Grouping and nesting exceptions
  • Lab: Exceptions

java.lang library (Core Java)

  • Primitive wrappers
  • String and StringBuffer/StringBuilder
  • java.lang.Math
  • java.lang.System
  • Multi-threaded programming in Java

java.io library (I/O in Java)

  • Managing files
  • Byte and character streams
  • Filtered streams
  • Object serialization

java.util library (Collections and Utilities)

  • Collections Framework
    • java.util.Collection
    • java.util.Iterator
    • java.util.List
    • java.util.Set
    • java.util.Queue
    • java.util.Map
  • PRNG in Java: java.util.Random
  • String parsing and matching - including java.util.regex
  • Date, Calendar, TimeZone

java.net library (Java Networking)

  • java.net.InetAddress and java.net.NetworkInterface
  • java.net.URL connections
  • TCP sockets (java.net.Socket and java.net.ServerSocket)

java.sql library (JDBC)

  • Overview of JDBC and its drivers
  • JDBC API: connections, statements, result sets, metadata
  • Using JDBC: updates, queries

Java 5

  • Generics
  • Enhanced for[each] loop
  • Auto boxing and unboxing
  • Typesafe enums
  • Varargs
  • Static imports
  • Annotations (metadata)

Design Patterns

  • What are Design Patterns?
  • Singleton, Factory Method, Abstract Factory
  • Adapter, Composite, Decorator
  • Chain of Responsibility, Observer / Publish-Subscribe, Strategy, Template
  • Data Access Object (DAO)

Additional Notes [top]

About The Platform

This course is typically taught using Eclipse Integrated Development Environment (IDE). Students are shown how to install/setup Eclipse as well as how to utilize its most common features to increase their productivity. If so requested, we can also deliver the training using other IDEs, such as NetBeans, IDEA, JDeveloper, and others.

Graduating from this course will allow students to be immediately productive in supporting and developing Java applications. Fundamentals of Java course is a good preparation for Sun Certified Programmer for Java Platform exam.

Java™ and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc.

NewCircle.com Runs on Java

NewCircle.com is written in Java using Spring and Hibernate frameworks. We deploy it on Apache Tomcat Application Server. Both NewCircle Spark and Apache Tomcat are Java applications and thus run on Java Virtual Machine. Spark uses MySQL database for persistence. Our operating system of choice is Ubuntu Linux, for security and reliability reasons. So we practice what we teach. You will learn from real developers.


Student Testimonials [top]

Material was presented clearly, instructor was well prepared and demonstrated superior knowledge of subject matter.

Matt - Advance Internet, Inc.

Really appreciated the individual computers, the high energy of the instructor, and the selection of examples. Definitely would like to take another course from Martin Folb - he was exceptionally enthusiastic about using Java and had complete command of the topic.

Tom - Xerox

I really enjoyed the class. Neven is a very knowledgeable instructor in Java programming and very clear and patient to answer all my questions. I got good understanding about java language from this class as I am just a C# developer without any java programming experience prior to this class. great class and thank you Neven!!

May - Intel Corporation

The instructor is very knowledgeable and had lot of patience to listen and address students' questions. The class material is comprehensive for this 5 day class covering all the fundamentals

Bhaskar - Intel Corporation

Ken Jones is a strong Java instructor and is able to explain the good and bad aspects of Java.

Rob - RSA The Security Division of EMC

Very good class. Doug is an excellent instructor with extensive knowledge of Java and related technologies!!

Tamal - Intel Corporation

Very Good Class. Instructor is very knowledgeable and able to explain in detail.

Shunmuga - Intel Corporation

Really enjoyed the class and learned a lot. I will definitely be able to apply these new skills.

Paul - Intel Corporation

Great & dedicated teacher - use every single second wisely.

Nooshin - Intel Corporation

I found there was very little that could be done to improve this course, especially given the beginner level, the pace was just right and the amount of material covered was quite broad. I learned a great deal more from this class than I expected, especially given the very short term nature of the course. I really feel I was given a good fundamental understanding of Java. The instructor was clear, concise, worded himself clearly and unambiguously, and rigorously pushed the class to apply good coding practices. I would definitely take this course again if I had to do it over again.

Ignas - Xerox

Excellent class! Neven was responsive to the feedback throughout the week and very knowledgeable on the content. Feel like I have a better foundation in Java to move forward. Thanks Neven!

Michael - Intel Corporation

This is a great "highly condensed" course for person even with little programming background, will look forward to the Advance class soon!

Jeng - Freeflow Hardware

I thought it was a very good class. Good pace and the instructor knew and presented the subject matter very well.

Kirt - Intel Corporation

One of the best Java teacher I have met. Very knowledgable and lot of demo in class.

Dora - GBG/SOLUTIONS/A&PM

Awesome!

Roald - Advance Internet, Inc.

very intensive course but great !!!

Duy - PCDT

Gordon did an excellent job presenting a tremendously large amount of information. Gordon was great at keeping the material clear to understand and presenting how and why the topics are applied in real world situations. I would certainly come back for another class in the future.

Christopher - Thales

Excellent training to get you up to speed on Java syntax and API's. Neven even threw in several real life examples like a multi-threaded server and using a database. Very helpful!

Andy - IT

This was a great class!... The instructor Neven is so thorough in the technical knowledge of the subject & is very sincere/keen about adding value to the participants. He answered all my queries & helped me better understand the things... Thank you!....

Prashant - Intel Corporation

Adam was very knowledgeable of the subject material and a pleasure to deal with.

Raine - Groundspeak Inc.

Excellent course. Knowledgeable instructor. Many thanks...

Mojgan - Xerox

This was a wholesome class, well paced and lots of hands on exercise to do at logical breaks, helping assimilate everything learned. Thanks Neven! it was a great learning experience..

Preethi - Intel Corporation

Best instructor I have ever had! wish he could teach C#. I really like his teaching method AND he didn't rely on just reading the book - he imparted real world experience and industry best practices - VERY NICE!

Brad - Intel Corporation

Very great course. Instructor has phenomenal knowledge of Java and explains everything very well.

Joris - Cisco

The course was very informative and the instructor was excellent. Ken Jones is perhaps the finest instructor I've ever had the pleasure of receiving a training session from. His energy is very effervescent, his knowledge is impressively extensive, and he's great at instantly coming up with analogies and examples to clarify points in students' minds.

Matt - RSA Security

Doug is great, and he definitely made the class by taking the time to go well beyond of "just teaching Java".The detailed discussions provided are extremely helpful for the understanding of not just how to program in Java, but how to be a better programmer overall.

Ana Paula - Intel Corporation

Very good class. Very good instructor (very professional, experienced, clear, ...)

Marino - Cisco

I came into this class with no knowledge & my expectations for myself were *very low*... However I am walking away with a lot more than I bargained for... I actually know something & will hopefully be able to apply it, even if it is just understanding the stack traces better & help writing up better bug reports. I definitely am glad I attended this class & will recommend it to my peers. Ken was both a dynamic & creative instructor & never lost site of the fact that we are people & could only take so much information at one time!! His training was wonderful & his humor helped us all get through 5 full days, that could have been painful if not done well.

Heather - EMC

It was very helpful for the instructor to check with the group about the pace of the class and slow down to review and fully explain concepts covered. I learned looots. Learning about eclipse was unexpected but I am so glad we did. I did not know we could do so much with the tool and have already installed it on my system. Also enjoyed when the instructor explained concepts on the board and where easy to understand.

Monica - Xerox