| My approach to teaching Linux and programming leans heavily on using existing resources and ensuring students get a wide base of knowledge before beginning the "exploratory" stage of learning. Start with installing a distro of your choice in a virtualization tool, I always recommend Ubuntu on VMWarePlayer because it was what I started with. Distro/Virtualization Software doesn't matter, what matters is that you use it. Then I have students work through Linux Journey [1] one module at a time, while being available to answer questions as they go. Once a student has finished the LJ modules I have them play the Bandit Over the Wire [2] game up to challenge 15. After that I usually teach Hardware and Operating Systems, but if you are just looking for general ability to do things, skip to the CyberAces Linux modules. [3] Once you have finished those, do the CyberAces Bash Scripting module and the CodeAcademy Python [4] course and you'll have enough scripting ability to be dangerous. From there, just keep using Linux as your daily driver and you will continue to improve, especially if you take on programming projects. All of this can be done by yourself, but I teach a free online course on Computing Fundamentals and Security if you are interested in it being more of a guided experience. [5] [1] https://linuxjourney.com/
[2] http://overthewire.org/wargames/bandit/
[3] https://tutorials.cyberaces.org/tutorials.html
[4] https://www.codecademy.com/learn/learn-python
[5] https://www.hoppersroppers.org/course.html |