•
Strong core Java programming skills and a solid understanding of the language and its runtime (including its "garbage collector" and string pool)
•
Able to use an IDE (integrated development environment/code editor), and use that to write/build/run/debug Java programs. e.g. JetBrains IntelliJ IDEA and its debugger is a really good tool choice, and its debugger is really useful.
•
Good programming habits and able to write well-structured, human-readable code. (consistent and following common Java coding standards e.g. https://google.github.io/styleguide/javaguide.html )
•
Able to use and understand the "OO" features of the Java programming language
•
Understanding the underlying concepts and principles behind the "OO" programming paradigm.
•
Understanding of more advanced Java concepts/features including Generics, Reflection, Lambdas, Streams, Threads and Network programming.
•
Able to use many of its core libraries including 'Collections', File I/O, and comfortable with the 'java.util' libraries.
•
Strong computational thinking skills, ability to think algorithmically and understand methods of solving problems computationally
•
Understanding of some core computer science principles around logic, different kinds of data representation, computation, some core O/S skills.
•
Write code which handles errors well, proper 'exception' handling, writes logic which handles "edge-cases" and "corner-cases" properly, code which doesn't fail on bad user input, etc.
•
Able to write automated unit tests in Java. Understand and appreciate the concept of test-driven development (TDD).
•
Have built at least one large, non-trivial app project using Java - possibly using 'Swing' to create a desktop UI. Alternatively using the Android SDK to make an android app. Something equivalent in size and complexity to a computer science undergraduate final-year-project.
•
Know how to use "git" and have hosted a project on GitHub. (Not really about Java but an essential skill for all programmers these days, also really useful to have GitHub to showcase your project/s).
•
Some understanding of Functional programming concepts and principles..
•
Some awareness of software design principles such as 'GRASP' and 'SOLID' as well as some understanding of well-known OO 'design patterns'.
•
Some understanding of SQL and relational databases, able to write a Java project which can use a SQL database
Last reply 3 minutes ago
Official London School of Economics and Political Science 2024 Applicant ThreadLast reply 4 minutes ago
Worried about the acceptance of my A level Qualifications. Need an answerPosted 8 minutes ago
Silver idea digital citizen part three, sanitising a variableLast reply 9 minutes ago
Official Cambridge Postgraduate Applicants 2024 ThreadLast reply 11 minutes ago
Thinking of quitting my apprenticeshipLast reply 12 minutes ago
Latest widget moves to next 'page' too readily.Last reply 13 minutes ago
Official University of Bristol Offer Holders Thread for 2024 entryLast reply 18 minutes ago
Manchester computer science foundation year academic assessmentLast reply 1 month ago
Free website hosting providers with no strings attached?Posted 3 months ago
iDEA silver citizen badge three. Milkshake shack coding problem.Last reply 4 months ago
How do you practice programming java for beginners?Last reply 8 months ago
hows the employment market for tech work in the UK?Last reply 1 month ago
Free website hosting providers with no strings attached?Posted 3 months ago
iDEA silver citizen badge three. Milkshake shack coding problem.Last reply 4 months ago
How do you practice programming java for beginners?Last reply 8 months ago
hows the employment market for tech work in the UK?