Keeping skills sharp

This post is about maintaining skills you learn.

Skills can be lost as well as gained depending on how much we use them.

Python_rps

For example, in the beginning of my OSCP certification I decided to do a Python course as supplemental learning in addition to the what was taught. (Exploit development, and crafting one or two custom tools for enumeration.) It did help a lot and I enjoyed working with the language tremendously.

After passing the certification and carrying on with normal day to day work, the skills I picked up begin to fade. I forgot basic things, mixing Python syntax with BASH’s. Now when I try and code something, I’m looking things up, referencing old code; not a good place to be in.

The solution?

Find an excuse to use you skills in everyday tasks, or even give yourself exercises to do, I stumbled upon a website that suggests excellent fun projects to code. These included simple games and other tools used to do specific tasks.

Here are a few fun Python exercise examples I decided to play with, the first of which is below:

  1. Rock paper scissors
  2. Number guessing game high low.
  3. Password / passphrase generator
  4. Fast network Ping tool

Rock paper scissors project:

My version, it probably needs more work but the basic functionality is there. Forgive the horrible lack of syntax highlighting.

#!/usr/bin/python3 
import random 
import sys 
 
#Defined for display loop. while 
choice=-1 
game_choice = ['Rock', 'Paper', 'Scissors'] 
secure_random = random.SystemRandom() 
 
 
#Print list for display 
def display_choices(): 
 pos=0 
 print('Select one of the options') 
 while pos <= 2 : #for opt in choice : 
 print (pos,game_choice[pos]) 
 pos=pos+1 
 
def compare_choices(c,u): 
 paprock='\nPaper wraps Rock' 
 scispap='\nScissors cut Paper' 
 rockscis='\nRock blunts Scissors' 
 lose='\n---------------You lose!-----------' 
 win='\n~~~~~~~~~~~~~~~~You win!~~~~~~~~~~~~' 
 if u == c : print ('\nIts a draw\n') 
 if u == 'Rock' and c == 'Paper' : print(paprock,lose) 
 elif u == 'Paper' and c == 'Scissors' : print(scispap, lose) 
 elif u == 'Scissors' and c == 'Rock' : print(rockscis, lose) 
 #Winning section 
 elif c == 'Scissors' and u == 'Rock' : print(rockscis,win) 
 elif c == 'Paper' and u == 'Scissors' : print(scispap,win) 
 elif c == 'Rock' and u == 'Paper' : print(paprock,win) 
 
 
while choice != 9: 
 display_choices() 
 ans=input('Choose an option (0,1,2 or 9 to exit): ') 
 choice=int(ans) 
 if choice == 9 : sys.exit() 
 u_choice=game_choice[choice] 
 c_choice=(secure_random.choice(game_choice)) 
 compare_choices(c_choice,u_choice) 
 print('\n') 

Lots of improvements could be done, but it was a fun little project to do and I learned about ‘system.random()’ so it was a learning experience too.

I have a few idea’s of a tool I would like to code, so watch this space as it were. I would encourage anyone to try this and keep their skills sharp. I shall be coding the rest of the list later on and will do small posts with my versions of them. Feel free to comment on how bad my coding is or any tips for improvement!

Thanks for reading and have fun.

GRL_UK