This post is part of a series on Java syntax and libraries for solving the problems in each chapter of uHunt, a tool for competitive programming practice. You can find the rest of the posts in the series by visiting my uHunt Java post category. A few months ago, I wrote two posts related to […]
ContinueProfiling Java Programs with VisualVM
Last week, I wrote about ways to improve runtime performance for a Java solution to UVa 732. This week I’m going to cover a process for analyzing Java program performance using the profiling features of the VisualVM Java troubleshooting tool. But first, a note about profiling. As I mentioned last week, even a highly optimized […]
ContinueImplementing a Fast Solution to UVa 732
Programming puzzles are often designed in such a way that getting your solution to complete under the time limit is at least as challenging as getting the correct result. To create such a challenge, a problem setter can adjust the size of the input until sub-optimal solutions no longer run in under the time limit. […]
ContinueThe Problem With Codecademy
I believe in the importance of practicing programming fundamentals, especially through programming puzzles. But puzzle learning works best when you already have some experience with the programming language you’re using to solve them. By prompting you to exercise a core set of programming fundamentals, puzzles help strengthen basic coding skills. To get those basic skills […]
ContinueUnit Testing the Java Class Library
Unit testing is a controversial topic in developer circles. Opinions range from Most Unit Testing is Waste to You are not allowed to write any production code unless it is to make a failing unit test pass. For those on the pro-unit testing side, there are numerous benefits to the practice, especially the test-first variety. […]
ContinueThe Puzzle Approach to Coding Mastery
Programming is a skill that’s easy to start learning. You can head over to a site like Codecademy and get up and running instantly. But once you finish a few introductory courses, it’s not as easy to keep making progress. You need another approach.
ContinueHow to Make Your Job More Interesting
Programming is creative work. Given a problem, you have to find a solution, then explain it to a computer in a way that humans can also understand. But unless you’re working on your own project, you don’t have total creative freedom. You have to use the tools and technologies that your team has selected, and […]
ContinueProving That You Can Juggle Code
Peopleware is one of those books that show up on recommended reading lists for software development managers. Joel Spolsky was recommending it back in 2002. (It was written in 1987 and revised in 1999 and 2013). Chapter 16 (in the 3rd edition) begins with this vignette: Circus Manager: How long have you been juggling? Candidate: […]
ContinueAsking for Advice is Easier than Taking It
We have good options these days for getting answers to programming questions. Stack Overflow provides answers to fact-based questions. They can be targeted questions like How to sort a Collection? or even somewhat speculative questions like Why is there no SortedList in Java? that can be answered factually (does Java provide a list data structure […]
ContinueWhy is Java I/O Slow?
You can read a lot on Quora about the best language to use for competitive programming. Here are some of the points covered by those questions: C and C++ execute quickly, and their macro support can reduce the amount of code that you end up typing in your solution. A language like Java can be […]
Continue