Learning to develop professionally involves a lot more than just writing code. Major required skills include keeping code stable long-term, sharing tasks within a team, and building understandable interfaces so your code can be connected to and run from other programs. Learning these skills is going to involve a lot of mistakes, but fortunately there are tools out there to help you get you ahead of the curve before joining your first team.
Project Management in an agency is a difficult role to prepare for. You need to balance keeping customers happy while making sure that you aren't overpraising, potentially compromising the budget and timeline of a project. Over the years of working with great project managers I have taken note of the following skills and practices that are critical to success as a PM:
Five years ago I decided to make a 180 degree career turn and become a web devloper. At the time I was pretty good at using computers, but I had no programming experience aside from a few vague memories of typing in DOS statements in middle school. I still remember asking the web devloper in our office what CSS was and nodding along as if I understood the answer.