I'm a marine engineer working on a ship, and I may have several free evenings during a voyage. I'll have at least four months available and would like to use that time to learn something new, either for work or simply as a useful hobby.
I've considered improving my Excel skills, but I've also wanted to learn a programming language so I can build small tools, automate tasks, create bots, or make simple graphical applications. I studied some Python at university and remember the basics, although I'm open to other options if there's a better fit.
Since I may not have an internet connection while at sea, I'd also appreciate recommendations for offline books, courses, documentation, and Python libraries I can download in advance. What learning path and projects would you suggest?
4 Answers
I’d return to Python rather than start over with a different language. You already have some familiarity with it, and it matches the projects you mentioned, including automation, bots, spreadsheet work, and small desktop apps.
A practical resource is *Automate the Boring Stuff with Python*. It starts with the fundamentals and then moves into useful tasks such as manipulating files and working with spreadsheets. After refreshing the basics, choose one small project you would genuinely use, such as a file organizer, calculator, expense tracker, or simple bot. Build the basic version first, then improve it as you learn. For a graphical interface, Tkinter is included with standard Python and is a good place to start.
For offline study, download the book or course material, Python’s documentation, and the documentation for any libraries you plan to use. Useful beginner libraries include `openpyxl` for Excel files, `pathlib` and `shutil` for file management, `requests` for web APIs when you have connectivity, and Tkinter for basic desktop interfaces. You can also download the packages and their dependencies beforehand with pip so you are not relying on an internet connection at sea.
One alternative worth considering is ladder logic. Programmable logic controllers are common in industrial environments, and this could potentially connect more directly with ship systems depending on your responsibilities and the equipment you work with. It is a more specialized direction than Python, but it may be valuable if you become interested in automation or control systems.
Since you already know some Python, spend more time building than watching tutorials. A four-month plan could be: refresh variables, loops, functions, and data structures; learn to read and write files; work with CSV or Excel data; then finish a small project from start to finish.
You could make a personal expense tracker, a tool that sorts downloaded files, a maintenance log, or a simple desktop utility. Keep the first version command-line based so you understand the logic, then add a GUI later. That approach gives you something usable while steadily introducing new concepts.
That makes sense. I’d like to bring a few structured learning materials with me, but I’ll make sure the main goal is completing a project rather than just collecting tutorials.
Excel is still worth learning alongside Python, especially if you regularly handle tables, logs, or reports. Python can complement it rather than replace it: you can use `openpyxl` to generate or edit workbooks and automate repetitive spreadsheet tasks. That gives you a practical reason to learn programming while improving a skill that is useful in many engineering roles.

Thanks, I’ve already downloaded a copy of *Automate the Boring Stuff*. I’ll also prepare the Python and library documentation and try to bring the packages with me before leaving.