Almost all of the skills I have acquired came from repeated practice, and mentoring. I got that practice and mentoring "on the job." Reading and studying have value, but nothing beats actually doing.
When you are working for yourself, practicing, or studying, you always get to take the path of least resistance to some extent, because you get to pick some portion of what you want to do, what challenges to solve vs which to go around, what you want to emphasize. It's only by being stuck with someone else's scope and schedule that you really start to convert theory into skills. It's like how you can think you know something until you have to explain it to someone.
So I'd say I learned the theory, and how to learn, in school and on my own, but actually how to apply all of it to make something someone else wants came from work.
This is a major improvement area I see with people coming out of academia (and was a big one for me) - people think that if a project is tough or not working out, they can just change the scope and solve a different problem. And that telling someone who's paying you why their problem is poorly framed is just as helpful as actually solving something. (This is pretty common on forums too)
Tldr, the skill is working on someone else's terms, which in turn gives rise to all sorts of new technical skills.
5 comments
[ 2.8 ms ] story [ 18.7 ms ] threadThat's if you even care about your job. And it's hard.
How to deal with a large code base (> 1,000,000 lines). It's not just 10 times a medium code base.
How to deal with ambiguous requirements.
How to work on software as part of a team.
So I'd say I learned the theory, and how to learn, in school and on my own, but actually how to apply all of it to make something someone else wants came from work.
This is a major improvement area I see with people coming out of academia (and was a big one for me) - people think that if a project is tough or not working out, they can just change the scope and solve a different problem. And that telling someone who's paying you why their problem is poorly framed is just as helpful as actually solving something. (This is pretty common on forums too)
Tldr, the skill is working on someone else's terms, which in turn gives rise to all sorts of new technical skills.