This concept has been bothering me lately. I've been working on a project for a few weeks and part of it took me a lot of trial and error(a week) to find a solution that took me 5 minutes to write. Did I waste that week?
You have an idea--I make that idea work while we're on the phone. Slow devs have six layers of red tape between their code editor and the production server (version control, dev servers, prebuilds...) and they call that agile.
Fast devs keep it simple.
Fast devs are not afraid of their code, they know what to do. Code works the first time, most of the time. That's a good feeling. With experience, you're confident, most changes are easy and predictable.
One day they won't. I guarantee it.
If you deliver, your monitoring systems will roll back if problems are detected. I'd strongly recommend you put at least one layer of "controls" between you and production ... agile (to me) is the lack of BDUF ("architect astronaut") but does not advocate "cowboy coding".
From side projects, to enterprise, to my own start up, Git has saved my butt more than once.
1. git blame 2. git log (to re-assert where I left off, among other things) 3. git diff before a commit helping me to remember to remove test/debug code 4. github/gitlab etc search features occasionally
I wouldn't dream of going back to a non-git workflow.
PS: less/sass are cool. not necessarily time-savers but they make nice, clean css source.
I've been told I'm a "fast" developer. I'm still unclear about what it means. To me, it seems as though they really mean "You say what you mean and you do what you say" or "You meet deadlines, don't bullshit and don't overbill".
Don't worry about what other people say. Focus on you - the rest will come.
Don't worry about speed, focus on effectiveness.
The trial and error thing - next time see if people can help you either in your team or getting answers online etc. That may reduce the time spent in trial and error but sometimes it is unavoidable.
You can only make a comparison of speed if you compare developers on the basis of equal robustness, efficiency, reusability, etc.
Once you get on top of the learning curve with any given set of tools, libraries, etc - you would expect to become progressively quicker. But as you have experienced, the learning part can take a lot of time. Assuming that your eventual solution is better (on whatever criteria are important to the given project) than the quicker alternatives then the learning was worth it.
Even if you are working on your own pet project, get off the computer and write some specifications whilst pretending you are the client. For the other three I mean the thing itself and your experience in using those things.
So the final product has just as much to do with work ethic as ability.