Expand your skilll set: study habits for the working developer

Edited June 8, 2020

In world of software development, where the tools and approaches employed can rapidly change, learning is part of work, though work may not always make time. Below are my notes to students on what to consider when developing a set of compatible study habits:

Survey all commitments, ascertaining the time and energy required of each. An online course on software development, for example, entails completing and absorbing all lessons, as well as possibly interacting with the course community, over a certain number of weeks. Fixed work and family commitments are constants that take precedence over all other commitments. Coursework and other flexible commitments can be scheduled in a manner that maximizes output based on expected energy level.

For example, some find studying more effective at certain times of day (e.g. morning/night), so other flexible commitments can be moved to avail those times. Those who cannot both study and interact in a single sitting may find that the former requires more mental energy than the latter, and accordingly structure study time when energy tends to be greater. Structure may need to be reformulated to accommodate new commitments (e.g. increased work responsibilities) that arise during course enrollment.

Inferences about the interrelationship between energy and output may be drawn, by which to refine daily habits. The effectiveness of habits might be gauged by comparing the quantity and quality of output (e.g. lessons completed and comfort with the material) against different inputs (e.g. sleep early and study before work versus sleep late and study after work). Different inputs to compare aside from scheduling might be diet, exercise, note taking, lecture video viewing speed, hours of sleep, etc. Where to identify the inputs that most significantly impact output could be as much a matter of intuition as of deliberately analyzing previous experiences.

In order to prevent the false sense of security that can come from cramming, ensure that the project as a whole and its constituent parts are understood before moving forward. Lack of clarity in any area might serve as a barometer for where notes would be effective to aid future recall. When inheriting a new project, a generally recommended practice is to open all classes and files, studying the interconnections. This process need not take more than 5 to 10 minutes depending on the project complexity, but patterns from previous projects should be recognizable from which a more refined view of the overall development process can take shape.

Featured Image: Anastasia Shuraeva