I'm about to graduate from college and have been contemplating about this question a lot lately, especially in regards to specific languages/frameworks (ruby/rails in my case)
I know that I'm not that most raw-engineering talented, but I believe I have dabbled a lot with web development (full-stack and again, Rails) that should give me a significant competitive advantage, so i was curious:
How do you specify/categorize junior/senior developers? Is it production-experience, language/framework knowledge, knowing best-practices or just raw engineering talent?
- Requirements gathering
- Customer interaction
- "Managing upwards" (dealing with PMs, product people, designers)
- Estimation and planning
- Becoming a team player (Most college students only do a few, short-term group projects. This does not adequately prepare graduates for tight-knit teams in a professional setting.)
Anyone with a little bit of coding background can learn rails in a few days. The hard-won assets are all "soft skills:" professionalism, teamwork, planning. As far as I know, there's no substitute for real industry experience. (It would be awful nice if there were!)