7 ms·
A new job. I was an isolated developer for the longest time, first for a really tiny consulting company I started with a friend, then for a much larger company
by lojack 10y ago
A new job. I was an isolated developer for the longest time, first for a really tiny consulting company I started with a friend, then for a much larger company that was extremely siloed.
When you first become a developer its much easier to learn new things with just a little bit of direction. You may not always learn the best way to do things, but you're learning. Eventually I found that I hit a plateau. I was technically knowledgable and could learn new technologies fast, but the quality of my code wasn't changing significantly. I've found that this happened because the feedback loops for this type of work is much larger. It can take you years to see why your architecture is unmaintainable, because it technically works and is much more subtle.
The new company has hundreds of developers, all really smart. We do peer reviews for all new work, which helps you learn from the experience of others. We tend to work in pairs, some people do actual pair programming, some people just bounce ideas and questions off of their pair, and all code is peer reviewed. It's very informal and isn't really written down anywhere, more a part of the company culture. My pair works on other projects than myself, we each have a number of projects we lead, but we're both very familiar with each others projects and could take over in their absence. Helps us learn from the experience of each other.
The other big thing that changed with the new company is the writing of tests. Prior to this, I hardly ever wrote tests. Now, I write tests for any new code. Sometimes this involves TDD, and sometimes it's just test-heavy development. Again, we aren't dogmatic about this, and there's often code that is untested. This is usually parts that are unreasonable to test, or wouldn't benefit much from tests.
- Tasboo 10y agoSimilar story here and agreed, well said. Where I started, I was one of two developers at small-medium sized business. Because of the needs of the business, there wasn't a lot of need for more developers so room for advancement wasn't there, nor was there a need to expand my skills beyond what the day to day job required of me. The projects I worked on were very siloed as well. Moving to a larger company with many teams of developers forced me to expand not only my technical skills, but my soft skills as well. Being able to work with many different team members, as well as across teams and with different business units forced me to improve skills that I didn't have the opportunity/need to improve on at my old job.
- tvanantwerp 10y agoI relate to this strongly. I'm currently the only technical person where I work. I've gotten to learn a broad array of things, mainly because I had to. But it's very hard to go deep or know if I'm going in a good direction by myself. Even one other person to develop with would be a huge improvement.
- angryasian 10y agoAs an older engineer, I agree with this completely. When I was younger the thing that helped me the most was working with more experienced, better developers.
- sassyboy 10y agoThis is so true. The company of just one good developer can make a huge difference.