sel-taught software engineer